Rider 2024.1 の新機能

Rider 2024.1 では、アプリケーションのパフォーマンスを監視して重要なメトリクスを収集する新しい機能、コード内の現在位置をより適切に把握してコード内をより素早く移動するための行固定表示が導入され、プロジェクト構成をより素早く簡単に行えるように New Project(新規プロジェクト)ダイアログが更新されています。 この更新では、コレクションビジュアライザーを提供し、2 つのブレークポイント間のステップ実行時間を表示することでデバッグを支援しています。 ゲーム開発者は人気の Unity アセットである Odin Inspector の新機能一式を活用し、Unreal Engine の Slate UI フレームワークのサポートを受けることができます。

主な更新内容

Monitoring(監視)ツールウィンドウ

新しい Monitoring(監視)ツールウィンドウ

Rider 2024.1 では、実行またはデバッグ中に .NET アプリケーションのパフォーマンスをバックグラウンドで監視して重要なメトリクスを収集する Monitoring(監視)ツールウィンドウが導入されました。

詳細

行の固定表示

大きなファイルでの作業と新しいコードベースの参照を簡単にするため、エディターで行を固定表示できるようにしました。 この機能を使用すると、クラスやメソッドの開始部などの重要な構造要素をエディターの上部にピン留めした状態でスクロールできます。 そうすれば常に表示範囲が固定され、ピン留めされた行の 1 つをクリックして迅速にコード内を移動できます。

コレクションビジュアライザー

デバッグ中に配列、リスト、辞書、およびその他の列挙可能な型などのコレクションを検査してプログラムのデータの状態をより深く理解し、データ処理に関連する潜在的な問題を特定できます。

詳細情報

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

New Project(新規プロジェクト)ダイアログを全面的に改良し、新しいプロジェクトを構成しやすくしました。 このダイアログは .NET 固有のプロジェクト構成とカスタムテンプレートパラメーターを包括的にサポートしているため、ターゲット SDK と適切な MAUI ワークロードをダイアログから直接インストールできるようになっています。

詳細

UX/UI

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

New Project(新規プロジェクト)ダイアログを全面的に改良し、新規プロジェクトの構成操作の分かりにくさを軽減しました。 更新後のダイアログには以下の機能があります。

  • .NET 固有のすべてのプロジェクト構成オプションのサポート(Blazor WASM アプリケーション作成中のプログレッシブウェブアプリのチェックマークなど)。
  • カスタムプロジェクトテンプレートでのパラメーターのサポート。
  • ダイアログからソリューションのターゲット SDK を直接インストールする機能。
  • ダイアログから適切な MAUI ワークロードをインストールする機能。

IDE 全体の表示を縮小するオプション

これまでは IDE 全体を拡大・縮小し、それと同時にすべての UI 要素のサイズを変更できていましたが、 その倍率は 100~200% の範囲でしか変更できませんでした。 今回は IDE の表示倍率を 70% まで減らす機能が追加されたため、あらゆる要素のサイズに関して柔軟性が向上しました。

Terminal(ターミナル)ツールウィンドウの改良

このビルドでは Terminal(ターミナル)ツールウィンドウを全面的に見直し、ターミナルを使用するタスクの利便性と単純性を高めるための視覚的および機能的な強化を行いました。 このアップデートではツールを視覚的に改善し、機能セットを拡充しています。

新しいターミナルは、Settings(設定)/Preferences(環境設定)| Tools(ツール)| Terminal(ターミナル)| Enable New Terminal(新しいターミナルの有効化)で有効にできます。

改良されたターミナルの詳細については、IntelliJ IDEA のこちらのブログ記事をご覧ください。

コード解析

C# のサポート

コレクション式の変換の追加

空の配列や ImmutableArray の宣言や初期化など、ソースコード内で C# 12 のコレクション式への変換が提案されるコード構造がさらに増えました。

Collection was modified(コレクションが変更されました)の解析

