天天看點

在 .editorconfig 中配置 C# 命名限制

作者:月下走走

1. 命名限制要寫在.editorconfig檔案中 [*.{cs,vb}] section 下面

一般文法

<kind>.<entityName>.<propertyName> = <propertyValue>           

核心概念

一組規則必須包含:dotnet_naming_rule、dotnet_naming_symbols、dotnet_naming_style,下面用一個示例來說明。

示例:私有字段命名限制

步驟1:定義dotnet_naming_style

# Define the 'underscored' naming style
dotnet_naming_style.underscored.capitalization = camel_case
dotnet_naming_style.underscored.required_prefix = _
dotnet_naming_style.underscored.required_suffix =
dotnet_naming_style.underscored.word_separator =           

在上面的定義中 dotnet_naming_style 後面的 underscored是自己定義名稱(命名一般是小寫字母+下劃線 _ 分隔),這個名稱在下面的dotnet_naming_rule中會使用。

步驟2:定義dotnet_naming_symbols

# Define the 'private_readonly_fields' symbol group:
dotnet_naming_symbols.private_readonly_fields.applicable_kinds = field
dotnet_naming_symbols.private_readonly_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_readonly_fields.required_modifiers = readonly           

在上面的定義中 dotnet_naming_symbols 後面的 private_readonly_fields是自己定義名稱(命名一般是小寫字母+下劃線 _ 分隔),這個名稱在下面的dotnet_naming_rule中會使用。

步驟3:定義dotnet_naming_rule

dotnet_naming_rule.private_readonly_fields.symbols = private_readonly_fields
dotnet_naming_rule.private_readonly_fields.style = underscored
dotnet_naming_rule.private_readonly_fields.severity = error           

在上面的定義中 dotnet_naming_rule 後面的 private_readonly_fields是自己定義名稱(命名一般是小寫字母+下劃線 _ 分隔)。

  • dotnet_naming_rule.private_readonly_fields.symbols的值就是步驟2中的自定義名稱。
  • dotnet_naming_rule.private_readonly_fields.style的值就是步驟1中的自定義名稱。
  • dotnet_naming_rule.private_readonly_fields.severity的值定義了這個規則在編輯器中的提示級别。error 表示的是錯誤級别,影響編譯。

編輯器提示嚴重性級别如下:

嚴重性配置值 生成時行為
error 違規行為以生成錯誤形式出現,并會導緻生成失敗。
warning 違規行為以生成警告形式出現,但不會導緻生成失敗(除非你已設定将警告視為錯誤的選項)。
suggestion 違規行為以生成消息形式出現,在 Visual Studio IDE 中以建議形式出現。
silent 違規行為對使用者不可見。
none 完全禁止顯示規則。
default 使用規則的預設嚴重性。 Roslyn 分析器存儲庫列出了每個 .NET 版本的預設嚴重性。 在該表中,“禁用”與 none 對應,“隐藏”與 silent 對應,“資訊”與 suggestion 對應。

完整示例如下

# Define the 'underscored' naming style
dotnet_naming_style.underscored.capitalization = camel_case
dotnet_naming_style.underscored.required_prefix = _
dotnet_naming_style.underscored.required_suffix =
dotnet_naming_style.underscored.word_separator =

# Define the 'private_readonly_fields' symbol group:
dotnet_naming_symbols.private_readonly_fields.applicable_kinds = field
dotnet_naming_symbols.private_readonly_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_readonly_fields.required_modifiers = readonly

dotnet_naming_rule.private_readonly_fields.symbols = private_readonly_fields
dotnet_naming_rule.private_readonly_fields.style = underscored
dotnet_naming_rule.private_readonly_fields.severity = error           

繼續閱讀