dotfiles-ansible/roles/nvim/files/nvim/lua/modules/lsp/null_ls_conf.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
}