From 3daa827823f3e279d7f9334242e4ff56f9d11f0d Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Sun, 9 Jul 2023 13:35:30 +0200 Subject: [PATCH] vim: manage LSP servers with plugin 'williamboman/mason.nvim' --- config/nvim/lua/user/plugins/lsp.lua | 35 +++++++++++++++------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/config/nvim/lua/user/plugins/lsp.lua b/config/nvim/lua/user/plugins/lsp.lua index 1fa5508..fc52d01 100644 --- a/config/nvim/lua/user/plugins/lsp.lua +++ b/config/nvim/lua/user/plugins/lsp.lua @@ -1,9 +1,3 @@ -local servers = { - omnisharp = { - cmd = { vim.fn.expand '~/omnisharp/OmniSharp' }, - }, -} - local filetypes = { cs = function(client, bufnr) client.server_capabilities.semanticTokensProvider = nil @@ -36,18 +30,27 @@ local config = function() vim.tbl_deep_extend('force', capabilities, cmp.default_capabilities()) end - lsp = require('lspconfig') - for server, opts in pairs(servers) do - opts = vim.tbl_deep_extend('keep', opts, { - on_attach = on_attach, - capabilities = capabilities, - }) - lsp[server].setup(opts) - end + require('mason').setup() + require('mason-lspconfig').setup { + handlers = { + -- default handler + function(server) + require('lspconfig')[server].setup { + on_attach = on_attach, + capabilities = capabilities, + } + end, + + -- server-specific handlers + -- ['server'] = function() --[[ server-specific stuff... ]] end + } + } end return { - 'neovim/nvim-lspconfig', - config = config, + { 'neovim/nvim-lspconfig', config = config }, + + 'williamboman/mason.nvim', + 'williamboman/mason-lspconfig.nvim', }