@ka2n

Technology and beer

Syntastic + Rubocop + Ruby2.1.2で上手く動かないので対処した

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

Ruby2.1.2で開発しているプロジェクトでSyntastic + Rubocopが上手く動かなかったので対処した。

Syntasticが構文解析に使っているgemのgithub.com/whitequark/parserRubyのバージョンをチェックしていて、パッチレベルでの最新版以外では警告を出す。

$ rubocop -v
warning: parser/current is loading parser/ruby21, which recognizes
warning: 2.1.5-compliant syntax, but you are running 2.1.2.
0.29.1

警告が出るとSyntasticはRubocopをチェッカーから外してしまう。 ちなみに認識されているチェッカーは :SyntasticInfoを実行すると確認できる。

対処法1 Rubyのバージョンを上げる。 parserのv2.2.0.3ではRuby 2.1.xの場合2.1.5だけが警告を出さない。 ref: https://github.com/whitequark/parser/blob/72401442432cb7ae1909b1f980b1dab3c4cad422/lib/parser/current.rb#L31

対処法2 parserとRubocopのバージョンを下げる。 Ruby: 2.1.2 parser: 2.2.0.pre.5 Rubocop: 0.26.1