ReSharper 2023.3 の新機能

ReSharper 2023.3 では C# 12 の最新機能がサポートがされています。 また、まったく新しいエンティティ関係ダイアグラムと Entity Framework に関する問題のインスペクションも含まれています。 このアップデートではバックグラウンドでのコード解析の最適化やコード解析に割り当てられるリソース量の制御機能など、パフォーマンスに関するいくつかの大規模な改善が行われています。 ReSharper 2023.3 リリースでは AI Assistant への大規模な更新による強化も行われています。

ダウンロード

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

AI Assistant のプレビューが終了しました 一般公開

生産性を向上させる多数の新機能と改善が盛り込まれた JetBrains AI Assistant が一般公開されました。 ReSharper で行われた最新の改善には以下のようなものがあります。

  • コンテキストを認識する AI チャット
  • AI Actions(AI アクション)のプロジェクトの認識方法の改善
  • AI 駆動型の複数行コード補完
  • ユニットテストの生成
  • XML ドキュメントの生成
  • カスタムプロンプトのライブラリを作成する機能

ReSharper の AI Assistant は JetBrains AI Service サブスクリプションをご利用の場合に追加機能として使用できます。

デモを見る

C# サポート

ReSharper の最新リリースでは C#12 の機能のサポート範囲が拡大され、プライマリコンストラクター、あらゆる型を参照するエイリアスディレクティブ、コレクション式、インターセプターなどが新たにサポートされています。

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

デモを見る

パフォーマンス

ReSharper 2023.3 ではコード解析サービスが入力によって中断された場合にコード解析を徐々に進められるシナリオをより多く認識して対応できるようになりました。 この改善は大規模なファイルを処理する場合に特に有用です。

ReSharper と Visual Studio のクイックアクション統合の改良

最新のアップデートではソリューション全体のコード解析に割り当てられるリソースの数を制御することもできます。 リソース使用率を Low(低)、Moderate(中)、High(高)モードから選択できるようになりました。

High(高)モードはその名称にもかかわらず、エディターでの入力を妨げず、IDE の応答性が低下しないように設計されています。 コード解析がコードの入力によって中断された場合にのみスムーズな入力動作を維持しながら徐々に CPU の使用率を高め、その間にソリューション全体解析によるソースコードの処理をバックグラウンドで実行するようにしています。

その他のパフォーマンス強化

SomeType _field = new() など、多数のターゲット型付きオブジェクトの作成を含むソリューションで型とコンストラクターの使用箇所の検出が高速化されました。 この改善により、リファクタリングの速度も改善されています。

また、CPU 使用率が上昇する原因となっていた注入言語の処理に伴ういくつかの問題も解決しました。

UX/UI

Extract local function(ローカル関数の抽出)リファクタリングの UX の改良

Extract local function(ローカル関数の抽出)リファクタリングの UX の改良

Extract local function(ローカル関数の抽出)リファクタリングのユーザーエクスペリエンスを改良しました。 以前は使用可能なオプションから新しい関数の場所を選択するのが難しく、選択した内容が及ぼす影響がはっきりと分かりませんでした。

この UX の更新により、新しい関数のシグネチャーをコードエディター内で直接プレビューできるようになります。 そのため、シグネチャーの正確な挿入位置と選択による導入された関数への影響を把握しやすくなります。 また、どの変数がクロージャではなくパラメーターに変換されるのか、他のどの関数が移動されて新しい場所で呼び出し可能になるのかも分かります。

ReSharper と Visual Studio のクイックアクション統合の改良

ReSharper と Visual Studio のクイックアクション統合の改良

Visual Studio と ReSharper のクイックアクションは違いを理解して使用すると互いに補い合うことができます。 ReSharper 2023.3 ではどちらのシステムの能力も簡単に活用できます。 ReSharper のクイックアクションのみを使用するのか、両方の提案アイコンを表示するのか、ReSharper の電球メニューを単一のアクセスポイントとしてすべてのクイックアクションを呼び出すのかを設定で調整できるようになっています。