新しい Possible 'System.InvalidOperationException: Collection was modified'(可能性のある 'System.InvalidOperationException: コレクションが変更されました')インスペクションが追加されました。この変更により実行時に例外が発生する可能性があるため、このインスペクションは foreach ループ内の反復処理中にコレクションが変更された際に警告を発します。 この解析ではコレクションの変更後にループの終了がある場合が認識され、その場合には警告が発生しません。 このインスペクションには、この問題を即座に解決するための対応するクイックフィックスがあります。

Generate(生成)| Formatting Members(書式設定メンバー) の更新

Generate(生成)| Formatting Members(書式設定メンバー)を使用すると、ToString() メソッドをオーバーライドして型に応じて意味のある文字列を返すボイラープレートを生成できます。 バージョン 2024.1 より、この機能で ISpanFormattableIUtf8SpanFormattableIFormattable などのより多くの型がサポートされるようになりました。

async メソッドでの破棄可能なリソースのサポートの強化

  • [MustDisposeResource] アノテーションの改善: C# コード解析によって async メソッドで返されたリソース(Task<IDisposable>ValueTask<IDisposable> でラップされたリソースを含む)が正しく破棄されるようになり、タスク自体が誤って破棄されることがなくなりました。
  • Task-like の戻り値: バージョン 2024.1 では Task-like の戻り値が正しく解析されるようになったため、待機されているリソースの破棄がチェックされ、.ConfigureAwait(...).AsTask()、または .Result を介して取得されたリソースも含まれるようになりました。

Change Signature(シグネチャーの変更)リファクタリングの更新

Change Signature(シグネチャーの変更)リファクタリングに以下の改善が行われました。

  • リファクタリングが Deconstruct メソッドをサポートするようになりました。 パラメーターの追加、除去、再配置、および名前の変更を行うことができます。また、これらの変更はメソッドの宣言とその使用箇所の両方に反映されます。
  • 型パラメーターでコード補完を使用できるようになりました。 そのため、たとえば List<> の型を指定する必要がある場合、コード補完を使用して int などの必要な型を簡単に選択できます。
  • パラメーターを追加または更新する際に型の名前空間が自動的に短縮されるようになりました。 これにより、リファクタリングを適用した後のコードをクリーンで簡潔に維持できます。 たとえば、Change Signature(シグネチャーの変更)ダイアログで System.Collections.Generic.List<System.Int16> 型を指定した場合、生成されるコードでは自動的に List<short> に短縮されます。
  • in および ref readonly 修飾子や record 型など、より多くの最新バージョンの C# の機能がリファクタリングでサポートされるようになりました。

Make Static(static にする)リファクタリングの更新

このリリースでは、Make Static(static にする)リファクタリングでプライマリコンストラクターのパラメーターがサポートされています。 このパラメーターは Introduce parameters(パラメーターの導入)リストに表示され、区別しやすいように個別のアイコンが使用されています。 このリファクタリングはローカル関数にも使用できます。

ソリューション全体解析の高リソース使用率モード

JetBrains は CPU 並列処理をより効率的に使用して解析時間を大幅に短縮するソリューション全体解析の高リソース使用率モードを積極的に改良しています。 コード解析機能のメモリ割り当てプロファイルを改善し、ガベージコレクションにかかる時間を最小限に抑えました。 この改良は現在も進行中ですが、このモードを有効化して使用した感想をフィードバックしていただければ幸いです。

パフォーマンス

  • コード内の要素名をより迅速かつ効率よく変更できるようになりました。 この変更は Rider の他の基本コンポーネントにも反映されており、Find Usages(使用箇所の検索)などの複数の機能でパフォーマンスが改善されています。
  • 静的メンバーに対する Move to Another Type(別の型に移動)リファクタリングのパフォーマンスが大幅に改善され、大きなクラスを処理できるようになりました。

protobuf-net ライブラリのサポート

コード解析で protobuf-net ライブラリの ProtoContract 属性と ImplicitFields 列挙型がサポートされるようになりました。 どちらもシリアル化に暗黙的に使用されるメンバーを示すのに使用できます。 その場合、このようなメンバーに unused members(未使用のメンバー)警告が表示されることはありません。

F# のサポート

オブジェクト式で欠落メンバー用の新しいクイックフィックス、コード補完、および Generate(生成)リファクタリングを介してオーバーライドを生成できるようになりました。

