ReSharper 2019.1ヘルプ

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

デザインタイムコードインスペクションの切り替え

デフォルトでは、ReSharperはサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。

デザインタイムコードインスペクションを無効または有効にするには

  1. メインメニューでReSharper | オプションを選択するか、Alt+R,,Oを押し、次に左側のコード・インスペクション | 設定を選択します。

  2. 設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用します。

  3. 必要に応じて、このページでデザイン時のインスペクション機能を有効または無効にすることができます。

    色識別子

    このオプションを使用すると、ReSharper 構文強調表示スキームを有効または無効にすることができます。
    これが選択されていると、言語IDは、Visual Studioオプションツール | オプション | 環境 | フォントおよび色で定義されている色で強調表示されます。
    ReSharperによって提供される構文IDのリストはアイテムを表示するリストにあり、それぞれの名前はReSharper接頭部で始まります。

    強調表示カラーの使用箇所

    コード内の色定義の強調表示を有効にします。詳細は、カラーアシスタンスを参照してください。

    文字列リテラルの特殊文字を強調表示する

    非逐語文字列内の正しいおよび不正なエスケープシーケンスの強調表示を有効にします: たとえば:

    Highlighting of escape sequence in strings
    詳しくは、正規表現のアシスタンスを参照してください。

    コンテキスト終了を強調表示する

    このオプションはデフォルトで有効になっており、制御フローが現在のコンテキストを終了できるすべての場所を強調表示するようにReSharperに指示します。例:メソッドの場合、キャレットをこれらの識別子の1つに設定すると、メソッドの戻り型、すべての returnthrow キーワードなどが強調表示されます。

    ReSharper highlights context exits
    ループの場合は、ループキーワードと、このループ内のすべての break ステートメントをさらに強調表示します。
    メソッドがエディターに完全に表示されていない場合は、メソッド名に対して関数出口にナビゲートするコマンドを実行して別の種類の強調表示をトリガできます。キャレットがメソッド名を終了しても消えません。

  4. 必要に応じて、ソリューション全体の分析を有効にするためにソリューション全体の分析を可能にするチェックボックスを選択できます。

  5. 保存をクリックして変更を適用し、ReSharperに変更を保存する場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、「 resharper設定の管理と共有 」を参照してください。

コードインスペクションからのファイルとフォルダーの除外

ReSharperを使用すると、コードインスペクションから除外する必要があるファイル、ファイルマスク、およびフォルダーの一覧を構成できます。除外された項目は、特定の範囲で設計時コードインスペクションコードインスペクションの両方で無視されますが、ReSharperによって索引付けされているため、コードインスペクションから除外されたシンボルにナビゲートまたはリファクタリングできます。

コードインスペクションからファイルとフォルダーを除外するには

  1. メインメニューでReSharper | オプションを選択するか、Alt+R,,Oを押し、次に左側のコード・インスペクション | 設定を選択します。

  2. スキップする要素セクションの左側の部分では、コードインスペクションによって無視されるファイルまたはフォルダーを指定できます。

  3. このセクションの右側では、ソリューション内の一致するすべてのファイルをコードインスペクションから除外するマスク( *.vbなど)を指定できます。

  4. 保存をクリックして変更を適用し、ReSharperに変更を保存する場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、「 resharper設定の管理と共有 」を参照してください。

ReSharperがこのファイルをオプションを開かずに除外ファイルのリストに追加できるように、コードインスペクションから現在のファイルをすぐに除外することもできます。

現在のファイルをコードインスペクションから除外/含めるには

コードインスペクションから除外されたファイルを開くと、ステータスインジケータの対応するアイコン ThemedIcon ErrorStripeOff Screen Gray でそれを認識できます。

フリーズしたプロジェクトをインデックスから除外する

ReSharperオプションのコード・インスペクション | 設定ページでは、無視するプロジェクトリストを使用して、ReSharperによって完全に無視されるプロジェクトを指定することもできます。

無視されたプロジェクトはReSharperによって索引付けされません。つまり、コード分析リファクタリングコード生成などのReSharper機能は、これらのプロジェクトでは使用できません。

