Rider 2024.2 の新機能

Rider 2024.2 では複数のサポート対象言語に対応した行全体コード補完、ドキュメントコメントがインラインでレンダリングされるリーダーモード、デバッグ用の新しい Tasks(タスク)タブとタスク依存関係グラフが導入され、クラスメンバーへの移動操作が改善されています。ゲーム開発関連の更新には、Godot プラグインのバンドル化や Unreal Engine デバッグの強化などのハイライトが含まれます。 このリリースでは、C# 13 の機能の初期サポートを含む .NET 9 Preview SDK のサポートも導入されています。最新の機能セットはコード補完の強化や AI 支援による VCS の競合解決などの AI Assistant の改善によって強化されています。

ダウンロード

非商用利用の場合は無料

主な更新内容

SLNX のサポート

新機能2024.2.6

Rider でついに Solution File Persistence Model のサポートが導入されました。このモデルはソリューションファイルの .slnx 形式とも呼ばれており、あらゆるソリューションデータを分かりやすく合理的に格納するための最新の手法です。Rider の Solution Explorer から直接この新しい形式に簡単に切り替えられるようになりました。ソリューションノードのコンテキストメニューを呼び出し、Save As…(別名で保存)から Save as XML Solution (.slnx)(XML ソリューションとして保存(.slnx))を選択するだけです。すると、新しく作成された .slnx ファイルからソリューションを開いて新しい形式へ円滑に移行するためのオプションが表示されます。

C#、C++、JS/TS、CSS の行全体コード補完

Rider 2024.2 では、現在のファイルのコンテキストに基づいてステートメントを補完する単一行の補完候補をグレー表示で提供する新しいタイプのコード補完のサポートを導入しました。この補完機能には、インターネット経由でコードを送信することなくローカルで動作する言語モデルが使用されています。

リーダーモード

Rider の新しいリーダーモードはライブラリと読み取り専用ファイル(デコンパイル済みのものを含む)の可読性が大幅に向上するように設計されています。このモードでは C#、C++、および F# のドキュメントコメントだけでなく、C# の仮想インデントもインラインでレンダリングされます。

Tasks(タスク)タブとタスク依存関係グラフ

Debug(デバッグ)ツールウィンドウに Tasks(タスク)タブが新たに追加されました。このタブには System.Threading.Tasks.Task オブジェクトと ValueTask オブジェクトの詳細なインサイトが表示されるため、非同期操作の管理と監視を行いやすくなっています。

タスクはテーブル形式かグラフ形式で表示できます。テーブルビューではタスクの状態とメタデータを確認できますが、グラフビューではタスク依存関係が表示されるため、デッドロックの特定に役立ちます。

クラス内のメンバーへの移動操作の改善

Rider の Navigation(ナビゲーション)バーが C#、C++、VB、および F# 言語向けに改善されました。プロジェクトルートから作業中のファイルまでのパスに現在のキャレット位置にあるシンボルも含められるようになりました。クラスを含むチェーン内の任意の項目をクリックすると、その子ノードを表示するドロップダウンポップアップが現れます。このポップアップからワンクリックでクラス内の任意のメソッドに直接移動できるようになっています。

ゲーム開発

この JetBrains Rider の最新アップデートはゲーム開発に関連する画期的な改善が満載です。以下は注目すべき改善点のほんの一部です。

  • Rider 2024.2 より、Godot プラグインがバンドルされるようになりました。このアップデートでは GDScript の構文ハイライト、コード補完、Find Usages(使用箇所の検索)、およびデバッグのサポートも導入されています。
  • Monitoring(監視)ツールウィンドウで C++ アプリケーション、Unity、および Unreal Engine プロジェクトがサポートされるようになりました。
  • Rider 2024.2 では Unreal Engine のデバッグエクスペリエンスも向上しており、スマートポインターと文字列の評価が改善され、新しい Modules(モジュール)タブが導入され、エラーメッセージが強化されています。

ゲーム開発関連の更新に直接アクセスして内容をご覧ください。

.NET Aspire プラグインのバンドル化

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

.NET Aspire プラグインはこのリリースの時点で Rider とバンドル化されました。このプラグインには対応するプロジェクトテンプレートが備わっており、新しいソリューションをセットアップする際にそれを選択できるようになっています。

.NET 9 Preview SDK のサポート

  • 新しい SDK のプロジェクトテンプレートのサポート。
  • 新しい SDK をターゲットにしたプロジェクトを作成、実行、デバッグする機能。
  • 新しいエスケープ文字、params 修飾子のリファクタリング、ref struct インターフェースを含む C# 13 の最新機能の初期サポート。

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

