1
0
Fork 0

nvim-lint: deadnix

This commit is contained in:
Daniel Kempkens 2022-04-19 18:07:34 +02:00
parent 796fd8d12c
commit 22992b80a4
3 changed files with 23 additions and 4 deletions

View file

@ -5,7 +5,7 @@
(fn mod.setup []
(let [augroup (vim.api.nvim_create_augroup :NifocFormatting {:clear true})
aucmd vim.api.nvim_create_autocmd]
(aucmd :BufWritePre {:callback #(mod.maybe-format-buffer) :group augroup})))
(aucmd :BufWritePre {:callback mod.maybe-format-buffer :group augroup})))
(fn mod.maybe-enable-lsp [client bufnr]
(when client.server_capabilities.documentRangeFormattingProvider

View file

@ -1,16 +1,34 @@
(let [lint (require :lint)
augroup (vim.api.nvim_create_augroup :NifocLint {:clear true})
aucmd vim.api.nvim_create_autocmd]
(set lint.linters.deadnix
{:cmd :deadnix
:stdin false
:args [:--output-format :json]
:stream :stdout
:ignore_exitcode false
:parser (fn [output]
(if (= output "") {}
(let [findings (vim.json.decode output)]
(vim.tbl_map (fn [result]
{:lnum (- result.line 1)
:end_lnum (- result.line 1)
:col (- result.column 1)
:end_col (- result.endColumn 1)
:severity vim.diagnostic.severity.HINT
:source :deadnix
:message result.message})
findings.results))))})
(set lint.linters_by_ft {:dockerfile [:hadolint]
:elixir [:credo]
:fennel [:fennel]
:nix [:nix :statix]
:nix [:deadnix :nix :statix]
:sh [:shellcheck]})
(fn setup-linting [opts]
(aucmd [:BufWritePost :BufWinEnter :InsertLeave]
(aucmd [:BufWritePost :BufEnter :InsertLeave]
{:callback #(lint.try_lint) :buffer opts.buf :group augroup}))
(each [ft _ (pairs lint.linters_by_ft)]
(aucmd :InsertEnter {:pattern ft :callback setup-linting :group augroup})))
(aucmd :FileType {:pattern ft :callback setup-linting :group augroup})))

View file

@ -49,6 +49,7 @@ in
# LSP Tools
deadnix
hadolint
fennel
fnlfmt
shellcheck
shfmt