local servers = { "lua_ls", "pyright", "tsserver", "terraformls", "phpactor", "emmet_language_server", } 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