コード品質ルールの構成オプション
コード品質ルールには、重大度を構成するオプションの他に、追加の構成オプションが用意されています。 たとえば、各コード品質アナライザーを、コードベースの特定の部分にのみ適用するように構成できます。 これらのオプションは、ルールの重大度や全般的なエディターの基本設定を指定するために使用する、同一の 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
- exclude_async_void_methods
- exclude_single_letter_type_parameters
- output_kind
- required_modifiers
- exclude_extension_method_this_parameter
- null_check_validation_methods
- additional_string_formatting_methods
- excluded_type_names_with_derived_types
- excluded_symbol_names
- disallowed_symbol_names
- exclude_ordefault_methods
- ignore_internalsvisibleto
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 |
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示