feat: add support for new LSP config API in Neovim 0.11+

This commit is contained in:
Umut Sahin Onder 2025-04-16 19:32:25 +02:00
parent d350db2449
commit 3f0cd75469
1 changed files with 28 additions and 14 deletions

View File

@ -711,20 +711,34 @@ require('lazy').setup({
}) })
require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-tool-installer').setup { ensure_installed = ensure_installed }
require('mason-lspconfig').setup { -- Handle lsp setups differently based on Neovim version
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) -- See :help vim.lsp.config and :help vim.lsp.enable for Neovim 0.11+
automatic_installation = false, if vim.fn.has 'nvim-0.11' == 1 then
handlers = { for server, config in pairs(servers) do
function(server_name) -- This handles overriding only values explicitly passed
local server = servers[server_name] or {} -- by the server configuration above. Useful when disabling
-- This handles overriding only values explicitly passed -- certain features of an LSP (for example, turning off formatting for ts_ls)
-- by the server configuration above. Useful when disabling config.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
-- certain features of an LSP (for example, turning off formatting for ts_ls) vim.lsp.config(name, config)
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) vim.lsp.enable(name)
require('lspconfig')[server_name].setup(server) end
end, else
}, -- For Neovim 0.10 and below, use mason-lspconfig for setup
} require('mason-lspconfig').setup {
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
automatic_installation = false,
handlers = {
function(server_name)
local server = servers[server_name] or {}
-- This handles overriding only values explicitly passed
-- by the server configuration above. Useful when disabling
-- certain features of an LSP (for example, turning off formatting for ts_ls)
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
require('lspconfig')[server_name].setup(server)
end,
},
}
end
end, end,
}, },