ReSharper 2019.2ヘルプ

コード・インスペクション

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 アイコンが表示され、エラーごとに赤いマーカーがマーカーバーに表示されます。

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

警告

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

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

ReSharper: Design-time code inspection
文またはその一部を青い波の下線で強調表示します。
ReSharper: Design-time code inspection
現在のファイルに少なくとも1つの警告がある場合、ステータスインジケータには警告 ThemedIcon ErrorStripeWarning 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 C++と統合された強力なオープンソースコード解析ツールであるClang-Tidy(英語)によって提供されます。

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

  • Clangスタティックアナライザチェック
    このカテゴリのインスペクションは、ReSharper C++と統合されたClangスタティックアナライザの診断です。
    有効にすると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

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

最終更新日: 2019年11月13日

関連ページ:

設計時にコード課題を検出

ReSharperは、エディターでコード・ファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの課題は、重大度に従ってエディターで強調表示されます。課題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、...

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

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

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

このセクションでは、すべてのReSharperの独自コードインスペクションを見つけることができます。いずれのコードも、その重大度レベルを無効化または変更できます。これらのコードインスペクションは、開いているすべてのファイルで設計時にコードの課題を検出するのに役立ち、さらに特定のスコープでコードの課題...

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

ReSharperがVisual Studioテキストエディターに追加する最も注目すべきものには、アクションインジケータとアクションリストがあります。これらは、ReSharperでサポートされるすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NETなど)に表示され...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスの適用:クイックフィックスは、強調表示されたコード...

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

コード注釈を使用して、ReSharperがコードをインスペクションする方法をカスタマイズすることもできます。設計時コードインスペクションを構成する:デフォルトでは、ReSharperはサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にす...