coc.nvim
settings
code:dein.toml
# completion
plugins
repo = 'neoclide/coc.nvim'
rev = 'release'
build = '''
git checkout release
''' // rev='release'が一部の環境だと動かなかったので書いている
hook_add = '''
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')col - 1 =~# '\s' endfunction
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
'''
install extensions and sources
code:vim
:CocInstall coc-json coc-tsserver coc-html ...
add custom sources
code:.vim/coc-settings.json
{
"languageserver": {
"golang": {
"command": "gopls",
},
"dockerfile": {
"command": "docker-langserver",
},
"bash": {
"command": "bash-language-server",
}
}
}
参考