👮
RuboCopのLSPをNeovimで利用する
概要
RuboCop 1.53で搭載された言語サーバープロトコル(Language Server Protocol, LSP)機能をNeovimで使えるようにします。coc.nvimを利用するので、試してないですが、たぶんVimでもいけます。
インストール
RuboCop 1.53はインストール済として、まず、Neovim/VimのLSPサポートプラグインのcoc.nvimをインストールします。プラグインマネージャにvim-plugを利用しているのであれば、以下のようにして、バッファで :PlugInstall
を実行します。
~/.config/nvim/init.vim
call plug#begin()
" ... 省略
Plug 'neoclide/coc.nvim', { 'branch': 'release' }
call plug#end()
:PlugInstall
※coc.nvimは、実行にNode.jsを必要とするので、インストールしていない場合は別でインストールください。
設定
バッファで :CocConfig
を実行して、RuboCop LSPの設定を書いていきます。
:CocConfig
gem install rubocop
でグローバルにインストールしたRuboCopを利用する場合は、以下のとおりです。
{
"languageserver": {
"rubocop": {
"command": "rubocop",
"args": ["--lsp"],
"filetypes": ["ruby"]
}
}
}
bundlerでインストールしたRuboCopを利用する場合は、以下のようになります。
{
"languageserver": {
"rubocop": {
"command": "bundle",
"args": ["exec", "rubocop", "--lsp"],
"filetypes": ["ruby"]
}
}
}
実行結果
Rubyファイルを開くとRuboCopの指示が表示されます。例えば、 Style/StringLiterals
を有効にした状態で、変数展開などのない文字列でダブルクォートを使うと、次のように指示が表示されます。便利ですね。
リンク
coc.nvim: https://github.com/neoclide/coc.nvim
LSP (Language Server Protocol) :: RuboCop Docs: https://docs.rubocop.org/rubocop/usage/lsp.html
Discussion