Rider 2024.1 は、アプリケーションのパフォーマンスを監視して主要なメトリックを収集する新しい機能、コード内の位置をよりよく理解してコード内をよりすばやく移動するための固定行、およびプロジェクト構成をより迅速かつ簡単にする更新された 新しいプロジェクトダイアログを提供します。この更新は、コレクションビジュアライザーを提供し、2 つのブレークポイント間のステップ時間を表示することで、デバッグを支援します。ゲーム開発者は、人気の Unity アセット Odin Inspector の新しい機能セットと、Unreal Engine の Slate UI フレームワークのサポートを活用できます。
Rider 2024.1 では、.NET アプリケーションのパフォーマンスを監視し、実行中またはデバッグ中にバックグラウンドで主要なメトリックを収集できる モニターツールウィンドウが導入されています。
大きなファイルの操作や新しいコードベースの探索を簡素化するために、エディターに固定行を導入しました。この機能により、スクロールしても、クラスやメソッドの先頭などの主要な構造要素がエディターの上部に固定されます。これにより、スコープが常に表示され、固定された行の 1 つをクリックすることで、コード内をすばやく移動できます。
配列、リスト、辞書、その他の列挙可能な型などのコレクションをインスペクションして、デバッグ中にプログラムのデータの状態をよりよく理解し、データ処理に関連する潜在的な問題を特定します。
新しいプロジェクトを簡単に構成できるように、 新しいプロジェクトダイアログを徹底的に作り直しました。.NET 固有のプロジェクト構成とカスタムテンプレートパラメーターを包括的にサポートし、ダイアログから直接ターゲット SDK と適切な MAUI ワークロードをインストールできるようになりました。
新しいプロジェクトの構成中に認知負荷を軽減するために、 新しいプロジェクトダイアログを徹底的に作り直しました。更新されたダイアログには次のような機能が期待できます。
これまでは、IDE 全体をズームインおよびズームアウトして、すべての UI 要素のサイズを同時に変更することができました。ただし、元のスケーリングは 100 – 200% の範囲に制限されていました。現在では、IDE のスケールを 70% まで縮小する機能が追加され、すべてのサイズに関してより柔軟に対応できるようになりました。
このビルドでは、ターミナルベースのタスクの利便性とシンプルさを高めるために設計された、視覚的および機能的な強化が施された、全面的に改善された ターミナルツールウィンドウが導入されています。この更新により、ツールの視覚的な改善と機能セットの拡張の両方が実現します。
設定 / 環境設定 | ツール | ターミナル | 新しいターミナルの有効化で新しいターミナルを有効にすることができます。
改善されたターミナルの詳細については、IntelliJ IDEA のブログ投稿(英語)を参照してください。
ここで、空の配列や ImmutableArray
の宣言と初期化など、ソースコード内のより多くのコード構造を C# 12 のコレクション式に変換するための提案が表示されます。
新しい 'System.InvalidOperationException: コレクションが変更されました ' の可能性がありますインスペクションを追加しました。これは、foreach
ループ内での反復中にコレクションが変更された場合に警告を発します。この変更により、実行時に例外が発生する可能性があるためです。この分析では、コレクションの変更後にループが終了するケースが認識され、このようなケースでは警告は発せられません。インスペクションには、この問題を即座に解決するのに役立つ対応するクイックフィックスが付属しています。
生成 | メンバーのフォーマットを使用すると、定型コードを生成して ToString()
メソッドをオーバーライドし、型に意味のある文字列を返すことができます。2024.1 バージョン以降、この機能は ISpanFormattable
、IUtf8SpanFormattable
、IFormattable
などのより多くの型をサポートします。
[MustDisposeResource]
アノテーションの改善: C# コード分析により、Task<IDisposable>
および ValueTask<IDisposable>
でラップされたものも含め、非同期メソッドによって返されるリソースが正しく破棄されるようになり、タスク自体の意図しない破棄を回避できるようになりました。.ConfigureAwait(...)
、.AsTask()
、または .Result
を介して取得されたリソースも含まれます。シグネチャーの変更リファクタリングに加えた改善点の一部を以下に示します。
Deconstruct
メソッドがサポートされるようになりました。パラメーターを追加、削除、並べ替え、名前変更することができ、これらの変更はメソッドの宣言とその使用箇所の両方に反映されます。List<>
の型を指定する必要がある場合、コード補完を使用して、int
などの目的の型を簡単に選択できます。System.Collections.Generic.List<System.Int16>
型を指定すると、結果のコードでは自動的に List<short>
に短縮されます。in
および ref readonly
修飾子や record
型など、C# の最新バージョンのより多くの機能がサポートされるようになりました。このリリースでは、static にするリファクタリングはプライマリコンストラクターパラメーターをサポートします。これらは パラメーターの導入リストに表示され、簡単に区別できるように別のアイコンが付いています。このリファクタリングはローカル関数でも使用できます。
ソリューション全体の分析のための高リソース使用率モードを積極的に改善中です。これにより、CPU 並列処理をより効率的に使用して、分析時間を大幅に短縮できます。コード分析アクティビティのメモリ割り当てプロファイルを改善し、ガベージコレクションにかかる時間を最小限に抑えました。改善プロセスが進行中ですが、このモードを有効にして、使用感に関するフィードバックを提供していただければ幸いです。
protobuf-net
ライブラリのサポート コード分析では、protobuf-net
ライブラリの ProtoContract
属性と ImplicitFields
列挙型がサポートされるようになりました。これらは両方とも、シリアル化に暗黙的に使用されるメンバーをマークするために使用できます。その結果、このようなメンバーには 未使用メンバーの警告がフラグ付けされなくなりました。
不足しているメンバーの新しいクイックフィックス、コード補完、 生成リファクタリングを介して、オブジェクト式でオーバーライドを生成できるようになりました。
ユニオンの使用箇所を検索するときに、ユニオンケースも表示できるようになりました。これにより、型インスタンスがどのように作成され、パターンが一致するかがわかりやすくなります。
クラスとインターフェースのレコード型とオブジェクト式のインスタンスを作成する new
ポストフィックステンプレートを追加しました。
F# に固定行のサポートが実装されたため、長い型や関数を扱うときにコンテキストを確認しやすくなりました。
F# サポートには、さらに新しいクイックフィックスとコンテキストアクションが追加されました。これらおよびその他の変更については、GitHub の完全なリリースノート(英語)を参照してください。
ReSharper に続いて、Rider にもアップグレードされたスペルチェッカーと文法チェッカーが搭載されました。新しいスペルチェッカーは 20 を超える言語をサポートし、Rider でサポートされているプログラミング言語 (C#、C++、VB.NET)、マークアップ言語 (HTML、XML、XAML)、コメント内の自然言語エラーを検出します。
Rider 2024.1 のコレクションビジュアライザーは、コレクション (配列、リスト、辞書、その他の列挙可能な型) のグラフィカルな表現を提供し、要素を展開および折りたたんだり、個々の値を表示したり、データ構造内を簡単に移動したりすることができます。これは、デバッグ中にプログラムのデータの状態を理解したり、コレクション、操作、データ処理に関連する問題を診断したりできます。
デバッガーが 2 つのブレークポイント間でコードを実行するのにかかる時間を評価できることは、デバッグ時に非常に役立ちます。ステップ実行時間が長すぎる場合は、コードにパフォーマンスの問題がある可能性があります。Rider を使用してアプリケーションをデバッグすると、最後のブレークポイントと現在のブレークポイントの間で経過した時間を示すインラインヒントが表示されるようになりました。
このアップデートから、Rider では、複数のステートメントが存在する場合に、1 行のコードに複数のブレークポイントを設定できるようになります。関連するインラインヒントを使用するか、キーショートカット (Ctrl + F8) を使用してブレークポイントを設定できます。
2024.1 リリースでは、 カーソルまでスキップオプションを IntelliJ IDEA での動作に合わせています。新しい カーソル位置まで実行インレイを使用すると、デバッグ中に特定のコード行にすばやく移動できます。プログラムが一時停止されたら、実行を続行するコード行にマウスを移動します。その後、 カーソル位置まで実行ポップアップを使用して、カーソルが置かれている行に到達するまでコードを実行できます。
ホット再ロードは、Blazor WebAssembly (WASM) アプリケーションの実行とデバッグに使用できるようになりました。ホット再ロードは、.cs
、.razor
、.css
ファイル (スコープ付き .razor.css
ファイルを含む) で機能します。
この機能はデフォルトで有効になっています。 設定 / 環境設定 | ビルド、実行、デプロイ | ホット再ロードにアクセスして設定できます。
デバッグ時には、プロセスダンプが重要です。プロセスダンプを使用すると、問題が簡単に再現できない場合でも、エラー発生時のプログラムの状態を調べることができるからです。以前は、Rider は C++ コアダンプしか処理できませんでした。現在、IDE では .NET プロセスのダンプもインポートできます。
プロセスダンプをインポートするには、 実行 | デバッグコアダンプに移動するか、ダンプファイルをエディターにドラッグアンドドロップするだけです。
失敗した単体テスト、失敗したビルド、デバッグセッション中にスローされた例外またはエラーメッセージのすぐ横に、新しい AI で説明ボタンを追加しました。
ローカル変数の名前を変更すると、コード補完ポップアップで AI による名前の提案が表示されます。
バージョン 2024.1 では、AI Assistant がバンドル解除され、個別のプラグイン(英語)として利用できるようになりました。この変更は、AI を活用したテクノロジーの使用に関する意思決定の柔軟性を高め、作業環境における好みや要件をより細かく制御できるようにする必要性から生まれました。AI Assistant には引き続きアクティブな JetBrains AI サブスクリプションが必要です。
C++ サポートの注目すべき機能強化は次のとおりです。
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 でビルドされたプロジェクトが完全に再構築されることがある UnrealBuildTool の問題も修正しました。これにより、両方の IDE の使用感が大幅に向上します。この修正は、Unreal Engine 5.4 および Rider のすべてのバージョンに含まれています。
そして、C++ は ReSharper C++ エンジンに変更のすべてをチェックするのを忘れないでください。
Sirenix の友人と協力し、人気のオーディンインスペクター (英語) Unity アセットのサポートを提供することをお知らせします。Rider は、Odin Inspector によってシリアル化されたフィールドとプロパティを認識してハイライトし、レイアウト属性のグループ名に補完とインスペクションを提供し、Odin の GUIColor
クラスのプレビューを表示します。また、Odin の範囲属性を認識し、それらの値を Rider 独自の整数値分析で使用して、値が範囲外になった場合に警告します。
Rider 2024.1 は、2023.3 バージョンで導入されたシェーダーキーワードのサポートを基盤としています。シェーダーファイルの編集中にさまざまなキーワードを有効または無効にすることができ、それによってさまざまなプリプロセッサーブランチでのハイライトとコード分析が有効または無効になります。このリリースでは、暗黙的なシェーダーキーワード、ステージ固有のローカルキーワード、および _KEYWORD_DEFINED
サフィックスを持つプリプロセッサーディレクティブのサポートが追加されています。
このリリースでは、基礎となるゲームオブジェクトの有効期間をチェックするための Rider による Unity の null
等価比較の予期しない可能性のある処理がハイライト表示されるようになりました。最新の C# null
チェックが有効期間チェックをバイパスする場合に警告を表示する代わりに、Rider は null
比較がチェックを実行する場合にハイライト表示されるようになりました。
これについては、今後のブログ投稿でさらに詳しく説明します。
Rider が DOTS 固有のサポートをさらに提供することで、デバッグが強化されます。たとえば、 監視式ペインで IJobEntity
のインスタンスを調べるときに Entity
子ノードが追加されます。一時停止ポイント(英語)も DOTS システムで動作するように更新されました。テクスチャデバッグ値ビジュアライザーにいくつかのバグ修正が加えられ、新しいコレクションビジュアライザーはゲームオブジェクトのコレクションに役立ちます。
また、アセット解析のパフォーマンスが向上し、シリアル化されたフィールドの認識が修正され、その他多くの小さな修正と更新も行われました。詳細については、変更ログをご覧(英語)ください。
設定の プラグインタブからインストールできるオプションのプラグイン(英語)をさらに更新することで、Godot のサポートを継続します。最近の変更点は次のとおりです。
.gd
、.tscn
、.tres
、.godot
を含むより多くの Godot ファイルタイプの構文ハイライトと、.gdshader
のハイライトの改善。launchSettings.json
(JetBrains/ ゴドットサポート #125(英語)) からの Godot テストを実行またはデバッグするための正しい .NET ランタイムを自動的に検出するようになりました。@addTagHelper
および @removeTagHelper
ディレクティブの参照を解決する Rider は、Razor ビューの @addTagHelper
および @removeTagHelper
ディレクティブ内で指定されたアセンブリ名の参照を解決するようになりました。その結果、コード補完、使用箇所の検索機能、コードナビゲーションの容易さなどのメリットを享受できるようになりました。
さらに、Rider は未解決のアセンブリ名を警告としてハイライトするため、Razor ビューで簡単に認識できます。
Blazor コンポーネントファイルテンプレートを生成するときに、.razor.cs
、.razor.css
、.razor.js
などの追加ファイルを生成できるようになりました。
Rider 2024.1 では、React の新しいクイックフィックスがいくつか導入されており、これにより props と状態を即座に作成できます。これらのクイックフィックスは、ショートカット Alt + Enter を使用して適用できます。
Web 開発の改善点の詳細については、このページを参照してください。
このリリースでは、Rider の VCS サポートに次の更新が加えられています。
すべての変更点については、こちらを参照してください。
Rider 2024.1 を使用したデータベースの操作に関する最も注目すべき改善点は次のとおりです。
INSERTS
の整列コードスタイル。GROUP BY
句の列補完。データベースの操作に関する改善点の詳細については、このページを参照してください。
.NET 8 SDK では、.NET スタック上で分散アプリケーションを構築する際の複雑な問題に対処するための新しいアプローチである .NET Aspire が導入されました。このイノベーションに応えて、Rider 用の .NET Aspire プラグインという新しい統合ツールを提供しています。
このプラグインは Rider 2024.1 で利用可能で、JetBrains マーケットプレイスから直接、または 設定 / 環境設定 | プラグイン経由でダウンロードできます。
このブログ投稿(英語)から、.NET Aspire と新しいプラグインについて詳しく学びましょう。
組み込みの dotMemory プロファイリングツールでは、ガベージコレクションのパフォーマンス向上の一環として .NET 6 SDK で初めて導入された機能である Frozen Object Heap (FOH) のサポートが提供されるようになりました。
FOH は不変オブジェクト専用のメモリ領域を割り当てます。これらのオブジェクトは割り当て後に変更されず、ガベージコレクションの対象にはなりません。このテクノロジのサポートにより、dotMemory は FOH 内の不変オブジェクトが使用するメモリをより詳細に分析し、メモリ使用量の最適化を促進できます。
組み込みの dotTrace および dotMemory プロファイラーは、MAUI および .NET macOS アプリケーションをサポートするようになりました。
サポートされているターゲットフレームワーク:
net8.0-windows
、net7.0-windows
net8.0-maccatalyst
、net7.0-maccatalyst
net8.0-macos
、net7.0-macos
利用可能なプロファイリングモードの詳細については、ここをクリック(英語)を参照してください。
新しい Rider 用 Azure ツールキットプラグインは、.NET 開発者が可用性が高くスケーラブルな Web アプリを Azure に簡単に作成、開発、構成、テスト、管理、デプロイできるようにするオープンソースプロジェクトです。
プラグインは JetBrains Rider 内でダウンロードしてインストールすることができ、JetBrains マーケットプレイス(英語)から入手できます。
このリリースでは、GitHub Actions のサポートが強化されました。私たちの開発の焦点は、GitHub Actions 専用に設計された効率性の向上とインテリジェントな機能を提供することで、CI/CD ワークフローを強化することにあります。
機能強化のリストには以下が含まれます。
action.yml
のブランディング機能。詳細については、IntelliJ IDEA ブログのこの投稿(英語)を参照してください。
2023.3 リリースで導入された型依存関係ダイアグラム(英語)は、ダイアグラムを構成する新しい方法によって機能的にアップグレードされます。具体的には次のようになります。
アプリケーションの型依存関係ダイアグラムを生成するその他の方法については、このブログ投稿(英語)を参照してください。
Rider 内の アセンブリエクスプローラーは、WebAssemblies の WebCIL パッケージ形式をサポートするようになりました。
サポート対象は次のとおりです:
.wasm
ファイルを表示する機能。