このリストは主に、変更されることのないサードパーティコードやフリーズコードを含むプロジェクトのインデックス作成や分析を行わないことによってパフォーマンス向上させることを目的としています。

無視されたプロジェクト内のソースファイルは解析されませんが、ReSharperはそれらのプロジェクトの出力からコンパイルされたコードを処理します(これは非常に安価なパフォーマンスです)。つまり、無視されたプロジェクトをビルドした後、ReSharperはそれらのプロジェクトからのシンボルの使用箇所を正しく解決し、それらのプロジェクトでナビゲーションや検索を楽しむことができるようになります。

無視リストにプロジェクトを追加した後に 'シンボルを解決できません'のようなエラーがある場合、無視されたプロジェクトをビルドする必要があり、ReSharperはこれらのシンボルをコンパイルされた成果物から解決できます。

無視リストにプロジェクトを追加するには、ProjectOne.csproj などのプロジェクトファイル名、または ProjectOne.csprojProjectTwo.csprojなどに一致するように Project*.csproj などのファイル名を使用します。

生成コードのコードインスペクションを部分的に無効にする

ファイル、フォルダー、ファイルマスク、および生成コードを含む領域のリストを構成することもできます。これらの項目では、ReSharperは、コードのコンパイラエラーと警告をチェックするコードインスペクションのみを実行します。 *.designer.cs など、生成コード用にVisual Studioが使用するファイルマスクと領域の一部は、デフォルトでこのリストに含まれていますが、必要に応じてデフォルト設定を変更できます。

生成されたコードでファイルと領域を指定するには

  1. ReSharperオプションのコード・インスペクション | 生成されたコードページで、ファイルの追加およびフォルダーの追加ボタンを使用して、生成コードを含むファイルまたはフォルダーを指定します。

  2. ページの左下部分で、追加ボタンを使用して、生成されたコードファイルのマスク( *.Designer.csなど)を指定します。

  3. ページの右下の部分で、追加ボタンを使用して、生成されたコードを含む領域の名前を指定します。

  4. 保存をクリックして変更を適用し、ReSharperに変更を保存する場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、「 resharper設定の管理と共有 」を参照してください。

生成コードを含む項目のリストは、コードスタイルを無効にし、生成コードをクリーンアップするためにも使用できます。

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

各ReSharperのコードインスペクションには独自のデフォルト重大度レベルがあり、これは検出したコード課題の潜在的な影響に応じて設定されます。ほとんどのインスペクションには設定可能な重大度レベルがあり、これは変更可能です。

コンパイラのエラーと警告を検出するインスペクションには対応する重大度レベルがあり、これを変更することはできません。ただし、コンパイラの警告によっては、#pragma ディレクティブを使用して抑制することができます。特定の警告が表示されたら、アクションリスト#pragmaで抑制するアクションを探します。

エディターからインスペクションの重大度レベルを変更することができます。このインスペクションで検出されたコードの課題が強調表示されます。

インスペクションの重大度をエディターから変更するには

  1. ReSharperのインスペクションによって強調表示されたコードの課題にキャレットを設定します。

  2. Alt+Enter を押すか、キャレットの左側にあるアクションインジケータをクリックしてアクションリストを開きます。

  3. アクションリストでインスペクション [インスペクション名] | インスペクションの重大度を設定するを選択し、新しい重大度を選択します。

    Changing inspection severity level

  4. 変更はスマートセーブロジックを使用して保存されます。

  5. 変更した重要度レベルを共有設定レイヤーに保存する必要がある場合は、インスペクションの重大度を設定するメニュー項目をクリックするか、選択されているときに Enter を押します。表示されたダイアログで、希望する重要度レベルを選択し、次へ保存をクリックしてから希望する設定レイヤーを選択します。

    Inspection Options dialog

変更した重大度を共有設定レイヤーに保存する、または複数のインスペクションの重大度レベルを変更する別の方法は、後述の「ReSharperオプション」ダイアログを使用することです。

