VSCodeのruby-rubocopでexecutePathがエラーになる

若干ニッチな状況でハマったので備忘録

エラー状況

VSCodeで.rbファイルを開くと、[Warn] execute path is empty! please check ruby.rubocop.executePath configエラーとなり、rubocopが効かない状態になる。

環境

  • Windows 10
  • Ruby 2.3.3(233p222)
  • uru 0.8.4
  • VSCode 1.17.2
    • ruby-rubocop 0.4.0
  • rubocop 0.51.0

  • uruでrubyのバージョンを管理 uru 233p222
  • VSCodeに拡張機能のruby-rubocopをインストール
  • グローバルのgemにrubocopをインストール

原因

ruby-rubocopはruby.rubocop.executePathが空欄の場合、環境変数PATHを参照してrubocopを実行する。1
しかしuruでRubyのバージョンを切り替えている場合、VSCode起動時にはuruでのRubyバージョンが未指定の為、環境変数PATHにrubyのpathが通っていない。

  1. VSCode起動
  2. rubocopが環境変数を参照 ←この時点でpathが通ってない
  3. uruでrubyバージョンを設定
  4. 環境変数にpathが通る

回避方法

環境変数PATHに<Rubyのインストールフォルダ>binを設定することでエラーが解消される。

Rubyをインストールする際、「Rubyの実行ファイルへ環境変数PATHを設定する」チェックをオフにしていたのでハマった。


  1. 通常は<Rubyのインストールフォルダ>binrubocop