diff --git a/init.lua b/init.lua index 7627e35..18780e3 100644 --- a/init.lua +++ b/init.lua @@ -365,26 +365,30 @@ local servers = { -- Setup neovim lua configuration require('neodev').setup() +-- +-- nvim-cmp supports additional completion capabilities, so broadcast that to servers +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) -- Setup mason so it can manage external tooling require('mason').setup() -- Ensure the servers above are installed -require('mason-lspconfig').setup { +local mason_lspconfig = require('mason-lspconfig') + +mason_lspconfig.setup { ensure_installed = vim.tbl_keys(servers), } --- nvim-cmp supports additional completion capabilities, so broadcast that to servers -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) - -for lsp, settings in ipairs(servers) do - require('lspconfig')[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, - settings = settings, - } -end +mason_lspconfig.setup_handlers { + function(server_name) + require('lspconfig')[server_name].setup { + capabilities = capabilities, + on_attach = on_attach, + settings = servers[server_name], + } + end, +} -- Turn on lsp status information require('fidget').setup()