local servers = { 'sumneko_lua', 'pyright', 'tsserver', } require('mason').setup() require('mason-lspconfig').setup({ ensure_installed = servers, automatic_installation = true, }) require('mason-update-all').setup() vim.api.nvim_create_autocmd('User', { pattern = 'MasonUpdateAllComplete', callback = function() print('mason-update-all has finished') end, }) local lsp_status_ok, lspconfig = pcall(require, 'lspconfig') if not lsp_status_ok then return end local opts = {} for _, server in pairs(servers) do opts = { on_attach = require('user.lsp.handlers').on_attach, capabilities = require('user.lsp.handlers').capabilities, } server = vim.split(server, '@')[1] local require_ok, conf_opts = pcall(require, 'user.lsp.settings.' .. server) if require_ok then opts = vim.tbl_deep_extend("force", conf_opts, opts) end lspconfig[server].setup(opts) end