return { { "williamboman/mason.nvim", config = function() require('mason').setup() end }, { "williamboman/mason-lspconfig.nvim", config = function() require('mason-lspconfig').setup { ensure_installed = {"nil_ls", "pyright", "gopls"} } end }, { "neovim/nvim-lspconfig", config = function() local lspconfig = require('lspconfig') local capabilities = require('cmp_nvim_lsp').default_capabilities() lspconfig.pyright.setup({capabilities = capabilities}) lspconfig.nil_ls.setup({capabilities = capabilities}) vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {desc = 'Go to definition'}) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, {desc = 'Show Code Actions'}) end } }