Rider の新機能

Rider 2024.1 の新機能

Rider 2024.1 は、アプリケーションのパフォーマンスを監視して主要なメトリックを収集する新しい機能、コード内の位置をよりよく理解してコード内をよりすばやく移動するための固定行、およびプロジェクト構成をより迅速かつ簡単にする更新された 新しいプロジェクトダイアログを提供します。この更新は、コレクションビジュアライザーを提供し、2 つのブレークポイント間のステップ時間を表示することで、デバッグを支援します。ゲーム開発者は、人気の Unity アセット Odin Inspector の新しい機能セットと、Unreal Engine の Slate UI フレームワークのサポートを活用できます。

主な更新

Monitoring tool window

新しい モニターツールウィンドウ

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

詳細

固定行

大きなファイルの操作や新しいコードベースの探索を簡素化するために、エディターに固定行を導入しました。この機能により、スクロールしても、クラスやメソッドの先頭などの主要な構造要素がエディターの上部に固定されます。これにより、スコープが常に表示され、固定された行の 1 つをクリックすることで、コード内をすばやく移動できます。

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

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

詳細

新しいプロジェクトを更新ダイアログ

新しいプロジェクトを簡単に構成できるように、 新しいプロジェクトダイアログを徹底的に作り直しました。.NET 固有のプロジェクト構成とカスタムテンプレートパラメーターを包括的にサポートし、ダイアログから直接ターゲット SDK と適切な MAUI ワークロードをインストールできるようになりました。

詳細

UX/UI

新しいプロジェクトを更新ダイアログ

新しいプロジェクトの構成中に認知負荷を軽減するために、 新しいプロジェクトダイアログを徹底的に作り直しました。更新されたダイアログには次のような機能が期待できます。

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

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

これまでは、IDE 全体をズームインおよびズームアウトして、すべての UI 要素のサイズを同時に変更することができました。ただし、元のスケーリングは 100 – 200% の範囲に制限されていました。現在では、IDE のスケールを 70% まで縮小する機能が追加され、すべてのサイズに関してより柔軟に対応できるようになりました。

改善された ターミナルツールウィンドウ

このビルドでは、ターミナルベースのタスクの利便性とシンプルさを高めるために設計された、視覚的および機能的な強化が施された、全面的に改善された ターミナルツールウィンドウが導入されています。この更新により、ツールの視覚的な改善と機能セットの拡張の両方が実現します。

設定 / 環境設定 | ツール | ターミナル | 新しいターミナルの有効化で新しいターミナルを有効にすることができます。

改善されたターミナルの詳細については、IntelliJ IDEA のブログ投稿(英語)を参照してください。

コード解析

C# のサポート

コレクション式へのさらなる変換

ここで、空の配列や ImmutableArray の宣言と初期化など、ソースコード内のより多くのコード構造を C# 12 のコレクション式に変換するための提案が表示されます。

コレクションが変更されました分析

新しい 'System.InvalidOperationException: コレクションが変更されました ' の可能性がありますインスペクションを追加しました。これは、foreach ループ内での反復中にコレクションが変更された場合に警告を発します。この変更により、実行時に例外が発生する可能性があるためです。この分析では、コレクションの変更後にループが終了するケースが認識され、このようなケースでは警告は発せられません。インスペクションには、この問題を即座に解決するのに役立つ対応するクイックフィックスが付属しています。

生成 | メンバーのフォーマットアップデート

生成 | メンバーのフォーマットを使用すると、定型コードを生成して ToString() メソッドをオーバーライドし、型に意味のある文字列を返すことができます。2024.1 バージョン以降、この機能は ISpanFormattableIUtf8SpanFormattableIFormattable などのより多くの型をサポートします。

非同期メソッドでの使い捨てリソースのサポート強化

  • [MustDisposeResource] アノテーションの改善: C# コード分析により、Task<IDisposable> および ValueTask<IDisposable> でラップされたものも含め、非同期メソッドによって返されるリソースが正しく破棄されるようになり、タスク自体の意図しない破棄を回避できるようになりました。
  • タスクのような戻り値: 2024.1 バージョンでのタスクのような戻り値の正しい分析により、待機中のリソースが破棄されるかどうかがチェックされ、.ConfigureAwait(...).AsTask()、または .Result を介して取得されたリソースも含まれます。

