RubyMine 2022.1 の新機能

新しい Ruby および RBS 言語機能のサポート、新しいインスペクションとクイックフィックス、UX の改善など。

Ruby

新しい言語機能のサポート

RubyMine 2022.1 では、Ruby 3.1 で導入された Ruby と RBS の新機能のサポートを開始しています。 これには、制限付き (bounded) ジェネリクス、RBS コレクション、匿名ブロック引数の転送、ジェネリックな型エイリアスなどのサポートが含まれます。

新しいインスペクション

このバージョンでは、RBS に含まれる型変数の使用箇所をチェックする新しいインスペクションがいくつか追加されています。 報告対象は、型シグネチャーの欠落、無効な型引数の使用箇所、競合する型変数の変性、不正な型引数の変性などです。

クイックドキュメントのオーバーロード

RubyMine がクイックドキュメント検索Ctrl+Q)にオーバーロードを表示できるようになりました。 メソッドでクイックドキュメントを呼び出すと、現在一致しているオーバーロードが表示されます。

RBS に基づく Ruby メソッドのインレイヒント

RubyMine が対応する RBS ファイルの型シグネチャーに基づいて Ruby コードのインレイヒントを表示できるようになりました。 ヒントをクリックすると、対応する型シグネチャーに移動します。

型シグネチャーの不一致に対するクイックフィックス

RubyMine は、必要な RBS の型と一致していない Ruby コード内の推論される型を報告します。 バージョン 2022.1 より、このような場合に対応する RBS ファイルに素早く移動できるようになりました。

YARD @overload タグの自動補完の改善

RubyMine は @overload タグを理解しているため、パラメーター情報を表示する際に宣言済みのすべてのオーバーロードを提案します。 このバージョンより、@overload タグの自動補完によって、記述しているメソッドの名前が追加されるようになりました。

ユーザーエクスペリエンス

New Project(新規プロジェクト)ダイアログの改良

New Project(新規プロジェクト)ダイアログのインターフェースを改良して新規プロジェクト作成プロセスを合理化し、新規ユーザーと経験豊富なユーザーのどちらにも対応できるようにしました。

新しい Rails 7 の generate オプションのサポート

このビルドでは、Rails 7 で追加されたプロジェクト生成用の新しい JavaScript フレームワークオプションがサポートされています。 New Project(新規プロジェクト)ダイアログを使って新規プロジェクトを生成する際に、これらのオプションを選択できるようになりました。

新しい Notifications(通知)ツールウィンドウ

Event Log(イベントログ)を新しい Notifications(通知)ツールウィンドウに置き換えました。 重要な通知を見逃すことのないように、IDE からの通知の概要をより分かりやすく管理できるようになります。 ツールウィンドウに表示されるすべての通知は、Suggestions(提案)と Timeline(タイムライン)の 2 つのカテゴリに分類されます。

Open File or Project(ファイルまたはプロジェクトを開く)ダイアログの更新

Open File or Project(ファイルまたはプロジェクトを開く)ダイアログからツリーを消したため、開く際に IDE がすべての中間ディレクトリノードを計算しなくなりました。 この変更により、パスの計算が止まることで発生する長時間のハングが回避されるため、IDE の全体的なパフォーマンスが向上しています。

デバッガーでタブのラベルを非表示に変更

Debugger(デバッガー)ツールウィンドウのスペースを最大限に使用できるよう、デフォルトでタブのラベルを非表示にしました。

Structural Search and Replace(構造検索&置換)ダイアログの更新

Structural Search and Replace(構造検索&置換)ダイアログを改良し、全テンプレートをリスト表示するようにしました。これにより、テンプレート間をより簡単に移動できるようになりました。

エディター

可視性修飾子をインデントさせる新しい整形オプション

可視性修飾子(publicprotectedprivate)とその中のコードに対してインデントを設定できるようになりました。 この設定は、Preferences(環境設定)/Settings(設定)| Editor(エディター)| Code Style(コードスタイル)| Ruby | Tabs and Indents(タブとインデント)にある Indent visibility modifiers(可視性修飾子のインデント)チェックボックスで切り替えることができます。

LightEdit モードでのコードの整形

LightEdit モードでは、プロジェクト全体の作成やロードを行わずにファイルを編集することができます。 その LightEdit モードでコードを整形できるようになりました。 これを行うには、Ctrl+Alt+L を押すか、メインメニューの Code(コード)| Reformat Code(コードの整形)に移動します。

Markdown ファイルからのコマンド実行

Markdown ファイルのシェルコマンドの横に新しいガターアイコンを追加しました。 このアイコンをクリックすると、RubyMine の組み込みターミナルでコマンドを実行できます。 この機能は README ファイルなど、シェルコマンドが含まれていることの多いマニュアルを使用する際に役立ちます。

Markdown のコードスニペットのコピー

新しい Copy code snippet(コードスニペットのコピー)アクションを使用して、ブロックの内容をクリップボードにコピーできるようになりました。

Markdown エディターツールバーのアクションを拡充

Markdown ファイルの編集時にテキストを選択すると、フローティングツールバーに新しいオプションが表示されます。 このツールバーを使用して、ヘッダーのスタイルを素早く選択したり、リストを作成したりできるようになりました。

テスト

