nvim/lua/custom/plugins/mason-lspconfig.lua

36 lines
977 B
Lua

return {
"mason-org/mason-lspconfig.nvim",
opts = {},
config = function(_, opts)
local lsp_zero = require("lsp-zero")
local lspconfig = require("lspconfig")
-- Autoload LSPs from ./config/*.lua files
local servers = {}
for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/custom/lsp/config/*.lua", true)) do
local lua_path = ft_path:gsub(".*/lua/(.+)%.lua", "%1")
local module_path = lua_path:gsub('/', '.')
local config = require(module_path)
local name = module_path:match("%.([^%.]+)$")
lspconfig[name].setup(config)
table.insert(servers, name)
end
local ensure_installed = { "rust_analyzer", "zls" }
ensure_installed = vim.list_extend(ensure_installed, servers)
local automatic_installation = true
local handlers = {
lsp_zero.default_setup,
}
return {
ensure_installed,
automatic_installation,
handlers,
}
end,
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
}