ReSharper 2024.1 では C# のサポートをさらに改善しています。コードをコレクション式に変換するための候補を追加し、foreach
ループ内の反復処理でコレクションが変更される場合に警告を表示するようにしました。 Razor のサポートによって @addTagHelper
および @removeTagHelper
ディレクティブの参照が解決されるようになり、カスタム命名規則の編集 UX/UI が大幅に改善されました。
無料 30 日間体験版をご利用可能です
空の配列や ImmutableArray
の宣言や初期化など、ソースコード内で C# 12 のコレクション式への変換が提案されるコード構造がさらに増えました。
新しい Possible 'System.InvalidOperationException: Collection was modified'(可能性のある 'System.InvalidOperationException: コレクションが変更されました')インスペクションが追加されました。この変更により実行時に例外が発生する可能性があるため、このインスペクションは foreach
ループ内の反復処理中にコレクションが変更された際に警告を発します。 この解析はコレクションの変更後にループの終了がある場合に認識され、その場合には警告が発生しません。
このインスペクションには、この問題を即座に解決するための対応するクイックフィックスがあります。
Generate(生成)| Formatting Members(書式設定メンバー)を使用すると、ToString()
メソッドをオーバーライドして型に応じて意味のある文字列を返すボイラープレートを生成できます。 バージョン 2024.1 より、この機能で ISpanFormattable
、IUtf8SpanFormattable
、IFormattable
などのより多くの型がサポートされるようになりました。
[MustDisposeResource]
アノテーションの改善: C# コード解析によって async メソッドで返されたリソース(Task<IDisposable>
や ValueTask<IDisposable>
でラップされたリソースを含む)が正しく破棄されるようになり、タスク自体が誤って破棄されることがなくなりました。 .ConfigureAwait(...)
、.AsTask()
、または .Result
を介して取得されたリソースも含まれるようになりました。 Change Signature(シグネチャーの変更)リファクタリングに以下の改善が行われました。
List<>
の型を指定する必要がある場合、コード補完を使用して int
などの必要な型を簡単に選択できます。 System.Collections.Generic.List<System.Int16>
型を指定した場合、生成されるコードでは自動的に List<short>
に短縮されます。 in
および ref readonly
修飾子や record
型など、より多くの最新バージョンの C# の機能がリファクタリングでサポートされるようになりました。 このリリースでは、Make Static(static にする)リファクタリングでプライマリコンストラクターのパラメーターがサポートされています。 このパラメーターは Introduce parameters(パラメーターの導入)リストに表示され、区別しやすいように個別のアイコンが使用されています。 このリファクタリングはローカル関数にも使用できます。
コード解析で protobuf-net
ライブラリの ProtoContract
属性と ImplicitFields 列挙型がサポートされるようになりました。 どちらもシリアル化に暗黙的に使用されるメンバーを示すのに使用できます。 その場合、このようなメンバーに unused members(未使用のメンバー)警告が表示されることはありません。
@addTagHelper
および @removeTagHelper
ディレクティブの参照の解決 ReSharper が Razor ビューの @addTagHelper
および @removeTagHelper
ディレクティブ内で指定されているアセンブリ名の参照を解決するようになりました。 その結果、コード補完、使用箇所の検索機能、および簡単なコードナビゲーションを利用できるようになっています。
ReSharper が未解決のアセンブリ名をエラーと見なし、ユーザーに注目させるために赤でハイライトするようになりました。
C++ のサポートが以下のように大幅に強化されています。
C++ 関連の更新の詳細について、ReSharper C++ 2024.1 の新機能をご覧ください。
JetBrains は CPU 並列処理をより効率的に使用して解析時間を大幅に短縮するソリューション全体解析の高リソース使用率モードを積極的に改良しています。 コード解析機能のメモリ割り当てプロファイルを改善し、ガベージコレクションにかかる時間を最小限に抑えました。 この改良は現在も進行中ですが、このモードを有効化して使用した感想をフィードバックしていただければ幸いです。
コード内の要素名をより迅速かつ効率よく変更できるようになりました。 この変更は ReSharper の他の基本コンポーネントにも反映されており、Find Usages(使用箇所の検索)などの複数の機能でパフォーマンスが改善されています。
static メンバーに対する Move to Another Type(別の型に移動)リファクタリングのパフォーマンスが大幅に改善され、大きなクラスを処理できるようになりました。
この ReSharper 2024.1 アップデートでは、新しい Assembly Diff(アセンブリの差分)ツールウィンドウが導入されました。 これに伴い、いくつかの変更が適用されています。
.zip
アーカイブの比較機能が Assembly Explorer(アセンブリエクスプローラー)から Assembly Diff(アセンブリの差分)ツールウィンドウに移動されました。 ReSharper 組み込みのデコンパイラーが WebAssembly の WebCIL パッケージング形式をサポートするようになりました。 このサポートには以下が含まれます。
.wasm
ファイルを表示する機能。 デスクトップ MAUI および .NET macOS アプリケーションのサポートは、Visual Studio 内の dotTrace、dotMemory、および dotCover にも提供されています。
サポート対象のターゲットフレームワーク:
net8.0-windows
、net7.0-windows
net8.0-maccatalyst
、net7.0-maccatalyst
net8.0-macos
、net7.0-macos
プロファイリングモードの提供状況と制限事項の詳細については、こちらをクリックしてください。
MAUI プロジェクトのサポートは、これらの .NET ツールのスタンドアロンバージョン内にも提供されています。
スタンドアロンの dotMemory プロファイラーで凍結オブジェクトヒープがサポートされるようになりました。この機能は、ガベージコレクションのパフォーマンス改善の一環として .NET 6 SDK に初めて導入されたものです。
FOH はイミュータブルオブジェクトに対して専用のメモリ領域を割り当てます。 このようなオブジェクトは割り当てられた後に変更されることはなく、ガベージコレクションの影響も受けません。 このテクノロジーをサポートすることで、dotMemory が FOH 内のイミュータブルオブジェクトが使用するメモリをさらに詳細に解析できるようになるため、メモリ使用量の最適化が促されます。
2024.1 リリースより、InspectCode のデフォルトの出力形式が SARIF になりました。 XML 形式のサポートは間もなく廃止されます。 現在のバージョンでは、-f="xml"
パラメーターを使用する際に、引き続き XML 形式を使用できます。
テキストコントロールの内部リファクタリングを終了しました。 ReSharper を Visual Studio 外プロセスで実行させる取り組みに加えて、このリファクタリングは ReShaper と Rider の入力とエディターのパフォーマンスに関するさまざまな改善を目的としています。 ReSharper を Visual Studio 外プロセスに移行する作業に関する最新の状況は、こちらをご覧ください。
JetBrains Marketplace プラグインのフィードに互換性チェックに基づく新しいフィルタリングメカニズムが導入されました。 具体的には、ReSharper の拡張子マネージャーに互換性のないプラグインが表示されなくなっています。
無料 30 日間体験版をご利用可能です