@@ -15,8 +15,12 @@ return function()
1515 " -" ,
1616 }
1717 end ,
18- -- markdownlint-cli2: stdin broken under bun's node shim (for-await yields empty).
19- -- Override to file-based mode and update parser for "path:line:col severity message" format.
18+ -- markdownlint-cli2: file-based mode + stderr parser date from the bun
19+ -- node-shim era (stdin's for-await yielded empty); mise ships real node
20+ -- now, so stdin likely works again — kept pending re-evaluation.
21+ -- NOTE (known limitation): the pattern requires "path:line:col", but
22+ -- upstream omits the column when unknown (e.g. MD012), so those
23+ -- findings are silently dropped.
2024 [" markdownlint-cli2" ] = function (linter )
2125 linter .stdin = false
2226 linter .args = {
@@ -47,9 +51,10 @@ return function()
4751 apply_override (name )
4852 end
4953
50- -- shuck: lints shell embedded in GitHub Actions `run:` blocks (actionlint
51- -- skips those); standalone sh/bash comes from the shuck LSP server. No usable
52- -- stdin mode (needs a project root), so run file-based and parse JSON.
54+ -- shuck: lints shell embedded in GitHub Actions `run:` blocks with rules
55+ -- beyond actionlint's shellcheck pass-through; standalone sh/bash comes
56+ -- from the shuck LSP server. No usable stdin mode (needs a project root),
57+ -- so run file-based and parse JSON.
5358 lint .linters .shuck = {
5459 name = " shuck" ,
5560 cmd = " shuck" ,
@@ -121,7 +126,7 @@ return function()
121126
122127 -- Resolve `linter_deps` discovery-first against nvim-lint's own registry,
123128 -- batched BY FILETYPE off the lint events below: the probe requires the
124- -- linter module, and some (golangcilint) run blocking system calls at load .
129+ -- linter module, and some block at load (see refresh_linter below) .
125130 local tools = require (" modules.utils.tools" )
126131 -- No factory-wrapper machinery here on purpose: both overridden linters
127132 -- (selene, markdownlint-cli2) are plain-table modules upstream, so a
@@ -143,8 +148,8 @@ return function()
143148 end
144149 local prev = lint .linters [name ]
145150 package.loaded [module ] = nil
146- -- Also drop any explicit assignment (a wrapped factory) shadowing the
147- -- lint.linters __index loader.
151+ -- Also drop any explicit assignment (e.g. a prior error-path restore
152+ -- below) shadowing the lint.linters __index loader.
148153 rawset (lint .linters , name , nil )
149154 -- Require it OURSELVES: the __index loader pcall-swallows a reload
150155 -- failure into nil, which would read as configure success and clear
@@ -336,9 +341,9 @@ return function()
336341 end
337342 table.sort (names ) -- pairs order is nondeterministic; keep the warning stable
338343 -- The event path loads linter modules inside tools.resolve(), AFTER it
339- -- put Mason's bin dir on $PATH. PATH-sensitive modules (golangcilint
340- -- RUNS its binary at load to compute args ) must see the same
341- -- environment when the warm phase loads them first instead.
344+ -- put Mason's bin dir on $PATH. PATH-sensitive module loads (see
345+ -- refresh_linter above ) must see the same environment when the warm
346+ -- phase loads them first instead.
342347 tools .ensure_mason_on_path ()
343348 -- Warm the __index module loads one per tick (bounds any blocking
344349 -- load to a single tick), then resolve everything still pending in
0 commit comments