シグネチャーの変更のアップデートリファクタリング

シグネチャーの変更リファクタリングに加えた改善点の一部を以下に示します。

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

static にするアップデートリファクタリング

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

ソリューション全体の分析における高リソース利用モード

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

パフォーマンス

  • コード内の要素の名前変更がより高速かつ効率的になりました。この変更は Rider の他のコアコンポーネントにも影響し、 使用箇所の検索を含む複数の機能のパフォーマンスが向上します。
  • 大規模クラスを処理するための静的メンバーの 別の型に移動リファクタリングのパフォーマンスが大幅に向上しました。

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

コード分析では、protobuf-net ライブラリの ProtoContract 属性と ImplicitFields 列挙型がサポートされるようになりました。これらは両方とも、シリアル化に暗黙的に使用されるメンバーをマークするために使用できます。その結果、このようなメンバーには 未使用メンバーの警告がフラグ付けされなくなりました。

F# のサポート

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

ユニオンの使用箇所を検索するときに、ユニオンケースも表示できるようになりました。これにより、型インスタンスがどのように作成され、パターンが一致するかがわかりやすくなります。

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

F# に固定行のサポートが実装されたため、長い型や関数を扱うときにコンテキストを確認しやすくなりました。

F# サポートには、さらに新しいクイックフィックスとコンテキストアクションが追加されました。これらおよびその他の変更については、GitHub の完全なリリースノート(英語)を参照してください。

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

