return { 'hrsh7th/nvim-cmp', dependencies = { 'neovim/nvim-lspconfig', 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path', 'lukas-reineke/cmp-rg', 'onsails/lspkind.nvim' }, config = function() local cmp = require('cmp') local lspkind = require('lspkind') cmp.setup({ preselect = 'none', window = { completion = cmp.config.window.bordered({}), documentation = cmp.config.window.bordered({}), }, snippet = { expand = function(arg) vim.snippet.expand(arg.body) end }, mapping = cmp.mapping.preset.insert({ -- [''] = cmp.mapping.confirm({ select = true }), [''] = cmp.mapping.complete(), [''] = cmp.mapping.confirm(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.select_prev_item(), }), sources = cmp.config.sources( { { name = 'nvim_lsp' }, }, { { name = 'path' }, }, { { name = 'buffer' }, { name = 'rg', keyword_length = 3 } } ), formatting = { format = lspkind.cmp_format({ mode = 'symbol' }) }, -- view = { -- entries = 'native' -- }, }) local capabilities = require('cmp_nvim_lsp').default_capabilities() vim.lsp.config('lua_ls', { capabilities = capabilities }) vim.lsp.enable('lua_ls') vim.lsp.config('clangd', { capabilities = capabilities }) vim.lsp.enable('clangd') end }