オプションからコードインスペクションの重大度レベルを変更するには

  1. ReSharperオプションのコード・インスペクション | インスペクション重大度ページでは、すべての構成可能コードインスペクションとその重大度を表示できます。インスペクションは言語別に分類され、さらにカテゴリ別に分類されています。

  2. 重大度を変更するインスペクションを検索して選択します。インスペクションを見つけるには、名前を入力してください。

  3. 選択したエントリの右側にあるドロップダウンリストをクリックし、必要な重大度を選択します。

    Changing inspection severity in the ReSharper Options dialog

  4. インスペクションのデフォルトの重大度レベルが変更された場合は、その横にデフォルトにリセット ThemedIcon Undo Screen Gray ボタンが表示され、重大度をデフォルト値にリセットできます。
    カテゴリの横にあるこのボタンをクリックすると、カテゴリ内のすべてのインスペクションがデフォルトの重大度レベルにリセットされます。

  5. 保存をクリックして変更を適用し、ReSharperに変更を保存する場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、「 resharper設定の管理と共有 」を参照してください。

特定のコードインスペクションの無効/有効化

あるコードインスペクションが些細であるか、あなたにとって興味がないと思われる場合は、このインスペクションを無効にして、関連する課題がエディターで強調表示されたりコードインスペクションの実行時に検出されたりしないようにすることができます。無効になったコードインスペクションはいつでも有効にできます。一部のインスペクションはデフォルトで無効になっており、必要に応じて有効にできます。

次のいずれかの方法でコード・インスペクションを無効にすることができます。

  • エディター内でこのインスペクションによって強調表示されているコードの課題がある場合は、強調表示されているコードにキャレットを設定し、Alt+Enter を押してからインスペクション [インスペクション名] | インスペクションの重大度を設定する | を選択します。

  • ReSharperオプションのコード・インスペクション | インスペクション重大度ページで、検索ボックスを使用して無効または有効にするインスペクションを見つけて、その横にあるチェックボックスを使用します。

インスペクションの無効/有効状態は、重大度レベルの変更とまったく同じ方法で、共有設定レイヤーに保存されます。

EditorConfigを使用してコードインスペクションを設定する

プロジェクトのコードスタイルを管理するためにEditorConfigを使用する場合は、.editorconfig ファイルからコードインスペクションを設定することもできます。

EditorConfigからコードインスペクションを設定するには、ReSharperオプションのコード・インスペクション | 設定ページでeditorconfigから設定を読み込みます...チェックボックスを選択する必要があります。

EditorConfigの規則が示すように、ReSharperは、ルートファイルパスに到達するか root=trueでEditorConfigファイルが見つかるまで、.editorconfig という名前のファイルとそのすべての親ディレクトリーに定義されているインスペクション設定を適用します。 .editorconfig ファイルで指定されているファイルマスク、たとえば *Test.cs も考慮されます。

.editorconfig ファイルのインスペクション設定は、対応する行を追加することによって、他のプロパティーと同様に構成されています。
[inspection_editorconfig_property]=[error | warning | suggestion | hint | do_not_show]
例:可能性のある 'System.NullReferenceException' インスペクションの重大度レベルエラーに変更するには、以下の行を使用します。
resharper_possible_null_reference_exception_highlighting=error

各インスペクションのEditorConfigプロパティーは、コードインスペクション索引セクションとEditorConfigプロパティーのインデックスページのページにあります。- ブラウザ検索を使用して目的のインスペクションのプロパティーを探すだけです。

特定のスコープ内のコードインスペクションを抑制する

特定のコードの課題を無視する1つの方法は、対応するコードインスペクションを無効にすることです。この場合、このインスペクションによって検出されたすべてのコード課題は至る所で無視されます。
他の場所でこのインスペクションと他の同様の課題を検出し続けながら、時には特定の場所で特定のインスペクションを抑制する必要があるかもしれません。
例:ReSharperはいくつかのコードを 'デッド'と見なしていますが、それが正しいことがわかります。インスペクションは役に立ち、無効にしたくありません。ただし、後でこのコードを使用したい場合があり、エディターで強調表示したりインスペクションの結果に表示したりしたくない場合があります。そうするために、ReSharperはコメントまたは属性でインスペクションを抑制することを可能にします。コメントは、任意のコードに対してより便利です。属性は、メソッドや型全体でインスペクションを抑制するのに適しています。