新しい UI のデフォルト化

Rider 2024.2 より、各種 JetBrains IDE の 2022.3 リリースで初めて導入された通称「新しい UI」がついにすべてのユーザーのデフォルトになりました。

以前の Rider の外観がお好みの場合は、対応するプラグインをインストールすることでクラシック UI を使用できます。

複数選択肢のプロジェクト/ソリューションテンプレートパラメーターのサポート

特定のプロジェクトテンプレートには、複数の選択肢から選んで構成できるパラメーターが含まれています。たとえば、クロスプラットフォームアプリケーションのテンプレートには複数の異なるターゲットオペレーティングシステムや言語ロケールの選択肢がある場合があります。このようなケースに対処するため、Rider の New Solution(新しいソリューション)ダイアログ内で特定のプロジェクトパラメーターに複数の値を選択できるようにしました。

Usages of(使用箇所)ポップアップの UI 改善

コードベース内のクラス、メソッド、または変数の使用箇所を検索する際の Usages of(使用箇所)ポップアップ(Cmd/Ctrl+Click で呼び出されるもの)に複数のフィルターオプションが追加され、その外観がさらに合理化されました。

Customize Main Toolbar(メインツールバーのカスタマイズ)ダイアログの改善

Customize Main Toolbar(メインツールバーのカスタマイズ)ダイアログのレイアウトと UI 要素の動作を改良したことにより、より直感的で整然としたデザインになりました。メインツールバーでより簡単にアクションの検索、追加、および削除を行えるようになりました。

エディター

C#、C++、F# のドキュメントコメントのインラインレンダリング

これらのコメントをタグが混在する長いテキストで表示するのではなく、インラインレンダリングによって視認性に優れた形式に変換し、リンクとコードブロックを追加するようにしました。分かりにくいタグに悩まされることはもうありません。すべてをより明確に読み取れるようになっています。インラインレンダリングはあらゆる C#、C++、または F# ファイルで可読性を向上させるのに役立ちます。

C# と C++ の構文ハイライト

C# と C++ に最適化された構文ハイライトのサポートを追加しました。この機能は、コード内のパラメーターやローカル変数を色付けして区別しやすくことを意図したものです。構文ハイライトは Settings(設定)/Preferences(環境設定)| Editor(エディター)| Color Scheme(カラースキーム)| Language Defaults(言語のデフォルト)| Semantic Highlighting(構文ハイライト)で有効化または無効化できます。

Markdown ファイルでの数学構文のサポート

Rider で Markdown ファイルの数式をネイティブにレンダリングできるようになりました。Markdown を使用する際は $ を使用してインライン数式を挿入し、$$ を使用して数学コンテンツを含むコードブロックを挿入できます。

言語固有の行の固定表示設定

行の固定表示をより正確に設定し、その表示対象言語を選択できるようになりました。この機能は Settings(設定)/Preferences(環境設定)| Editor(エディター)| General(一般)| Sticky Lines(固定行)を開くか、エディター内で固定行を右クリックしてコンテキストメニューを呼び出すことで、ユーザーの好みに合わせて調整することができます。

C# のサポート

最新リリースの Rider では、プライマリコンストラクター、コレクション式の強化、および配列の作成とコレクションの型変換に対応するコンテキストアクションの改善を含む C# 12 機能のサポートが強化されています。また、Rider 2024.2 では、ref struct インターフェースの実装、新しい \e エスケープシーケンス、および params 修飾子に対応するリファクタリングを含む C# 13 の初期サポートも導入されています。

このアップデートには以下の内容も含まれています。

  • 構造体型の等価性解析の強化
  • 分岐構文での重複を減らす Extract common code(共通コードの抽出)インスペクション
  • ToString() 書式指定子コード補完でのカルチャプレビュー
  • 脆弱な C 形式のキャストを明示的な型アノテーションに置換するためのキャスト式解析

ReSharper および Rider 2024.2 で導入された C# サポートの最新の更新情報については、こちらのブログ記事をご覧ください。

F# のサポート

F# Interactive(F# インタラクティブ)

F# スクリプトのデバッグのサポートを追加し、F# Interactive(F# インタラクティブ)ツールウィンドウにさまざまな改善と修正を行いました。

拡張メンバーのインポート

拡張メンバーのインポートがコード補完と対応するクイックフィックスでサポートされるようになりました。

新しいコンテキストアクション

部分関数適用と F# 8 のショートラムダを普通のラムダ式に変換できるようになりました。

パターン内での名前の提案

