Files
config.vim9/layers/plug/coc.vim
2025-12-18 11:40:30 +08:00

36 lines
1.2 KiB
VimL

vim9script
def CheckBackspace(): bool
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
enddef
def ShowDocumentation()
if CocAction('hasProvider', 'hover')
call CocActionAsync('doHover')
else
call feedkeys('K', 'in')
endif
enddef
final g:coc_global_extensions = ['coc-marketplace', 'coc-json', 'coc-vimlsp', 'coc-explorer', 'coc-git']
tui#core#plug#Regist('neoclide/coc.nvim', {
branch: 'release',
config: () => {
set updatetime=300
set signcolumn=yes
inoremap <silent><expr> <TAB> coc#pum#visible() ? coc#pum#next(1) : CheckBackspace() ? "\<Tab>" : coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
# Use <c-space> to trigger completion
inoremap <silent><expr> <c-@> coc#refresh()
# Use K to show documentation in preview window
nnoremap <silent> K :call ShowDocumentation()<CR>
# Highlight the symbol and its references when holding the cursor
autocmd CursorHold * silent call CocActionAsync('highlight')
}
})