82 lines
3.3 KiB
Lua
82 lines
3.3 KiB
Lua
-- TODO: installers for the rest
|
|
local linters_path = vim.fn.stdpath('data') .. '/lint'
|
|
local null_ls = require('null-ls')
|
|
local lspconf = require('lspconfig')
|
|
local on_attach = require('modules.lsp.util').common_on_attach
|
|
|
|
local sources = {
|
|
-- null_ls.builtins.formatting.codespell.with {
|
|
-- command = linters_path .. '/codespell/venv/bin/codespell'
|
|
-- },
|
|
null_ls.builtins.formatting.clang_format.with {
|
|
filetypes = {'c', 'cpp'}
|
|
},
|
|
null_ls.builtins.formatting.cmake_format.with {
|
|
command = linters_path .. '/cmake_format/venv/bin/cmake-format'
|
|
},
|
|
null_ls.builtins.formatting.fish_indent,
|
|
-- null_ls.builtins.formatting.fixjson.with {command = 'fixjson'},
|
|
-- null_ls.builtins.formatting.fnlfmt.with {command = 'fnlfmt'},
|
|
-- null_ls.builtins.formatting.goimports.with {command = 'goimports'},
|
|
-- null_ls.builtins.formatting.gofmt.with {command = 'gofmt'},
|
|
-- null_ls.builtins.formatting.nixfmt.with {command = 'nixfmt'},
|
|
-- null_ls.builtins.formatting.prettier.with {
|
|
-- command = linters_path .. '/prettier/node_modules/.bin/prettier'
|
|
-- },
|
|
-- null_ls.builtins.formatting.rustfmt.with {command = 'rustfmt'},
|
|
-- null_ls.builtins.formatting.rustywind.with {command = 'rustywind'},
|
|
-- null_ls.builtins.formatting.shfmt.with {
|
|
-- command = linters_path .. '/shfmt/shfmt'
|
|
-- },
|
|
null_ls.builtins.formatting.stylua.with {
|
|
condition = function(utils)
|
|
return utils.root_has_file('stylua.toml')
|
|
end
|
|
},
|
|
-- null_ls.builtins.formatting.uncrustify.with {command = 'uncrustify'},
|
|
-- null_ls.builtins.formatting.stylelint.with {
|
|
-- command = linters_path .. '/stylelint/node_modules/.bin/stylelint'
|
|
-- },
|
|
null_ls.builtins.diagnostics.shellcheck,
|
|
null_ls.builtins.diagnostics.codespell.with {
|
|
command = linters_path .. '/codespell/venv/bin/codespell'
|
|
},
|
|
-- null_ls.builtins.diagnostics.cspell.with {
|
|
-- command = linters_path .. '/cspell/node_modules/.bin/cspell',
|
|
-- filetypes = {'tex', 'markdown', 'org'}
|
|
-- },
|
|
null_ls.builtins.diagnostics.hadolint.with {
|
|
command = vim.fn.stdpath('config') .. '/scripts/hadolint',
|
|
args = {'$FILENAME'}
|
|
},
|
|
-- null_ls.builtins.diagnostics.luacheck,
|
|
null_ls.builtins.diagnostics.cppcheck,
|
|
null_ls.builtins.diagnostics.write_good.with {
|
|
command = linters_path .. '/write_good/node_modules/.bin/write-good'
|
|
},
|
|
null_ls.builtins.diagnostics.markdownlint.with {
|
|
command = linters_path .. '/markdownlint/node_modules/.bin/markdownlint'
|
|
},
|
|
null_ls.builtins.diagnostics.qmllint,
|
|
null_ls.builtins.diagnostics.selene.with {
|
|
condition = function(utils)
|
|
return utils.root_has_file('selene.toml')
|
|
end
|
|
},
|
|
-- null_ls.builtins.diagnostics.vale.with {
|
|
-- command = linters_path .. '/vale/vale'
|
|
-- },
|
|
null_ls.builtins.diagnostics.vint.with {
|
|
command = linters_path .. '/vint/venv/bin/vint'
|
|
},
|
|
-- null_ls.builtins.diagnostics.stylelint.with {
|
|
-- command = linters_path .. '/stylelint/node_modules/.bin/stylelint'
|
|
-- },
|
|
null_ls.builtins.hover.dictionary -- get word definition from dictionaryapi.dev
|
|
}
|
|
|
|
null_ls.config {sources = sources}
|
|
lspconf['null-ls'].setup {
|
|
on_attach = on_attach
|
|
}
|