require('mason').setup() require('mason-lspconfig').setup({ ensure_installed = { } }) local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities() local lsp_attach = function(client, bufnr) end local lspconfig = require('lspconfig') require('mason-lspconfig').setup_handlers({ function(server_name) lspconfig[server_name].setup({ on_attach = lsp_attach, capabilities = lsp_capabilities, }) end, }) local cmp = require'cmp' cmp.setup({ snippet = { expand = function(args) vim.fn["UltiSnips#Anon"](args.body) end, }, window = { }, mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping(function(fallback) if vim.fn.pumvisible() == 1 then feedkey("", "n") elseif cmp.visible() then cmp.select_next_item() else fallback() end end, { "i", }), [""] = cmp.mapping(function(fallback) if vim.fn.pumvisible() == 1 then feedkey("", "n") elseif cmp.visible() then cmp.select_prev_item() else fallback() end end, { "i", }), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'ultisnips' }, { name = 'omni' }, { name = 'buffer' }, }) }) local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities() local lsp_attach = function(client, bufnr) -- Create your keybindings here... end local lspconfig = require('lspconfig') require('mason-lspconfig').setup_handlers({ function(server_name) lspconfig[server_name].setup({ on_attach = lsp_attach, capabilities = lsp_capabilities, }) end, })