-- Package manager for LSP servers, DAP adapters etc. -- It also handles starting all of my LSP servers return { "williamboman/mason.nvim", dependencies = { "neovim/nvim-lspconfig", "williamboman/mason-lspconfig.nvim", "WhoIsSethDaniel/mason-tool-installer.nvim", -- Extended functionality for jdtls "mfussenegger/nvim-jdtls", -- Neovim setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API. { "folke/neodev.nvim", opts = { override = function(_, library) library.enabled = true library.plugins = true end, }, }, }, config = function() require("mason").setup() local mason_lsp = require("mason-lspconfig") local lsp_utils = require("lsp_utils") local capabilities = lsp_utils.get_capabilities() mason_lsp.setup() mason_lsp.setup_handlers({ -- Default handler function(server_name) require("lspconfig")[server_name].setup({ on_attach = lsp_utils.on_attach, capabilities = capabilities, }) end, -- Don't set up jdtls, it is set up by nvim-jdtls ["jdtls"] = function() end, }) end, }