Skip to content

Commit fe9d466

Browse files
committed
docs(lint): de-rot the override and sweep comments
The markdownlint-cli2 override rationale dated from the bun node-shim era; record that mise ships real node now (kept pending re-evaluation) and NOTE the known limitation that the pattern drops col-less findings (e.g. MD012). Correct the shuck comment: actionlint DOES lint run: blocks via its shellcheck pass-through — shuck complements it. Consolidate the golangcilint blocking-load fact onto refresh_linter and point the other two sites at it; the rawset comment no longer cites the removed factory-wrapper machinery.
1 parent e04e565 commit fe9d466

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

lua/modules/configs/completion/nvim-lint.lua

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)