LoginSignup
9
9

More than 5 years have passed since last update.

Syntastic を使って Rails プロジェクト内でだけ RuboCop に --rails オプションをつける

Last updated at Posted at 2014-08-10

追記: Syntastic でどうにかするより Rails プロジェクトの .rubocop.yml で設定したほうがいい→コメント参照

Syntastic は Vim でファイルを保存した時点でシンタックスチェッカーを実行し、結果をバッファに表示してくれるプラグイン。 Syntastic は Ruby の静的コード解析器 RuboCop にも対応している。

RuboCop に --rails オプションを渡すと Ruby on Rails に特化したモードで解析してくれる。これを Rails プロジェクト内でだけ有効にするには、 rails.vim と組み合わせて以下のように設定する。

" Ruby ファイルに対し RuboCop を実行する
let g:syntastic_ruby_checkers = ['rubocop']

" カレントディレクトリが Rails プロジェクトのディレクトリ以下であれば、
" rails.vim によって b:rails_root がセットされる
" これがセットされているときだけ RuboCop に --rails オプションを渡す
au FileType ruby if exists('b:rails_root') |
  \ let b:syntastic_ruby_rubocop_options = '--rails' | endif

課題

Rails プロジェクトに含まれるが Rails とは関係しない Ruby スクリプト(たとえば my_rails_app/script/foo.rb)にも --rails オプションが適用される。これを防ぐには autocmd の条件式でカレントファイルのパスに /app/ または /spec/ が含まれているかどうかをチェックすればよいだろう。

9
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9