33 lines
1.2 KiB
Lua
33 lines
1.2 KiB
Lua
return {
|
|
-- NOTE: Make sure the order is as follows:
|
|
-- Mason loads -> Mason lspconfig loads -> Lspconfig loads
|
|
'neovim/nvim-lspconfig',
|
|
event = { 'BufReadPre', 'BufNewFile' },
|
|
dependencies = {
|
|
'hrsh7th/cmp-nvim-lsp',
|
|
{ 'antosha417/nvim-lsp-file-operations', conifg = true },
|
|
{
|
|
'williamboman/mason-lspconfig.nvim',
|
|
build = ':MasonUpdate',
|
|
config = function()
|
|
local language_servers = require('custom.config.language-servers')
|
|
local ensure_installed = vim.tbl_filter(function(key)
|
|
local server = language_servers[key]
|
|
if type(server) == 'table' then
|
|
if server.mason ~= nil then
|
|
return server.mason
|
|
end
|
|
return true
|
|
else
|
|
return server
|
|
end
|
|
end, vim.tbl_keys(language_servers))
|
|
require('mason-lspconfig').setup({ ensure_installed = ensure_installed, auto_install = true })
|
|
end,
|
|
},
|
|
},
|
|
config = function()
|
|
require('custom.config.lsp')
|
|
end,
|
|
}
|