ReSharper 2023.3 では C# 12 の最新機能がサポートがされています。 また、まったく新しいエンティティ関係ダイアグラムと Entity Framework に関する問題のインスペクションも含まれています。 このアップデートではバックグラウンドでのコード解析の最適化やコード解析に割り当てられるリソース量の制御機能など、パフォーマンスに関するいくつかの大規模な改善が行われています。 ReSharper 2023.3 リリースでは AI Assistant への大規模な更新による強化も行われています。
無料 30 日間体験版をご利用可能です
生産性を向上させる多数の新機能と改善が盛り込まれた JetBrains AI Assistant が一般公開されました。 ReSharper で行われた最新の改善には以下のようなものがあります。
ReSharper の AI Assistant は JetBrains AI Service サブスクリプションをご利用の場合に追加機能として使用できます。
ReSharper 2023.3 ではコード解析サービスが入力によって中断された場合にコード解析を徐々に進められるシナリオをより多く認識して対応できるようになりました。 この改善は大規模なファイルを処理する場合に特に有用です。
最新のアップデートではソリューション全体のコード解析に割り当てられるリソースの数を制御することもできます。 リソース使用率を Low(低)、Moderate(中)、High(高)モードから選択できるようになりました。
High(高)モードはその名称にもかかわらず、エディターでの入力を妨げず、IDE の応答性が低下しないように設計されています。 コード解析がコードの入力によって中断された場合にのみスムーズな入力動作を維持しながら徐々に CPU の使用率を高め、その間にソリューション全体解析によるソースコードの処理をバックグラウンドで実行するようにしています。
SomeType _field = new()
など、多数のターゲット型付きオブジェクトの作成を含むソリューションで型とコンストラクターの使用箇所の検出が高速化されました。 この改善により、リファクタリングの速度も改善されています。
また、CPU 使用率が上昇する原因となっていた注入言語の処理に伴ういくつかの問題も解決しました。
Extract local function(ローカル関数の抽出)リファクタリングのユーザーエクスペリエンスを改良しました。 以前は使用可能なオプションから新しい関数の場所を選択するのが難しく、選択した内容が及ぼす影響がはっきりと分かりませんでした。
この UX の更新により、新しい関数のシグネチャーをコードエディター内で直接プレビューできるようになります。 そのため、シグネチャーの正確な挿入位置と選択による導入された関数への影響を把握しやすくなります。 また、どの変数がクロージャではなくパラメーターに変換されるのか、他のどの関数が移動されて新しい場所で呼び出し可能になるのかも分かります。
Visual Studio と ReSharper のクイックアクションは違いを理解して使用すると互いに補い合うことができます。 ReSharper 2023.3 ではどちらのシステムの能力も簡単に活用できます。 ReSharper のクイックアクションのみを使用するのか、両方の提案アイコンを表示するのか、ReSharper の電球メニューを単一のアクセスポイントとしてすべてのクイックアクションを呼び出すのかを設定で調整できるようになっています。
ReSharper 2023.3 では Copy Code Reference(コード参照のコピー)アクションのアクセスキーが導入されています。 コンテキストメニュー内にある各コード参照の種類を 1 回のキー入力で選択できるようになっています。
ReSharper C++ 2023.3 では、非アクティブなコードの操作が大幅に簡単になりました。 条件付きプリプロセッサ分岐内にある現在非アクティブなコードブロックでのコード補完でグローバルスコープのシンボルが提案されるようになりました。 Find Usages(使用箇所の検索)も更新され、非アクティブなコードとマクロ本体に含まれていると思われる使用箇所が専用の結果セクションに表示されるようになりました。
C++ 関連の更新についての詳細は、ReSharper C++ 2023.3 の新機能をご覧ください。
ReSharper 2023.3 では Razor 用の新しい整形エンジンが導入されています。 このエンジンは ReSharper の現在の C# フォーマッターに対応しており、近年導入された C# 言語のコンストラクトと ReSharper の新しい C# の整形オプションの大部分をサポートしています。 新しいフォーマッターは動作速度が向上しており、問題が少なくなっていることが期待されています。 ただし、一部コードのデフォルトの書式が変更されるため、 以前の Razor 用整形エンジンに戻すオプションが導入されています。 このオプションは、ReSharper の Code Editing(コード編集)| Razor | Code Style)コードスタイル)の Options(オプション)にあります。
ReSharper 2023.3 では Entity Framework 関連コードで実行時例外を引き起こす可能性のあるメソッドの使用に対応した新しいインスペクションがいくつか導入されています。
新しいインスペクションは以下の 2 つのケースに対応しています。
このリリースではエンティティ関係ダイアグラム(ERD)が導入されています。 ReSharper の ERD はデータベースのグラフィック表現、エンティティ間の関係、およびデータベースモデルの解析インサイトを提供します。
ReSharper 2023.3 の Entity Framework 固有の解析は、文字列プロパティの無制限の長さや依存関係ループといった EF モデル内の潜在的な問題についてコードを検査します。 対応するインスペクションでコンテキストメニューを呼び出し、Show Entity Relationship Diagram(エンティティ関係ダイアグラムの表示)を選択すると、問題を視覚的に調査することができます。
Entity Framework 関係の可視化と新しいインスペクションに関する詳細は、こちらのブログ記事をご覧ください。
以前のリリースでは、ユニットテストを簡単に作成する機能が導入されました。 ReSharper 2023.3 の AI Assistant への最新の更新では、LLM の力を活用してユニットテスト内にコードを生成するオプションが導入されています。
JetBrains Grazie が ReSharper の新しい組み込み文法・スペルチェッカーになりました。 Grazie は 20 言語以上に対応しており、ReSharper(C#、C++、VB.NET)がサポートするプログラミング言語、マークアップ言語(HTML、XML、XAML)、およびコメント内にある自然言語の誤りを検出します。 他の自然言語を Grazie に追加するには、ReSharper の Options(オプション)| Grammar and Spelling(文法とスペル)| General(一般) を開いてください。
これまでは CI/CD サーバー上で ReSharper のコード解析を IDE の外部で実行する場合、ReShaper のコマンドラインツールである InspectCode を使用するしかない状況が長く続いていました。 最近になって Qodana が .NET ツールのラインアップ拡充に向けて最初の一歩を踏み出し、.NET 用 Qodana Community リンターの早期アクセスプログラムが発表されました。
Qodana は ReSharper と同じ静的コード解析エンジンをベースにしていますが、以下のようにさらなる利点もいくつかあります。
また、有料の .NET 用 Qodana リンターではサードパーティライセンス監査の実行、コードカバレッジの解析、脆弱性のある依存関係の検出を行えるようになる予定です。
ReSharper コマンドラインツールのサポートを終了する予定はありませんが、今後は IDE の外部で ReSharper 解析を実行する場合には .NET 用 Qodana Community リンターが推奨されます。
前回のリリースで導入された Assembly diff(アセンブリの差分)機能で NuGet パッケージ、フォルダー、および .zip
ファイルを比較できるようになりました。
アセンブリの比較機能の比較オプションが追加されました。 複数の差分モード(Show all(すべて表示)、Show only differences(差分のみを表示)、Show only signature differences(シグネチャーの差分のみを表示)、Show only public API differences(公開 API の差分のみを表示))から選択できます。 また、Diff(差分)でメンバー/属性の順序の違いや null 許容参照型のアノテーションの違いを無視するかどうかを指定できます。
#nullable disable
ディレクティブがデコンパイルされたソースに表示されます。 Dynamic Program Analysis(動的プログラム解析)に ASP.NET Core フレームワークをターゲットとするアプリケーション用のインスペクションが新たに 3 つ追加されました。 これらのインスペクションは、アプリケーションの応答性を低下させる可能性のあるバックエンドの潜在的なパフォーマンスの問題を警告します。
Rider 2023.3 には公開されている脆弱性をよりはっきりと分かりやすくするように設計された新しいセキュリティインスペクションが導入されています。
この新しいインスペクションはプロジェクトに含まれる脆弱性のある NuGet パッケージを特定し、このようなライブラリの脆弱性のあるメソッドがコードに使用されている箇所をハイライトします。 脆弱性が検出されると、システムは問題のあるコードをハイライトし、それを修正するためのクイックアクションを提供します。 このようなアクションには、より新しいパッケージバージョンへのアップデートの推奨や検出された脆弱性に関する詳細な情報の提供などがあります。
無料 30 日間体験版をご利用可能です