Rails アプリケーションのデバッグを便利にする better_errors ですが、エラー発生時に該当ファイルを自分が使っているエディタで開く方法はどうやるのだろうと疑問に思ったので、調べてみました。
前提環境
- Mac OSX 10.13.6
- ruby 2.4.3
- Rails 5.2.1
- better_errors 2.5.0
- binding_of_caller 0.7.2
- Google Chrome Version 69.0.3497.100
やり方
簡単で推奨されているやり方は、利用しているPCの環境変数 EDITOR
を設定するやり方でしたので、こちらを紹介します。
他のやり方は BetterErrors/better_errors Wiki · Link to your editor に書かれていますのでご参照ください。
例えば VSCode を better_errors で起動したい場合は、環境変数 EDITOR
を下記の通り指定します。(コマンドラインでVSCodeを起動できる前提)
export EDITOR=code
設定した状態で Rails サーバを起動し、適当にエラーを発生させて better_errors の画面を開きます。
右側のソースコードが表示されているペインにあるファイル名をクリックすると、VSCode を起動するか聞かれるので、そのまま起動します。
VSCode で該当ファイルを起動できました。
ちなみにファイルパスのリンクは vscode://file/xxx
のようなフォーマットになっています。
対応しているエディタについて
better_errors の Gem バージョンによって、対応しているエディタが違うので注意してください!
https://github.com/BetterErrors/better_errors/releases を調べると下記のような感じでした。
エディタ | 対応バージョン | 環境変数設定 | 関連PR、コミット |
---|---|---|---|
Atom | >= 2.5.0 | export EDITOR="atom" |
Add native support for linking to VSCode #406 |
Visual Studio Code | >= 2.5.0 | export EDITOR="code" |
Add native support for linking to Atom #356 |
IntelliJ IDEA | >= 2.4.0 | export EDITOR="idea" |
IDEA and Rubymine editor url capability #319 |
RubyMine | >= 2.4.0 | export EDITOR="rubymine" |
IDEA and Rubymine editor url capability #319 |
Emacs | >= 0.7.0 | export EDITOR="emacs" |
Support emacs in open file in editor link #129 |
MacVIM | >= 0.3.0 | export EDITOR="vim" |
support handy shortenings for editors |
Sublime Text | >= 0.3.0 | export EDITOR="subl -w" |
support handy shortenings for editors |
TextMate | >= 0.3.0 | export EDITOR="mate -w" |
support handy shortenings for editors |
EDITOR
を設定していないと
デフォルトだと、ファイルパスをには txmt://open?url=file://...
というフォーマットのパスが設定されます。
Mac だと、こちらに対応したエディタは TextMate になるので、こちらをダウンロードして起動させる必要があります。
終わりに
エラーが発生した際、関連したファイルを好きなエディタで開けるのは便利だなと思いました。少しずつ使っていこうと思います。