Ruby および RBS での作業に便利な新しい機能や改善されたコード補完、検索機能およびリファクタリング、エディターの改善、VCS のサポート、Space、Code With Me などを提供。
Go to declaration、Find usages、Rename リファクタリングのすべてが RBS を使用するプロジェクトでより正確に機能するようになりました。 RubyMine は、すべての潜在的な使用を表示する代わりに、.rbs
の宣言を使ってプロジェクトエンティティ間の関連性を定義します。
新しいナビゲーションアクションを使用すれば、.rb
ファイルと .rbs
ファイルの間を移動できるようになりました。 クラスやメソッドなど、プロジェクトのエンティティを右クリックし、Go to / Type Signature | Associated Declaration を選択します。 ショートカット Ctrl+Alt+Home も使用できます。
RubyMine は RBS シグネチャーを使って Ruby 要素の型を判断し、より関連性の高いコード補完を提供します。 RubyMine は、型変数やブロックパラメーター、タプル型、プロシージャ型など、RBS の既存のエンティティの多くをサポートするようになりました。
コードの中に RBS の関連する型シグネチャが無い箇所がある場合、RubyMine は引き続き独自の型推論を使用します。
RubyMine は .rbs
ファイルに保存されている情報にアクセスできるため、Ruby コードの潜在的なエラーの有無をより深く確認できます。 RBS コードと Ruby コードの間にミスマッチがある場合は、RubyMine に型エラーが表示されます。 本バージョンには .rbs
ファイル自体のインスペクションに加え、不正なコードや未解決参照などを対象としたインスペクションも新たに追加されました。 RubyMine は、Run anything を用いた Steep コマンドの実行にも対応しています。
本バージョンには、シンタックスハイライトやフォーマット、自動インデント、コードの折りたたみ、構造ビュー、Ctrl+/ ショートカットを使ったコメントなど、RBS コードを読みやすくするのに欠かせない機能がすべて搭載されています。
RubyMine で実行可能なすべてのインスペクションとクイックフィックスの説明を更新しました。 新しくなった説明では、インスペクションが提案する変更内容とその理由が共に記載されています。 一部には使用例を表示するものもあります。
RubyMine は、変更内容が保存されるときに特定のアクション (コードの再フォーマットなど) を実行する機能をサポートするようになりました。 保存時にトリガーされるすべてのアクションは、Preferences / Settings | Tools | Actions on Save から確認できます。
スクラッチファイルには、メモを記述したり、プロジェクトのコンテキスト外のコードをドラフトしたりできます。 今回のリリースより、任意のコードを選択し、Alt+Enter をクリックしてから Create new scratch file from the selection を選択すると、同コードが含まれた新しいスクラッチファイルをすばやく作成できるようになりました。
Local History(ローカル履歴)では、バージョン管理の内容に関係なく、プロジェクトに加えられたすべての変更内容を常時追跡できます。 本リリースには、ローカル履歴に検索機能を追加しました。 探している変更内容のキーワードをいくつか覚えていれば、それを使って簡単に検索を実行できます。
プロジェクトのコピーライト表記にプロジェクトの作成年度と最新バージョンの年度を併記できるようになりました。 両方の日付が記載された最新のテンプレートは、Preferences/Settings | Editor | Copyright | Copyright profile で確認できます。
Preferences | Settings – Advanced Settings に新しいノードを追加しました。 IDE ツールによって便利にグループ化された特定のユースケースに使用できるオプションが用意されています。 プロジェクトビュー、起動、ターミナルなどに関連する設定が含まれます。
HTML、CSS、および JavaScript のファイルに加えた変更内容を保存すると、そのタイミングで対応するページがブラウザーによって自動的にリロードされるようになりました。
IDE のメインウィンドウや別のウィンドウ内で、ツールウィンドウを任意の場所にドラッグアンドドロップできるようになりました。
Preferences/Settings で開いているセクションの間を往復できるようになりました。 ウィンドウの右上隅にある矢印を使って移動します。
プレビュータブは、デバッグ中に開かれるファイルにも使用できるようになりました。該当するファイルは、1 つのプレビュータブの中に 1 つずつ表示されます。 この機能を有効化するには、Preferences/Settings | Editor | General | Editor Tabs | Opening Policy にある Enable preview tab のチェックボックスにチェックを入れます。
ビルトインターミナルに 2 つの新しいオプション (カーソルの形状を選択する機能および Use Option as Meta key のサポート) を追加しました。 これらは、Preferences/ Settings | Tools | Terminal からアクセスできます。
コミットする前に実行できるアクションを新たに 3 つ追加しました (Run Tests、Analyze code、Cleanup)。 すべてのプリコミットチェックの進捗と結果は、Commit エリアに表示されます。作業の邪魔となるようなモーダルウィンドウが別に表示されることはありません。
コミットは、GPG キーを使って署名することによりセキュリティ保護できるようになりました。 この機能は、Preferences / Settings | Version Control | Git から有効化できます。 GPG キーを初めて使用する場合は、 設定する必要があります。 既存の設定済みの GPG キーを使用する場合は、ドロップダウンリストから選択できます。
RubyMine では、初期ファイルと変更後のファイルの違いがエディターに表示されるようになりました。 Show Diff(差分を表示)アクションをどのように呼び出しても、IDE のデフォルト機能として、差分がエディターに開かれます。 別のウィンドウで変更内容を追跡したい場合は、任意のファイルをエディターからドラッグできます。 そうした場合は、その操作が IDE に記録されるため、それ以降の diff は別のウィンドウに開かれるようになります。
コミットの一覧を見るだけでジョブの進捗をすばやく追跡できるよう、Git ツールウィンドウの Log タブに Space ジョブステータスのアイコンを追加しました。 アイコンをクリックすると、ポップアップがそのジョブのオートメーションに関する情報と一緒に表示されます。
このステータス情報をオン・オフするには、Log にある目のアイコンをクリックし、Show Columns | Space Automation を選択します。
RubyMine から直接 Space レビューの中でチームメイトをメンションすることにより、すばやく最新情報を知らせることができるようになりました。 タイムラインやコードのコメントに「@」とチームメイトの名前を入力し、表示される一覧から名前を選択します。
選択したコードレビューに関連するブランチを表示できるようになりました。 現在の課題に取り組んでいる間に実行されたコミットを含むブランチの一覧が Details タブに表示されるようになりました。
Code With Me を使用する際には、ある問題について説明したり、プロジェクトの異なる部分をチームメイトに見せたりする必要があるかもしれません。 それをできるようにするのが Force Others to Follow You モードです。 このモードで作業を行うユーザーをフォローする他のユーザーは、作業を行っているユーザーが使用しているコード補完候補を見ることができます。
require()
の自動インポート ES6 シンボルを補完する際に、インポートステートメントが欠落していれば、IDE が追加してくれることはご存じですか? 同じ機能を CommonJS モジュールでも使用できるようになりました。require
インポートがコード補完時に挿入されます。
useState
の名前と関数は、RubyMine が名前を変更できるようになり、わざわざ React hook で 1 つずつリファクタリングする必要がなくなりました。 これを試すには、ステートの値にキャレットを配置し、Shift+F6 で Rename リファクタリングを呼び出すか、右クリックで表示されるコンテキストメニューから Refactor | Rename へと移動します。
.js
の JSDoc コメント内で使用される TypeScript の構文を適切にサポートするようになりました。 classnames
ライブラリと clsx
ライブラリをサポートするようになったため、CSS のクラス名を効率よく取り扱えるようになりました。 className
属性の値が自動補完されるようになります。