コードインスペクション設定を構成する
設計時コードインスペクションを構成する
デフォルトでは、JetBrains Rider は 設計時コードインスペクションを、 対応するサポートされている言語に関係するすべてのファイルで有効化します。 必要に応じて、無効にすることができます。 設計時コードインスペクションが有効化されているかどうかに関係なく、 特定のスコープでコードインスペクションをいつでも実行できます。
「鉛筆」ウィジェット を使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。
Ctrl+Alt+S を押すか、メニューから (Windows および Linux) または (macOS) を選択し、左側の を選択します。
設計時コードインスペクションを切り替えるには、 コード分析を有効にする チェックボックスを使用します。
必要に応じて、 ソリューション全体の分析 を有効にするために ソリューション全体の分析を有効化する チェックボックスを選択できます。
その設定ページの他のオプションを使用して、デザイン時のインスペクションを好みに合わせて調整します。
設定 ダイアログで 保存 をクリックして変更を適用し、JetBrains Rider が保存先を選択できるようにするか、 保存 セレクターからレイヤーを選んで特定の設定レイヤーに変更を保存します。 詳細については、「レイヤーベースの設定 」を参照してください。
複数のターゲットフレームワークのコンテキストを切り替える
コードインスペクションの結果は、ターゲットとなる .NET Framework によって異なる場合があります。これは、異なるバージョンのフレームワークが異なる機能や能力を持っており、それによってコードの挙動が影響を受けるためです。 ほとんどの場合、各ファイルは単一のプロジェクトに属しており、そのプロジェクトは単一の .NET Framework をターゲットとしています。そのため、JetBrains Rider はそのファイルのコードインスペクションのために特定のフレームワークバージョンのコンテキストを明確に設定できます。
ただし、ファイルを異なるフレームワークバージョンでコンパイルできる場合が 2 つあります。
プロジェクトファイルに複数のフレームワークバージョンが定義されているファイルが属する場所。
ファイルは、異なるフレームワークバージョンを持つ複数のプロジェクトに含まれています。
どちらの場合も、現在のコンテキストのフレームワークバージョンは エディターのパンくずリストに表示され、クリックすることで別のバージョンに切り替えることができます。 プロジェクト内に複数のフレームワークがある場合はプロジェクト全体のコンテキストが切り替わり、それ以外の場合はファイル単位でコンテキストが変更されます。

上記の例では、ファイルに 2 つの未解決の呼び出し(Exception() と ArgumentException() )がありますが、 #IF ディレクティブと .NETCoreApp 2.0 を使用して .NETCoreApp 3.1 に対してフィルターで除外された場合、最初の呼び出しが分析用に選択されるため、2 番目の呼び出しのみがエラーとしてハイライトされます。
コードインスペクションからファイルとフォルダーを除外する
JetBrains Rider では、コードインスペクションから除外するファイル、ファイルマスク、フォルダーのリストを構成できます。 除外されたアイテムは 設計時コードインスペクションと 特定のスコープでのコードインスペクションの両方で無視されますが、JetBrains Rider によって引き続きインデックスされるため、コードインスペクションから除外されたシンボルへ ナビゲートしたり リファクタしたりできます。
コードインスペクションから特定のファイルとフォルダーを除外する
Ctrl+Alt+S を押すか、メニューから (Windows および Linux) または (macOS) を選択し、左側の を選択します。
スキップする要素 セクションの左側の部分では、コードインスペクションによって無視されるファイルまたはフォルダーを指定できます。
このセクションの右側では、ソリューション内の一致するすべてのファイルをコードインスペクションから除外するマスク( *.vb など)を指定できます。
設定 ダイアログで 保存 をクリックして変更を適用し、JetBrains Rider が保存先を選択できるようにするか、 保存 セレクターからレイヤーを選んで特定の設定レイヤーに変更を保存します。 詳細については、「レイヤーベースの設定 」を参照してください。
また、オプションを開かずに現在のファイルをコードインスペクションからすぐに除外し、JetBrains Rider がこのファイルを除外対象ファイルのリストに追加することもできます。
コードインスペクションから / に現在のファイルを除外 / 含める
Ctrl+Alt+Shift+8 を押します。
エディター右上隅の インジケーターで、コードインスペクションが無効化されているファイルを認識できます。
生成されたコードのコードインスペクションを部分的に無効にする
生成されたコードを含むファイル、フォルダー、ファイルマスク、領域のリストを構成することもできます。 これらの項目について、JetBrains Rider はコンパイラーのエラーと警告をチェックする コードインスペクションのみを実行します。 *.designer.cs など、生成されたコードに通常使用されるいくつかのファイルマスクと領域は、デフォルトでこのリストに含まれていますが、必要に応じてデフォルト設定を変更できます。
ソリューションで .editorconfig を使用する場合は、 generated_code プロパティを使用して生成されたコードにマークを付けることもできます。 例えば:
生成されたコードでファイルとリージョンを指定する
JetBrains Rider 設定 Ctrl+Alt+S の ページで、 追加 ボタンを使って、生成するコードを含むファイルやフォルダーを指定します。
ページの左下部分で、 追加 ボタンを使用して、生成されたコードファイルのマスク( *.Designer.cs など)を指定します。
ページの右下の部分で、 追加 ボタンを使用して、生成されたコードを含む領域の名前を指定します。
設定 ダイアログで 保存 をクリックして変更を適用し、JetBrains Rider が保存先を選択できるようにするか、 保存 セレクターからレイヤーを選んで特定の設定レイヤーに変更を保存します。 詳細については、「レイヤーベースの設定 」を参照してください。
コードインスペクションの重大度レベルを変更する
各 JetBrains Rider のコードインスペクションには、その検出したコードの問題の潜在的な影響に応じて設定されるデフォルトの 重要度レベルがあります。 ほとんどのインスペクションは、設定可能な重大度レベルを持ち、変更できます。
インスペクションの重大度レベルは、このインスペクションによって検出されたコードの問題がハイライトされるエディターから直接変更できます。
エディターからインスペクションの重大度を変更する
JetBrains Rider のインスペクションでハイライトされているコードの問題にキャレットを置きます。
Alt+Enter を押すか、キャレットの左にある アクションインジケーターをクリックして、 アクションリストを開きます。
アクションリストで インスペクション [name of inspection] | インスペクションの重大度を設定する を選択し、新しい重大度を選択します。

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

