ReSharper 2024.1 ヘルプ

コードインスペクション

ReSharper は、サポートされているすべての言語で 2500 を超えるコードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出してハイライトするために適用されます。また、特定の範囲内のすべてのコードの問題を検出するために適用されます。

インスペクション ReSharper が提供するコードの種類を調べるには、異なる言語の ReSharper コードインスペクションの全リストをご覧ください。

コードインスペクションは、以下のグループに分類できます。

  • ReSharper 独自のコードインスペクションには以下が含まれます。

    • インスペクションは固定重大度 'Error' です。これらのインスペクションはコンパイラーのエラーを検出し、無効化または設定する方法はありません。

    • 構成可能な重大度レベルを持つインスペクションは、残りのコードの問題 (コンパイラー警告、実行時エラーと論理エラー、コードの臭い、冗長性、改善提案など) を検出します。これらの構成可能なインスペクションは、ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページにあります。これらのインスペクションは、いくつかの方法で構成できます。検出された問題をコメントと属性で抑制したり、無効にしたり、設定または .editorconfig ファイルで重大度レベルを変更したりできます。

  • カスタムコードインスペクションは、構造的検索および置換パターンとして定義され、構成可能な重大度レベルもあります。

コードインスペクションの重大度レベル

各 ReSharper コードインスペクションと構造検索および置換パターンには、次の重大度レベルのいずれかがあります。

エラー

この重大度レベルのコードインスペクションは、コードのコンパイルを妨げたり、実行時エラーを引き起こしたりするコードの問題を対象としています。これらのインスペクションのほとんどは構成可能ではありません。つまり、無効にしたり、重大度レベルを変更したりすることはできません。

デザインタイムインスペクションでは、ReSharper は未解決シンボルを赤で表示します。

ReSharper: Design-time code inspection

間違ったステートメントやその一部に赤い波線の下線をハイライトします。

ReSharper: Design-time code inspection

現在のファイルに少なくとも 1 つのエラーがある場合、ステータスインジケーターエラー ThemedIcon.ErrorStripeError.Screen.(Gray).png アイコンが表示され、マーカーバーにエラーごとに赤いマーカーが表示されます。

ソリューション全体の分析が有効になっている場合、重大度レベルが「エラー」のインスペクションで見つかったコードの問題は、ソリューションウィンドウのエラー / 警告に表示されます。

警告

この重大度レベルは、コンパイラーの警告、コードのコンパイルを妨げないが、それでも深刻なコーディングの非効率性を表す可能性があるその他の問題に対応しています。例: ReSharper は、冗長な型キャストまたは名前空間インポートディレクティブ、誤ったフォーマット文字列、宣言されているが使用されていないローカル変数またはプライベートフィールド、未使用のプライベートメソッドなどについて通知します。

デザインタイムインスペクションでは、ReSharper は灰色のテキストで冗長記号を表示します。

ReSharper: Design-time code inspection

文またはその一部を青い波の下線でハイライト表示します。

ReSharper: Design-time code inspection

現在のファイルに少なくとも 1 つの警告がある場合、ステータスインジケータには警告 ThemedIcon.ErrorStripeWarning.Screen.(Gray).png アイコンが表示され、マーカーバーには警告ごとに黄色のマーカーが表示されます。

警告付きのソリューション全体の分析が有効になっている場合、警告はソリューションのエラー / 警告ウィンドウにも表示されます。

提案

この重大度レベルのコードの問題は、コード構造のインサイトを提供し、必ずしも悪いことではないが間違っていることに注意を喚起しますが、おそらく知っておくと便利です。

デザインタイムインスペクションでは、ReSharper は緑色の波線の下線付きの提案をハイライトしています。

ReSharper: Design-time code inspection

マーカーバーに各警告の緑のマーカーを追加します。

ヒント

これは最も低い重大度です。この重大度のコードの問題は、特定のコードの詳細に注意を促し、改善方法を推奨します。

デザインタイムインスペクションでは、ReSharper は対応するシンボルの最初の 2 文字に点線の緑の下線を追加してヒントをハイライトします。

ReSharper: Design-time code inspection

エラー、警告、提案とは異なり、エディターでコードの問題間を移動するときのヒントは考慮されず、マーカーバーにも表示されません。

ハイライトされたヒントの上にキャレットを置くと、ポップアップは表示されず、対応するメッセージがステータスバーにのみ表示されることに注意してください。

特定のスコープでコードをインスペクションすると、ReSharper は検出された問題に対応するアイコンを追加し、インスペクション結果ウィンドウで問題を重大度レベルでソートできるようにします。

コードインスペクションのカテゴリ

ReSharper は、構成可能なコードインスペクションをいくつかのカテゴリにグループ化します。これらのカテゴリは、インスペクションの目的と、検出されるコードの問題の種類を大まかに定義します。これらのカテゴリは、ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページでコードインスペクションをグループ化したり、特定の範囲で検出されてインスペクション結果ウィンドウに表示されるコードの問題をグループ化したりするために使用されます。

潜在的なコード品質問題

このカテゴリには、主にエラーまたは警告レベルで重大な問題(コードのにおい)を検出するインスペクションが含まれます。このカテゴリには、ローカライゼーションの支援を確実にするインスペクションも含まれます。

一般的なプラクティスとコードの改善

このカテゴリは、主にコードの可読性に影響する中程度の重大度の問題を探し出すインスペクションをグループ化します。

コードの冗長性

このカテゴリのコードインスペクションは、コードの可読性とスタイルに影響を与える冗長性とデッドコードを探し、安全に削除できます。一部のコードの冗長性は自動的に修正できず、それらのクイックフィックスはインタラクティブモードで実行され、ユーザー入力が必要です。ただし、冗長性の大部分は、スコープ内の修正またはコードのクリーンアップを使用して、ユーザーの操作なしで修正できます。

