coc.nvim NeoVimにコード補完機能を追加
dcc.vim の設定からの続きになります。
coc.nvim
Pythonなど、プログラミング言語等の構文解析・構文ハイライト・静的エラーチェック・リファレンス参照・入力補完などの機能を使いたいので、coc.nvim を設定します。
Nodejsが必要
coc.nvim のためにNodejsが必要ということで、インストールしました。
とりあえずaptのデフォルトで入るバージョンよりは新しくしたかったので以下を実行しました。Node18をインストールしています。
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
coc.nvimのインストール
パッケージマネージャー(Dein)で追加するスタイルなので、dein.toml に記述していきます。
私の dein.toml ファイルの coc.nvim の設定はこちらから拝借いたしました。ありがとうございます。
coc.nvimは必要になった時に機能追加するスタイルですが、初めのうちは特に何が何だか訳解からなかったので、
複数言語の補完機能をインストールと同時に設定すれば、後が楽になって良いと思います。
( dein.toml )
[[plugins]]
repo = 'neoclide/coc.nvim'
rev = 'release'
hook_add = '''
let g:coc_global_extensions = [
\'@yaegassy/coc-volar',
\'coc-css',
\'coc-docker',
\'coc-eslint',
\'coc-git',
\'coc-html',
\'coc-json',
\'coc-lua',
\'coc-markdownlint',
\'coc-phpls',
\'coc-prettier',
\'coc-sql',
\'coc-sumneko-lua',
\'coc-toml',
\'coc-tsserver',
\'coc-vimlsp',
\'coc-jedi',
\'coc-diagnostic',
\]
inoremap <silent><expr> <c-space> coc#refresh()
inoremap <silent><expr> <tab> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> <C-w>gd <cmd>vs<cr><Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gF <Plug>(coc-references)
nmap <f2> <Plug>(coc-rename)
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
nmap <esc><esc> <cmd>call coc#float#close_all()<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <leader>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <leader>s :<C-u>CocList -I symbols<cr>
nnoremap <silent> gh :call <SID>show_documentation()<CR>
nnoremap <silent> <leader>a <cmd>CocAction<cr>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" higlight when hover cursor
autocmd CursorHold * silent call CocActionAsync('highlight')
'''
NeoVimを再起動で、インストールが反映されます。
これでコード補完機能が追加されました。
この設定も含め、私のNeoVimの設定ファイルをGitHubに置きました。
調べたこと
- 必要に応じて追加(追記)していくスタイル
- coc.nvim自体はパッケージマネージャーで追加する
- coc.nvimで各種言語の補完機能等を追加する
- LSPをフルサポートしたプラグイン
LSP Language Server Protocol
プログラミング言語の構文解析・構文ハイライト・静的エラーチェック・リファレンス参照・入力補完といった機能を持つ。
ripgrep
Error on “..”: spawn rg ENOENTと出る場合は ripgrep のインストールが必要でした。snap使いました。
sudo snap install ripgrep --classic
以上になります。またお会いしましょう
1件のコメント