home: vim: lspconfig: use native configuration

The `nvim-lspconfig` "framework" is being deprecated to use the native
`vim.lsp.config` and `vim.lsp.enable` functionality.

I _could_ remove the `is_executable` checks, as native LSP handling does
_not_ loudly error out when enabling a server which isn't executable.
However I think `:LspInfo` is more readable if I don't.
This commit is contained in:
Bruno BELANYI 2025-10-03 12:18:38 +00:00
parent 5b47fc6365
commit 62533d435b

View file

@ -1,4 +1,3 @@
local lspconfig = require("lspconfig")
local lsp = require("ambroisie.lsp") local lsp = require("ambroisie.lsp")
local utils = require("ambroisie.utils") local utils = require("ambroisie.utils")
@ -25,59 +24,45 @@ vim.diagnostic.config({
-- Inform servers we are able to do completion, snippets, etc... -- Inform servers we are able to do completion, snippets, etc...
local capabilities = require("cmp_nvim_lsp").default_capabilities() local capabilities = require("cmp_nvim_lsp").default_capabilities()
-- Shared configuration
vim.lsp.config("*", {
capabilities = capabilities,
on_attach = lsp.on_attach,
})
-- C/C++ -- C/C++
if utils.is_executable("clangd") then if utils.is_executable("clangd") then
lspconfig.clangd.setup({ vim.lsp.enable("clangd")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Haskell -- Haskell
if utils.is_executable("haskell-language-server-wrapper") then if utils.is_executable("haskell-language-server-wrapper") then
lspconfig.hls.setup({ vim.lsp.enable("hls")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Nix -- Nix
if utils.is_executable("nil") then if utils.is_executable("nil") then
lspconfig.nil_ls.setup({ vim.lsp.enable("nil_ls")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Python -- Python
if utils.is_executable("pyright") then if utils.is_executable("pyright") then
lspconfig.pyright.setup({ vim.lsp.enable("pyright")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
if utils.is_executable("ruff") then if utils.is_executable("ruff") then
lspconfig.ruff.setup({ vim.lsp.enable("ruff")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Rust -- Rust
if utils.is_executable("rust-analyzer") then if utils.is_executable("rust-analyzer") then
lspconfig.rust_analyzer.setup({ vim.lsp.enable("rust_analyzer")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Shell -- Shell
if utils.is_executable("bash-language-server") then if utils.is_executable("bash-language-server") then
lspconfig.bashls.setup({ vim.lsp.config("bashls", {
filetypes = { "bash", "sh", "zsh" }, filetypes = { "bash", "sh", "zsh" },
capabilities = capabilities,
on_attach = lsp.on_attach,
settings = { settings = {
bashIde = { bashIde = {
shfmt = { shfmt = {
@ -89,27 +74,19 @@ if utils.is_executable("bash-language-server") then
}, },
}, },
}) })
vim.lsp.enable("bashls")
end end
-- Starlark -- Starlark
if utils.is_executable("starpls") then if utils.is_executable("starpls") then
lspconfig.starpls.setup({ vim.lsp.enable("starpls")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
-- Generic -- Generic
if utils.is_executable("harper-ls") then if utils.is_executable("harper-ls") then
lspconfig.harper_ls.setup({ vim.lsp.enable("harper_ls")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end
if utils.is_executable("typos-lsp") then if utils.is_executable("typos-lsp") then
lspconfig.typos_lsp.setup({ vim.lsp.enable("typos_lsp")
capabilities = capabilities,
on_attach = lsp.on_attach,
})
end end