概要
昨今の開発環境はほとんどのロジェクトでDocker Composeなどの仮想環境で構成されています。
今回は、Neovim(Vim) + ALEを使ってDocker Compose上でRubocopを実行する方法を書きました。
バージョン
- Neovim: v0.6.0
- ALE: v3.1.0
- Docker Compose: 1.24.0
設定方法
前提として、ALEプラグインをインストール済みの状態であることとします。
まず、Railsのbinstubとしてbin/rubocop
にDocker Compose上でRubocopを実行するスクリプトを作成します。
|
|
ALEはRubocopの結果をJSON形式で受け取って処理します。その際、標準出力に余計な出力がないよう、docker-compose exec
コマンドに-T
オプションを指定しています。
Neovimの設定
最後にNeovimの設定をします。
開発環境はプロジェクトによって異なるので、僕はthinca/vim-localrcを使って.local.vimrc
に設定をしています。
1. 実行コマンドにbin/rubocop
を指定
|
|
こちらは説明不要ですね。
2. ファイル名のマッピング
|
|
そのままだとローカルの絶対パスをbin/rubocop
コマンドの引数として渡してしまうが、実行するのはDocker上です。
Docker上の絶対パスに変換してから渡すようにマッピング指定をします。
['/Users/kseki/rails-project', '/opt']
の部分です。左はローカルのプロジェクトルートパス、右はDocker上のプロジェクトルートパスです。
まとめ
Gistにまとめました! Setting up “Rubocop” to run on “Docker compose” using “ALE”