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

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

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

  • コードの冗長性
    このカテゴリのインスペクションコードは、コードの読みやすさとスタイルに影響する冗長性とデッドコードを探し出し、安全に削除できます。一部のコードの冗長性は自動的には解決できませんし、対話モードではクイックフィックスが実行され、ユーザーの入力が必要になります。しかし、範囲内で修正するまたはコードのクリーンアップのいずれかを使用して、ユーザの介入なしに冗長性の大部分を修正することができます。

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

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

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

  • 制約違反
    このカテゴリには、主に警告重大度レベルのコードインスペクションが含まれています。警告などのシンボル属性に関連する違反を検出します。

  • シンボル宣言の冗長性
    このカテゴリには、主に警告重大度レベルのコードインスペクションが含まれています。このレベルでは、空のシンボル宣言と未使用のシンボル宣言が検出されます。

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

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

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

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

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

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

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

  • Clangスタティックアナライザチェック
    このカテゴリのインスペクションは、ReSharper C++を使用したClangスタティックアナライザ統合されたの診断です。
    すべてのスタティックアナライザチェックは、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年11月5日

関連事項