ReSharper 2018.2ヘルプ

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

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オプションのコード・インスペクション | インスペクション重大度ページにコードインスペクションをグループ化し、特定のスコープで見つかったインスペクション結果ウィンドウに表示されるコードの問題をグループ化するために使用されます。

  • Potential Code Quality Issues
    This category includes inspections that detect critical issues (code smells), mostly with エラー or 警告 level. This category also includes ローカリゼーションの支援を保証するインスペクション .

  • Common Practices and Code Improvements
    This category groups inspections that hunt for medium severity issues that mainly affect code readability.

  • Redundancies in Code
    Code inspections in this category look for redundancies and dead code, which affect code readability and style, and could be safely removed. Some code redundancies cannot be fixed automatically, and quick-fixes for them are performed in the interactive mode, requiring the user input. But the majority of the redundancies can be fixed without user interaction, using either 範囲内で修正する or コードのクリーンアップ .

  • Language Usage Opportunities
    This category includes code inspections, mostly with the 提案 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 自動的に検出することも、手動で設定することもできます .

  • Code Notifications
    This category groups code inspections with minor severity levels.

  • Code Style
    Inspections in this category detect violations of コード構文スタイル . In contrast to most of other code inspections, these inspections can either detect the same code construct as a code issue or not depending on the corresponding code style rule configured on the コード編集 | [言語] | コード・スタイル page of ReSharper options. You can also fix issues that these inspection detect, using コードのクリーンアップ .

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

  • Redundancies in Symbol Declaration
    This category includes code inspections, mostly with the 警告 severity level, which detect empty and unused symbol declarations.

  • Compiler Warnings
    Inspections in this category detect compiler warnings before you compile.

  • Spelling Issues
    These inspections detect typos in various contexts.

  • Not Runnable Tests
    These inspections detect tests that cannot be executed.

  • NUnit
    These inspections detect code issues related to NUnit tests.

  • Formatting
    Inspections in this category detect code code formatting problems.

  • Clang-Tidy Checks
    Inspections in this category are provided by Clang-Tidy(英語) — a powerful open-source code analysis tool 統合された with ReSharper C++.

  • Clang
    Inspections in this category correspond to Clang compiler warnings 統合された with ReSharper C++.

  • Clang Static Analyzer Checks
    Inspections in this category are diagnostics from Clang Static Analyzer 統合された with ReSharper C++.
    All static analyzer checks are disabled by default, since enabling them significantly slows down Clang-Tidy.

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

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

  • インスペクション IDは、インスペクションをコメント付きで抑圧するするために使用されます:
    // ReSharper disable once PossibleNullReferenceException を1回発行する
    // ReSharper disable PossibleNullReferenceException ファイルの最後まで、
    または属性付きで -
    [SuppressMessage("ReSharper", "PossibleNullReferenceException")]

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

設定可能な各インスペクションの識別子は、コードインスペクション索引で見つけることができます。言語ページを選択し、ブラウザ検索を使用して目的のインスペクションの詳細を見つけてください。

最終変更日: 2018年9月24日

関連事項