程式碼品質規則組態選項
除了設定嚴重性之外,「程式碼品質」規則還有其他組態選項。 例如,每個程式碼品質分析器都可以設定為只套用至程式碼基底的特定部分。 您可以將索引鍵/值組新增至 EditorConfig 檔案來指定這些選項,該檔案也是您指定規則嚴重性和一般編輯器喜好設定的位置。
注意
本文不會詳細說明如何設定規則的嚴重性。 設定規則嚴重性之 .editorconfig 選項的前置詞 (dotnet_diagnostic
),與此處所述選項的前置詞 (dotnet_code_quality
) 不同。 此外,此處所述的選項僅適用於程式碼品質規則,但嚴重性選項還適用於程式碼樣式規則。 作為快速參考,您可以使用下列選項語法來設定規則的嚴重性:
dotnet_diagnostic.<rule ID>.severity = <severity value>
不過,如需設定規則嚴重性的詳細資訊,請參閱嚴重性等級。
選項範圍
每個精簡選項都可以針對所有規則、某個類別的規則 (例如「安全性」或「設計」) 或特定規則進行設定。
所有規則
針對「所有」規則設定選項的語法如下:
語法 | 範例 |
---|---|
dotnet_code_quality.<選項名稱> = <選項值> | dotnet_code_quality.api_surface = public |
選項底下會列出 <OptionName>
的值。
某個類別的規則
針對某個「類別」的規則設定選項的語法如下:
語法 | 範例 |
---|---|
dotnet_code_quality.<規則類別>.<選項名稱> = 選項值 | dotnet_code_quality.Naming.api_surface = public |
下表列出 <RuleCategory>
的可用值。
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
特定規則
針對「特定」規則設定選項的語法如下:
語法 | 範例 |
---|---|
dotnet_code_quality.<規則識別碼>.<選項名稱> = <選項值> | dotnet_code_quality.CA1040.api_surface = public |
選項。
本節列出一些可用的選項。 若要查看可用選項的完整清單,請參閱分析器組態 (英文)。
- 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 |
注意
此選項在舊版中的名稱為 skip_async_void_methods
。
exclude_single_letter_type_parameters
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
是否要從規則中排除單一字元型別參數,例如 Collection<S> 中的 S |
true false |
false |
CA1715 |
注意
此選項在舊版中的名稱為 allow_single_letter_type_parameters
。
output_kind
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
指定應分析專案中產生此類型組件的程式碼 | OutputKind 列舉的一或多個欄位 以逗號 (,) 分隔多個值 |
所有輸出種類 | CA2007 |
required_modifiers
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
指定 API 中應分析的必要修飾元 | 以下「允許的修飾元」表格中的一或多個值 以逗號 (,) 分隔多個值 |
取決於每個規則 | 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 檢查驗證方法名稱 | 允許的方法名稱格式 (以 | 分隔): - 僅方法名稱 (包含具有該名稱的所有方法,無論包含類型或命名空間為何) - 符號文件識別碼格式的完整名稱,可選擇性地在前面加上 M: |
無 | CA1062 |
additional_string_formatting_methods
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
其他字串格式方法的名稱 | 允許的方法名稱格式 (以 | 分隔): - 僅方法名稱 (包含具有該名稱的所有方法,無論包含類型或命名空間為何) - 符號文件識別碼格式的完整名稱,可選擇性地在前面加上 M: |
無 | CA2241 |
excluded_type_names_with_derived_types
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
要在分析中排除本身類型及其所有衍生類型的類型名稱 | 允許的符號名稱格式 (以 | 分隔): - 僅類型名稱 (包含具有該名稱的所有類型,無論包含類型或命名空間為何) - 符號文件識別碼格式的完整名稱,可選擇性地在前面加上 T: |
無 | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
要在分析中排除的符號名稱 | 允許的符號名稱格式 (以 | 分隔): - 僅符號名稱 (包含具有該名稱的所有符號,無論包含類型或命名空間為何) - 符號文件識別碼格式的完整名稱。 每個符號名稱都需要符號種類前置詞,例如 M: 代表方法、T: 代表類型,而 N: 則代表命名空間。- .ctor 代表建構函式,而 .cctor 則代表靜態建構函式 |
無 | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
分析內容中不允許的符號名稱 | 允許的符號名稱格式 (以 | 分隔): - 僅符號名稱 (包含具有該名稱的所有符號,無論包含類型或命名空間為何) - 符號文件識別碼格式的完整名稱。 每個符號名稱都需要符號種類前置詞,例如 M: 代表方法、T: 代表類型,而 N: 則代表命名空間。- .ctor 代表建構函式,而 .cctor 則代表靜態建構函式 |
無 | CA1031 |
exclude_ordefault_methods
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
從分析中排除 FirstOrDefault 和 LastOrDefault 方法。 |
true 或 false |
false |
CA1826 |
ignore_internalsvisibleto
描述 | 允許的值 | 預設值 | 可設定的規則 |
---|---|---|---|
包括在分析中標示 InternalsVisibleToAttribute 的組件。 | true 或 false |
true |
CA1812CA1852 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應