completion.lua
1 local cmp = require 'cmp' 2 local lspkind = require 'lspkind' 3 local cmp_autopairs = require 'nvim-autopairs.completion.cmp' 4 5 lspkind.init({ 6 preset = 'codicons', 7 mode = 'symbol_text' 8 }) 9 10 cmp.setup { 11 snippet = { 12 expand = function(args) require 'luasnip'.lsp_expand(args.body) end 13 }, 14 mapping = { 15 ['<C-N>'] = cmp.mapping(cmp.mapping.select_next_item()), 16 ['<C-P>'] = cmp.mapping(cmp.mapping.select_prev_item()), 17 ['<C-U>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i' }), 18 ['<C-D>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i' }), 19 ['<CR>'] = cmp.mapping.confirm({ 20 select = true, 21 behavior = cmp.ConfirmBehavior.Replace 22 }), 23 ['<C-Space>'] = cmp.mapping.complete() 24 }, 25 formatting = { format = lspkind.cmp_format() }, 26 sources = cmp.config.sources({ 27 { name = 'nvim_lsp' }, 28 { name = 'luasnip' } 29 }, 30 { { name = 'buffer' } }) 31 } 32 33 cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())