Rider 2024.3 の新機能

Rider 2024.3 では、params コレクション、partial プロパティ、プレビューの field キーワードなどの C# 13 強化機能を含む、.NET 9 のサポートを提供しています。 .NET 6+ プロジェクト向けの Windows フォームデザイナーを個別のスレッドを凍結および凍結解除できる高度なデバッグ機能とともに使用できるようになりました。ゲーム開発者向けには Unreal Engine 用のコンソールデバッグと Unity 用の IL2CPP デバッグが提供され、Godot のサポートが改善されています。このリリースでは、エディター内の AI プロンプトやカスタマイズ可能なチャットモデルなど、AI Assistant の機能も拡大されています。このリリースは、コードのクリーンアップ、命名規則、およびリモート開発の強化によって締めくくられています。

主な更新内容

.NET 9 のサポート

最新バージョンの Rider には以下の内容が含まれています。

  • 新しい SDK のプロジェクトテンプレートのサポート。
  • 新しい SDK をターゲットにしたプロジェクトを作成、実行、デバッグする機能。
  • params コレクション、partial プロパティ、<0>field キーワードのプレビューなど、最新の C#13 機能のサポート。

Rider 2024.3 で強化された C# 13 のサポートについては、ブログをご覧ください。

.NET プロジェクト用 Windows フォームデザイナー .NET 6.0+

Windows フォームデザイナーが .NET 6.0 以降をターゲットとするプロジェクトをサポートするようになったため、Windows フォームアプリケーションの UI を作成、表示、および変更できるようになりました。これにより、既存の .NET Framework 用の Windows フォームデザイナーとほぼ同等の機能が得られます。

ほとんどの DevExpress コントロールには対応していますが、Telerik と Infragistics のコントロールのサポートにはまだ制限があり、VB.NET の Windows フォームアプリケーションはサポートされていないことにご注意ください。

デバッグ中に個別のスレッドを凍結および凍結解除

マルチスレッドアプリケーションをより精密に制御できるようにするため、Rider 2024.3 では個別のスレッドをデバッグ中に凍結および凍結解除できる機能を導入しています。この機能を使用すると、任意のスレッドを右クリックして Freeze(凍結)を選択し、アプリケーションの他の部分に影響を与えることなくそのスレッドの実行を一時停止できます。再開の準備ができたら、そのスレッドをもう一度右クリックして Unfreeze(凍結解除)を選択すると、スレッドの実行を再開できます。この機能は、.NET および .NET Framework をターゲットとするプロジェクトでのみ使用できます。

コンソールでのネイティブコードの実行とデバッグ ゲーム開発 Unreal Engine

Rider 2024.3 はすべての主要コンソールに対して C++ の実行とデバッグのサポートを導入することで、大きなマイルストーンを達成しています。サポートの対象にはカスタムエンジンや Unreal Engine で書かれたゲームが含まれます。このサポートはリクエストに応じてのみ提供されるものであり、利用するにはコンソールの正式な開発プログラムに参加している必要があります。こちらで詳細をご覧ください。

ゲーム開発に関するその他の更新

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

ツールチップの色付け

このリリースでは、C# 関連のほぼすべてのエラー、警告、通知メッセージをレビューし、可能な箇所にテキストの色付けを導入しました。

約 600 件のメッセージがアップグレードされ、ツールチップが読みやすく構造化されました。このツールチップに含まれるコード要素には、エディターの見慣れた色が使用されています。

Run(実行)ウィジェット: 複数の構成を同時に起動

最新の Run(実行)ウィジェットでは Ctrl を押しながらデバッグアイコンをクリックすることで、複数の構成を同時に起動できるようになりました。すべての実行中の構成に対してコントロールも表示されるため、簡単に管理できるようになっています。

デフォルトのタブ数上限の引き上げ

エディター内のデフォルトのタブ数の上限が 30 に引き上げられ、開いたままにできるタブの数を増やせるようになりました(ただし、最終使用時間が最も古いタブは IDE によって閉じられます)。この設定は、Settings(設定)| <0>Editor(エディター)| <0>General(一般)| <0>Editor Tabs(エディタータブ)で調整できます。

新しいターミナルの UI の更新

新しいターミナルの UI をパディングを減らした比較的コンパクトなデザインに更新することで、画面の使用が最適化されました。パディングを減らしてスペースを節約することで、可読性を犠牲にすることなくコマンド操作時の視認性を向上させています。

