ReSharper 2024.2 の新機能

ReSharper 2024.2 では、 ref struct インターフェースの実装、新しい \e エスケープシーケンス、params 修飾子のリファクタリングなど、C# 13 の初期の 機能セットを含む .NET 9 Preview SDK のサポートが導入されています。C++ のサポートに C++23 の機能、ツールチップの型レイアウト情報、および Unreal Engine プロジェクトのサポートの改善が含まれるようになりました。このリリースには初期段階の日本語、中国語、韓国語のローカライゼーションと非同期入力によるパフォーマンス改善のほか、言語モデルの改善、エディター内でのコードの提案、Explain with AI(AI で説明)機能による AI Assistant の機能強化も含まれています。

ダウンロード

無料 30 日間体験版をご利用可能です

.NET 9 Preview SDK のサポート

ReSharper 2024.2 では、新しいエスケープ文字、params 修飾子のリファクタリング、ref struct インターフェースといった C# 13 の機能の初期サポートを含む .NET 9 Preview SDK のサポートが提供されています。

C# のサポート

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

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

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

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

C++ のサポート

C++ のサポートが以下のように大幅に強化されています。

  • 多次元の添字演算子、#elifdef および #elifndef プリプロセッサディレクティブ、[[assume]] 属性などの C++23 で追加された機能のサポート。
  • ツールチップとクイックドキュメントポップアップにクラスとクラスフィールドの型レイアウトに関する詳細な情報(サイズ、アライメント、オフセット、パディングなど)が表示されるようになりました。
  • Unreal Engine プロジェクトでは ReSharper が構造体トレイトを認識し、構造体に必要なメソッドがあることを確認し、欠落している場合には素早く生成します。基底クラスのメソッドへの呼び出しの欠落は、新しいインスペクションによって検出されます。
  • Rename(名前の変更)リファクタリングに新しいオプションが追加され、ファイル名を変更する際に関連するファイル名と型を変更できるようになりました。
  • Clang-Tidy 18 への更新を行い、IWYU プログラムをサポートすることでコード解析を改善しました。

C++ 関連の更新の詳細については、ReSharper C++ 2024.2 の新機能をご覧ください。

ローカライゼーション

ReSharper 2024.2 では、日本語、韓国語、および中国語への初期段階のローカライゼーションが導入されています!一部の UI、コードインスペクション、ツールウィンドウ、および通知がローカライズされます。ReSharper をローカライズするには、ReSharper の Options(オプション)| Environment(環境)| General(一般)| Localization(ローカライゼーション)| Interface language(インターフェース言語)に移動し、ドロップダウンリストからご希望のオプションを選択してください。

または、Extension Manager(拡張機能マネージャー)を使用してローカライゼーションプラグインをインストールすることも可能です。完全な手順についてはこちらをご覧ください。

パフォーマンス

非同期入力の有効化

非同期入力は ReSharper を Visual Studio のプロセス外で実行させ、そのパフォーマンスを改善する継続的な取り組みのひとつです。ReSharper 2024.2 は、この重要な変更が取り込まれた製品の最初のバージョンです。JetBrains の社内テストでは、非同期入力を有効にすることで入力操作が大幅にスムーズになることが示されています。 課題トラッカーあなたの見解をお聞かせください。

AI Assistant

モデルとコンテキストの収集の更新

古い GPT 3.5 モデルと GPT 4 モデルをタスクに応じて GPT-4o と Google Bison にアップグレードしました。また、AI 補完と AI チャット用のコンテキストの収集を更新することで、この新しいモデルを使ってより関連性の高い結果を提供できるようにしました。

Ask AI

AI に新しい質問をするたびに AI チャットを開く必要がなくなりました。Ask AI(AI に質問)を呼び出すだけで、すぐに質問できます。

エディター内でのコードの提案と生成

JetBrains AI が XML ドキュメントの生成や空のメソッドの実装を行える場所をワンクリックした際に(または Alt+Enter を押した際に)通知するようになりました。このため、アクションリストで選択肢を手動で探す必要がなくなりました。

さらに、AI は回答をチャットにリダイレクトせず、エディターに直接入力します。その内容を確認して必要に応じて再生成することも、その場で追加情報を指定して結果を改善することも簡単に行えます。

AI コード補完の UI/UX 改善

AI による提案の表示方法を改良し、ReSharper の AI による複数行の補完提案と他の要素の提案を区別しやすくしました。Shift+Tab を押すことで、結果を再生成することも可能になっています。

Rename(名前の変更)と Extract Method(メソッドの抽出)での AI による名前の提案

変数とメソッドの命名は困難な場合があり、似たような名前のシンボルが多数存在する大規模なソリューションでは特に困難です。今回のアップデートにより、メソッド名を変更する際に AI が最適な名前を提案するようになりました。

デバッグと DPA に使用できる Explain with AI(AI で説明)

デバッグセッション中に遭遇した例外について、現在のコンテキストを離れることなく AI に説明を求められるようになりました。例外の横にあるボタンを押すと、チャット内に説明が表示されます。

AI Assistant が動的プログラム解析(DPA)が特定したメモリの割り当てに関連する問題とデータベースの問題も説明できるようになりました。DPA が問題を特定した後に Explain with AI(AI で説明)ボタンをクリックすると、コードを認識する AI が問題のコンテキストを解析し、説明と修正案を提供します。現在、この機能はメモリとデータベースの問題に対してのみ使用できます。

dotMemory

dotUltimate

インスタンス検索の改善

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

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

dotMemory プロファイラーへの改善についての詳細は、こちらをご覧ください。

dotTrace

dotUltimate

パフォーマンスプロファイリングツールの最新アップデートの内容:

  • Timeline(タイムライン)スナップショット処理の高速化によるパフォーマンスの改善。
  • すべてのプラットフォームで dotTrace ビューアーに新しいレンダリングエンジンを採用。
  • macOS と Linux 用のスタンドアロンバージョンに Options(オプション)ウィンドウを追加。
  • Windows の Timeline(タイムライン)スナップショットでカーネルイベントが欠落する問題を修正。
  • 各種の小規模な改善とバグ修正。

dotTrace プロファイラーの改善に関する詳細は、こちらをご覧ください。

デコンパイラー

全般的な機能強化

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

ビルド構成の検出

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

外部ソースの処理

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