パターンに対してコード補完を使用する際、複雑なパターン内でも Rename(名前の変更)リファクタリングやパターン分解アクションと同じロジックで値の型に応じた名前がインテリジェントに提案されるようになりました。

F# のサポートに関するその他のバグ修正と改善点については、こちらをご覧ください。

AI Assistant

AI Assistant の全般的な改善

JetBrains AI Assistant 2024.2 ではコード補完が強化され、エディター内でのコードを生成できるようになりました。AI チャットが GPT-4o を使用するようになり、ファイル参照によってコンテキストの認識精度を向上させられるようになりました。新機能にはターミナルに統合された AI によるコマンドの生成、AI 支援による VCS の競合解決、およびカスタマイズ可能なプロンプトによるドキュメントの作成があります。また、Settings(設定)で AI チャットとの対話に使用する言語を指定できるようになりました。

動的プログラム解析の Explain with AI(AI で説明)

Dynamic Program Analysis(動的プログラム解析)(DPA)ツールウィンドウにメモリの割り当てに関連する問題やデータベースの問題に使用できる Explain with AI(AI で説明)ボタンが実装されました。この AI 搭載機能は Dynamic Program Analysis(動的プログラム解析)ツールウィンドウ内で AI Assistant による詳細な説明と適用可能な修正に関するアドバイスを提供することで、どんなに複雑なメモリの割り当てやデータベースの操作に関する問題でもすぐに理解して解決できるように支援します。

バージョン管理システム

Local History(ローカル履歴)ダイアログの更新

Local History(ローカル履歴)ダイアログの UI をモダンなものにしました。また、ディレクトリへのアクセス時にダイアログの変更のリストの横に差分ビューが表示されるようになったため、変更を理解しやすくなっています。

Log(ログ)ツールウィンドウのユーザーエクスペリエンス強化

Log(ログ)ツールウィンドウに関連するすべての設定が専用の設定ページにまとめられました。Settings(設定)/Preferences(環境設定)| Version Control(バージョン管理)| Log(ログ)から、または Log(ログ)ツールウィンドウのツールバーにある新しいドロップダウンメニューからアクセスできます。また、Git ログをエディターのタブとして開けるようになったため、作業スペースがさらに広くなり、コミットのリストと関連する詳細の間を移動しやすくなりました。このツールウィンドウのツールバーにある同じドロップダウンメニューからも同じ操作を実行できます。

ゲーム開発

Godot

皆さんに朗報です!Rider 2024.2 では Godot プラグインがバンドル化され、すべての主要ゲームエンジンが初期状態でサポートされるようになりました。このサポートには、Godot エディターおよびゲームの実行/デバッグ構成、InputAction および NodePath 文字列リテラルの補完、現在のシーンと子ノードを表示するためのデバッガー拡張機能など、C# の中で Godot を扱うためのサポートが含まれます。

Rider 2024.2 にはさらに以下の新機能も追加されています。

GDScript のサポート

Godot エディターが提供する LSP のサポートにより、Rider が構文ハイライト、コード補完、 Find Usages(使用箇所の検索)などを使用した GDScript の編集をサポートするようになりました。Rider はコミュニティが開発した GDScript プラグインともうまく連携します。このコミュニティのプラグインがインストールされている場合、エラー処理には Godot LSP が使用されますが、Find Usages(使用箇所の検索)にはこのプラグインが使用されます。

GDScript のデバッグ

このリリースでは、GDScript のデバッグも新たにサポートされています。Rider でデバッガーを接続するのに必要な実行構成を生成した後、Rider の強力なデバッグ機能をフルに使用して GDScript ゲームをデバッグできるようになります。

AI Assistant 統合

Rider の AI Assistant は Godot プロジェクトに関するコンテキストによって強化されます。AI Assistant は Godot プロジェクトで作業中であることを認識し、環境に合わせた回答を提供します。

Unreal Engine

デバッガーの改善

このリリースでは、ネイティブデバッガーに大規模な改善が行われています。特にスマートポインターや文字列の等価比較、データブレークポイント、最適化されたコードの操作に関する評価が大幅に改善されています。Debug(デバッグ)ツールウィンドウに新しい Modules タブが追加され、デバッグ中に読み込まれるすべての動的ライブラリが表示されるようになりました。エラーメッセージも改善されています!

より詳しい変更内容については、こちらのブログ記事をご覧ください。

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

