ReSharper 2020.3 ヘルプ

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

設計時コードインスペクションを構成する

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

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

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

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

    色識別子 This option lets you enable or disableReSharper syntax highlighting scheme.
    If it is selected, language identifiers are highlighted with colors as defined in Visual Studio options: ツール | オプション | 環境 | フォントおよび色 .
    The list of syntax identifiers provided by ReSharper is available in the アイテムを表示する list, each name starting with the ReSharper prefix.

    このオプションを無効にすると、マウスオーバー時に表示される記号情報のツールチップも無効になることに注意してください。

    ハイライトカラーの使用箇所 コード内の色定義のハイライトを有効にします。詳細は、カラーアシスタンスを参照してください。
    文字列リテラルの特殊文字をハイライトする 非逐語文字列内の正しいおよび不正なエスケープシーケンスのハイライトを有効にします。例:
    Highlighting of escape sequence in strings
    詳しくは、正規表現のアシスタンスを参照してください。
    コンテキスト終了をハイライトする このオプションはデフォルトで有効になっており、制御フローが現在のコンテキストを終了できるすべての場所をハイライトするように ReSharper に指示します。例: メソッドの場合、キャレットをこれらの識別子の 1 つに設定すると、メソッドの戻り値の型、すべての returnthrow キーワードなどがハイライトされます。
    ReSharper highlights context exits
    ループの場合、さらに、loop キーワードとこのループ内のすべての break ステートメントをハイライトします。
    メソッドがエディターに完全に表示されない場合は、メソッド名で関数出口にナビゲートするコマンドを呼び出して、別の種類のハイライトをトリガーできます。これは、キャレットがメソッド名を離れても消えません。
  4. 必要に応じて、ソリューション全体の分析を有効にするためにソリューション全体の分析を可能にするチェックボックスを選択できます。

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

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

ReSharper を使用すると、コードインスペクションから除外するファイル、ファイルマスク、フォルダーのリストを構成できます。除外されたアイテムは、特定のスコープ設計時コードインスペクションコードインスペクションの両方で無視されますが、コードインスペクションから除外されたシンボルに移動したりリファクタリングしたりできるように、ReSharper によって引き続きインデックスが作成されます。

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

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコードインスペクション | 無視されたコードを選択します。

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

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

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

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

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

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

凍結されたプロジェクトをインデックスから除外する

On the コードインスペクション | 無視されたコード page of ReSharper options( Alt+R, O ), you can also use the 無視するプロジェクト list to specify projects that should be completely ignored by ReSharper.

無視されたプロジェクトは ReSharper によってインデックスに登録されません。つまり、ReSharper 機能(コード解析リファクタリングコード生成など)はこれらのプロジェクトで使用できません。

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

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

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

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

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

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

生成されたコードでファイルとリージョンを指定する

  1. On the コードインスペクション | 生成されたコード page of ReSharper options( Alt+R, O ), use the ファイルの追加 and the フォルダーの追加 buttons to specify files or folders that contain generated code.

  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 オプションダイアログ Alt+R, O を使用することです。

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

  1. On the コードインスペクション | インスペクション重大度 page of ReSharper options( Alt+R, O ), you can view all configurable code inspections and their severity levels. The inspections are grouped by languages and then by categories.

  2. Find and select the inspection whose severity you want to modify.To find an inspection, just start typing its name.

  3. 選択したエントリの右側にあるリストをクリックして、目的の重大度レベルを選択します。

    Changing inspection severity in the ReSharper Options dialog

  4. インスペクションのデフォルトの重大度レベルを変更すると、その横にデフォルトにリセット Themed icon undo screen gray ボタンが表示され、重大度をデフォルト値にリセットできます。
    同じボタンが、そのようなインスペクションが属するカテゴリの横にも表示されます。カテゴリの横にあるこのボタンをクリックすると、カテゴリ内のすべてのインスペクションがデフォルトの重大度レベルにリセットされます。

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

特定のコードインスペクションを無効 / 有効にする

一部のコードインスペクションがささいな、または興味がないと思われる場合は、このインスペクションを無効にして、コードインスペクション実行したときに関連する問題が特定のスコープで検出されないようにすることができます。無効にしたコードインスペクションはいつでも有効にできます。一部のインスペクションはデフォルトで無効になっており、必要に応じて有効にできます。

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

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

  • On the コードインスペクション | インスペクション重大度 page of ReSharper options( Alt+R, O ), use the search box to find the inspection you want to disable or enable, and then use the checkbox next to it.

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

EditorConfig を使用して、コードインスペクションを構成する

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

To configure code inspections from EditorConfig, you have to select the editorconfig とプロジェクト設定から設定を読み込む checkbox on the コードインスペクション | 設定 page of ReSharper options( Alt+R, O ).

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

.editorconfig ファイルのインスペクション設定は、他のプロパティと同様に構成されます。対応する行を追加します。

[inspection_editorconfig_property]=[error | warning | suggestion | hint | none]

例: 次の行を使用して、可能性のある '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] を挿入します。このコメントは、ファイル内の対応するすべての問題についてインスペクションを抑制します。

    • インスペクション [ インスペクション名 ] | コメントで一度無効にする | 無効にしてコメントで復元する — このオプションは、問題の前後に 1 組のコメント( 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")]

関連ページ:

アノテーションを使用してコードインスペクションを調整する

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

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

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。また、JSLint、ESLint、TSLint から Javascript / Typescript コードの検証と修正をエディターで使用すること...

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

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

構文ハイライト

ReSharper は、デフォルトの Visual Studio のシンボルのハイライトを拡張します。さらに、フィールド、ローカル変数、型、その他の識別子を設定可能な色でハイライトします。例: ReSharper の構文ハイライトにより、コード内のローカル変数とフィールドを簡単に区別することができます。デフォルトの色で C# の ReSharper 構文のハイライトは次のようになります。ReSharper 構文のハイライトの切り替えメインメニューからを選択するか、Alt+R O を押してから、左側...

カラーアシスタンス

ReSharper には、コード内のカラー定義を扱うのに役立つ一連の機能が用意されています。どのように色が定義されていても、色の値には対応する色で下線が引かれます。ポインタを色の値の上に置くと、色の値を他の形式でチェックすることができます。色は補完リストでも視覚化されています。ハイライトされている色の定義が表示されている場合は、専用のビジュアルエディターを使用して色の定義を変更できます。色の定義を変更するキャレットをハイライトされた色の定義に置きます。を押し、アクションリストからパレットから色を...

正規表現のアシスタンス

ReSharper は、.NET の正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。ReSharper は、新しい式を入力する際に、自動補完と検証を支援します。文字列リテラルの正規表現:デフォルトでは、ReSharper は、正規表現クラスのメソッドで、パラメーターの正規表現のみを処理します。ただし、正規表現を含む文字列は、文字列定数、フィールド、他のメソッドの引数など、さまざまな場所で定義できます。ReSharper で文字列を...