local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() local default_setup = function(server) require("lspconfig")[server].setup({ capabilities = lsp_capabilities, }) end -- enable mason and configure icons require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", }, }, }) require("mason-lspconfig").setup({ ensure_installed = {}, handlers = { default_setup, }, }) local cmp = require("cmp") cmp.setup({ sources = { { name = "nvim_lsp" }, }, mapping = cmp.mapping.preset.insert({ -- Enter key confirms completion item [""] = cmp.mapping.confirm({ select = false }), -- Ctrl + space triggers completion menu [""] = cmp.mapping.complete(), }), snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end, }, })