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