コードインスペクション設定を構成する
設計時コードインスペクションを構成する
デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。
「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。
Ctrl+Alt+S を押すか、メニューから (Windows および Linux) または (macOS) を選択し、左側のを選択します。
設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用します。
必要に応じて、ソリューション全体の分析を有効にするためにソリューション全体の分析を可能にするチェックボックスを選択できます。
その設定ページの他のオプションを使用して、デザイン時のインスペクションを好みに合わせて調整します。
設定ダイアログで保存をクリックして変更を適用し、JetBrains Rider が変更を保存する場所を選択できるようにするか、保存セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「レイヤーベースの設定」を参照してください。
複数のターゲットフレームワークのコンテキストを切り替える
コードインスペクションの結果は、ターゲットとなる .NET フレームワークによって異なる場合があります。これは、フレームワークのバージョンによって機能が異なるため、コードの動作が影響を受ける可能性があるためです。ほとんどの場合、各ファイルは単一の .NET フレームワークをターゲットとする単一のプロジェクトに属しているため、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 は、ルートファイルパスに到達するか root=true で EditorConfig ファイルが見つかるまで、.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]を挿入します。これは、対応する問題が最初に発生した場合にのみインスペクションを抑制します。インスペクション [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")]
関連ページ:
アノテーションを使用してコードインスペクションを改善する
コード検査などの JetBrains Rider の多くの機能は、問題を検出し、改善を提案し、他の方法でお手伝いするために、言語構成の動作を知ることに大きく依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、JetBrains Rider のは非常に役立ちます。このフレームワークで宣言された...
設計時にコードの問題を分析する
JetBrains Rider は、エディターでコードファイルを開くとすぐに、コードファイルが閉じられるまで分析を開始します。検出されたすべてのコードの問題は、重大度に応じてエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のエラーストライプにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:デザイン時のインスペクション機能は、Rider エディターの基本機能への主要...
特定の範囲でコードの問題を見つける
設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。しかし、JetBrains Rider では、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。開始コードインスペクション:ソリューション、プロジェクト、カスタムスコープのコードをインスペクションするソリューションワイドのインスペクションの結果(たとえば、未使用のパブリックメンバー)をレポートに含めるかどうかを決定する
「鉛筆」ウィジェット
「鉛筆」ウィジェットを使用すると、コードのハイライトとビジュアルヘルパーをすばやく構成できます。アイコンをクリックしてウィジェットを開くと、次の構成を行うことができます。上部のスライダーを使用して、コードをハイライトするコードインスペクションの数を増減します。デフォルトでは、スライダーはヒントにあります。これは、JetBrains Rider 設定の ページで明示的に無効にされているものを除いて、すべてのインスペクションが有効になっていることを意味します。ウィジェットのインスペクションの構成を...
ソリューション全体の分析
JetBrains Rider のソリューション全体の分析により、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:JetBrains Rider 自身のインスペクションによって検出されたコンパイラーのエラー / 警告とエラー / 警告の両方で、ソリューション内のすべてのエラー / 警告を常に追跡できます。この機能は設計時コードインスペクションと連携して 2 つの利点をもたらします。ソリューションにエラー / 警告が含まれていないことを確認するために、す...
レイヤーベースの設定
Rider 設定ダイアログでは、ページアイコンを見て、特定のページに使用されている設定管理メカニズムを確認できます。任意のアイコンでマークされていないページは、ユーザープロファイルに保存されている IDE 設定をホストします。レイヤーベースの設定は ReSharper と互換性があるため、ReSharper を使用している場合、チームメンバーのいずれかがそれを使用している場合、Rider は ReSharper で構成した設定を読み取って適用できます。「ソリューションパーソナル」および「ソリュ...