コード品質ルールの構成オプション

コード品質ルールには、重大度を構成するオプションの他に、追加の構成オプションが用意されています。 たとえば、各コード品質アナライザーを、コードベースの特定の部分にのみ適用するように構成できます。 これらのオプションは、ルールの重大度や全般的なエディターの基本設定を指定するために使用する、同一の EditorConfig ファイルにキーと値のペアを追加して指定します。

Note

この記事では、規則の重大度を構成する方法については詳しく説明しません。 規則の重大度を設定する .editorconfig オプションには、ここで説明するオプション (dotnet_code_quality) とは異なるプレフィックス (dotnet_diagnostic) があります。 さらに、ここで説明するオプションは、コード品質規則のみに関連しますが、重大度オプションはコード スタイル規則にも適用されます。 クイック リファレンスとして、次のオプション構文を使用して規則の重大度を構成できます。

dotnet_diagnostic.<rule ID>.severity = <severity value>

しかし、規則の重要度の構成について詳しくは、「重大度レベル」を参照してください。

オプションのスコープ

各調整オプションは、すべてのルール、ルールのカテゴリ ("セキュリティ" や "デザイン" など)、または特定のルールに対して構成できます。

すべてのルール

"すべて" のルールに対してオプションを構成するための構文は、次のとおりです。

構文
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

<OptionName> の値は Options の下に一覧表示されます。

ルールのカテゴリ

ルールの "カテゴリ"に対してオプションを構成するための構文は、次のとおりです。

構文
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

次の表に、<RuleCategory> に使用できる値を示します。

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

特定のルール

"特定" のルールに対してオプションを構成するための構文は、次のとおりです。

構文
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

[オプション]

このセクションでは、使用可能なオプションの一部を一覧で示します。 使用可能なオプションの完全な一覧については、「Analyzer Configuration」(Analyzer の構成) を参照してください。

api_surface

説明 使用できる値 規定値 構成可能なルール
分析する API サーフェイスの部分 public(public および protected API に適用)
internal または friend (internal および private protected APIに適用)
private (private API に適用)
all (すべての API に適用)

複数の値はコンマ (,) で区切ります
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

説明 使用できる値 規定値 構成可能なルール
値を返さない非同期メソッドを無視するかどうか true
false
false CA2007

Note

このオプションは、以前のバージョンでは skip_async_void_methods という名前でした。

exclude_single_letter_type_parameters

説明 使用できる値 規定値 構成可能なルール
1 文字の型パラメーターをそのルールから除外するかどうか (例: Collection<S>S) true
false
false CA1715

Note

このオプションは、以前のバージョンでは allow_single_letter_type_parameters という名前でした。

output_kind

説明 使用できる値 規定値 構成可能なルール
この型のアセンブリを生成するプロジェクト内のコードは、分析する必要があることを指定します OutputKind 列挙型の 1 つまたは複数のフィールド

複数の値はコンマ (,) で区切ります
すべての出力の種類 CA2007

required_modifiers

説明 使用できる値 規定値 構成可能なルール
分析する必要がある API の必須の修飾子を指定します 下記の表 (「許可される修飾子」) の 1 つ以上の値

複数の値はコンマ (,) で区切ります
ルールごとに異なる CA1802
許可される修飾子 まとめ
none 修飾子の要件なし
static または Shared static (Visual Basic では Shared) として宣言する必要があります
const const として宣言する必要があります
readonly readonly として宣言する必要があります
abstract abstract として宣言する必要があります
virtual virtual として宣言する必要があります
override override として宣言する必要があります
sealed sealed として宣言する必要があります
extern extern として宣言する必要があります
async async として宣言する必要があります

exclude_extension_method_this_parameter

説明 使用できる値 規定値 構成可能なルール
拡張メソッドの this パラメーターの分析をスキップするかどうか true
false
false CA1062

null_check_validation_methods

説明 使用できる値 規定値 構成可能なルール
null チェック検証メソッドの名前。メソッドに渡された引数が null 値でないことを検証します 許可されるメソッド名の形式 (| 区切り):
- メソッド名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのメソッドが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで M: プレフィックスも使用可)
なし CA1062

additional_string_formatting_methods

説明 使用できる値 規定値 構成可能なルール
追加の文字列書式設定メソッドの名前 許可されるメソッド名の形式 (| 区切り):
- メソッド名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのメソッドが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで M: プレフィックスも使用可)
なし CA2241

excluded_type_names_with_derived_types

説明 使用できる値 規定値 構成可能なルール
型の名前 (その型と、そこから派生するすべての型が分析から除外されます) 許可されるシンボル名の形式 (| 区切り):
- 型の名前のみ (包含する型または名前空間に関係なく、その名前が指定されたすべての型が含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで T: プレフィックスも使用可)
なし CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

説明 使用できる値 規定値 構成可能なルール
分析から除外されるシンボルの名前 許可されるシンボル名の形式 (| 区切り):
- シンボル名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのシンボルが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名。 各シンボル名には、メソッドには M: プレフィックス、型には T: プレフィックス、名前空間には N: プレフィックスのように、シンボルの種類のプレフィックスが必要です。
- コンストラクターには .ctor、静的コンストラクターには .cctor
なし CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

説明 使用できる値 規定値 構成可能なルール
分析のコンテキストで禁止されているシンボルの名前 許可されるシンボル名の形式 (| 区切り):
- シンボル名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのシンボルが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名。 各シンボル名には、メソッドには M: プレフィックス、型には T: プレフィックス、名前空間には N: プレフィックスのように、シンボルの種類のプレフィックスが必要です。
- コンストラクターには .ctor、静的コンストラクターには .cctor
なし CA1031

exclude_ordefault_methods

説明 使用できる値 規定値 構成可能なルール
分析から FirstOrDefault メソッドと LastOrDefault メソッドを除外します。 true または false false CA1826

ignore_internalsvisibleto

説明 使用できる値 規定値 構成可能なルール
InternalsVisibleToAttribute とマークされたアセンブリが分析に含まれます。 true または false true CA1812CA1852