言語使用の機会

このカテゴリには、コードインスペクションが含まれ、ほとんどの場合、より高度な言語構造を使用できる場合に通知する提案の重大度レベルが含まれます。これらのインスペクションは、古い言語バージョンの構文を検出し、より新しい言語バージョンの機能の使用を提案します。サポートされているほとんどの言語では、言語バージョンを自動的に検出するか、手動で設定できます

コード通知

このカテゴリは、コードインスペクションをマイナーな重大度でグループ化します。

コードスタイル

このカテゴリのインスペクションは、コード構文スタイルの違反を検出します。ほとんどのコードインスペクションとは対照的に、これらのインスペクションは、ReSharper オプション Alt+R, Oコード編集 | [ 言語 ] | 構文スタイルページで構成された対応するコードスタイルルールに応じて、同じコード構造をコードの問題として検出するかしないかを選択できます。また、コードクリーンアップを使用して、これらのインスペクションが検出した問題を修正することもできます。

制約違反

このカテゴリには、コードインスペクションが含まれ、ほとんどの場合、警告の重大度レベルがあり、ReSharper のコードアノテーションなどのシンボル属性に関連する違反やその他の同様の問題が検出されます。

シンボル宣言の冗長性

このカテゴリにはコードインスペクションが含まれ、ほとんどが重大度レベルが警告であり、空の未使用のシンボル宣言を検出します。

コンパイラーの警告

このカテゴリのインスペクションは、コンパイルする前にコンパイラーの警告を検出します。

スペルの問題

これらのインスペクションは、さまざまな状況でタイプミスを検出します。

NUnit

これらのインスペクションは、NUnit テストに関連するコードの問題を検出します。

Xunit

これらのインスペクションは xUnit.Net テストに関連するコードの問題を検出します。

フォーマット

このカテゴリのインスペクションは、コードフォーマットの問題を検出します

Clang-Tidy チェック

このカテゴリのインスペクションは、ReSharper と統合された強力なオープンソースコード分析ツールである Clang-Tidy(英語) によって提供されます。

Clang

このカテゴリのインスペクションは、ReSharper に統合された Clang コンパイラーの警告に対応しています。

Clang スタティックアナライザーチェック

このカテゴリのインスペクションは、ReSharper と統合された Clang 静的アナライザーからの診断です。

すべての静的アナライザーチェックはデフォルトで無効になっています。これを有効にすると Clang-Tidy が大幅に遅くなるからです。

Unreal Engine

このカテゴリのインスペクションは、Unreal Engine(英語) プロジェクトに固有のものです。

Unreal ビルドシステム

このカテゴリのインスペクションは、Unreal Engine(英語) プロジェクトに固有のものです。

Unity

このカテゴリのインスペクションは、Unity(英語) プロジェクトに固有のコードの問題を報告します。

Unity バーストコンパイラーの警告

このカテゴリのインスペクションは、コードが実際にコンパイルされる前に Unity バーストコンパイラー(英語)の警告を報告します。

Unity パフォーマンスインスペクション

このカテゴリのインスペクションは、計算効率の悪いパターン Unity(英語) プロジェクトを報告します。

構成可能コードインスペクションの識別子

構成可能な各コードインスペクションには、構成に使用できる 2 つの固有の識別子があります。例として可能性のある 'System.NullReferenceException' インスペクションを考えてみましょう:

インスペクション ID

単一の問題に対するコメントでインスペクションを抑制するために使用されます。

// ReSharper disable once PossibleNullReferenceException

またはコメントからファイルの終わりまで:

// ReSharper disable PossibleNullReferenceException

または、タイプまたはメソッドの属性を使用することもできます。

[SuppressMessage("ReSharper", "PossibleNullReferenceException")]

.

インスペクション EditorConfig プロパティ

インスペクション .editorconfig ファイルからを構成するために使用できます。例: 次の行を使用して、インスペクションの重大度レベルをエラーに変更できます。

resharper_possible_null_reference_exception_highlighting=error

コードインスペクションインデックスの中で各々の構成可能なインスペクションのための識別子を見つけることができます - ただ言語ページを選んで、それから望ましいインスペクションの詳細を見つけるためにブラウザー検索を使うこと。

構成可能なコードインスペクションのリスト

関連ページ:

設計時にコードの問題を分析する

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...

特定の範囲でコードの問題を見つける

設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。開始コードインスペクション:ソリューション、プロジェクト、カスタムスコープのコードをインスペクションするソリューションワイドのインスペクションの結果(たとえば、未使用のパブ...

コードインスペクションインデックス

このセクションには、ReSharper の独自コードインスペクションがすべて含まれており、いずれも無効にしたり、重大度レベルを変更したりできます。これらのコードインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出するのに役立ち、さらに特定のスコープ内でコードの問題を見つけることもできます。このセクションのトピックでは、コードインスペクションを言語別にグループ化しています。C# のコードインスペクション、VB.NET のコードインスペクション、JavaScript のコードイ...

アクションインジケーターとアクションリスト

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケーターは、設定に応じて、アクションバー、テキストエディターの左マージンおよび / また...

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

カスタムコードインスペクションとクイックフィックスを作成する

コードに問題または悪い習慣があるが、ReSharper がそれを検出しない場合は、カスタムコードインスペクションを作成することができます。さらに、問題のあるコードを置き換えるコード、つまりカスタムクイックフィックスを指定することができます。カスタムインスペクションが正しく作成されていれば、コードベースのすべての同様の問題を見つけ出し、問題のあるコードをエディターでハイライトすることができます。カスタムインスペクションを作成するには、構造検索と置換メカニズムを利用できます。カスタムインスペクション...