C# のサポート

C# 13 関連の更新

最新リリースの Rider では、C# 13 に関連する以下の最新機能のサポートが導入されています。

  • 新しい params コレクション: params キーワードがさまざまなコレクション型と連携するように拡大され、追加のメモリ割り当てを必要とせずに、より効率的なメソッドシグネチャーを使用できるようになりました。
  • partial プロパティ: partial プロパティのサポートが追加され、プロパティアクセサーの実装を複数のファイルに分散できるようになり、コードベースの柔軟性と整然性が向上しました。
  • 新しい lock 型: スレッドの同期効率を高めるため、新しい System.Threading.Lock 型が導入され、従来の lock ステートメントよりもパフォーマンスが改善されました。
  • オーバーロードの解決の優先度: メソッドオーバーロードの解決をより適切に制御できるようにし、複雑なシナリオにおいて開発者が呼び出されるオーバーロードの優先度を指定できる新しい属性が提供されています。
  • field キーワード: field キーワードにプレビュー機能が追加されました。これにより、自動プロパティのバッキングフィールドに直接アクセスできるようになるため、プロパティのロジックが単純化されます。

Rider と ReSharper における C# 13 の機能のサポートについては、ブログをお読みください。

コードスタイルとクリーンアップ

コードのクリーンアップ

Rider 2024.3 ではより堅牢なパフォーマンスを得られるようにするため、コードのクリーンアップを一新しました。問題を徹底的に解決し、アナライザーの精度を強化するため、範囲指定のクイックフィックスと同じエンジンを使用するようになりました。ファイル処理を最適化するため、並列前処理も追加されています。

また、ファイルごとに Code Cleanup(コードのクリーンアップ)プロファイルを選択するか、特定のファイルのクリーンアップを省略するかを選択できるようになりました。

コードの整形

さらに柔軟性を高めるため、新しい整形オプションが導入されました。

  • 等価 = 演算子の折り返しを制御する新しいオプション。
  • 新しい Indent ‘break’ from ‘case’('case' の 'break' をインデントする)オプション。
  • 新しい Treat ‘case’ statements with ‘break’ as simple('break' ステートメントのある 'case' ステートメントを単純なステートメントとして処理する)オプション。

命名スタイル

命名規則をより正確に調整するための新しいオプションを 2 つ追加しました。

  • ローカル関数に Local functions with ‘async’('async' 付きのローカル関数)と Task-returning local functions (not ‘async’)(タスクを返すローカル関数 (非 'async'))の 2 つのオプションが備わりました。
  • 名前に async サフィックスが付いており、async 修飾子はついていないものの Task のような型を返すメソッドをサポートするため、メソッドに新しい Task-returning method (not ‘async’)(タスクを返すメソッド (非 'async'))オプションが追加されました。これは async 修飾子の使用が許可されていないものの、実装では Task 型を返すインターフェースでメソッドを宣言する場合に役立ちます。

コードのコメント

複数行の TODO コメントのサポート

Rider 2024.3 では複数行の TODO コメントがサポートされ、後続行のインデントが付いたテキストを同じ TODO 項目の一部として処理できるようになりました。この機能強化により、コードベース内で関連するメモとタスクをグループ化しやすくなっています。このリリースでは複数行の TODO にコンテキストを追加できるようになったため、可読性が高まり、整理しやすくなっています。

コードカバレッジ dotCover dotUltimate

継続的テストワークフローの改良

継続的テストのワークフローを次のように改良し、使いやすさを改善しました。

従来は各ユニットテストセッションが継続的テストセッションに変換され、複数のセッションを実行中に混乱が生じる場合がありました。

このリリースでは、単一の独立した継続的テストセッションになりました。この変更により、テストワークフローをより簡単に管理し、把握できるようになっています。

継続的テストのインジケーター

Rider の継続的テストのアイコンが新しくなりました。このアイコンには、失敗したテストの有無を含む現在のテストの状態が表示されます。また、継続的テストの有効化または無効化、カバレッジ結果の表示、コードハイライトの切り替えなど、いくつかのクイックアクションも実装されています。

コードカバレッジのハイライト色の調整

エディターで使用されるコードカバレッジのハイライト色を調整できるようになりました。この色はガター内のカバレッジマーカー、行の背景、およびカバレッジの進捗バーに適用され、それぞれを個別に構成することができます。

F# のサポート

