2022.1 では品質に焦点を当て、特に Blazor 開発と C# サポートに関する多数の改善とバグ修正を行っています。
C# 10 のサポート、特に global using のサポートの改善に努めています。 このリリースでは、コンテキストアクションとしても使用できる新しい 2 つのリファクタリングを導入しました。
Extract Global Using(Global Using の抽出)は、プロジェクトに global using の概念を導入する上で役立ちます。 このリファクタリングを通常の using ディレクティブに対して呼び出すと、ReSharper がそのディレクティブを指定の GlobalUsings.cs ファイルへの抽出を提案します(このファイルがまだプロジェクトに存在しない場合は作成されます)。 不要になった通常の using は、プロジェクトのファイルから除去されます。
global using を通常の using にリファクタリングする場合は、Inline Global Using(Global Using のインライン化)リファクタリングも役立ちます。 このリファクタリングを global using に対して呼び出すと、GlobalUsings.cs から global using が除去され、必要に応じて対応する using ステートメントがプロジェクトのファイルに追加されます。
global using 機能は、Find Usages(使用箇所の検索)と拡張メソッドのコード解析でサポートされています。
私たちは、近づいている C# 11 とサポートされている ジェネリック属性 を調査しました。
[MemberNotNull] および [MemberNotNullWhen] アノテーションが、null 許容参照型を使用しないプロジェクトでサポートされるようになりました。
ASP.NET Core 6 の Minimal API と規則ベースのルーティングでエンドポイントがサポートされるようになりました。 サポート対象には、ナビゲーション、コード解析、およびコード補完が含まれます。
Razor と Blazor には、以下の最も重要な機能と修正が追加されています。
[EditorRequired] 属性をサポートしました。 Blazor コンポーネントを参照しようとする場合は、必要なパラメーターを指定せずに対応するインスペクションとクイックフィックスを使用することもできます。 .razor ファイルでのコードクリーンアップを改善しました。 すべての @using 宣言が除去されなくなりました。
Alt+Enter メニューで、Code Cleanup(コードのクリーンアップ)とFormatting(整形)に関連するすべての項目を整理しました。 Format selection(選択範囲の整形)、Cleanup selection(選択範囲のクリーンアップ)、および Apply syntax style(構文スタイルの適用)が 1 つの Reformat and Cleanup(整形とクリーンアップ)項目に統合され、1 つのエントリポイントでアクセスできるようになりました。
これらの変更のほか、構文スタイルの設定が Configure code style(コードスタイルの構成)および Autodetect code style settings(コードスタイル設定の自動検出)アクションで使用できるようになっています。 Preview code style(コードスタイルのプレビュー)パネルには、構文スタイルの変更も表示されます。
Unreal Engine テストフレームワーク が現在サポートされています。 ReSharper C++ が Unreal Engine のユニットテストを検出すると、テストまたはテストスイート全体を実行またはデバッグするための対応するアクションのインジケーターがエディターの各テストの横に追加されます。 Unit Test Sessions(ユニットテストセッション)ウィンドウでテストの結果をレビューし、失敗したテスト、すべてのテスト、または特定のテストを再実行できます。
ReSharper C ++ では暗黙的なコンストラクター呼び出しの処理が改善され、次を含むさらに多くのケースで使用箇所を検索して呼び出し先のコンストラクターに移動できるようになりました。
make_unique/make_shared)と Unreal 固有(MakeShared/MakeUnique)のスマートポインター作成関数 emplace のようなコンテナーメソッドstatic_cast と C 形式のキャスト式 ReSharper C++ 2022.1 は、emplace のような関数が不正な引数を指定して呼び出された場合にもオーバーロードの警告を表示します。
ソースジェネレーターのサポートのパフォーマンスを解析した結果、ソースが生成したドキュメントをコンパイラーから取得する際にリクエスト間の遅延を増やすことにしました。
そのため、ソースジェネレーターはコンパイラーと CPU ワークの合計量が減少するまで実行されません。 実際にどの程度のパフォーマンス改善が期待できるかは、Visual Studio の完全行補完などの他の機能もジェネレーターをトリガーしているかどうかによって変わります。
私たちは、すでに 多くのパフォーマンス問題 を修正し、さらなる基盤を築きました。 これには、お客様から提供されたパフォーマンススナップショットの処理、社内でのプロファイリング作業、およびデータ収集が含まれます。今後、パフォーマンス低下を自動チェックする仕組みを導入できることを願っています。
「外部プロセス」モードの作業は現在進行中です。 最新の更新については 私たちの問題トラッカー を参照してください。
InspectCode ツールは、Static Analysis Results Interchange Format(SARIF)互換の出力ファイルを生成できます。
コマンドラインツールで Alpine Linux がサポートされるようになりました。
System.Private.CoreLib のような XML ドキュメントファイルと名前が異なるアセンブリなど、プラットフォームアセンブリの XML ドキュメントコメントが表示されるようになりました。 XML ドキュメントのパスは、デコンパイルされたファイルのヘッダーに表示されるようになっています。 [TypeForwardedTo] 属性)をサポートするようになりました。 Locate in Metadata(メタデータ内で検索)アクションも転送された型、アセンブリとモジュール参照、およびリソースに対応しています。
Windows(.NET Core、.NET 5 以上)、macOS、および Linux(.NET Core 3.0 以上、.NET 5 以上)の dotTrace で Microsoft.Data.SqlClient プロバイダーからの SQL Server イベントをサポートするようになりました。
専用のアイコンをアプリケーションウィンドウにドラッグするだけで、実行中のアプリケーションにプロファイラーを接続できるようになりました。
コメントを使用して、コードの特定の行またはブロックをカバレッジ解析から除外できるようになりました。 次のように、除外方法にはいくつかのオプションがあります。
// dotcover disable
var i = 1;
var j = 10;
// dotcover enable
/* dotcover disable */ var i = 1; /* dotcover enable */
var i = 1; // dotCover disable this line
// dotcover disable next line
var j = 100;
これらのオプションが機能するには、JetBrains.dotCover.MSBuild NuGet パッケージを参照する必要があります。 この依存関係は開発時にのみ必要であるため、ランタイム依存関係としてプロジェクトに含まれることはありません。
.sqlproj ファイルを扱う際に ReSharper の機能を妨げていた問題を解消しました。