変更された重要度レベルを共有設定レイヤーに保存する、または複数のインスペクションの重要度レベルを変更する別の方法は、以下で説明する JetBrains Rider 設定 ダイアログ Ctrl+Alt+S を使うことです。
設定からコードインスペクションの重大度レベルを変更する
JetBrains Rider 設定 Ctrl+Alt+S の ページで、すべての構成可能コードインスペクションおよびその重要度レベルを表示できます。 インスペクションは言語ごとに、次に カテゴリごとにグループ化されます。
重大度を変更するインスペクションを検索して選択します。
選択したエントリの右側のリストをクリックし、目的の重要度レベルを選択します。

インスペクションのデフォルトの重大度レベルが変更されると、その横に デフォルトにリセット
ボタンが表示され、重大度をデフォルト値にリセットできます。設定 ダイアログで 保存 をクリックして変更を適用し、JetBrains Rider が保存先を選択できるようにするか、 保存 セレクターからレイヤーを選んで特定の設定レイヤーに変更を保存します。 詳細については、「レイヤーベースの設定 」を参照してください。
特定のコードインスペクションを無効 / 有効にする
一部のコードインスペクションが些細なものであるか、興味がないように思われる場合は、このインスペクションを無効にして、 特定のスコープでコードインスペクション を実行したときに、関連する問題がエディターでハイライトされたり検出されたりしないようにすることができます。 無効化されたコードインスペクションは、後でいつでも有効にできます。 一部のインスペクションはデフォルトで無効になっており、必要に応じて有効にできます。
次のいずれかの方法でコードインスペクションを無効にすることができます。
エディターでこのインスペクションによってハイライトされたコードの問題がある場合は、ハイライトされたコードにキャレットを置き、 Alt+Enter を押して、 インスペクション [name of inspection] | インスペクションの重大度を設定する | 表示しない を選択します。
JetBrains Rider 設定 Ctrl+Alt+S の ページで、検索フィールドを使って無効化または有効化したいインスペクションを見つけ、その横のチェックボックスを使用します。
インスペクションの無効 / 有効状態は、 重大度レベルの変更とまったく同じ方法で 共有設定レイヤーに保存されます。
EditorConfig を使用して、コードインスペクションを構成する
プロジェクトのコードスタイルを管理する ために EditorConfig を使用する場合は、 .editorconfig ファイルからコードインスペクションを設定することもできます。
EditorConfig からコードインスペクションを構成するには、JetBrains Rider 設定 Ctrl+Alt+S の ページで editorconfig、プロジェクト設定、ルールセットから設定を読み取ります チェックボックスを選択する必要があります。
EditorConfig の規則に従い、JetBrains Rider はカレントファイルのディレクトリおよびそのすべての親ディレクトリにある .editorconfig という名前のファイルで定義されたインスペクション設定を、ルートファイルパスに到達するか root=true を持つ EditorConfig ファイルが見つかるまで適用します。 .editorconfig ファイルで指定されているファイルマスク、たとえば *Test.cs も考慮されます。
.editorconfig ファイルのインスペクション設定は、他のプロパティと同様に、対応する行を追加して設定します:
例: 次の行を使用して、 可能性のある 'System.NullReferenceException' インスペクションの 重大度レベルを エラーに変更できます。
または、次の行で デフォルト値による冗長引数インスペクションを無効にすることができます。
各インスペクションの EditorConfig プロパティは、 コードインスペクションインデックス セクションと EditorConfig プロパティのインデックス ページのページにあります。 - ブラウザー検索を使用して目的のインスペクションのプロパティを探すだけです。
特定のスコープ内のコードインスペクションを抑制する
特定のコードの問題を無視する 1 つの方法は、 対応するコードインスペクションを無効にすることです。 この場合、このインスペクションによって検出されたすべてのコードの問題はどこでも無視されます。
特定の場所で特定のインスペクションを抑制し、他の場所でこのインスペクションに関する他の同様の問題を引き続き検出する必要がある場合があります。
例: JetBrains Rider では一部のコードを「デッド」と見なし、それが本当であることがわかります。 インスペクションは便利であり、無効にしたくありません。 ただし、後でこのコードを使用して、 エディター でハイライトしたり、インスペクションの結果に表示したりしたくない場合があります。 そのために、JetBrains Rider ではコメントまたは属性を使ってインスペクションを抑制できます。 コメントは任意のコードに対してより便利であり、メソッドまたはタイプ全体でインスペクションを抑制するには属性が望ましいです。
特定のスコープ内のコードインスペクションを抑制する
JetBrains Rider のインスペクションでハイライトされているコードの問題にキャレットを置きます。
Alt+Enter を押すか、キャレットの左にある アクションインジケーターをクリックして、 アクションリストを開きます。
アクションリストで、次のいずれかを選択します。
インスペクション [name of inspection] | コメントで一度無効にする — このオプションはコメント
ReSharper disable once [inspection id]を 1 つ挿入し、該当する問題の最初の発生のみに対してインスペクションを抑制します。インスペクション [name of inspection] | コメントで一度無効にする | コメント付きのファイルで無効にする — このオプションは、ファイルの先頭に単一のコメント
ReSharper disable [inspection id]を挿入します。 このコメントは、ファイル内の対応するすべての問題についてインスペクションを抑制します。インスペクション [name of inspection] | コメントで一度無効にする | 無効にしてコメントで復元する — このオプションは、問題の前後に 1 組のコメント(
ReSharper disable [inspection id]とReSharper restore [inspection id])を挿入します。 これらのコメントは、それらの間のすべての対応する問題についてインスペクションを抑制します。次に、これらのコメントをファイル内の他の場所に移動して、このタイプのいくつかの問題を抑制できます。 例: これは、未使用の名前空間のインポートを複数保持する場合に、「冗長な名前空間」インスペクションを抑制できます。
インスペクション [name of inspection] | コメントで一度無効にする | メソッドを無効にする — このオプションは、メソッドに
[SuppressMessage("ReSharper", "[inspection id]")]属性を追加します。 この属性は、メソッド内のインスペクションを抑制します。インスペクション [name of inspection] | コメントで一度無効にする | クラスを無効にする — このオプションは、クラス
[SuppressMessage("ReSharper", "[inspection id]")]に属性を追加します。 この属性はクラス全体でインスペクションを抑制します。インスペクション [name of inspection] | コメントで一度無効にする | ファイル内のすべてのインスペクションを無効にする — このオプションは、ファイルの先頭に単一のコメント
ReSharper disable Allを挿入します。 このコメントは、ファイル内のすべてのインスペクションを抑制します。必要に応じて、
ReSharper restore Allを挿入して、特定の行の後にコードインスペクションを有効にすることができます。
型またはメソッド内のすべてのインスペクションを抑制するには、次の属性を追加します。 [SuppressMessage("ReSharper", "All")]。