return { { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, { "mfussenegger/nvim-jdtls" }, { "neovim/nvim-lspconfig", config = function() local lspconfig = require("lspconfig") lspconfig.lua_ls.setup {} lspconfig.ccls.setup {} lspconfig.basedpyright.setup { settings = { basedpyright = { analysis = { typeCheckingMode = "basic", inlayHints = { callArgumentNames = true } } } } } lspconfig.yamlls.setup {} end, }, { "VonHeikemen/lsp-zero.nvim", dependencies = { "neovim/nvim-lspconfig", "hrsh7th/nvim-cmp", "hrsh7th/cmp-nvim-lsp" }, config = function() vim.opt.signcolumn = 'yes' local lspconfig_defaults = require('lspconfig').util.default_config lspconfig_defaults.capabilities = vim.tbl_deep_extend( 'force', lspconfig_defaults.capabilities, require('cmp_nvim_lsp').default_capabilities() ) vim.api.nvim_create_autocmd('LspAttach', { desc = 'LSP actions', callback = function(event) local opts = { buffer = event.buf } vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()', opts) vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) vim.keymap.set('n', 'go', 'lua vim.lsp.buf.type_definition()', opts) vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) vim.keymap.set('n', 'gs', 'lua vim.lsp.buf.signature_help()', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.rename()', opts) vim.keymap.set({ 'n', 'x' }, '', 'lua vim.lsp.buf.format({async = true})', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.code_action()', opts) end, }) local lspconfig = require('lspconfig') lspconfig.lua_ls.setup{} local cmp = require('cmp') cmp.setup({ sources = { { name = 'nvim_lsp' }, }, snippet = { expand = function(args) vim.snippet.expand(args.body) end, }, mapping = cmp.mapping.preset.insert({}), }) end, } }