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, }