Copy Code Reference(コード参照のコピー)のニーモニック

Copy Code Reference(コード参照のコピー)のニーモニック

ReSharper 2023.3 では Copy Code Reference(コード参照のコピー)アクションのアクセスキーが導入されています。 コンテキストメニュー内にある各コード参照の種類を 1 回のキー入力で選択できるようになっています。

C++ のサポート

ReSharper C++ 2023.3 では、非アクティブなコードの操作が大幅に簡単になりました。 条件付きプリプロセッサ分岐内にある現在非アクティブなコードブロックでのコード補完でグローバルスコープのシンボルが提案されるようになりました。 Find Usages(使用箇所の検索)も更新され、非アクティブなコードとマクロ本体に含まれていると思われる使用箇所が専用の結果セクションに表示されるようになりました。

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

コードの整形

Razor 用の新しいコード整形エンジン

Razor 用の新しいコード整形エンジン

ReSharper 2023.3 では Razor 用の新しい整形エンジンが導入されています。 このエンジンは ReSharper の現在の C# フォーマッターに対応しており、近年導入された C# 言語のコンストラクトと ReSharper の新しい C# の整形オプションの大部分をサポートしています。 新しいフォーマッターは動作速度が向上しており、問題が少なくなっていることが期待されています。 ただし、一部コードのデフォルトの書式が変更されるため、 以前の Razor 用整形エンジンに戻すオプションが導入されています。 このオプションは、ReSharper の Code Editing(コード編集)| Razor | Code Style)コードスタイル)Options(オプション)にあります。

Entity Framework

Entity Framework 関連の問題を対象としたインスペクション

ReSharper 2023.3 では Entity Framework 関連コードで実行時例外を引き起こす可能性のあるメソッドの使用に対応した新しいインスペクションがいくつか導入されています。

デモを見る

新しいインスペクションは以下の 2 つのケースに対応しています。

  1. Entity Framework または Entity Framework Core 内のデータベースコンテキストで呼び出されているものの、SQL に変換できない場合に例外を発生させるメソッド。
  2. データベースコンテキストの外部で呼び出されているものの、データベース関数として排他的に実装されている場合に例外を発生させるメソッド。
Extract local function(ローカル関数の抽出)リファクタリングの UX の改良

エンティティ関係ダイアグラム

このリリースではエンティティ関係ダイアグラム(ERD)が導入されています。 ReSharper の ERD はデータベースのグラフィック表現、エンティティ間の関係、およびデータベースモデルの解析インサイトを提供します。

ReSharper 2023.3 の Entity Framework 固有の解析は、文字列プロパティの無制限の長さや依存関係ループといった EF モデル内の潜在的な問題についてコードを検査します。 対応するインスペクションでコンテキストメニューを呼び出し、Show Entity Relationship Diagram(エンティティ関係ダイアグラムの表示)を選択すると、問題を視覚的に調査することができます。

Entity Framework 関係の可視化と新しいインスペクションに関する詳細は、こちらのブログ記事をご覧ください。

ユニットテスト

AI を使用したテストの生成
ベータ

以前のリリースでは、ユニットテストを簡単に作成する機能が導入されました。 ReSharper 2023.3 の AI Assistant への最新の更新では、LLM の力を活用してユニットテスト内にコードを生成するオプションが導入されています。

文法とスペルのチェック

Razor 用の新しいコード整形エンジン

