Rider 2024.1 では、アプリケーションのパフォーマンスを監視して重要なメトリクスを収集する新しい機能、コード内の現在位置をより適切に把握してコード内をより素早く移動するための行固定表示が導入され、プロジェクト構成をより素早く簡単に行えるように New Project(新規プロジェクト)ダイアログが更新されています。 この更新では、コレクションビジュアライザーを提供し、2 つのブレークポイント間のステップ実行時間を表示することでデバッグを支援しています。 ゲーム開発者は人気の Unity アセットである Odin Inspector の新機能一式を活用し、Unreal Engine の Slate UI フレームワークのサポートを受けることができます。
Rider 2024.1 では、実行またはデバッグ中に .NET アプリケーションのパフォーマンスをバックグラウンドで監視して重要なメトリクスを収集する Monitoring(監視)ツールウィンドウが導入されました。
大きなファイルでの作業と新しいコードベースの参照を簡単にするため、エディターで行を固定表示できるようにしました。 この機能を使用すると、クラスやメソッドの開始部などの重要な構造要素をエディターの上部にピン留めした状態でスクロールできます。 そうすれば常に表示範囲が固定され、ピン留めされた行の 1 つをクリックして迅速にコード内を移動できます。
デバッグ中に配列、リスト、辞書、およびその他の列挙可能な型などのコレクションを検査してプログラムのデータの状態をより深く理解し、データ処理に関連する潜在的な問題を特定できます。
New Project(新規プロジェクト)ダイアログを全面的に改良し、新しいプロジェクトを構成しやすくしました。 このダイアログは .NET 固有のプロジェクト構成とカスタムテンプレートパラメーターを包括的にサポートしているため、ターゲット SDK と適切な MAUI ワークロードをダイアログから直接インストールできるようになっています。
New Project(新規プロジェクト)ダイアログを全面的に改良し、新規プロジェクトの構成操作の分かりにくさを軽減しました。 更新後のダイアログには以下の機能があります。
これまでは IDE 全体を拡大・縮小し、それと同時にすべての UI 要素のサイズを変更できていましたが、 その倍率は 100~200% の範囲でしか変更できませんでした。 今回は IDE の表示倍率を 70% まで減らす機能が追加されたため、あらゆる要素のサイズに関して柔軟性が向上しました。
このビルドでは Terminal(ターミナル)ツールウィンドウを全面的に見直し、ターミナルを使用するタスクの利便性と単純性を高めるための視覚的および機能的な強化を行いました。 このアップデートではツールを視覚的に改善し、機能セットを拡充しています。
新しいターミナルは、Settings(設定)/Preferences(環境設定)| Tools(ツール)| Terminal(ターミナル)| Enable New Terminal(新しいターミナルの有効化)で有効にできます。
改良されたターミナルの詳細については、IntelliJ IDEA のこちらのブログ記事をご覧ください。
空の配列や ImmutableArray
の宣言や初期化など、ソースコード内で C# 12 のコレクション式への変換が提案されるコード構造がさらに増えました。
新しい Possible 'System.InvalidOperationException: Collection was modified'(可能性のある 'System.InvalidOperationException: コレクションが変更されました')インスペクションが追加されました。この変更により実行時に例外が発生する可能性があるため、このインスペクションは foreach
ループ内の反復処理中にコレクションが変更された際に警告を発します。 この解析ではコレクションの変更後にループの終了がある場合が認識され、その場合には警告が発生しません。 このインスペクションには、この問題を即座に解決するための対応するクイックフィックスがあります。
Generate(生成)| Formatting Members(書式設定メンバー)を使用すると、ToString()
メソッドをオーバーライドして型に応じて意味のある文字列を返すボイラープレートを生成できます。 バージョン 2024.1 より、この機能で ISpanFormattable
、IUtf8SpanFormattable
、IFormattable
などのより多くの型がサポートされるようになりました。
[MustDisposeResource]
アノテーションの改善: C# コード解析によって async メソッドで返されたリソース(Task<IDisposable>
や ValueTask<IDisposable>
でラップされたリソースを含む)が正しく破棄されるようになり、タスク自体が誤って破棄されることがなくなりました。 .ConfigureAwait(...)
、.AsTask()
、または .Result
を介して取得されたリソースも含まれるようになりました。 Change Signature(シグネチャーの変更)リファクタリングに以下の改善が行われました。
Deconstruct
メソッドをサポートするようになりました。 パラメーターの追加、除去、再配置、および名前の変更を行うことができます。また、これらの変更はメソッドの宣言とその使用箇所の両方に反映されます。 List<>
の型を指定する必要がある場合、コード補完を使用して int
などの必要な型を簡単に選択できます。 System.Collections.Generic.List<System.Int16>
型を指定した場合、生成されるコードでは自動的に List<short>
に短縮されます。 in
および ref readonly
修飾子や record
型など、より多くの最新バージョンの C# の機能がリファクタリングでサポートされるようになりました。このリリースでは、Make Static(static にする)リファクタリングでプライマリコンストラクターのパラメーターがサポートされています。 このパラメーターは Introduce parameters(パラメーターの導入)リストに表示され、区別しやすいように個別のアイコンが使用されています。 このリファクタリングはローカル関数にも使用できます。
JetBrains は CPU 並列処理をより効率的に使用して解析時間を大幅に短縮するソリューション全体解析の高リソース使用率モードを積極的に改良しています。 コード解析機能のメモリ割り当てプロファイルを改善し、ガベージコレクションにかかる時間を最小限に抑えました。 この改良は現在も進行中ですが、このモードを有効化して使用した感想をフィードバックしていただければ幸いです。
protobuf-net
ライブラリのサポート コード解析で protobuf-net
ライブラリの ProtoContract
属性と ImplicitFields
列挙型がサポートされるようになりました。 どちらもシリアル化に暗黙的に使用されるメンバーを示すのに使用できます。 その場合、このようなメンバーに unused members(未使用のメンバー)警告が表示されることはありません。
オブジェクト式で欠落メンバー用の新しいクイックフィックス、コード補完、および Generate(生成)リファクタリングを介してオーバーライドを生成できるようになりました。
共用体型の使用箇所を検索する際に共用体型のケースも確認できるようになりました。 このため、型インスタンスがどのように作成されてパターンマッチングされているかを確認しやすくなっています。
レコード型のインスタンスとクラスおよびインターフェースのオブジェクト式を作成する new
後置テンプレートを追加しました。
F# の行固定表示機能がサポートされるようになり、より長い型や関数を操作する際にコンテキストをより簡単に確認できるようになりました。
F# をサポートする新しいクイックフィックスとコンテキストアクションがさらに追加されています。 これらの変更やその他の変更の詳細については、GitHub のリリースノート全文をお読みください。
ReSharper に続き、Rider のスペルおよび文法チェッカーもアップグレードされました。 新しいスペルチェッカーは 20 言語以上に対応しており、Rider(C#、C++、VB.NET)がサポートするプログラミング言語、マークアップ言語(HTML、XML、XAML)、およびコメント内にある自然言語の誤りを検出します。
Rider 2024.1 のコレクションビジュアライザーにはコレクション(配列、リスト、辞書、およびその他の列挙可能な型)のグラフィック表現が導入されており、要素の展開と折りたたみ、個別の値の表示、およびデータ構造の簡単なナビゲーションが可能になっています。 デバッグ中のプログラムのデータの状態を把握したり、コレクション、操作、またはデータ処理に関連する問題を診断したりするのに役立ちます。
デバッグ時にはデバッガーが 2 つのブレークポイント間のコードを実行するのにかかる時間を評価できると非常に役立ちます。 ステップ実行時間が長すぎる場合は、コードにパフォーマンスの問題が存在する可能性があります。 Rider でアプリケーションをデバッグする際、最後のブレークポイントから現在のブレークポイントまでの経過時間を示すインラインヒントが表示されるようになりました。
このアップデート以降の Rider では、単一コード行に複数のステートメントが存在する場合に複数のブレークポイントを設定できるようになりました。 ブレークポイントは関連するインラインヒントを使うか、ショートカットキー(Ctrl + F8)によって設定できます。
2024.1 リリースでは、Run to cursor(カーソル位置まで実行)オプションの動作を IntelliJ IDEA での動作に合わせました。 デバッグ中に新しい Run to Cursor(カーソル位置まで実行)インレイオプションを使うと、特定のコード行まで素早く移動できます。 プログラムが一時停止したら、実行を続けたいコード行にマウスポインターを合わせます。 その後、Run to Cursor(カーソル位置まで実行)ポップアップを利用してカーソル位置の行に到達するまでのコードを実行できます。
Blazor WebAssembly(WASM)アプリケーションの実行とデバッグ中にホットリロードを使用できるようになりました。 ホットリロードは .cs
、.razor
、および .css
ファイル(スコープ付きの .razor.css
ファイルも含む)で動作します。
この機能はデフォルトで有効になっています。 Settings(設定)/Preferences(環境設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Hot Reload(ホットリロード)で構成可能です。
デバッグを行う際、プロセスダンプは非常に重要です。問題を簡単に再現できない場合でも、プロセスダンプを使用してエラー発生時のプログラムの状態を調査できるためです。 従来の Rider で処理できるのは C++ コアダンプだけでした。 今回のリリースでは、IDE が .NET プロセスのダンプもインポートできるようになっています。
プロセスダンプは Run(実行)| Debug Core Dump(コアダンプのデバッグ)に移動するか、ダンプファイルをエディターにドラッグしてドロップするとインポートできます。
失敗したユニットテスト、失敗したビルド、またはデバッグセッションでスローされた例外またはエラーメッセージのすぐ隣に新しい Explain with AI(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 に Go to Definition(定義に移動)および Find Usages(使用箇所の検索)コマンド、さらには Slate マクロによって宣言されたシンボルの名前を変更する Rename(名前の変更)リファクタリングの使用方法を指示できるようになりました。
整形アクションとして直接呼び出された場合や入力時に Rider が Slate DSL コードの書式を正しく設定するようになっています。
Rider はブループリント機能とのスマートな統合により、UENUM
インスタンスの名前を変更する際の Core Redirects の追加や C++ コードのリソース名に対するアセットパスの補完を引き続きサポートしています。
JetBrains は Perforce のサポートに引き続き取り組んでおり、セッションが期限切れになった際のログインを容易にし、Rename(名前の変更)リファクタリング時にファイルを適切な変更リストに配置しやすくする有益な業務改善機能を提供しています。
また、場合によってはすでに Visual Studio でビルドされていたプロジェクトが完全に再ビルドされる UnrealBuildTool の問題も修正しました。 これにより、両方の IDE の使い勝手が大幅に改善されています。 この修正は Unreal Engine 5.4 と Rider の全バージョンに反映されています。
ReSharper C++ エンジンの C++ に関する変更も忘れずにご確認ください。
Sirenix の開発者と連携し、人気の Odin Inspector Unity アセットをサポートできるようになりました。 Rider が Odin Inspector によってシリアル化されたフィールドとプロパティを認識してハイライトし、レイアウト属性内のグループ名の補完とインスペクションを提供し、Odin の GUIColor
クラスのプレビューを表示できるようになっています。 また、Odin の range 属性を認識し、その値を Rider 独自の整数値解析で使用して、値が範囲外である場合に警告するようになりました。
Rider 2024.1 はバージョン 2023.3 で導入されたシェーダーのキーワードのサポートに基づいて制作されています。 シェーダーファイルを編集する際に各種のキーワードを有効化または無効化できるため、さまざまなプリプロセッサ分岐でハイライトとコード解析を有効化または無効化できます。 このリリースでは、暗黙的なシェーダーキーワード、ステージ固有のローカルキーワード、および _KEYWORD_DEFINED
接尾辞を含むプリプロセッサディレクティブが新たにサポートされています。
このリリースでは、基底ゲームオブジェクトの有効期間をチェックするための null
等価比較で Unity が予期しない処理を行う可能性を Rider がハイライトする方法が更新されています。 Rider が最新の C# null
チェックが有効期間チェックを無視した場合に警告を表示せず、null
比較がチェックを実行するタイミングをハイライトするようになりました。
この動作については、今後公開されるブログ記事で詳しく説明します。
Rider がより多くの DOTS 固有のサポートを提供するようになったため、デバッグが強化されました。たとえば、Watches(ウォッチ)ペインで IJobEntity
のインスタンスを調べる際に Entity
子ノードを追加するようになりました。 中断ポイントも DOTS システムで動作するように更新されました。 テクスチャのデバッグ値ビジュアライザーでいくつかのバグ修正が行われ、新しいコレクションビジュアライザーによってゲームオブジェクトのコレクションを操作しやすくなりました。
また、アセットの構文解析のパフォーマンス改善、シリアル化されたフィールドの認識の修正、その他多くの小さな修正と更新も行われています。 詳細は変更ログをお読みください。
JetBrains は Godot を継続的にサポートしており、設定の Plugins(プラグイン)タブからインストールできるオプションのプラグインにさらなる更新を加えました。 以下は最近の変更内容です。
.gd
、.tscn
、.tres
、.godot
などのより多くの Godot ファイル形式に対する構文ハイライト、および .gdshader
のハイライトの改善。 launchSettings.json
から自動的に検出するようになりました(JetBrains/godot-support#125)。 @addTagHelper
および @removeTagHelper
ディレクティブの参照の解決 Rider が Razor ビューの @addTagHelper
および @removeTagHelper
ディレクティブ内で指定されているアセンブリ名の参照を解決するようになりました。 その結果、コード補完、使用箇所の検索機能、および簡単なコードナビゲーションを利用できるようになっています。
さらに、Rider は未解決のアセンブリ名を警告としてハイライト表示し、Razor ビューで識別しやすくしています。
Blazor Component(Blazor コンポーネント)ファイルテンプレートを生成する際に .razor.cs
、.razor.css
、.razor.js
などの追加ファイルを生成できるようになりました。
Rider 2024.1 に props と状態をその場で作成できる React 用の新しいクイックフィックスがいくつか導入されました。 これらのクイックフィックスは、Alt+Enter ショートカットを使って適用できます。
ウェブ開発に関する改善点の詳細は、こちらのページをご覧ください。
このリリースの Rider では、VCS のサポートに関する以下のような更新が行われています。
すべての変更については、こちらをご覧ください。
以下はデータベース操作に関する Rider 2024.1 の最も重要な改善点の一部です。
INSERT
のコードの位置揃えスタイル。GROUP BY
句の列の補完。データべース操作に関する改善点の詳細は、このページを参照してください。
.NET 8 SDK には .NET Aspire が導入されています。これは、.NET スタックでの分散アプリケーションの構築に伴う複雑な問題に対処するための新しいアプローチです。 このイノベーションに応じて、新しい統合ツールである Rider 用 .NET Aspire プラグインを提供することになりました。
このプラグインは Rider 2024.1 で使用可能で、JetBrains Marketplace または Settings(設定)/Preferences(環境設定)| Plugins(プラグイン)から直接ダウンロードできます。
.NET Aspire と新しいプラグインの詳細については、こちらのブログ記事をご覧ください。
組み込みの dotMemory プロファイリングツールで凍結オブジェクトヒープ(FOH)がサポートされるようになりました。この機能は、ガベージコレクションのパフォーマンス改善の一環として .NET 6 SDK に初めて導入されたものです。
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
。使用可能なプロファイリングモードに関する詳細については、こちらをクリックしてください。
新しい Azure Toolkit for Rider プラグインは、.NET 開発者が可用性の高いスケーラブルなウェブアプリを Azure に簡単に作成、開発、構成、テスト、管理、およびデプロイできるようにするオープンソースプロジェクトです。
このプラグインは JetBrains Rider 内でダウンロードしてインストールすることも、JetBrains Marketplace から入手することもできます。
このリリースでは、GitHub Actions のサポートが強化されています。 この開発では、効率の改善と GitHub Actions 専用のインテリジェントな機能の提供によって CI/CD ワークフローの強化することを重視しています。
次のような強化が行われています。
action.yml
のブランディング機能。詳細については、IntelliJ IDEA ブログのこちらの記事をご覧ください。
2023.3 リリースで導入された型依存関係ダイアグラムに対し、以下のような新しいダイアグラムの構成方法による機能的なアップグレードが行われています。
アプリケーションの型依存関係ダイアグラムを生成するその他の方法については、こちらのブログ記事をご覧ください。
Rider 組み込みの Assembly Explorer(アセンブリエクスプローラー)が WebAssemblies の WebCIL パッケージング形式をサポートするようになりました。
このサポートには以下が含まれます。
.wasm
ファイルを表示する機能。