デバッガ

より速くなったデバッガ

RubyMineのデバッガはこれまで TracePoint :linew を使って1行1行プログラムの実行をトレースしていました。2019.2ではデバッガがコードのどの部分で実行を停止するかを選択でき、残りのコードをオーバーヘッドから解放するMRI 用ネイティブ拡張を設計しました。結果として、デバッガを飛躍的にスピードアップすることができ、以下の新機能を実装できました。

Debugger speed comparison v2019.1 v2019.2

スマートな Step Into

デバッグセッションにおいて複数のメソッドを含む行がある場合、以前の RubyMine は行の最初のメソッドに Step Into していました。新しく追加された ‘Smart Step Into’ 機能はこの制限を解除し、同じ行にある特定のメソッドまたはブロックの呼び出しに Step Into して調査できるようになりました。

ブロックブレークポイント

新しいバージョンでは、行にブレークポイントを張れるだけではなく、ブロックにも張れるようになりました。ブロックを含む行でブレークポイントをセットするために左のガターをクリックすると、RubyMine は行にブレークポイントを貼りたいのか、ブロックなのか、それとも両方なのかを確認するようになりました。
RubyMine での Ruby や Rails スクリプトのデバッグ方法詳細を学ぶには Debugging in RubyMine をご覧ください。

Ruby 2.7

パターンマッチング

RubyMine 2019.2 はパターンマッチングをサポートしました。パターンマッチングは実験的な機能として Ruby 2.7 の最初のプレビューで導入されました。IDE は新しいシンタックスを定義し、ナビゲーションや使用箇所の検索、オブジェクトのリネームに役に立ちます。Ruby のパターンマッチングに関する詳細はこちらです。

番号指定ブロックパラメータ

RubyMine の新しいバージョンでは番号指定パラメータのシンタックスを認識し、その使用箇所を表示/検索できるようになりました。これは Ruby 2.7 の試験的な機能の1つで、ブロックの変数を定義する代わりに、デフォルトのパラメータとしてパラメータ番号を使ってブロック内の値を割り当てることができます。

Numbered block parameters

Rails 6

Action Mailbox

RubyMine 2019.2 では Rails 6 で搭載された Action Mailbox をサポートしました。IDE はルーティングメソッドやコールバックの自動補完を提案し、それらの実装と使用箇所の間を移動します。

ApplicationMailboxでのrouting 呼び出しやメールボックスでのprocess メソッドの追加を忘れた場合に知らせるため、いくつかのインスペクションも追加しました。後者はクイックフィックスも提供します。
Action Mailbox の使い方詳細は こちらをご覧ください。

Enum サポート

ActiveRecord::Enum に関する適切なコードインサイトサポートを追加しました。このサポートには enum の名前やメソッドに関するコードの自動補完、ナビゲーション、使用箇所の検索を含みます。Rails 6 で導入された enum のネガティブスコープもサポートされています。

YARD

改善された YARD サポート

YARD タグを作成、管理するのに役立つ YARD のサポートを徐々に改善し続けてきました。YARD アノテーションに基づく RubyMine でのコード自動補完がより良くなりました。新しいバージョンでは@overload および @yieldparam タグ用の適切な型アノテーションとインスペクションを追加しました。YARD に関する RubyMine の機能の概要や改善については RubyMine の YARD サポート をご覧ください。

Factory Bot

ファクトリのリネーム

2019.2 ではファクトリ、シーケンス、トレイトをリネーム (Shift+F6) できるようになりました。IDE はそれらの定義を検索し、定義および全ての使用箇所またファクトリ名と一致していればファイル名のリネームも提案します。
また、ファクトリ、シーケンス、トレイトを File Structure ビュー (Cmd/Alt+F7) およびポップアップ (Cmd/Ctrl + F12)にも追加し、それらを安全に削除する機能 (Refactor | Safe Delete) も追加しました。

Rename factories

JavaScript

新しいインテンションアクション

Alt+Enter で表示される 新しい ‘Propagate to destructuring declaration’ インテンションでは、可能な状況であれば別の分解宣言を余分な変数と置換できるようになりました。分解宣言を完全に排除するには、’Replace destructuring with property or index access’ と呼ばれるインテンションアクションを使ってください。

Destructuring intentions

改善されたリネームリファクタリング

JavaScript や TypeScript ファイルにおいてシンボルをリネームする際、IDE は動的な利用箇所も一緒にグループ化するようになりました。デフォルトではそれらをリファクタリングから除外します。このことでリファクタリングはより正確になり、Refactoring Preview ウィンドウで何を正確にリネームする必要があるかをより詳細に制御できます。

Dynamic usages in Refactoring Preview

Vue.js コンポーネントライブラリのより良いサポート

コンポーネントのコード補完および Vuetify、BootstrapVue、Quasar その他の Vue コンポーネントライブラリからのプロパティがより正確になりました。このことは IDE でこれらのライブラリを使って作業できるように適用した 新しいアプローチ によって実現しました。

Vuetify props

重複コードの検索

新しい Duplicate code fragment インスペクション(空気を読む機能)を使うと、リアルタイムにコードをチェックし、エディタにおいて潜在的な重複箇所をすぐにハイライト表示します。JavaScript、TypeScript、CSS、Sass、SCSS、Less でこの機能を利用できます。RubyMine 2019.2 で利用可能な JavaScript の改善詳細は WebStorm 2019.2の新機能 をご覧ください。

Duplicate code inspection

コードスタイル

改善された EditorConfig サポート

2019.2 では、複数の.editorconfig ファイルを追加することで、プロジェクトのさまざまな部分において異なるコードスタイルを維持できるようになりました。長い間サポートされてきたスタンダードな EditorConfig オプションに加え、全ての IDE コードスタイルオプションをカバーするIDE 特有のプロパティを使うことができます。

Edit code style configurations

シェルスクリプト

シェルスクリプトの編集

新しいバージョンではシェルスクリプトサポートを追加しました。コード補完やクイックドキュメンテーション、.sh と .bash ファイルのテキストのリネーム、シェルスクリプトの実行設定が含まれます。IDE は lint のための ShellCheck やコードフォーマットのための shfmt とも連携しています。

Shell script editing

Git

.gitignore での自動補完

.gitignore ファイルにおいて、IDEはファイル名やフォルダ名のコード補完を提案できるようになりました。.gitignore ファイル内の名前を選択し、Cmd または Ctrl を押下しながらクリックすることでプロジェクトビューのファイルやフォルダにジャンプできます。また、Version Control ウィンドウに表示された Unversioned files グループについて、Local Changes タブで右クリックし、Add to .gitignore メニューを選択することで、該当のファイルをすばやく.gitignore に追加できます。

.gitignore autocompletion

データベースツール

Full-text Search でデータを検索

正しいロケーションを知らなくても、データベースからデータを探すことができるようになりました。検索したいデータソースで右クリックし Full-text Search メニューを選択もしくは Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F を押下してください。クエリの結果はフィルタリングされ、データが見つかったた文字列のみが表示されます。

RubyMine 2019.2 で利用できる他のデータベースの改善についてはwhat’s new in DataGrip をご覧ください。

Improvements in Database tools – New Sources

そのほかの改善:

  • 標準 gem サポート
  • Action Text サポート
  • Cucumber 4 サポート
  • Version Control ツールウィンドウのUIの改善