JetBrains Grazie が ReSharper の新しい組み込み文法・スペルチェッカーになりました。 Grazie は 20 言語以上に対応しており、ReSharper(C#、C++、VB.NET)がサポートするプログラミング言語、マークアップ言語(HTML、XML、XAML)、およびコメント内にある自然言語の誤りを検出します。 他の自然言語を Grazie に追加するには、ReSharper の Options(オプション)| Grammar and Spelling(文法とスペル)| General(一般) を開いてください。

.NET 用 Qodana Community リンター

これまでは CI/CD サーバー上で ReSharper のコード解析を IDE の外部で実行する場合、ReShaper のコマンドラインツールである InspectCode を使用するしかない状況が長く続いていました。 最近になって Qodana が .NET ツールのラインアップ拡充に向けて最初の一歩を踏み出し、.NET 用 Qodana Community リンターの早期アクセスプログラムが発表されました。

Qodana は ReSharper と同じ静的コード解析エンジンをベースにしていますが、以下のようにさらなる利点もいくつかあります。

  • Qodana Cloud 固有のサンバーストダイアグラムで結果を解析し、プロジェクト全体の健全性を迅速に評価できます。
  • ベースラインを使って技術的負債を管理できます。

また、有料の .NET 用 Qodana リンターではサードパーティライセンス監査の実行、コードカバレッジの解析、脆弱性のある依存関係の検出を行えるようになる予定です。

ReSharper コマンドラインツールのサポートを終了する予定はありませんが、今後は IDE の外部で ReSharper 解析を実行する場合には .NET 用 Qodana Community リンターが推奨されます。

dotMemory

Linux および macOS のスタンドアロン版 dotMemory dotUltimate ベータ

Linux および macOS オペレーティングシステムでスタンドアロン版の dotMemory を実行できるようになりました。

デコンパイラー

アセンブリの差分

前回のリリースで導入された Assembly diff(アセンブリの差分)機能で NuGet パッケージ、フォルダー、および .zip ファイルを比較できるようになりました。

アセンブリの差分

アセンブリの比較機能の比較オプションが追加されました。 複数の差分モード(Show all(すべて表示)、Show only differences(差分のみを表示)、Show only signature differences(シグネチャーの差分のみを表示)、Show only public API differences(公開 API の差分のみを表示))から選択できます。 また、Diff(差分)でメンバー/属性の順序の違いや null 許容参照型のアノテーションの違いを無視するかどうかを指定できます。

Assembly Explorer

Assembly Explorer の更新

  • Assembly Explorer で NuGet パッケージを参照する際、対象の NuGet パッケージ内にあるすべてのファイルとフォルダーも表示できるようになりました。
  • Win32 リソースノードとそのサイズとタイプ(判定できる場合)をノード表現ツリーと Properties(プロパティ)ペインで表示できるようになりました。

その他の更新:

  • Win32 文字列テーブルリソースをデコードする機能が導入されました。
  • ReSharper がアセンブリ/非アセンブリの Properties(プロパティ)ペイン内で開いているファイル、バンドル内のファイル、アーカイブ、NuGet パッケージ、比較対象のアセンブリ、および Win32 リソースのサイズを表示するようになりました。
  • アセンブリの Authenticode 署名を検証できるようになりました。
  • 明示的な #nullable disable ディレクティブがデコンパイルされたソースに表示されます。

その他

ASP.NET Core フレームワークをターゲットとするアプリケーション用の新しいインスペクション

ASP.NET Core フレームワークをターゲットとするアプリケーション用の新しいインスペクション

Dynamic Program Analysis(動的プログラム解析)に ASP.NET Core フレームワークをターゲットとするアプリケーション用のインスペクションが新たに 3 つ追加されました。 これらのインスペクションは、アプリケーションの応答性を低下させる可能性のあるバックエンドの潜在的なパフォーマンスの問題を警告します。

詳細

脆弱性のある API の使用箇所を特定する新しいインスペクション

脆弱性のある API 使用箇所を特定する新しいインスペクション セキュリティ

Rider 2023.3 には公開されている脆弱性をよりはっきりと分かりやすくするように設計された新しいセキュリティインスペクションが導入されています。

この新しいインスペクションはプロジェクトに含まれる脆弱性のある NuGet パッケージを特定し、このようなライブラリの脆弱性のあるメソッドがコードに使用されている箇所をハイライトします。 脆弱性が検出されると、システムは問題のあるコードをハイライトし、それを修正するためのクイックアクションを提供します。 このようなアクションには、より新しいパッケージバージョンへのアップデートの推奨や検出された脆弱性に関する詳細な情報の提供などがあります。

ダウンロード

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