デバッガ
より速くなったデバッガ
RubyMineのデバッガはこれまで TracePoint :linew
を使って1行1行プログラムの実行をトレースしていました。2019.2ではデバッガがコードのどの部分で実行を停止するかを選択でき、残りのコードをオーバーヘッドから解放するMRI 用ネイティブ拡張を設計しました。結果として、デバッガを飛躍的にスピードアップすることができ、以下の新機能を実装できました。
スマートな 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つで、ブロックの変数を定義する代わりに、デフォルトのパラメータとしてパラメータ番号を使ってブロック内の値を割り当てることができます。
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) も追加しました。
JavaScript
新しいインテンションアクション
Alt+Enter で表示される 新しい ‘Propagate to destructuring declaration’ インテンションでは、可能な状況であれば別の分解宣言を余分な変数と置換できるようになりました。分解宣言を完全に排除するには、’Replace destructuring with property or index access’ と呼ばれるインテンションアクションを使ってください。
改善されたリネームリファクタリング
JavaScript や TypeScript ファイルにおいてシンボルをリネームする際、IDE は動的な利用箇所も一緒にグループ化するようになりました。デフォルトではそれらをリファクタリングから除外します。このことでリファクタリングはより正確になり、Refactoring Preview ウィンドウで何を正確にリネームする必要があるかをより詳細に制御できます。
Vue.js コンポーネントライブラリのより良いサポート
コンポーネントのコード補完および Vuetify、BootstrapVue、Quasar その他の Vue コンポーネントライブラリからのプロパティがより正確になりました。このことは IDE でこれらのライブラリを使って作業できるように適用した 新しいアプローチ によって実現しました。
重複コードの検索
新しい Duplicate code fragment インスペクション(空気を読む機能)を使うと、リアルタイムにコードをチェックし、エディタにおいて潜在的な重複箇所をすぐにハイライト表示します。JavaScript、TypeScript、CSS、Sass、SCSS、Less でこの機能を利用できます。RubyMine 2019.2 で利用可能な JavaScript の改善詳細は WebStorm 2019.2の新機能 をご覧ください。
コードスタイル
改善された EditorConfig サポート
2019.2 では、複数の.editorconfig
ファイルを追加することで、プロジェクトのさまざまな部分において異なるコードスタイルを維持できるようになりました。長い間サポートされてきたスタンダードな EditorConfig オプションに加え、全ての IDE コードスタイルオプションをカバーするIDE 特有のプロパティを使うことができます。
シェルスクリプト
シェルスクリプトの編集
新しいバージョンではシェルスクリプトサポートを追加しました。コード補完やクイックドキュメンテーション、.sh
と .bash
ファイルのテキストのリネーム、シェルスクリプトの実行設定が含まれます。IDE は lint のための ShellCheck やコードフォーマットのための shfmt とも連携しています。
Git
.gitignore での自動補完
.gitignore
ファイルにおいて、IDEはファイル名やフォルダ名のコード補完を提案できるようになりました。.gitignore ファイル内の名前を選択し、Cmd または Ctrl を押下しながらクリックすることでプロジェクトビューのファイルやフォルダにジャンプできます。また、Version Control ウィンドウに表示された Unversioned files グループについて、Local Changes タブで右クリックし、Add to .gitignore メニューを選択することで、該当のファイルをすばやく.gitignore
に追加できます。
データベースツール
Full-text Search でデータを検索
正しいロケーションを知らなくても、データベースからデータを探すことができるようになりました。検索したいデータソースで右クリックし Full-text Search メニューを選択もしくは Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F を押下してください。クエリの結果はフィルタリングされ、データが見つかったた文字列のみが表示されます。
RubyMine 2019.2 で利用できる他のデータベースの改善についてはwhat’s new in DataGrip をご覧ください。
そのほかの改善:
- 標準 gem サポート
- Action Text サポート
- Cucumber 4 サポート
- Version Control ツールウィンドウのUIの改善