ReSharper 2024.1 ヘルプ

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

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

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

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

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

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

  4. その設定ページの他のオプションを使用して、デザイン時のインスペクションを好みに合わせて調整します。

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

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

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

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

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

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

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

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

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

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

ステータスインジケータの一時停止アイコン Code analysis paused によって、コードインスペクションが無効になっているファイルを認識できます。

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

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

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

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

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

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

プロジェクトを無視リストに追加するには、プロジェクトファイル名(ProjectOne.csproj など)またはファイルマスク(Project*.csproj など)を使用して、ProjectOne.csprojProjectTwo.csproj などと一致させます。

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

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

ソリューションで .editorconfig を使用する場合は、generated_code プロパティを使用して生成されたコードにマークを付けることもできます。例:

[*generated.cs] generated_code = true

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

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

  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. ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページでは、すべての構成可能なコードインスペクションとその重大度レベルを表示できます。インスペクションは言語別にグループ化され、さらにカテゴリ別にグループ化されています。

  2. 重大度を変更するインスペクションを見つけて選択します。インスペクションを見つけるには、名前の入力を開始します。

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

    Changing inspection severity in the ReSharper Options dialog
  4. インスペクションのデフォルトの重大度レベルが変更されると、その横にデフォルトにリセット ThemedIcon.Undo.Screen.(Gray).png ボタンが表示され、重大度をデフォルト値にリセットできます。

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

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

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

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

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

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

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

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

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

EditorConfig からコードインスペクションを構成するには、ReSharper オプション Alt+R, Oコードインスペクション | 設定ページで editorconfig とプロジェクト設定から設定を読み込むチェックボックスを選択する必要があります。

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

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

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

例: 次の行を使用して、可能性のある 'System.NullReferenceException' インスペクションの重大度レベルエラーに変更できます。

resharper_possible_null_reference_exception_highlighting=error

または、次の行でデフォルト値による冗長引数インスペクションを無効にすることができます。

resharper_redundant_argument_default_value_highlighting=none

各インスペクションの 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 は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...

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

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

ソリューション全体の分析

ソリューション全体の分析により、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語 C++ を除くでエラーが検出されます。プロジェクトにそのようなファイル (JavaScript、CSS、HTML など) が含まれている場合、ソリューション全体の分析は、実行時にしか検出できないエラーを見つけるのに役立ちます。ReSharper のソリューション全体の分析では、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:ReSharper 自...

設定

このページの ReSharper オプションでは、コードインスペクションの設定を指定できます。コード分析を有効にする設計時コードインスペクションを有効にするには、このチェックボックスを選択します。このチェックボックスに関係なく、特定のスコープでコードインスペクションをいつでも実行できます。分析:editorconfig とプロジェクト設定から設定を読み込むプロジェクトのコードスタイルを管理するために EditorConfig を使用する場合は、.editorconfig ファイルからコードインス...

ReSharper 設定の管理と共有

ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...