ReSharper 2023.1 では、コレクションのさまざまな型の操作を最適化して高速化するインスペクション一式と、より柔軟にコードへ null チェックを導入するための方法などを含む C# のサポート改善が行われています。 このビルドでは C++20 モジュールが更新され、C++23 の機能サポートが初めて提供されているほか、マクロ置換プレビューと C++ の呼び出しトラッキングも追加されています。 ユニットテストとコードのクリーンアップのユーザーエクスペリエンスも強化されています。
無料 30 日間体験版をご利用可能です
コレクション内のルックアップ数を減らすことでコレクションのさまざまな型の操作を最適化して高速化するインスペクションと、対応するクイックフィックス一式を導入しました。
HashSet
、または ISet
インターフェースを実装するその他のコレクションに項目を追加する前の Contains(item)
チェックを除去します。 Dictionary
、または IDictionary
インターフェースを実装するその他のコレクションに項目を追加する前の ContainsKey(key)
チェックを除去します。 Dictionary
コレクションまたは Dictionary
から継承されたコレクションに TryAdd(key, value)
を使用します。 IDictionary
コレクションに TryGetValue(key, out value)
を使用します。 パターン内の not null
チェックに 1 つのスタイルを一貫して適用するのに役立つ新しい構文スタイル設定を提供しました。 空の再帰パターン構文 { }
と否定されたパターン not null
の 2つのオプションがあり、後者がデフォルトになっています。 ReSharper | Options(オプション)| Code Editing(コード編集)| C# | Syntax Style(構文スタイル) ページでいつでも動作を調整できます。
not null パターンの使用では、変数名をチェックされた値に導入することができないため不便です。再帰パターン { LastName: { } lastName }
では可能です。 同じ値にアクセスする式を検索してすべてのアクセスを同じ値に統合するため、Add pattern variable(パターン変数の追加)コンテキストアクションがすべてを新しく導入された名前に置換する not null
パターンに追加しました。
.NET 6.0 SDK に null
チェックである ArgumentNullException.ThrowIfNull
に対応した新しい API が導入されました。 それ以降のコード解析エンジンはこのチェック方法を認識しますが、この API を ReSharper が生成する null
チェックのデフォルトスタイルとして使用するオプションはありませんでした。 2023.1 リリースでは、ReSharper | Options(オプション)| Code Editing(コード編集)| C# | Null checking(Null チェック) に ArgumentNullException.ThrowIfNull
パターンを追加しました。
プロパティパターンマッチングを頻繁に使用している場合は、新しいクイックフィックス付きのインスペクションを試してみてください。コードフローにまとまて含まれている複数プロパティパターンの共通要素が抽出されます。 Extract common property pattern(共通プロパティパターンの抽出)クイックフィックスで生成されたコードによって、共通するプロパティパターンがより高いレベルパターンに移動されるため、コードの繰り返しを減らすことができます。
多くの場合、C# 開発者は #region
ディレクティブと IDE のコードの折りたたみを使用してコードを構成します。 リファクタリングにより、一部の #region
が空になり、折りたたんだ際に誤解を招くコードになる場合があります。 この新しいコードインスペクションを使用すると、折りたたんだ状態の空の #region
を特定し、対応するクイックフィックスでコードをクリーンアップできます。
span.SequenceEqual(“str”)
の置換 コード解析に span.SequenceEqual("stringLiteral")
を span is "stringLiteral"
に置換するように提案するコードインスペクションが追加されました。関数を呼び出すよりも便利で分かりやすい C# 構文の解決方法です。
C# のラムダ式には暗黙的に型指定されるパラメーターと推論される戻り値の型を指定できます。 ただし、複雑なオーバーロードを解決する場合にコードを明確にする目的で明示的な型を追加することもできます。 C# 11 以降では、ラムダ式に戻り値の型指定を追加することもできます。 ReSharper 2023.1 ではこの操作を行うための Insert return type specification(戻り値の型指定を挿入)コンテキストアクションを導入しています。 このアクションはメソッド、クラス、ファイル、プロジェクトなどのすべてのスコープ、またはソリューション全体に提供できます。
C# の or/and/not
パターンはコンパクトな値チェックに役立ちますが、||/&&/!
などの従来の式よりも分かりにくい場合があります。 丸括弧がなければ、発見しづらいバグが発生する可能性もあります。 この問題に対応するため、バージョン 2023.1 では複雑なパターン内の「役に立たない」チェックについて警告する新しいコード解析を導入しました。
C# 11 のリストパターンのサポートは継続的に改善されています。 新しい Convert to list pattern(リストパターンに変換)コンテキストアクションを使用すると、コレクション長のチェックをリストパターン構文に変換することができます。 このアクションはコレクション長のチェックを実行できるすべてのコンテキストで機能します。
マクロにカーソルを合わせると、ツールチップに完全な構文ハイライトと適切なコード書式が適用されたマクロ展開が表示されるようになりました。 Substitute macro call(マクロ呼び出しの置き換え)コンテキストアクションを使用してコードに直接マクロを展開することもできますが、即時プレビューならマクロの扱いがより楽になります。 さらに、Quick Document(クイックドキュメント)ポップアップ(Ctrl+Shift+F1)では、置換プレビューからエンティティをクリックして対応するドキュメントを確認できます。
Call tracking(呼び出しトラッキング)がついに ReSharper C++ に登場しました! 内向きの呼び出しの階層で呼び出しチェーンを表示したり、複数の呼び出しチェーンの間を移動したりできるようになりました。 呼び出しトラッキングの結果ウィンドウでは、階層エントリをダブルクリックしてエディター内の対応する呼び出しに移動したり、ノードを展開して内向きの呼び出しをチェックしたりできます。
Reformat inactive preprocessor branches in file(ファイル内の非アクティブなプリプロセッサブランチの整形)は ReSharper 2023.1 で導入された新しいタスクタイプです。 このタスクを使うと、非アクティブのプリプロセッサブランチを整形することができます。 一度にファイル全体にしか適用できず、C# ソースのみに機能します。
このタスクは、必ず false になるプリプロセッサディレクティブ #if
に隠されているコードを整形することはできません。 この制限の例として最も明確なものには、#if false ... #endif
と #define A #if !A ... #endif
の 2 つのコンストラクトがあります。
Session(セッション)と Explorer(エクスプローラー)の両方のツールウィンドウ内で、ユニットテストツリーに適用されるテキスト検索フィルターがツールバーで Run(実行)ボタンを使用してテストを実行する際に考慮されるようになりました。 検索条件を満たすノードのみがそのままリストされ、実行されます。
ReSharper がプロジェクトファイルの名前の変更を処理する方法を改善しました。 このビルド以降では、ソリューション内でファイルの名前が変更されるたびに、それに合わせてすべての関連シンボルの名前を変更するオプションが含まれるダイアログが表示されるようになっています。
参照先の API が有効かつ変更されていない場合に限り、ReSharper プラグインがあるバージョンから次のバージョンへ自動的に移行されるようになりました。
ビルトインの API 検証機能はインストール済みプラグインのバイナリ互換性を確認し、実行可能なプラグインを移行します。 また、プラグインが使用する API が SDK に存在しなくなった場合は、プラグイン作成者に JetBrains Marketplace 経由で自動通知が送信されます。
ReSharper では CSS の需要がほとんどないため、CSS の最新バージョンへの対応を優先することはますます難しくなりました。 そのため、CSS をより適切にサポートする方法が見つかるまでは CSS のサポートを保留することにしました。
ReSharper 2023.1 以降、CSS のサポートはデフォルトで無効になります。 それでも CSS を使用したい場合は、ReSharper | Options(オプション)| Environment(環境)| Products & Features(製品と機能)| "CSS" チェックボックスでサポートを有効にできます。
現在、ReSharper と .NET ツールは 2010 から最新の 2022 まで Visual Studio の 7 つのメジャーバージョンをサポートしています。 2023.1 をリリースした時点で、2 つの最も古いバージョンである Visual Studio 2010 と Visual Studio 2012 のサポートを終了しています。
無料 30 日間体験版をご利用可能です