RSpec の共有コンテキストとサンプルへの移動

スペックから共有コンテキストとその中で使用されているサンプルに移動できるようになりました。 これを行うには、共有リソースを追加する include_contextinclude_examplesit_behaves_like、または it_should_behave_like ステートメントを Ctrl+クリックします。

Docker

新しい Services(サービス)ビュー UI

Services(サービス)ツールウィンドウの Docker UI を大幅に改良しました。 この改良は、コンテナー、イメージ、ネットワーク、およびボリュームに実装されています。

Docker Registry V2 のサポート

Docker 1.6 以上で使用できるように、Docker Registry HTTP API V2 のサポートを開始しました。 Docker V2 の単純なレジストリかパスワードで保護されたレジストリを作成し、イメージの閲覧、プッシュ、プルといった頻繁に使用されるすべてのアクションを実行できます。

バージョン管理

Annotate with Git Blame(Git Blame で注釈を付ける)の更新

Annotate with Git Blame(Git Blame で注釈を付ける)機能を改善し、取り込まれた変更の調査をより簡単に行えるようにしました。 注釈にマウスポインタ―を合わせると、RubyMine がエディター内で行の差分をハイライト表示します。その注釈をクリックすると、Git Log ツールウィンドウを開くことができます。

Git File History(Git ファイル履歴): インデックスを使用しない新しい UI

Git File History(Git ファイル履歴)ツールウィンドウの新しい UI は、インデックス作成プロセスとは無関係になりました。 新しいインターフェースでは、ログのインデックス作成がオフの場合でもデータが表示されます。

ウェブとフレームワーク

Next.js サポートの改善

React が組み込みでサポートされているため、Next.js プロジェクトではすでにすべての重要な機能が動作するようになっています。 RubyMine 2022.1 では、ページなどのフレームワーク固有の機能に対するサポートを新たに開始しています。 IDE は Link コンポーネントの href 属性だけでなく、form などのその他のタグで使用されるパスも解決します。 コード補完、ナビゲーション、およびリファクタリングも動作するようになりました。

Volta のサポート

このリリースでは、JavaSciprt ツールマネージャーである Volta と適切に統合できるようになっています。 RubyMine は、Volta を使用してインストールされた Yarn と npm を自動的に認識します。

その他の改善

  • Log(ログ)タブ内での移動操作を支援するため、スクリーンリーダーがブランチのツリーの名前と説明を読み取れるようにしました。
  • macOS ユーザー向けにアクセシビリティのサポートが改善されました。 リスト要素を不必要に何度も繰り返していた VoiceOver 関連の問題を解決しました。 また、VoiceOver がコンボボックスリストを読み取れるようになりました。外部ディスプレイを使用する際に VoiceOver カーソルが誤った位置に配置される問題も修正しました。
  • 変更案をより簡単に取り扱えるようになりました。 IDE 内にローカルで変更を適用またはコミットする機能を追加しました。
  • データベースを操作する際に、複数のテーブルを選択してテーブルを別のスキーマコピーできるようになりました。
  • データベースクエリを操作するための Convert To Subquery(サブクエリに変換)という新しいインテンションを導入しました。 今後はクエリを選択しなくても Alt+Enter | Convert To Subquery(サブクエリに変換)を押すだけで操作が完了します。
  • RBS スーパークラスの解決ロジックのサポートを開始し、Ruby との整合性を確保するように更新されました(RUBY-29164)。
  • Rails 3 のサポートを廃止しました。
  • extend キーワードはシングルトンクラスにメソッドを追加し、型変数にアクセス可能であるべきではありません。 extend で型変数を使用しようとすると、RubyMine がエラーを表示するようになりました(RUBY-29099)。
  • Git ツールウィンドウの Commit Details(コミットの詳細)ペインを更新しました。 このペインに GPG 署名とビルドステータスに関する情報が表示されるようになりました。 従来、このデータは Git ログの列としてのみ表示されていました。
  • Yarn と pnpm をインストールせずに使用できるようにする Corepack という実験的な Node.js ツールのサポートを開始しました。 お試しになりたい場合は、組み込みターミナルで corepack enable を必ず実行してください。この機能はデフォルトではオンになっていません。
  • Tailwind CSS 補完が FreeMaker テンプレートで動作するようになりました。
  • HTML4 と XHTML ファイルテンプレートを取り除きました。これらのテンプレートはあまり使用されていないためです。
  • Webpack コーディング支援が webpack.config.js ファイル内の ES モジュールを処理できるようになりました。
  • コマンドラインフォーマッターで、プロジェクトファイルを検証するドライランモードがサポートされました。
  • 分割したタブを等幅に構成できるようになりました。 この構成を行うには、Preferences(環境設定)/ Settings(設定)| Advanced Settings(高度な設定)の新しい Equalize proportions in nested splits(ネストした分割の比率を揃える)オプションをオンにしてください。
  • UML ダイアグラムを yEd の .graphml、JGraph の .drawio、Graphviz の .dot、Graphviz の位置情報付きの .dot、Mermaid の .md、Plantuml、および IDEA の .uml ファイルとしてエクスポートすることが可能になり、サードパーティツールとの互換性が確保されました。 エクスポートするには、右クリックで開くコンテキストメニューから対応するアクションを使用してください。