すべての最近の言語機能と改善をエディターのツールに反映するため、F# コンパイラーを更新しました。

型ヒント

F# のサポートにより、パターンとメンバーの推論される型のヒントが表示されるようになりました。新しい Push-to-Hint(プッシュヒント)の実装により、ローカルな値の型を確認しやすくなっています。

コード編集

コード補完で関数、値、union ケース、およびアクティブなパターンをインポートできるようになりました。貼り付けられたコードを更新できる新しいクイックフィックスもあります。

関数式をパラメーターに変換し、それを新しいコンテキストアクションに一致させることができます。

C# の相互運用性

参照された C# プロジェクトを解析する際のパフォーマンスを大幅に改善し、さまざまな誤検出エラーを解決しました。

その他の変更点、修正、および新機能は、GitHub のページに記載されています。

バージョン管理

ウェルカム画面のブランチ名

ウェルカム画面にブランチ名が表示されるようになりました。複数のプロジェクトバージョンを扱う場合でも混乱することなく、作業ディレクトリを簡単に切り替えることができます。

バックグラウンドのコミット前チェックを無効化するオプション

Settings(設定)| Version Control(バージョン管理)| Commit(コミット)にある新しい Run advanced checks after a commit is done(コミット完了後に高度なチェックを実行する)オプションを使用することで、コミット処理中のバックグラウンドチェックを管理できるようになりました。この設定により、コミット後にテストとインスペクションを実行するかどうかを決定できます。コミットが行われる前にこれらのチェックを完了させたい場合は、このオプションを無効にしてください。

Find in Files(ファイル内検索)の更新

Find in Files(ファイル内検索)機能が強化され、Project Files Excluding Git-Ignored(gitignore ファイルを除くプロジェクトファイル)という新しい検索範囲が追加されました。このオプションを使用すると .gitignore ファイルで無視対象に指定されているすべてのファイルが検索結果から除外され、プロジェクト全体を検索する際に関連性のあるコードに専念しやすくなります。

リモート開発

Rider のリモート開発が正式にベータを卒業しました!

型付けの安定性に特に注力したベータ段階での最終調整を終え、Rider のリモート開発機能がユーザーが使用するすべてのコア開発ワークフローに完全に対応できるようになりました。

コーディングやデバッグからバージョン管理に至るまで、すべてがローカルインスタンスとほぼ同じくらいシームレスに動作するようになり、リモート環境で円滑かつ強力なエクスペリエンスを得られるようになりました。

サポートされているワークフローの詳細については、ブログをご覧ください。

ゲーム開発

Unreal Engine

このリリースでは、Windows での子プロセスを自動的にデバッグできるようになりました。デバッグセッションで作成されたプロセスはそのセッションに含まれ、子プロセスのブレークポイントにヒットするようになります。

また、デバッグする子プロセスとスキップする子プロセスを決めるルールを構成できるようになりました。

Rider でコンソールでのデバッグがサポートされるようになっただけでなく、このリリースでは Verse プログラミング言語のサポート、新しいコードインサイト機能、C++ アプリケーションのホットリロードを行えるようにする Live++ との統合も導入されています。

新しいコードインサイト機能の詳細については、ReSharper C++ の新機能をご覧ください。

Unity

Rider 2024.3 では IL2CPP ビルドでのデバッグをより快適にする改善が施され、Mono と同じ機能が提供されるようになりました。そのため、デバッガーに Active Scene と this.gameObject、および GameObject インスタンスの Children と Components が表示されます。また、Immediate ウィンドウ、Collection(コレクション)ビュー、および IL2CPP ビルドの問題も修正されています。

Unity プロファイラーのコールスタックで項目をダブルクリックした際にソースファイルが Rider で開くようになりました。また、プロジェクト内のファイルを検索する際には Rider が不要なコンテンツをより適切に除外できるようになりました。

Godot

このリリースでは、C# のホットリロードのサポートと Godot に関する重大なバグが修正されています。 Rider がゲームの実行中に C# コードに加えた変更をアプリケーションに適用できるようになりました。

Rider は、Godot 4.4 で導入される予定の GDScript のデバッグに関する更新にも対応しています。この更新では、古いバージョンの Godot で提供中のものよりもはるかにリッチなオブジェクトプロパティビューが提供される予定です。

ウェブ開発

ディレクトリの検索結果を明確化