共用体型の使用箇所を検索する際に共用体型のケースも確認できるようになりました。 このため、型インスタンスがどのように作成されてパターンマッチングされているかを確認しやすくなっています。

レコード型のインスタンスとクラスおよびインターフェースのオブジェクト式を作成する new 後置テンプレートを追加しました。

F# の行固定表示機能がサポートされるようになり、より長い型や関数を操作する際にコンテキストをより簡単に確認できるようになりました。

F# をサポートする新しいクイックフィックスとコンテキストアクションがさらに追加されています。 これらの変更やその他の変更の詳細については、GitHub のリリースノート全文をお読みください。

スマートスぺルチェッカー

ReSharper に続き、Rider のスペルおよび文法チェッカーもアップグレードされました。 新しいスペルチェッカーは 20 言語以上に対応しており、Rider(C#、C++、VB.NET)がサポートするプログラミング言語、マークアップ言語(HTML、XML、XAML)、およびコメント内にある自然言語の誤りを検出します。

.NET のデバッグ

コレクションビジュアライザー

Rider 2024.1 のコレクションビジュアライザーにはコレクション(配列、リスト、辞書、およびその他の列挙可能な型)のグラフィック表現が導入されており、要素の展開と折りたたみ、個別の値の表示、およびデータ構造の簡単なナビゲーションが可能になっています。 デバッグ中のプログラムのデータの状態を把握したり、コレクション、操作、またはデータ処理に関連する問題を診断したりするのに役立ちます。

ステップ実行時間

デバッグ時にはデバッガーが 2 つのブレークポイント間のコードを実行するのにかかる時間を評価できると非常に役立ちます。 ステップ実行時間が長すぎる場合は、コードにパフォーマンスの問題が存在する可能性があります。 Rider でアプリケーションをデバッグする際、最後のブレークポイントから現在のブレークポイントまでの経過時間を示すインラインヒントが表示されるようになりました。

インラインブレークポイント

インラインブレークポイント

このアップデート以降の Rider では、単一コード行に複数のステートメントが存在する場合に複数のブレークポイントを設定できるようになりました。 ブレークポイントは関連するインラインヒントを使うか、ショートカットキー(Ctrl + F8)によって設定できます。

Run to cursor(カーソル位置まで実行)インレイオプションの改良

2024.1 リリースでは、Run to cursor(カーソル位置まで実行)オプションの動作を IntelliJ IDEA での動作に合わせました。 デバッグ中に新しい Run to Cursor(カーソル位置まで実行)インレイオプションを使うと、特定のコード行まで素早く移動できます。 プログラムが一時停止したら、実行を続けたいコード行にマウスポインターを合わせます。 その後、Run to Cursor(カーソル位置まで実行)ポップアップを利用してカーソル位置の行に到達するまでのコードを実行できます。

Blazor WASM のホットリロード

Blazor WebAssembly(WASM)アプリケーションの実行とデバッグ中にホットリロードを使用できるようになりました。 ホットリロードは .cs.razor、および .css ファイル(スコープ付きの .razor.css ファイルも含む)で動作します。

この機能はデフォルトで有効になっています。 Settings(設定)/Preferences(環境設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Hot Reload(ホットリロード)で構成可能です。

.NET プロセスダンプのサポート

デバッグを行う際、プロセスダンプは非常に重要です。問題を簡単に再現できない場合でも、プロセスダンプを使用してエラー発生時のプログラムの状態を調査できるためです。 従来の Rider で処理できるのは C++ コアダンプだけでした。 今回のリリースでは、IDE が .NET プロセスのダンプもインポートできるようになっています。

プロセスダンプは Run(実行)| Debug Core Dump(コアダンプのデバッグ)に移動するか、ダンプファイルをエディターにドラッグしてドロップするとインポートできます。

AI Assistant

Explain with AI(AI で説明)

失敗したユニットテスト、失敗したビルド、またはデバッグセッションでスローされた例外またはエラーメッセージのすぐ隣に新しい Explain with AI(AI で説明)ボタンを追加しました。

Rename with AI(AI で名前の変更)

ローカル変数の名前を変更する際、コード補完ポップアップに AI が提供する名前の候補が表示されるようになりました。

AI Assistant プラグイン

バージョン 2024.1 では AI Assistant がバンドル対象から外れ、個別のプラグインとして提供されるようになったことにご注意ください。 この変更は AI 駆動型テクノロジーの使用に関する意思決定をより柔軟に行い、ユーザーの好みや作業環境の要件をより細かく制御できるようにする必要性を考慮して行われたものです。 AI Assistant には引き続き有効な JetBrains AI サブスクリプションが必要です。

ゲーム開発

Unreal Engine

C++ のサポート

C++ のサポートが以下のように大幅に強化されています。

  • Change Signature(シグネチャーの変更)に、パラメーターの型をポインター、参照、または値の型の間で変更できる機能などの新機能が導入されました。
  • Call Tracking(呼び出しトラッキング)で送信呼び出しチェーンがサポートされるようになりました。
  • 生成されるドキュメントコメントのスタイルを簡単にカスタマイズできるようになりました。 また、ドキュメントコメント内で文法インスペクションを使用できるようになりました。
  • C++20 モジュールの実装を改良することでパフォーマンスが改善され、内部モジュールパーティションがサポートされるようになりました。

Rider の C++ サポートは ReSharper C++ によって提供されています。 詳細については、ReSharper C++ 2024.1 の新機能をご覧ください。

ブループリントデバッガーのコールスタック

デバッガーのコールスタックでブループリントをサポートするようにしました。 Rider がコールスタックに匿名のメモリアドレスを表示する代わりに、ブループリント呼び出しに関する情報を既存の C++ コードと交互に表示するようになりました。 RiderLink プラグインを最新バージョンに更新するのをお忘れなく!

Slate の書式設定とスマートな移動操作

このリリースでは Unreal Engine の Slate UI フレームワークがサポートされるようになり、Rider に Go to Definition(定義に移動)および Find Usages(使用箇所の検索)コマンド、さらには Slate マクロによって宣言されたシンボルの名前を変更する Rename(名前の変更)リファクタリングの使用方法を指示できるようになりました。

整形アクションとして直接呼び出された場合や入力時に Rider が Slate DSL コードの書式を正しく設定するようになっています。

スマートなブループリント機能

Rider はブループリント機能とのスマートな統合により、UENUM インスタンスの名前を変更する際の Core Redirects の追加や C++ コードのリソース名に対するアセットパスの補完を引き続きサポートしています。

Perforce 関連の更新、Visual Studio の相互運用性など

JetBrains は Perforce のサポートに引き続き取り組んでおり、セッションが期限切れになった際のログインを容易にし、Rename(名前の変更)リファクタリング時にファイルを適切な変更リストに配置しやすくする有益な業務改善機能を提供しています。

また、場合によってはすでに Visual Studio でビルドされていたプロジェクトが完全に再ビルドされる UnrealBuildTool の問題も修正しました。 これにより、両方の IDE の使い勝手が大幅に改善されています。 この修正は Unreal Engine 5.4 と Rider の全バージョンに反映されています。

ReSharper C++ エンジンの C++ に関する変更も忘れずにご確認ください。

Unity

Odin Inspector のサポート

Sirenix の開発者と連携し、人気の Odin Inspector Unity アセットをサポートできるようになりました。 Rider が Odin Inspector によってシリアル化されたフィールドとプロパティを認識してハイライトし、レイアウト属性内のグループ名の補完とインスペクションを提供し、Odin の GUIColor クラスのプレビューを表示できるようになっています。 また、Odin の range 属性を認識し、その値を Rider 独自の整数値解析で使用して、値が範囲外である場合に警告するようになりました。

詳細

シェーダーバリアントの改善

Rider 2024.1 はバージョン 2023.3 で導入されたシェーダーのキーワードのサポートに基づいて制作されています。 シェーダーファイルを編集する際に各種のキーワードを有効化または無効化できるため、さまざまなプリプロセッサ分岐でハイライトとコード解析を有効化または無効化できます。 このリリースでは、暗黙的なシェーダーキーワード、ステージ固有のローカルキーワード、および _KEYWORD_DEFINED 接尾辞を含むプリプロセッサディレクティブが新たにサポートされています。

null 解析とオブジェクト有効期間チェック

このリリースでは、基底ゲームオブジェクトの有効期間をチェックするための null 等価比較で Unity が予期しない処理を行う可能性を Rider がハイライトする方法が更新されています。 Rider が最新の C# null チェックが有効期間チェックを無視した場合に警告を表示せず、null 比較がチェックを実行するタイミングをハイライトするようになりました。

この動作については、今後公開されるブログ記事で詳しく説明します。

デバッグ、アセットのインデックス作成など

Rider がより多くの DOTS 固有のサポートを提供するようになったため、デバッグが強化されました。たとえば、Watches(ウォッチ)ペインで IJobEntity のインスタンスを調べる際に Entity 子ノードを追加するようになりました。 中断ポイントも DOTS システムで動作するように更新されました。 テクスチャのデバッグ値ビジュアライザーでいくつかのバグ修正が行われ、新しいコレクションビジュアライザーによってゲームオブジェクトのコレクションを操作しやすくなりました。

また、アセットの構文解析のパフォーマンス改善、シリアル化されたフィールドの認識の修正、その他多くの小さな修正と更新も行われています。 詳細は変更ログをお読みください

Godot

JetBrains は Godot を継続的にサポートしており、設定の Plugins(プラグイン)タブからインストールできるオプションのプラグインにさらなる更新を加えました。 以下は最近の変更内容です。

  • .gd.tscn.tres.godot などのより多くの Godot ファイル形式に対する構文ハイライト、および .gdshader のハイライトの改善。
  • Rider が Godot テストの実行またはデバッグに使用する正しい .NET ランタイムを launchSettings.json から自動的に検出するようになりました(JetBrains/godot-support#125)。
  • Start Godot Editor(Godot エディターの起動)ボタンをメインツールバーに追加しました。これは Unity で使用できるアクションと同様のものです(JetBrains/godot-support#119)。

ウェブ開発

@addTagHelper および @removeTagHelper ディレクティブの参照の解決

Rider が Razor ビューの @addTagHelper および @removeTagHelper ディレクティブ内で指定されているアセンブリ名の参照を解決するようになりました。 その結果、コード補完、使用箇所の検索機能、および簡単なコードナビゲーションを利用できるようになっています。

さらに、Rider は未解決のアセンブリ名を警告としてハイライト表示し、Razor ビューで識別しやすくしています。

Blazor Component(Blazor コンポーネント)ファイルテンプレート

Blazor Component(Blazor コンポーネント)ファイルテンプレートを生成する際に .razor.cs.razor.css.razor.js などの追加ファイルを生成できるようになりました。

React の props および状態作成のクイックフィックス

Rider 2024.1 に props と状態をその場で作成できる React 用の新しいクイックフィックスがいくつか導入されました。 これらのクイックフィックスは、Alt+Enter ショートカットを使って適用できます。

ウェブ開発に関する改善点の詳細は、こちらのページをご覧ください。

バージョン管理

このリリースの Rider では、VCS のサポートに関する以下のような更新が行われています。

  • GitLab および GitHub リポジトリのエディター内コードレビュー。
  • Git ツールウィンドウでの CI ステータスのチェック。
  • リポジトリへの大きなファイルコミットの防止。
  • Commit(コミット)ツールウィンドウの新しい Stash(スタッシュ)タブ。
  • フォルダーとファイルを比較から除外するオプション。
  • その他

すべての変更については、こちらをご覧ください。

データベース操作

以下はデータベース操作に関する Rider 2024.1 の最も重要な改善点の一部です。

  • データエディターのローカルフィルター。
  • 単一レコードビュー。
  • CSV ファイル内の列を移動する機能。
  • UUID 関連の機能追加。
  • 複数行 INSERT のコードの位置揃えスタイル。
  • GROUP BY 句の列の補完。

データべース操作に関する改善点の詳細は、このページを参照してください。

プラグイン

Rider 用 .NET Aspire プラグイン

.NET Aspire

.NET 8 SDK には .NET Aspire が導入されています。これは、.NET スタックでの分散アプリケーションの構築に伴う複雑な問題に対処するための新しいアプローチです。 このイノベーションに応じて、新しい統合ツールである Rider 用 .NET Aspire プラグインを提供することになりました。

このプラグインは Rider 2024.1 で使用可能で、JetBrains Marketplace または Settings(設定)/Preferences(環境設定)| Plugins(プラグイン)から直接ダウンロードできます。

.NET Aspire と新しいプラグインの詳細については、こちらのブログ記事をご覧ください。

凍結オブジェクトヒープ(FOH)のサポート dotUltimate

組み込みの dotMemory プロファイリングツールで凍結オブジェクトヒープ(FOH)がサポートされるようになりました。この機能は、ガベージコレクションのパフォーマンス改善の一環として .NET 6 SDK に初めて導入されたものです。

FOH はイミュータブルオブジェクトに対して専用のメモリ領域を割り当てます。 このようなオブジェクトは割り当てられた後に変更されることはなく、ガベージコレクションの影響も受けません。 このテクノロジーをサポートすることで、dotMemory が FOH 内のイミュータブルオブジェクトが使用するメモリをさらに詳細に解析できるようになるため、メモリ使用量の最適化が促されます。

MAUI デスクトップアプリのパフォーマンスとメモリのプロファイリング dotUltimate

組み込みの dotTrace および dotMemory プロファイラーが MAUI および .NET macOS アプリケーションをサポートするようになりました。

サポート対象のターゲットフレームワーク:

  • MAUI Windows: net8.0-windowsnet7.0-windows
  • MAUI Mac: net8.0-maccatalystnet7.0-maccatalyst
  • macOS アプリケーション: net8.0-macosnet7.0-macos

使用可能なプロファイリングモードに関する詳細については、こちらをクリックしてください。

新しい Azure Toolkit プラグイン

新しい Azure Toolkit for Rider プラグインは、.NET 開発者が可用性の高いスケーラブルなウェブアプリを Azure に簡単に作成、開発、構成、テスト、管理、およびデプロイできるようにするオープンソースプロジェクトです。

このプラグインは JetBrains Rider 内でダウンロードしてインストールすることも、JetBrains Marketplace から入手することもできます。

その他

GitHub Actions のサポートを強化

このリリースでは、GitHub Actions のサポートが強化されています。 この開発では、効率の改善と GitHub Actions 専用のインテリジェントな機能の提供によって CI/CD ワークフローの強化することを重視しています。

次のような強化が行われています。

  • さまざまな GitHub Action コンテキストに対する広範な自動補完のサポート。
  • action.yml のブランディング機能。
  • Docker イメージの補完。
  • JavaScript ファイルパスの補完。

詳細については、IntelliJ IDEA ブログのこちらの記事をご覧ください。

プロジェクトファイルを Type dependency(型依存関係)ダイアグラムにドラッグアンドドロップするオプション。

型依存関係ダイアグラムの強化

2023.3 リリースで導入された型依存関係ダイアグラムに対し、以下のような新しいダイアグラムの構成方法による機能的なアップグレードが行われています。

  • Search(検索)を使ってダイアグラムにノードを追加するオプション。
  • ダイアグラムのビューからノードを除去するオプション。
  • ダイアグラムに特定の型の関連する型を追加する機能。
  • プロジェクトファイルを Type dependency(型依存関係)ダイアグラムにドラッグアンドドロップするオプション。

アプリケーションの型依存関係ダイアグラムを生成するその他の方法については、こちらのブログ記事をご覧ください。

WebAssembly の WebCIL パッケージ形式のサポート

デコンパイラー

Rider 組み込みの Assembly Explorer(アセンブリエクスプローラー)が WebAssemblies の WebCIL パッケージング形式をサポートするようになりました。

このサポートには以下が含まれます。

  • WebCIL のデコンパイル。
  • Assembly Explorer(アセンブリエクスプローラー)で .wasm ファイルを表示する機能。
  • Assembly Explorer(アセンブリエクスプローラー)内の WASM ノードのメタデータサブツリー(WASM および WebCIL ヘッダーを含む)。