RubyMine 8 Kusunoki の新機能を試してみる(1)
モバイルアプリサービス部の五十嵐です。 JetBrains製のRuby/Rails用IDE「RubyMine」の次期バージョン「Kusunoki」のEAP(Early Access Program)が公開されています。
EAPとは次期バージョンの評価版のようなもので、新機能を試してもらいフィードバックを得ることでより良い製品にすることを目的としています。 この段階で要望を伝えることができれば、次期バージョンに反映されるかもしれません。
現在アナウンスされている主な新機能は次の通りです。
- Bundlerをsudoで実行するオプションの追加 RubyMine 8 Early Access Program is Now Open
- Reactの対応強化やバグ修正 RubyMine Kusunoki EAP: React Support Improved
- Debugオプションの追加 RubyMine Kusunoki EAP: New Debugging Option
今回はこの中から新たに追加されたDebugオプションを試してみます。
Debug機能の使い方(おさらい)
RubyMineではコードにブレイクポイントを挿入することで、実行中のデバッグやステップ実行を行うことができます。
ここで使用するサンプルは、Deviseを利用したユーザ管理機能を実装しており、Gemはvendor/bundle
にインストールされているものとします。(この記事を読むにはDeviseを知らなくても問題ありません。)
試しに、counfig/routes.rbの2行目にブレイクポイントを設定して、デバッグ実行をしてみます。
そうすると、エディタ上に現在の実行行がライトアップされ、デバッグコンソール上では変数の中身を確認することができます。
この状態でF7(Step Into)を押すと、さらにメソッド内部のコードに進むことができます。
追加されたオプション
追加されたオプションは、Preference -> Build,Execution,Deployment -> Debuggerの中にある「ignore non-project sources」です。 このオプションを有効にすることで、プロジェクトに含まれていないソースコードをデバッグ実行で止まることなく通過してくれるようになります。
例えば、Bundlerで追加したGemのコードまでデバッグ実行で追う必要がない場合には、 Bundlerのインストール先をプロジェクトから除外することでデバッグ実行で止まることなく通過することができます。
特定の場所をプロジェクトから除外するには、Preference -> Project: (Projectの名前) -> Project Structureからディレクトリを選択し、 右クリック -> Excluded で除外することができます。
この状態でデバッグ実行をすると、プロジェクトから除外された場所はステップ実行で止まることなく通過されます。
一点注意として、デバッグ実行にはdebase
とruby-debug-ide
というGemが使われています。
このオプションを有効にするには最新のGemが必要ですが、すでにRubyMineがインストールされている場合、
古いバージョンのGemのままになっていて機能が有効にならない場合があります。
その場合は、Gemをアップデートしてください。
gem update ruby-debug-ide debase
まとめ
追加された「ignore non-project sources」を使うことで、デバッグ実行で見たいところだけが見られるようになりました。 また、見る必要のないソースファイルでタブがいっぱいになってしまうことを防げることも嬉しいです。
これからも注目の機能があればお伝えしていこうと思います!