ReSharper 2018.3ヘルプ

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

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

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

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

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

  • 構成可能な重大度を持つ 構造検索とパターンの置換として定義されたカスタムコードインスペクション

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

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

エラー

デフォルトで 'Error'重大度を持つコードインスペクションは、コードがコンパイルされないようにするか、実行時エラーが発生するようなコードの問題を対象としています。これらのインスペクションのほとんどは設定できません。つまり、インスペクションを無効にしたり、重大度を変更することはできません。

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

Code Analysis Code Highlighting Errors 1
間違ったステートメントやその一部に赤い波線の下線をハイライトします。
Code Analysis Code Highlighting Errors 2
現在のファイルに少なくとも1つのエラーがあると、ステータスインジケータエラー ThemedIcon ErrorStripeError Screen Gray アイコンが表示され、エラーごとに赤いマーカーがマーカーバーに表示されます。

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

警告

この重大度は、コンパイラの警告やコードのコンパイルを妨げないが、コードの非効率的な部分を表す他の問題に対応します。例:ReSharperは、冗長型キャストや名前空間のインポート指示、不正な書式文字列、宣言されたが使用されていないローカル変数やプライベートフィールド、未使用のプライベートメソッドなどを通知します。

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

Code Analysis Code Highlighting Warnings 1
文またはその一部を青い波の下線でハイライト表示します。
Code Analysis Code Highlighting Warnings 2
現在のファイルに少なくとも1つの警告がある場合、ステータスインジケータには警告 ThemedIcon ErrorStripeWarning Screen Gray アイコンが表示され、マーカーバーには警告ごとに黄色のマーカーが表示されます。

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

提案

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

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

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

Code Analysis Code Highlighting Suggestions 1
マーカーバーに各警告の緑のマーカーを追加します。

ヒント

これが最も低い重大度です。この重大さに関するコードの問題は、特定のコードの詳細に注意を向けるだけでなく、改善方法を推奨します。

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

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

強調表示されたヒントにキャレットを設定すると、ポップアップは表示されず、対応するメッセージはステータスバーにのみ表示されます。

ほとんどのコードインスペクション(コンパイラエラーを検出するものを除く)の重大度レベルは変更可能です。つまり、必要に応じて各コードインスペクションの重大度レベルを定義できます。

特定の範囲のコードを検査すると、ReSharperは検出された問題に対応するアイコンを追加し、インスペクション結果ウィンドウの重要度レベルで問題を分類することを許可します。

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

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

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

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

  • コードの冗長性
    このカテゴリのコードインスペクションは、コードの読みやすさやスタイルに影響を与え、安全に削除できる可能性がある、冗長性とデッドコードを探します。いくつかのコードの冗長性は自動的には修正できず、それらのための迅速な修正は対話モードで実行され、ユーザ入力を必要とします。しかし、大部分の冗長性は、ユーザーによる操作なしに、スコープ内の修正またはコードのクリーンアップを使用して修正できます。

  • 言語使用の機会
    This category includes code inspections, mostly with the suggestion severity level, which notify you when more advanced language constructs can be used. These inspections detect syntax of outdated language versions and suggest using features from more modern language versions. For most of the supported languages, language version can be detected automatically or set manually.

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

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

  • 制約違反
    This category includes code inspections, mostly with the warning severity level, which detect violations related to symbol attributes, including ReSharperのコードアノテーション , and other similar issues.

  • シンボル宣言の冗長性
    This category includes code inspections, mostly with the warning severity level, which detect empty and unused symbol declarations.

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

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

  • 実行不可能なテスト
    これらのインスペクションは実行できないテストを検出します。

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

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

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

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

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

  • Clangスタティックアナライザチェック
    このカテゴリのインスペクションは、ReSharper C++と統合されたClangスタティックアナライザの診断です。
    有効にするとClang-Tidyの速度が大幅に低下するため、スタティックアナライザのすべてのチェックはデフォルトで無効になっています。

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

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

  • インスペクション IDはコメント付きでインスペクションを抑制するために使用されます -
    単一号の場合は // ReSharper disable once PossibleNullReferenceException
    // ReSharper disable PossibleNullReferenceException ファイルの終わりまで
    または属性付き -
    [SuppressMessage("ReSharper", "PossibleNullReferenceException")]

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

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

最終更新日: 2019年3月12日

関連事項