ReSharper 2020.3 ヘルプ

コードインスペクション

ReSharper は、サポートされているすべての言語で 2500 を超えるコードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルの設計時コードの問題を検出してハイライトしたり、ソリューション全体と同じくらい大きい特定のスコープ内のすべてのコードの問題を見つけたりするために使用されます。

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

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

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

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

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

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

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

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

エラー

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

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

ReSharper: Design-time code inspection
間違ったステートメントやその一部に赤い波線の下線をハイライトします。
ReSharper: Design-time code inspection
現在のファイルに少なくとも 1 つのエラーがある場合、ステータスインジケーターエラー Themed icon error stripe error screen gray アイコンが表示され、マーカーバーにエラーごとに赤いマーカーが表示されます。

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

警告

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

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

ReSharper: Design-time code inspection
文またはその一部を青い波の下線でハイライト表示します。
ReSharper: Design-time code inspection
現在のファイルに少なくとも 1 つの警告がある場合、ステータスインジケータには警告 Themed icon error stripe warning screen gray アイコンが表示され、マーカーバーには警告ごとに黄色のマーカーが表示されます。

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

提案

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

たとえば、' パラメーターは基本型で宣言できます。' ということは、パラメーターの基本型のメンバーのみを使用することを意味します。これは、実際のパラメーター型の詳細を考慮しなかったなど、異なるエラーを示す可能性があります。この知識に基づいて、パラメーターの型を変更したい場合もあれば、そうでない場合もあります。

デザインタイムインスペクションでは、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 Static Analyzer からの診断です。
    静的アナライザーのチェックはすべて有効にすると Clang-Tidy の速度が大幅に低下するため、デフォルトでは無効になっています。

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

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

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

  • インスペクション ID は、コメントでインスペクションを抑制するために使用されます。

    // ReSharper disable once PossibleNullReferenceException
    単一の問題または
    // ReSharper disable PossibleNullReferenceException
    ファイルの終わりまで
    または属性付き —
    [SuppressMessage("ReSharper", "PossibleNullReferenceException")]
    .

  • インスペクション EditorConfig プロパティを使用してインスペクション .editorconfig ファイルからを構成することができます。例: インスペクションの重大度レベルをエラーに変更するには、次の行を使用します。

    resharper_possible_null_reference_exception_highlighting=error

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

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

関連ページ:

設計時にコードの問題を検出する

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。また、JSLint、ESLint、TSLint から Javascript/ Typescript コードの検証と修正をエディターで使用することも...

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

設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。Visual Studio および ReSharper を起動せずに、コマンドラインから特定のスコープ内のコードをインスペクションすることもできます。開始コードインスペクショ...

コードインスペクション索引

このセクションでは、ReSharper のすべてのプロプライエタリコードインスペクションを確認できます。これらのコードのいずれかを無効にしたり、重大度を変更したりできます。これらのコードインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出できます。さらに、特定のスコープでコードの問題を見つけることができます。このセクションのトピックは、言語ごとにインスペクションをグループコード化します。C# のコードインスペクション、VB.NET のコードインスペクション、JavaScri...

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

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

コードインスペクション設定の構成

コードアノテーションを使用して、ReSharper がコードをインスペクションする方法をカスタマイズすることもできます。設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押し...

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

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