fix(lsp): Remove backwards compatibility and add comments for lsp setup

This commit is contained in:
Umut Sahin Onder 2025-04-20 12:58:24 +02:00
parent 5502cea3f6
commit a590ab6c88
1 changed files with 24 additions and 33 deletions

View File

@ -647,12 +647,6 @@ require('lazy').setup({
}, },
} }
-- LSP servers and clients are able to communicate to each other what features they support.
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- Enable the following language servers -- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed. -- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
-- --
@ -711,34 +705,31 @@ require('lazy').setup({
}) })
require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-tool-installer').setup { ensure_installed = ensure_installed }
-- Handle lsp setups differently based on Neovim version -- Handle LSP setups
-- See :help vim.lsp.config and :help vim.lsp.enable for Neovim 0.11+ -- See :help vim.lsp.enable
if vim.fn.has 'nvim-0.11' == 1 then
for server, config in pairs(servers) do for server, config in pairs(servers) do
-- 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)
config.capabilities = vim.tbl_deep_extend('force', {}, capabilities, config.capabilities or {})
vim.lsp.config(server, config) vim.lsp.config(server, config)
vim.lsp.enable(server) vim.lsp.enable(server)
end end
else -- NOTE: Some servers still require the nvim-lspconfig setup until they are updated
-- For Neovim 0.10 and below, use mason-lspconfig for setup -- Use this template inside the for loop if you encounter issues with an lsp
require('mason-lspconfig').setup { --
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) -- if server == 'example_server' or server == 'example_server2' then
automatic_installation = false, -- -- This handles overriding only values explicitly passed
handlers = { -- -- by the server configuration above. Useful when disabling
function(server_name) -- -- certain features of an LSP (for example, turning off formatting for ts_ls)
local server = servers[server_name] or {} -- local capabilities = require('blink.cmp').get_lsp_capabilities()
-- This handles overriding only values explicitly passed -- config.capabilities = vim.tbl_deep_extend('force', {}, capabilities, config.capabilities or {})
-- by the server configuration above. Useful when disabling -- require('mason-lspconfig')[server_name].setup(config)
-- certain features of an LSP (for example, turning off formatting for ts_ls) -- else
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) -- vim.lsp.config(server, config)
require('lspconfig')[server_name].setup(server) -- vim.lsp.enable(server)
end, -- end
}, --
} -- LSP servers and clients are able to communicate to each other what features they support.
end -- With nvim-lspconfig setup, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
end, end,
}, },