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