This commit is contained in:
Barrett Ruth 2026-03-03 01:23:44 -05:00
parent f871626e0a
commit cd9f745ace
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
6 changed files with 100 additions and 52 deletions

View file

@ -51,10 +51,68 @@ return {
ft('make'):lint('checkmake')
ft('cpp'):lint('cpplint')
ft('markdown'):fmt('cbfmt'):append('prettierd')
ft('nix'):fmt({
cmd = 'nix',
args = { 'fmt', '--' },
fname = true,
})
local lint = require('guard.lint')
ft('nix')
:fmt({
cmd = 'nix',
args = { 'fmt', '--' },
fname = true,
})
:lint({
cmd = 'deadnix',
args = { '-o', 'json' },
fname = true,
parse = lint.from_json({
get_diagnostics = function(raw)
return vim.json.decode(raw).results
end,
attributes = {
lnum = 'line',
col = 'column',
lnum_end = 'line',
col_end = 'endColumn',
message = 'message',
},
source = 'deadnix',
}),
})
:lint({
cmd = 'statix',
args = { 'check', '-o', 'json' },
fname = true,
parse = lint.from_json({
get_diagnostics = function(raw)
local data = vim.json.decode(raw)
local results = {}
for _, entry in ipairs(data.report or {}) do
for _, diag in ipairs(entry.diagnostics or {}) do
table.insert(results, {
from_line = diag.at.from.line,
from_col = diag.at.from.column,
to_line = diag.at.to.line,
to_col = diag.at.to.column,
message = entry.note,
severity = entry.severity,
})
end
end
return results
end,
attributes = {
lnum = 'from_line',
col = 'from_col',
lnum_end = 'to_line',
col_end = 'to_col',
message = 'message',
},
severities = {
Error = lint.severities.error,
Warn = lint.severities.warning,
Hint = lint.severities.info,
},
source = 'statix',
}),
})
end,
}