call signature_help#enable() call popup_preview#enable() call ddc#custom#patch_global('sources', ['nvim-lsp', 'around', 'file']) call ddc#custom#patch_global('sourceOptions', { \ 'around': {'mark': 'A', 'maxSize': 500}, \ 'nvim-lsp': {'mark': 'L'}, \ 'file': { \ 'mark': 'F', \ 'isVolatile': v:true, \ 'forceCompletionPattern': '\S/\S*', \ }, \ '_': { \ 'matchers': ['matcher_head'], \ 'sorters': ['sorter_rank'], \ 'converters': ['converter_remove_overlap'], \ }, \ }) call ddc#custom#patch_global('completionMenu', 'pum.vim') " pum inoremap <silent><expr> <TAB> \ pum#visible() ? '<Cmd>call pum#map#insert_relative(+1)<CR>' : \ (col('.') <= 1 <Bar><Bar> getline('.')[col('.') - 2] =~# '\s') ? \ '<TAB>' : ddc#manual_complete() inoremap <S-Tab> <Cmd>call pum#map#insert_relative(-1)<CR> inoremap <C-n> <Cmd>call pum#map#select_relative(+1)<CR> inoremap <C-p> <Cmd>call pum#map#select_relative(-1)<CR> inoremap <C-y> <Cmd>call pum#map#confirm()<CR> inoremap <C-e> <Cmd>call pum#map#cancel()<CR> call ddc#custom#patch_global('autoCompleteEvents', [ \ 'InsertEnter', 'TextChangedI', 'TextChangedP', \ 'CmdlineEnter', 'CmdlineChanged', \ ]) nnoremap : <Cmd>call CommandlinePre()<CR>: function! CommandlinePre() abort " Note: It disables default command line completion! cnoremap <expr> <Tab> \ pum#visible() ? '<Cmd>call pum#map#insert_relative(+1)<CR>' : \ ddc#manual_complete() cnoremap <S-Tab> <Cmd>call pum#map#insert_relative(-1)<CR> cnoremap <C-y> <Cmd>call pum#map#confirm()<CR> cnoremap <C-e> <Cmd>call pum#map#cancel()<CR> " Overwrite sources let s:prev_buffer_config = ddc#custom#get_buffer() call ddc#custom#patch_buffer('sources', \ ['cmdline', 'cmdline-history', 'around', 'file']) call ddc#custom#patch_buffer('sourceOptions', { \ 'file': { \ 'mark': 'F', \ 'isVolatile': v:true, \ 'forceCompletionPattern': '(^e\s+|\S/\S*)', \ }, \ }) autocmd User DDCCmdlineLeave ++once call CommandlinePost() " Enable command line completion call ddc#enable_cmdline_completion() call ddc#enable() endfunction function! CommandlinePost() abort " Restore sources call ddc#custom#set_buffer(s:prev_buffer_config) cunmap <Tab> endfunction call ddc#enable()