36 lines
977 B
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",
|
|
},
|
|
}
|