diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 330d50d..ee94679 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -8,6 +8,7 @@ lua << EOF vim.opt.completeopt = {"menu", "menuone", "noselect"} local cmp = require'cmp' +local source_mapping = {buffer = '[Buffer]', nvim_lsp = '[LSP]'} cmp.setup({ snippet = { @@ -15,24 +16,26 @@ cmp.setup({ require('luasnip').lsp_expand(args.body) -- For `luasnip` users. end, }, - mapping = { - -- [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), - -- [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping(cmp.mapping.scroll_docs( 4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - -- [''] = cmp.config.enable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. - -- [''] = cmp.mapping({ - -- i = cmp.mapping.abort(), - -- c = cmp.mapping.close(), - -- }), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - }, + [''] = cmp.mapping.confirm({ select = false }), + }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, - { name = 'luasnip' }, -- For luasnip users. + { name = 'luasnip' }, }, { { name = 'buffer' }, - }) + }), + completion = {keyword_length = 4}, + formatting = { + format = function(entry, vim_item) + vim_item.menu = source_mapping[entry.source.name] + return vim_item + end, + }, }) -- Setup lspconfig: capabilities is passed to lspconfig.$server.setup