return { -- Main LSP Configuration 'neovim/nvim-lspconfig', dependencies = { -- Automatically install LSPs and related tools to stdpath for Neovim { 'williamboman/mason.nvim', config = true, }, -- NOTE: Must be loaded before dependants 'williamboman/mason-lspconfig.nvim', --'WhoIsSethDaniel/mason-tool-installer.nvim', --{ 'j-hui/fidget.nvim', opts = {} }, 'hrsh7th/cmp-nvim-lsp', }, config = function() --local capabilities = vim.lsp.protocol.make_client_capabilities() --capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities()) local servers = { gopls = {}, } require('mason').setup() --local ensure_installed = vim.tbl_keys(servers or {}) --vim.list_extend(ensure_installed, { -- 'stylua', -- Used to format Lua code --}) --require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-lspconfig').setup { handlers = { function(server_name) local capabilities = require('cmp_nvim_lsp').default_capabilities() local server = servers[server_name] or {} server.capabilities = capabilities -- server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) require('lspconfig')[server_name].setup(server) end, }, } end, }