diff options
Diffstat (limited to '.vim/after/plugin/cmp.vim')
-rw-r--r-- | .vim/after/plugin/cmp.vim | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/.vim/after/plugin/cmp.vim b/.vim/after/plugin/cmp.vim new file mode 100644 index 0000000..226f8c5 --- /dev/null +++ b/.vim/after/plugin/cmp.vim @@ -0,0 +1,61 @@ +if !has('nvim') + finish +endif + +inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>" +inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" + +packadd nvim-cmp +packadd cmp-buffer +packadd cmp-path +packadd cmp-cmdline + +lua <<EOF + +local cmp = require 'cmp' + +cmp.setup({ + preselect = cmp.PreselectMode.None, + + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + }, { + { name = 'buffer' }, + }), + + mapping = cmp.mapping.preset.insert({ + ['<Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { 'i', 's' }), + + ['<S-Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, { 'i', 's' }), + }), +}) + +cmp.setup.cmdline('/', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'buffer' }, + }), +}) + +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + }, { + { name = 'cmdline' }, + }), +}) + +EOF |