Update 'coc' configuration

master
Hektor Misplon 2022-12-01 13:57:54 +01:00
parent 904fa53db0
commit 9fc83c8ec7
1 changed files with 54 additions and 12 deletions

66
.vimrc
View File

@ -135,29 +135,72 @@ call plug#end()
""""""""""""""" """""""""""""""
" Coc " Coc
" `neoclide/coc.nvim` {{{
let g:coc_global_extensions = [ let g:coc_global_extensions = [
\'coc-dictionary',
\'coc-syntax',
\'coc-eslint', \'coc-eslint',
\'coc-prettier', \'coc-prettier',
\'coc-tsserver', \'coc-tsserver',
\'coc-python',
\'coc-html', \'coc-html',
\'coc-emmet', \'coc-emmet',
\'coc-css', \'coc-css',
\'coc-svg', \'coc-svg',
\'coc-svelte', \'coc-svelte',
\'coc-jedi',
\'coc-json', \'coc-json',
\'coc-markdownlint',
\'coc-yaml', \'coc-yaml',
\'coc-snippets', \'coc-snippets',
\'coc-clangd' \'coc-clangd',
\'coc-bibtex'
\] \]
" Autocomplete " Autocomplete
imap <tab> <Plug>(coc-snippets-expand) "
nn <leader>es :CocCommand snippets.editSnippets<cr>
ino <silent><expr><c-j> pumvisible() ? "\<c-n>" : " `coc-snippets`
\ coc#refresh()
ino <expr><c-k> pumvisible() ? "\<C-p>" : "k" " TODO: is this block even necessary anymore?
"
" I use `coc-snippets-exand-jump` here as it is more flexible afaics
" As stated in the docs:
" `coc-snippets-expand` Expand snippet w/ current inserted text
" `coc-snippets-expand-jump` Expand snippet or jump to next placeholder of current snippet if possible
" Use tab for expansion in every context Don't use it for jumping as
" expansions have priority over jumping (which is not always what you want)
"
" E.g. You don't want to expand `time` to say `12:05` upon `<tab>`bing to go
" from arguments to body in a function snippet
inor <silent><expr> <TAB>
\ coc#pum#visible() ? coc#_select_confirm() :
\ coc#expandable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
\ "\<TAB>"
" Use <c-j> and <c-k> to move through suggestions
" Open suggestions if not yet open
inor <silent><expr> <c-j> coc#pum#visible() ? coc#pum#next(1) : coc#refresh()
" NOTE: As the followning interfered with digraphs, I replaced `coc#refresh`
" with `"\<C-g>u\<c-k>"` which afaik just does c-k when no completion menu is
" shown
" ```
" inor <silent><expr> <c-k> coc#pum#visible() ? coc#pum#prev(1) : coc#refresh()
" ```
inor <silent><expr> <c-k> coc#pum#visible() ? coc#pum#prev(1) : "\<C-g>u\<c-k>"
" NOTE: this is cutting text in visual mode, it is replaces `$VISUAL` on next
" expansion
"
" although I mapped it, I have yet to test this feature
vmap <tab> <Plug>(coc-snippets-select)
ino <expr><cr> complete_info()["selected"] != "-1" ? "\<c-y>" : "\<c-g>u\<CR>" ino <expr><cr> complete_info()["selected"] != "-1" ? "\<c-y>" : "\<c-g>u\<CR>"
" Show doccumentation " Show doccumentation
fu! s:show_documentation() fu! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0) if (index(['vim','help'], &filetype) >= 0)
@ -166,13 +209,12 @@ fu! s:show_documentation()
call CocAction('doHover') call CocAction('doHover')
endif endif
endfunction endfunction
nnoremap K :call show_documentation() nn <leader>es :CocCommand snippets.editSnippets<cr>
" Code action on cursor position " Code action on cursor position
nm <leader>do <Plug>(coc-codeaction) nm <leader>do <Plug>(coc-codeaction)
" Coc statusline " Commands
se statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Prettier command
com! -nargs=0 Prettier :CocCommand prettier.formatFile com! -nargs=0 Prettier :CocCommand prettier.formatFile
" }}}
" `.../copilot` {{{ " `.../copilot` {{{