Rider 2024.2 では前回のリリースで導入されていたものの、C# および .NET アプリケーションのみをサポートしていた Monitoring(監視)ツールウィンドウのサポート対象を拡張し、より多くのアプリケーションタイプに対応できるようにしています。これにより、CPU とメモリの使用量だけでなく、その他のパフォーマンスメトリクスの監視が可能になっています。この監視は Unreal ゲームを含む C++ アプリケーションに対して自動的に機能します。詳細はドキュメントをご覧ください。

新しいインスペクションとコードインサイト

このリリースには、C++ および Unreal コード用の新しいインスペクションがいくつか追加されています。Rider が BeginDestroy および GetLifetimeReplicatedPropsSuper への呼び出しが欠落していることを検出し、Alt+Enter クイックフィックスを提供するようになりました。テンプレートトレイトも認識し、構造体に必要なメソッドがあることを確認し、欠落している場合には素早く生成します。さらに、Rider が Unreal のカラータイプを認識してハイライトし、Alt+Enter でカラーピッカーで直接呼び出せるようになっています。

行全体コード補完

クラウドに接続せずにデバイス上のモデルを使用する Rider の行全体コード補完が C++ をサポートするようになりました。これにより、サードパーティにコードを共有することなく AI ベースのコード補完のメリットを得られるようになりました。

構造体メンバーのレイアウト情報

前回のリリースで導入された機能をさらに改良し、構造体メンバーのクイックドキュメントツールチップにレイアウト情報を表示するようにしました。メンバーにマウスポインターを合わせると、そのフィールドのサイズ、アライメント、およびその親構造体の開始位置からのオフセットが表示されます。この情報はデータのレイアウトを実際に理解するのに役立ちます。

そして最後に…

もちろん、舞台裏ではこの他にも多数の作業が行われています。プリプロセッサディレクティブや現在指定されているアクセス指定子などを 行の固定表示に含めるように大幅に改良することで、コードが public であるか private であるかを常に把握できるようにしました。

さらに、低レベルテストのサポート、ヘッダーファイルの名前が変更された場合の .cpp ファイルの名前変更の自動化(逆の場合にも対応)、「Why is Rider suggesting this?(Rider がこれを提案する理由)」Alt+Enter メニューアクションなどの比較的小さな新機能や修正もあります。

Unity

Monitoring(監視)のサポート

Rider 2024.1 では非常に便利なMonitoring(監視)ツールウィンドウが導入され、CPU とメモリの使用量、およびその他のパフォーマンスメトリクスを追跡できるようになりました。 このリリースではそのサポート対象に Unity が追加されたため、Unity エディターにアタッチする際に CPU とメモリの使用量を確認できるようになりました。

Tuanjie のサポート

Rider が Unity China の Tuanjie エディターをサポートするようになったため、オリジナルの Unity エディター向けに提供されている機能セットを使用できるようになりました。

シェーダーバリアントに関する更新

Rider のシェーダーバリアントキーワードのサポートが計算シェーダーに対応し、プリプロセッサブランチでハイライトを有効にするキーワードを有効化または無効化できるようになりました。Rider がシェーダーコンテキストウィジェット内でシェーダーパスの名前を表示するようになったため、シェーダーの使用元を簡単に確認できます。

このリリースには、Burst インスペクションの実行中に発生する誤検出を修正するための更新を含む比較的小さな通常の機能と修正も含まれています。

ウェブ開発

TypeScript ファイルの直接実行とデバッグ

TypeScript ファイルの実行とデバッグを追加設定なしで行えるようになりました。ファイルのコンテキストメニュー、Run(実行)ウィジェット、Current File(現在のファイル)構成といった各種のエントリポイントから TypeScript ファイルを実行できます。

主要 JS フレームワークでのサポートの改善

Rider 2024.2 はファイルシステムベースのルーティングを使用するフレームワークのパスを解決できます。プロジェクトのファイルシステムに基づいてリンクパスを解決することにより、Next.js、Nuxt、SvelteKit、および Astro の自動補完と移動操作を提供します。新しい Svelte コードスニペットとレンダータグもサポートされています。また、Astro の言語サーバープロトコル(LSP)のサポートを実装し、Vue LSP を Vue Language Tools 2 にアップグレードすることで、コード補完と全体的な開発者エクスペリエンスを改善しました。

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

データベース操作

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

  • スクリプト型のローダー: カスタムのスクリプト型ローダーを使用して Excel、JSON、Parquet、および Shapefile 形式のデータをインポートできます。
  • フローティングツールバーの関連する行: テーブルセルのフローティングツールバーを使用して関連する行にアクセスできます。
  • 地理データビューアー: CSV、XLSX、およびその他の形式の地理データを詳しく調べることができます。

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

リモート開発

