ReSharper 2021.2 には、C# コード解析と null 許容参照型サポートに対する新しいクイックフィックス付きのインスペクションが提供されており、手書きのコードファイルで利用できる多数の機能がソース生成ファイルでも利用できるようになりました。 ReSharper 2021.2 には、アセンブリエクスプローラーでの単一ファイルアプリのサポート、Dynamic Program Analysis での問題処理の改善、およびレコード、拡張メソッド、および catch 変数の高度な命名規則が含まれています。
無料 30 日間体験版をご利用可能です
変数の値を入れ替えるために、一時的な変数を使用していませんか? よりエレガントな方法で、これを行えるようになりました! ReSharper 2021.2 では、新しい Swap via deconstruction クイックフィックスを使って、コードを最新化することができます!
コード内の割り当てサイズを減らし、スループットを高めることができます! 空の配列作成には Array.Empty<T>
を使用できます。
新しい Type[0]
を割り当てる場合、ReSharper は Type.EmptyTypes
を使用してメモリの仕様状況を効率かすることを提案します。
特定の EventArgs
が必要でない場合、ReSharper から、new EventArgs()
を EventArgs.Empty
に入れ替えられることが指摘されます。
その他の改善:
.editorconfig
の generated_code
プロパティを使用して、ファイルやフォルダを生成コードとしてマークし、処理から除外することができます。 switch
ステートメントと switch
式における Find similar issues とコード解析のパフォーマンスが改善されました。 null 許容参照型を有効にした後、コードベースの多数の null 許容警告が抑制されていませんか?
ReSharper は、不要になったため安全に削除することのできる抑制(!
)を表示することができます。
新しいコンテキストアクションを使うと、スコープ内のすべての null 許容警告の抑制を検索することができます。 検索したら、Find Results ツールウィンドウで抑制が必要であるかどうかを評価し直すことができます。
null 許容性を変更するための新しいリファクタリングを導入しました! クイックフィックスの Refactor This アクションか、null 許容アノテーション(?
)を追加または削除するときのインプレースリファクタリングで使用できます。
ReSharper は null 許容性アノテーションを更新し、その変更をコードベース全体に伝搬することを提案します。
いくつかの新しいインスペクションとそれに対応するクイックフィックスは、JetBrains.Annotations 属性を使用しており、null 許容参照型が有効である場合に利用できます。
JetBrains.Annotations 属性を NRT 構文とコンパイラーがサポートする属性に更新しましょう! たとえば、ReSharper は[CanBeNull] string
を string?
に更新できます。
ReSharper では、[NotNull] string
または [ItemCanBeNull] List<string?>
など、冗長する JetBrains.Annotations 属性が指摘されます。 また、当然ながら、コードを更新するためのクイックフィックスも提供されます。
型アノテーション構文を使用できない場合は、新しいクイックフィックス付きのインスペクションによって、コンパイラーがサポートするアノテーションを追加できます。
[JetBrains.Annotations.NotNull] T param
を [DisallowNull] T param
(where T: class?
)に追加 [JetBrains.Annotations.CanBeNull] T
を [System.Diagnostics.MaybeNull] T
(C# 8 で、T?
構文が許可されていない場合)に追加 ReSharper は新しいインスペクションとクイックフィックスを追加することで、[DisallowNull]
、[AllowNull]
、[MaybeNull]
、および [NotNull]
などのコンパイラーがサポートするアノテーションを使用できるようにします。
新しいインスペクションは、[AllowNull]
が null 許容型に適用されている場合など、冗長するコンパイラーアノテーションを検出し、クイックフィックスでそれらを削除します。
null 許容参照型構文が使用できる場合は、ReSharper はそのように提案します。
触れておくべき改善は他にもあります。
詳細については、ブログ記事「ReSharper と Rider における Null 許容の参照型の新機能 2021.2」をご覧ください。
ソースジェネレーターは、面倒で反復的な開発作業を軽減し、コンパイル時にコードを生成するために使用することができます。 ReSharper 2021.2 では、手書きのコードファイルで使用できる機能の多くをソースで生成されたファイルにも使用することができます。 エディターサポートを改善し、デバッガーを強化し、ソリューション全体のエラー解析(SWEA)とリファクタリングのサポートを追加しました。
生成されたコードの警告とエラーは、エディターとマーカーバーに表示されます。
ソリューション全体のエラー解析(SWEA)に、ソースジェネレーターが生成したファイルが含まれました。 プロジェクトで生成されたファイルにエラーが発生した場合、直ちに停止して、その箇所に移動することができます。
この動作は、ソース生成ファイルを含める新しいオプションを使用して切り替えることができます。これは ReSharper | Options | Code Inspection | Settings | Enable solution-wide analysis にあり、デフォルトで有効になっています。
リファクタリングをソース生成ファイルからトリガーできるようになりました。 Rename リファクタリングを使用して、生成されたプロパティの名前を変更することができます。 また、手書きのコードの関連するシンボルの名前を変更することもできます!
同様に、Change Signature を使用して、変更後に生成されるコードをコンパイルできるかどうかを確認することができます。
Find Usages を使用して、継承子の検索、Ctrl+Click と Navigate To による生成したコードから手書きのコードへの移動などを行えるようになりました。
セマンティクスハイライトが有効になっているため、イベント、フィールド、およびプロパティなどのクラスメンバーが正しくハイライトされます。 該当箇所にはすべてのインレイヒントが表示されます。
デバッグ中には、ReSharper 独自のデータヒントが表示されます。 この機能は、さらに強力なデバッグ支援と検索機能、プロパティハイライト機能などを提供します。
ReSharper では、ソースジェネレーターによって VB.NET で生成されたコードをサポートできるようになりました。
前のリリースでは、ASP.NET ルートテンプレートのサポートが実装されました。 v2021.2 リリースでは、この方向性を維持したまま、HttpClient
URI 設定のサポートを改善しました。
HttpClient
を使用する場合、コード補完では、[Route]
、[Http{Method}]
、または [AcceptVerbs]
属性でアノテーションされたコントローラーのアクションに解決できるすべての URI が提案されます。 ナビゲーションに便利な機能が追加されました。
レコード、拡張メソッド、および catch 変数に高度な命名規則を指定できれば便利であることがあります。 このリリースより、これらのルールを構成できるようになりました。
波括弧(インデント)スタイルを好む場合でも、使用可能となりました。 Pico スタイルは、ReSharper | Options | Code Editing | C# | Formatting Style | Braces Layout ページの Brace Layout タブにオプションとして追加されています。
いくつかのケースでのデフォルトのフォーマット設定は、Visual Studio のデフォルト設定に合わせて変更されています。
新しい Inline Function リファクタリングでは、関数呼び出しを関数の本文にすばやく置き換えることができます。 ReSharper C++ は、必要な変換を実行し、すべての名前の競合を処理し、それから得たコードを再フォーマットします。
ReSharper C++ 2021.2 では、データ損失やパフォーマンスの問題を引き起こす可能性のある暗黙的な型変換にインレイヒントが導入されました。 ReSharper C++ では、暗黙的な変換が発生した箇所がコード内で示されるようになっています。
DPA では、各課題に最大値と現在値の両方の値を保存するようになりました。 これにより、修正されたからではなく、起動条件が変更されたために(プログラムの実行が短縮され、必要な機能が実行されないなど)、しきい値を下回って課題リストから消えていた誤検出が防止されます。
The embedded decompiler can now decompile single-file apps. .NET Core 3.1、.NET 5、および公開予定の .NET 6 SDK のシングルファイル形式をサポートします。 Assembly Explorer(アセンブリエクスプローラー)を使用すると、単一ファイルアプリ内にバンドルされたアセンブリを以前とまったく同じように閲覧することができます。
このリリースでは、引き続き、メモリの割り当てを解析する方法の改善に取り組みました。 Memory Allocation ビューに新しいタブが 2 つ追加されています。
大型の画面で作業している Razor 開発者は、エディターの動作に遅延が生じ始めたら、CPU を集中的に使用するアシスタンスと自動提案機能をオフにできます。 この設定は ReSharper | Options | Environment | Editor | Behavior | Razor | Allow CPU-intensive typing assist にあります。
InspectCode ツールに画期的な変更を導入しました。 v2021.2 より、InspectCode は解析を開始する前に、自動的に NuGet パッケージを復元してソリューションをビルドします。 この動作を好まない場合は、--no-build
キーを使用することで、NuGet パッケージの復元とソリューションのビルドを無効にすることができます。
無料 30 日間体験版をご利用可能です