プロジェクトディレクトリで Find in Files(ファイル内検索)を使用する際、Rider がデフォルトでnode_modules の結果を除外するようになりました。 Settings(設定)| Advanced Settings(高度な設定) の Search in library files when “Directory” is selected in Find in Files(ファイル内検索で "ディレクトリ" が選択されている場合はライブラリファイル内を検索する)オプションを有効にすると、以前の動作に戻ります。

フレームワークコンポーネントの移動操作と名前変更の改善

Vue、Svelte、および Astro コンポーネントのエディター内ヒントを強化しました。 Show component usages(コンポーネントの使用箇所を表示)アクションがインポートとマークアップテンプレートの両方で使用箇所を検索するようになりました。また、通常のファイル参照を検索する際にコンポーネントの使用箇所を除外するための Show Component Usages(コンポーネントの使用箇所を表示)フィルターを追加しました。 Rename(名前の変更)リファクタリングも更新され、コンポーネントファイルの名前を変更する際に使用箇所を含めるオプションが追加されました。

Tailwind CSS クラスの色のプレビュー

Tailwind CSS クラスの色のプレビューがエディターでインライン表示されるようになったため、色を区別しやすくなりました。言語サーバープロトコル(LSP)の textDocument/documentColor メソッドのサポートを追加したことで、すべての LSP ベースのプラグインでこの機能が初期状態で提供されるようになりました。

詳細については、WebStorm の新機能ページをご覧ください。

データベース操作

Text-to-SQL: AI によって生成された結果に対するエディター内差分表示

エディター内での AI Assistant の操作エクスペリエンスを改善しました。コードに何らかの処理を行うように AI Assistant に依頼した際、エディターエリアに元のコードと生成されたコードの差分が表示されるようになりました。 AI Assistant の提案は違う色でハイライトされ、ガターには Revert(元に戻す)アイコンが表示されます。また、同じ場所で生成されたクエリを編集することもできます。自分で行った変更も同じようにハイライトされます。たとえば AI Assistant にクエリでより多くのデータを取得するように依頼した後、生成された結果に ORDER BY 句を追加することができます。

AI Assistant による SQL エラーの処理

AI Assistant によって SQL クエリの実行エラーを処理するための 2 つの便利なアクションを実装し、エラーメッセージ領域で使用できるようにしました。 Explain with AI(AI で説明)は、自動的に送信されるプロンプトとエラーを説明する AI Assistant の回答を含む AI チャットを開きます。 Fix with AI(AI で修正)アクションは、クエリ実行エラーに対する修正をエディター内に生成します。

詳細については、DataGrip の新機能ページをご覧ください。

AI Assistant

コンテキスト管理の改善

このアップデートでは、AI Assistant が提案時に考慮するコンテキストの管理をより透明化し、直感的にしました。改良された UI ではコンテキストとして含まれるすべての要素を表示し、管理できるようにすることで、完全な可視性と制御を実現しています。開いているファイルとその中で選択されたコードがコンテキストに自動的に追加されるようになったため、必要に応じてファイルの追加と除去を簡単に行い、ワークフローに合わせてコンテキストをカスタマイズできます。また、プロジェクト全体の説明を添付し、コードベース全体にわたって AI Assistant の回答をガイドすることができます。

チャットモデルプロバイダーの選択オプション

優先する AI チャットのモデルを Google Gemini、OpenAI、またはマシン上のローカルモデルから選択できるようになりました。この選択肢の拡大により、特定のワークフローに合わせて AI チャットの回答をカスタマイズできるようになり、より適合性の高いパーソナライズされたエクスペリエンスを得られるようになりました。

デコンパイラ

アセンブリマニフェストの IL コード

IL Viewer(IL ビューアー)ツールウィンドウに以下を含むアセンブリマニフェストの IL コードが表示されるようになりました。

  • 名前、カスタム属性などのアセンブリとモジュールの情報。
  • 参照先のアセンブリとモジュール。
  • 転送された型。
  • ファイルとリソースのリスト。

この IL コードは、テキストエディター内のアセンブリまたはモジュール属性上、または外部アセンブリの <AssemblyName>.cs ファイル内のどこかにキャレットを置くと表示されます。

プライマリコンストラクターのサポート

プライマリコンストラクターを宣言するクラスを操作する際、デコンパイラーがコンストラクターとそのパラメーターを正しく表示するようになりました。デコンパイルされたコードから直接どのようにオブジェクトがインスタンス化されるかを全体的に把握できます。