Code With Me(CWM)

このリリースでは、CWM での入力操作をさまざまな面で改善しています。コード補完の改善、よりシームレスなコード編集、構文ハイライトの改善、ライブテンプレートの改良、より強力な Undo(元に戻す)機能といった機能強化が行われています。より詳細な技術面での更新状況については、こちらをご覧ください。

CWM をぜひお試しになり、ご感想をお聞かせください。

プラグイン

dotTrace

dotUltimate

パフォーマンスの改善

Call Tree(呼び出しツリー)および Hotspots(ホットスポット)ビューでのタイムラインスナップショットとデータの処理の高速化など、dotTrace にいくつかのパフォーマンス改善が行われました。

dotMemory

dotUltimate

新しいビュー

組み込みの dotMemory プラグインにスナップショットを自動的に解析し、複数の異なる dotMemory ワークスペースに含まれるスナップショットを比較する機能が追加されました。これに伴い、以下のビューが追加されています。

  • 自動メモリインスペクション: dotMemory に Inspections(インスペクション)ビューが追加され、自動検出されたメモリの問題がそこに表示されるようになりました。
  • クロスワークスペーススナップショットの比較:異なるプロファイリングセッションのスナップショットを比較し、メモリをより包括的に解析できるようになりました。

これらの機能は dotMemory のスタンドアロンバージョンにも提供されています。

インスタンス検索の改善

Instances(インスタンス)ビューに新しいフィルターオプションを追加しました。

  • 文字列値による検索: フィルターフィールドに文字列値を入力すると、dotMemory が一致する文字列をハイライトするようになりました。これにより、特定の文字列インスタンスをその内容を基に見つけやすくなりました。
  • 文字列値の正規表現サポート: 正規表現を使用して高度な検索を行えるようになりました。たとえば、^nAsso.{5,}ID$nAssociatedObjectID.nAssociatedObjectID に一致します。
  • オブジェクトアドレスによる検索: オブジェクトインスタンスをそのメモリアドレスで検索することも可能です。これは、特定のオブジェクトを直接追跡する場合に役立ちます。

Sunburst(サンバースト)チャートによる Call Tree(呼び出しツリー)の可視化

Call Tree(呼び出しツリー)を Sunburst(サンバースト)チャートとして表示し、メモリ割り当て量が最も多い関数をハイライトできるようになりました。

.NET Watch Run Configuration プラグインのバンドル化

Rider 2024.2 からは .NET Watch Run Configuration プラグインが Rider にあらかじめ同梱されるようになりました。そのため、JetBrains Marketplace から .NET Watch Run Configuration をダウンロードする必要はありません。dotnet-watch の機能をソリューション内ですぐに活用できるようになっています。

このプラグインの機能についての詳細は、別のブログ記事をご覧ください。

デコンパイラー

全般的な機能強化

  • ラムダパラメーター: オプションおよびパラメーター配列のパラメーターを持つラムダのデコンパイルを新たにサポートすることで、デコンパイル済みコードの可読性と正確性を向上させました。
  • ラムダの属性: ラムダ式での属性の処理が改善され、すべての関連するメタデータがデコンパイルされた出力に正確に反映されるようになりました。
  • 保護されたアセンブリ: 保護されたアセンブリをデコンパイルするかどうかを指定する機能が導入され、より包括的にコードを調査できるようになりました。

外部ソースの処理

  • SrcSrv と SourceLink を含む PBD: デコンパイラーが SrcSrv と SourceLink の両方を含む PDB ファイルからソースコードへの移動をサポートするようになりました。
  • プリプロセッサディレクティブ: デコンパイラーがターゲットフレームワークまたは関連するアセンブリの Portable PDB のプリプロセッサディレクティブ(NET6_0_OR_GREATER)を正しく認識するようになったため、コードが正確に表現されるようになりました。

ビルド構成の検出

Assembly Explorer(アセンブリエクスプローラー)ツールウィンドウがアセンブリのビルド構成を検出して提示するようになったため、アセンブリのコンパイルコンテキストに関するより明確なインサイトを得られるようになりました。

その他

JBR21 への移行

現在、JetBrains Runtime 17(JBR17)から JetBrains Runtime 21(JBR21)への移行が進められています。Rider 2024.2 からは IDE のすべてのアップデートに JBR21 が使用され、高度なセキュリティとパフォーマンス、および Linux での Wayland レンダリングサポートが提供されます。

ローカライゼーションプラグインのバンドル化

IDE に日本語、韓国語、および中国語のローカライゼーションパッケージがバンドルされるようになりました。