ReSharper に続いて、Rider にもアップグレードされたスペルチェッカーと文法チェッカーが搭載されました。新しいスペルチェッカーは 20 を超える言語をサポートし、Rider でサポートされているプログラミング言語 (C#、C++、VB.NET)、マークアップ言語 (HTML、XML、XAML)、コメント内の自然言語エラーを検出します。

.NET デバッグ

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

Rider 2024.1 のコレクションビジュアライザーは、コレクション (配列、リスト、辞書、その他の列挙可能な型) のグラフィカルな表現を提供し、要素を展開および折りたたんだり、個々の値を表示したり、データ構造内を簡単に移動したりすることができます。これは、デバッグ中にプログラムのデータの状態を理解したり、コレクション、操作、データ処理に関連する問題を診断したりできます。

ステップ時間

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

Inline breakpoints

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

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

改善された カーソル位置まで実行インレイオプション

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

Blazor WASM のホット再ロード

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

この機能はデフォルトで有効になっています。 設定 / 環境設定 | ビルド、実行、デプロイ | ホット再ロードにアクセスして設定できます。

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

デバッグ時には、プロセスダンプが重要です。プロセスダンプを使用すると、問題が簡単に再現できない場合でも、エラー発生時のプログラムの状態を調べることができるからです。以前は、Rider は C++ コアダンプしか処理できませんでした。現在、IDE では .NET プロセスのダンプもインポートできます。

プロセスダンプをインポートするには、 実行 | デバッグコアダンプに移動するか、ダンプファイルをエディターにドラッグアンドドロップするだけです。

AI Assistant

AI で説明

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

AI で名前を変更する

ローカル変数の名前を変更すると、コード補完ポップアップで AI による名前の提案が表示されます。

AI Assistant プラグイン

バージョン 2024.1 では、AI Assistant がバンドル解除され、個別のプラグイン(英語)として利用できるようになりました。この変更は、AI を活用したテクノロジーの使用に関する意思決定の柔軟性を高め、作業環境における好みや要件をより細かく制御できるようにする必要性から生まれました。AI Assistant には引き続きアクティブな JetBrains AI サブスクリプションが必要です。

ゲーム開発

Unreal Engine

C++ のサポート

C++ サポートの注目すべき機能強化は次のとおりです。

  • シグネチャーの変更には、ポインター、参照、値型間でパラメーター型を変更する機能など、新しい機能が用意されています。
  • コールトラッキングは発信呼び出しチェーンをサポートするようになりました。
  • 生成されたドキュメントコメントのスタイルを簡単にカスタマイズできるようになりました。さらに、ドキュメントコメント内では文法インスペクションを使用できます。
  • C++20 モジュールの実装が再設計され、パフォーマンスが向上し、内部モジュールパーティションがサポートされるようになりました。

Rider の C++ サポートは ReSharper C++ によって実現されています。詳細については、ReSharper C++ 2024.1 の新機能を参照してください。

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

デバッガーのコールスタックにブループリントのサポートを追加できることを嬉しく思います。コールスタックで匿名のメモリアドレスを表示する代わりに、Rider は既存の C++ コードとインターリーブされたブループリントの呼び出しに関する情報を表示するようになりました。RiderLink プラグインを最新バージョンに更新してください。

スレートフォーマットとスマートナビゲーション

このリリースでは、Unreal Engine の Slate UI フレームワークのサポートが追加され、Rider に 定義へジャンプコマンドと 使用箇所の検索コマンドの使用方法と、Slate マクロによって宣言されたシンボルの名前を変更する 名前変更リファクタリングが教えられます。

Rider は、再フォーマットアクションとして直接呼び出された場合、または入力したときに、Slate DSL コードを正しくフォーマットするようになりました。

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

Rider とブループリント機能のスマートな統合は、UENUM インスタンスの名前を変更するときにコアリダイレクトを追加するサポートと、C++ コード内のリソース名のアセットパスの補完によって継続されます。

Perforce アップデート、Visual Studio 相互運用性など

Perforce のサポートに引き続き取り組んでおり、セッションの有効期限が切れたときにログインしやすくしたり、 名前変更のリファクタリング中にファイルを適切な変更リストに入れたりするための便利な生活の質の向上を図っています。

また、以前に Visual Studio でビルドされたプロジェクトが完全に再構築されることがある UnrealBuildTool の問題も修正しました。これにより、両方の IDE の使用感が大幅に向上します。この修正は、Unreal Engine 5.4 および Rider のすべてのバージョンに含まれています。

そして、C++ は ReSharper C++ エンジンに変更のすべてをチェックするのを忘れないでください。

Unity

Odin Inspector のサポート

Sirenix の友人と協力し、人気のオーディンインスペクター (英語) Unity アセットのサポートを提供することをお知らせします。Rider は、Odin Inspector によってシリアル化されたフィールドとプロパティを認識してハイライトし、レイアウト属性のグループ名に補完とインスペクションを提供し、Odin の GUIColor クラスのプレビューを表示します。また、Odin の範囲属性を認識し、それらの値を Rider 独自の整数値分析で使用して、値が範囲外になった場合に警告します。

詳細 (英語)

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

Rider 2024.1 は、2023.3 バージョンで導入されたシェーダーキーワードのサポートを基盤としています。シェーダーファイルの編集中にさまざまなキーワードを有効または無効にすることができ、それによってさまざまなプリプロセッサーブランチでのハイライトとコード分析が有効または無効になります。このリリースでは、暗黙的なシェーダーキーワード、ステージ固有のローカルキーワード、および _KEYWORD_DEFINED サフィックスを持つプリプロセッサーディレクティブのサポートが追加されています。

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

このリリースでは、基礎となるゲームオブジェクトの有効期間をチェックするための Rider による Unity の null 等価比較の予期しない可能性のある処理がハイライト表示されるようになりました。最新の C# null チェックが有効期間チェックをバイパスする場合に警告を表示する代わりに、Rider は null 比較がチェックを実行する場合にハイライト表示されるようになりました。

これについては、今後のブログ投稿でさらに詳しく説明します。

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

Rider が DOTS 固有のサポートをさらに提供することで、デバッグが強化されます。たとえば、 監視式ペインで IJobEntity のインスタンスを調べるときに Entity 子ノードが追加されます。一時停止ポイント(英語)も DOTS システムで動作するように更新されました。テクスチャデバッグ値ビジュアライザーにいくつかのバグ修正が加えられ、新しいコレクションビジュアライザーはゲームオブジェクトのコレクションに役立ちます。

また、アセット解析のパフォーマンスが向上し、シリアル化されたフィールドの認識が修正され、その他多くの小さな修正と更新も行われました。詳細については、変更ログをご覧(英語)ください。

ゴドット

設定の プラグインタブからインストールできるオプションのプラグイン(英語)をさらに更新することで、Godot のサポートを継続します。最近の変更点は次のとおりです。

  • .gd.tscn.tres.godot を含むより多くの Godot ファイルタイプの構文ハイライトと、.gdshader のハイライトの改善。
  • Rider は、launchSettings.json (JetBrains/ ゴドットサポート #125(英語)) からの Godot テストを実行またはデバッグするための正しい .NET ランタイムを自動的に検出するようになりました。
  • Unity (JetBrains/ ゴドットサポート #119(英語)) で使用できるアクションに似た Godot エディターを起動ボタンをメインツールバーに追加しました。

Web 開発

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

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

さらに、Rider は未解決のアセンブリ名を警告としてハイライトするため、Razor ビューで簡単に認識できます。

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

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

React props と状態作成のクイックフィックス

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

Web 開発の改善点の詳細については、このページを参照してください。

バージョン管理

このリリースでは、Rider の VCS サポートに次の更新が加えられています。

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

すべての変更点については、こちらを参照してください。

データベースの操作

Rider 2024.1 を使用したデータベースの操作に関する最も注目すべき改善点は次のとおりです。

  • データエディターのローカルフィルター。
  • 単一レコードビュー。
  • CSV ファイル内の列を移動する機能。
  • UUID のその他の機能。
  • 複数行の INSERTS の整列コードスタイル。
  • GROUP BY 句の列補完。

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

プラグイン

.NET Aspire plugin for Rider

.NET 熱望

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

このプラグインは Rider 2024.1 で利用可能で、JetBrains マーケットプレイスから直接、または 設定 / 環境設定 | プラグイン経由でダウンロードできます。

このブログ投稿(英語)から、.NET Aspire と新しいプラグインについて詳しく学びましょう。

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

組み込みの dotMemory プロファイリングツールでは、ガベージコレクションのパフォーマンス向上の一環として .NET 6 SDK で初めて導入された機能である Frozen Object Heap (FOH) のサポートが提供されるようになりました。

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 ツールキットプラグイン

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

プラグインは JetBrains Rider 内でダウンロードしてインストールすることができ、JetBrains マーケットプレイス(英語)から入手できます。

その他

GitHub Actions のサポート強化

このリリースでは、GitHub Actions のサポートが強化されました。私たちの開発の焦点は、GitHub Actions 専用に設計された効率性の向上とインテリジェントな機能を提供することで、CI/CD ワークフローを強化することにあります。

機能強化のリストには以下が含まれます。

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

詳細については、IntelliJ IDEA ブログのこの投稿(英語)を参照してください。

Drag and drop project files onto the type dependency diagram

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

2023.3 リリースで導入された型依存関係ダイアグラム(英語)は、ダイアグラムを構成する新しい方法によって機能的にアップグレードされます。具体的には次のようになります。

  • 検索を使用してダイアグラムにノードを追加するオプション。
  • ダイアグラムのビューからノードを削除するオプション。
  • ダイアグラム内の特定のタイプに関連するタイプを追加する機能。
  • プロジェクトファイルを 型依存性ダイアグラムにドラッグアンドドロップするオプション。

アプリケーションの型依存関係ダイアグラムを生成するその他の方法については、このブログ投稿(英語)を参照してください。

Support for WebCIL packaging format for WebAssemblies

逆コンパイラー

Rider 内の アセンブリエクスプローラーは、WebAssemblies の WebCIL パッケージ形式をサポートするようになりました。

サポート対象は次のとおりです:

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