feat(lspconfig): better setup with mason-lspconfig.setup_handlers

This commit is contained in:
Folke Lemaitre 2023-01-05 18:26:07 +01:00
parent 454df99ff3
commit 12dacc4d32
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040

View file

@ -7,7 +7,7 @@ return {
{ "folke/neoconf.nvim", cmd = "Neoconf", config = true },
{ "folke/neodev.nvim", config = true },
"mason.nvim",
{ "williamboman/mason-lspconfig.nvim", config = { automatic_installation = true } },
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
},
---@type lspconfig.options
@ -32,14 +32,17 @@ return {
})
-- lspconfig
local servers = plugin.servers or require("lazyvim.plugins.lsp.servers")
local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
---@type lspconfig.options
local servers = plugin.servers or require("lazyvim.plugins.lsp.servers")
for server, opts in pairs(servers) do
opts.capabilities = capabilities
require("lspconfig")[server].setup(opts)
end
require("mason-lspconfig").setup({ ensure_installed = vim.tbl_keys(servers) })
require("mason-lspconfig").setup_handlers({
function(server)
local opts = servers[server] or {}
opts.capabilities = capabilities
require("lspconfig")[server].setup(opts)
end,
})
end,
},