/ #neovim #vim 

⚡neovim + 🍻ale + 🚓rubocop

TL;DR

  • neovimにale(w0rp/ale、vimの非同期Linter)を入れて編集中にrubocopが走るようにしてみました。
    • 自分の場合は5行追加で動いた
  • また、お試しで保存時(:w)にauto-correctが走るようにしてみました。
    • 自分の場合は1行追加で動いた

編集中に非同期的にrubocopが走る 🚓

未保存の状態でも違反箇所がわかるようになります。

以下の例だと、-- がついた箇所が違反箇所です。

違反箇所にカーソルを合わせるとvimのステータスラインに違反内容が表示されます。

neovim_rubocop

👆 をやるための設定

rubocop

rubocop gemはgemコマンドやbundleコマンドでインストールされていることが前提です。

自分の場合はbundler経由でも特に問題なく動作しました。

ale側のソース読むとそのあたりはaleがよしなにやってくれそうな雰囲気を感じました。

ale

aleを利用できるようにします。

ググってこの記事とかを参考にしましたが、 自分の場合はdein.tomlみたいな設定ファイルで管理してるので、以下を追記して call dein#install() で。

[[plugins]]
repo = 'w0rp/ale'

次にaleが呼ぶfixerとしてrubocopを指定します。 自分の場合は~/.config/nvim/init.vimにベタに書きました。

let g:ale_fixers = {
\   'ruby': ['rubocop'],
\}

これだけ。

さらに保存時にrubocop –auto-correctが走るようにする 🚓

保存直後に、自動的に直せるところは直すようにしてみました。

neovim_rubocop_autocorrect

これは便利そうですが、うざいときはうざそうなので、様子を見て考えます。

👆 をやるためのneovim設定

以下を追記します。

let g:ale_fix_on_save = 1

✎まとめ

  • 保存直後にオートコレクトするやつは様子見る

Author

hoshinotsuyoshi

星野剛志(ほしのつよし) web application engineer. ruby/rails/docker