feat(neovim): switch to nix fmt

Also needed to disable formatting for rnix-lsp, since it integrates nixpkgs-fmt
This commit is contained in:
Felix Schröter 2022-08-29 14:06:49 +02:00
parent 68b05befc4
commit c74cdcb569
Signed by: felschr
GPG key ID: 671E39E6744C807D

View file

@ -42,31 +42,49 @@ if not configs.glslls then
} }
end end
local capabilities_ = vim.lsp.protocol.make_client_capabilities() local default_capabilities = function()
local capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities_) local capabilities_ = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true local capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities_)
local servers = { capabilities.textDocument.completion.completionItem.snippetSupport = true
"bashls", return capabilities
"jsonls", end
"yamlls",
"html", local capabilities = default_capabilities()
"cssls", local capabilities_no_formatting = default_capabilities()
"dockerls", capabilities_no_formatting.textDocument.formatting = false
"rnix", capabilities_no_formatting.textDocument.rangeFormatting = false
"tsserver", capabilities_no_formatting.textDocument.range_formatting = false
"graphql",
"pylsp", -- lsp configs
"terraformls", local c = {
"hls", default = {
"vimls",
"glslls",
}
for _, lsp in ipairs(servers) do
config[lsp].setup {
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
} },
end no_formatting = {
on_attach = function(client, bufnr)
client.resolved_capabilities.document_formatting = false
client.resolved_capabilities.document_range_formatting = false
on_attach(client, bufnr)
end,
capabilities = capabilities_no_formatting,
},
}
config.bashls.setup(c.default)
config.jsonls.setup(c.default)
config.yamlls.setup(c.default)
config.html.setup(c.default)
config.cssls.setup(c.default)
config.dockerls.setup(c.default)
config.rnix.setup(c.no_formatting)
config.tsserver.setup(c.default)
config.graphql.setup(c.default)
config.pylsp.setup(c.default)
config.terraformls.setup(c.default)
config.hls.setup(c.default)
config.vimls.setup(c.default)
config.glslls.setup(c.default)
config.rust_analyzer.setup { config.rust_analyzer.setup {
on_attach = on_attach, on_attach = on_attach,
@ -115,8 +133,6 @@ local null_ls = require("null-ls")
local null_ls_custom = { local null_ls_custom = {
diagnostics = {}, diagnostics = {},
formatting = { formatting = {
-- TODO this doesn't use the correct formatter for some reason
-- likely some kind of directory or direnv issue
nix_fmt = { nix_fmt = {
name = "nix fmt", name = "nix fmt",
meta = { meta = {
@ -127,8 +143,9 @@ local null_ls_custom = {
filetypes = { "nix" }, filetypes = { "nix" },
generator = require("null-ls.helpers").formatter_factory({ generator = require("null-ls.helpers").formatter_factory({
command = "nix", command = "nix",
args = { "fmt" }, args = { "fmt", "$FILENAME" },
-- to_stdin = true, to_stdin = false,
to_temp_file = true,
}), }),
}, },
}, },
@ -155,9 +172,7 @@ null_ls.setup({
"handlebars", "handlebars",
}, },
}, },
-- TODO not properly working yet null_ls_custom.formatting.nix_fmt,
-- null_ls_custom.formatting.nix_fmt,
null_ls.builtins.formatting.nixfmt,
null_ls.builtins.formatting.rustfmt, null_ls.builtins.formatting.rustfmt,
null_ls.builtins.formatting.terraform_fmt, null_ls.builtins.formatting.terraform_fmt,
}, },