コードインスペクションを特定の範囲内に抑止するには

  1. ReSharperのインスペクションによって強調表示されたコードの課題にキャレットを設定します。

  2. Alt+Enter を押すか、キャレットの左側にあるアクションインジケータをクリックしてアクションリストを開きます。

  3. アクションリストで、次のいずれかを選択します。

    • インスペクション [インスペクション名] | コメントで一度無効にする - このオプションは、単一のコメント ReSharper disable once [inspection id]を挿入します。これは、対応する課題の最初の発生に対してインスペクションのみを抑制します。

    • インスペクション [インスペクション名] | コメントで一度無効にする | コメント付きのファイルで無効にする - このオプションは単一のコメント ReSharper disable [inspection id] をファイルの先頭に挿入します。このコメントは、ファイル内の対応するすべての課題についてインスペクションを抑制します。

    • インスペクション [インスペクション名] | コメントで一度無効にする | 無効にしてコメントで復元する - このオプションは課題の前後に一対のコメントを挿入します - ReSharper disable [inspection id]ReSharper restore [inspection id]。これらのコメントは、それらの間のすべての対応する課題についてインスペクションを抑制します。
      その後、これらのコメントをファイル内の他の場所に移動して、このタイプのいくつかの課題を抑制することができます。例:未使用の名前空間のインポートをいくつか保持したい場合、これは「冗長な名前空間」インスペクションを抑制できます。

    • インスペクション [インスペクション名] | コメントで一度無効にする | メソッドを無効にする - このオプションは、メソッドに [SuppressMessage("ReSharper", "[inspection id]")]属性を追加します。この属性は、メソッド内のインスペクションを抑制します。

    • インスペクション [インスペクション名] | コメントで一度無効にする | クラスを無効にする - このオプションはクラスに [SuppressMessage("ReSharper", "[inspection id]")]属性を追加します。この属性はクラス全体でインスペクションを抑制します。

    • インスペクション [インスペクション名] | コメントで一度無効にする | ファイル内のすべてのインスペクションを無効にする - このオプションは、ファイルの先頭に単一のコメント ReSharper disable All を挿入します。このコメントはすべてのインスペクションファイルを抑制します。
      必要に応じて、特定の行の後に ReSharper restore All を挿入してコードインスペクションを有効にすることができます。

タイプまたはメソッド内のすべてのインスペクションを非表示にするには、次の属性を追加します。[SuppressMessage("ReSharper", "All")]

最終更新日: 2019年7月16日

関連事項

関連ページ:

注釈を使用してコードインスペクションを絞り込む

コード検査や他の多くのReSharperの機能は、課題を検出し、改善を提案し、他の方法であなたを手助けするために、言語構成の動作を知ることに主に依存しています。しかし、この種の分析ではすべてを検出することはできません。例:メソッドがを返さないように設計されており、そのクライアントがそれに応じて設計さ...

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

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

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

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

構文強調表示

ReSharperは、デフォルトのVisual Studioのシンボルの強調表示を拡張します。さらに、フィールド、ローカル変数、タイプ、その他の識別子を設定可能な色で強調表示します。例:ReSharperの構文強調表示により、コード内のローカル変数とフィールドを簡単に区別することができます。デフォル...

カラーアシスタンス

ReSharperには、コード内のカラー定義を扱うのに役立つ一連の機能が用意されています。どのように色が定義されていても、色の値には対応する色で下線が引かれます。ポインタを色の値の上に置くと、色の値を他の形式でチェックすることができます。色は補完リストでも視覚化されています。強調表示されている色の定...

正規表現のアシスタンス

ReSharperは、.NETの正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。ReSharperは、新しい式を入力する際に、自動補完と検証を支援します。文字列リテラルの正規表現:デフォルトでは、ReSharperは、パラメータの正規表...