flycheck を bundle exec rubocop によって行いたい

投稿者: Anonymous

emacs の flycheck には、 ruby-rubocop が指定できる様子です。

例: https://qiita.com/aKenjiKato/items/9ff1a153691e947113bb

しかし、上記記事は、 rubocop をグローバルにインストールするのが前提になっています。

普段の rubocop 実行は、プロジェクトごとにローカルインストールして、 bundle exec rubocop を行っているので、 flycheck でもこれを行ってほしいと考えました。

質問:

  • flycheck を bundle exec rubocop によって行うには、どのような設定を行ったらよいですか?

解決

プロジェクトのトップレベルに.dir-locals.elファイルを作って下のコードを貼ってください。

((ruby-mode . ((eval . (setq-local flycheck-command-wrapper-function
                                   (lambda (command)
                                     (append '("bundle" "exec") command)))))))

@suzukis さんが貼ってくれたリンク先の回答と同じようなコードですが、setq-localという関数を使いカレントバッファにのみ適用されるようにしたので、プロジェクト外のrubyソースコードに”bundle exec”をしない安全な設定になっています。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *