首页 > 解决方案 > editorConfig 命名约定不起作用 c# visual studio 2019 16.4.2

问题描述

我正在尝试在解决方案级别使用 .editorconfig 来定义其中两个 C# 项目的命名约定。我有最新的 Visual Studio,今天刚刚更新到 16.4.2。它在意料之外的地方发出警告。例如,对于类名、属性名、枚举名,它说它应该以小写开头,而根据我在 editorconfig 中的约定,它们应该以帕斯卡大小写。同样,对于类中的私有字段,我已将字段名称定义为以下划线(“_”)字符开头,但它也在那里报告错误。

我确信它正在使用我的 editorconfig 文件,因为如果我故意更改某些部分只是为了查看是否有任何影响,我会看到消息中的更改。然而,结果并不如预期。

还有更多的设置需要做吗?我的 editorconfig 输入是否有错误?

这是我的editorconfig文件的相关内容。

# Naming rules definitions

dotnet_naming_rule.interfacesPascalWithI.symbols = interfaces
dotnet_naming_rule.interfacesPascalWithI.style = IP
dotnet_naming_rule.interfacesPascalWithI.severity = suggestion

dotnet_naming_rule.publicMethodsPascal.symbols = pubMethods
dotnet_naming_rule.publicMethodsPascal.style = P
dotnet_naming_rule.publicMethodsPascal.severity = suggestion

dotnet_naming_rule.defaultMethodsCamel.symbols = methods
dotnet_naming_rule.defaultMethodsCamel.style = c
dotnet_naming_rule.defaultMethodsCamel.severity = suggestion

dotnet_naming_rule.staticFieldsPascal.symbols = staticFields
dotnet_naming_rule.staticFieldsPascal.style = c
dotnet_naming_rule.staticFieldsPascal.severity = warning

dotnet_naming_rule.constFieldsPascal.symbols = constFields
dotnet_naming_rule.constFieldsPascal.style = c
dotnet_naming_rule.constFieldsPascal.severity = warning

dotnet_naming_rule.privateFieldsUnderscore.symbols = prvFields
dotnet_naming_rule.privateFieldsUnderscore.style = _c
dotnet_naming_rule.privateFieldsUnderscore.severity = suggestion

dotnet_naming_rule.defaultFieldsCamel.symbols = fields
dotnet_naming_rule.defaultFieldsCamel.style = c
dotnet_naming_rule.defaultFieldsCamel.severity = suggestion

dotnet_naming_rule.defaultPascal.symbols = default
dotnet_naming_rule.defaultPascal.style = P
dotnet_naming_rule.defaultPascal.severity = suggestion

# Style Definitions
dotnet_naming_style.P.capitalization = pascal_case

dotnet_naming_style.IP.capitalization = pascal_case
dotnet_naming_style.IP.required_prefix = I

dotnet_naming_style.c.capitalization = camel_case

dotnet_naming_style._c.capitalization = camel_case
dotnet_naming_style._c.required_prefix = _

# Symbols Definitions
dotnet_naming_symbols.default.applicable_kinds = *
dotnet_naming_symbols.default.applicable_accessibilities = *

dotnet_naming_symbols.interfaces.applicable_kinds = interface
dotnet_naming_symbols.interfaces.applicable_accessibilities = *

dotnet_naming_symbols.pubMethods.applicable_kinds = method
dotnet_naming_symbols.pubMethods..applicable_accessibilities = public

dotnet_naming_symbols.methods.applicable_kinds = method
dotnet_naming_symbols.methods.applicable_accessibilities = *

dotnet_naming_symbols.staticFields.applicable_kinds = field
dotnet_naming_symbols.staticFields.applicable_accessibilities = *
dotnet_naming_symbols.staticFields.required_modifiers = static

dotnet_naming_symbols.constFields.applicable_kinds = field
dotnet_naming_symbols.constFields.applicable_accessibilities = *
dotnet_naming_symbols.constFields.required_modifiers = const

dotnet_naming_symbols.prvFields.applicable_kinds = field
dotnet_naming_symbols.prvFields.applicable_accessibilities = private

dotnet_naming_symbols.fields.applicable_kinds = field
dotnet_naming_symbols.fields.applicable_accessibilities = *

标签: c#visual-studionaming-conventionseditorconfig

解决方案


我已经测试了你的代码,这个问题也发生在我这边。然后我检查了代码,似乎“dotnet_naming_rule”找不到指定的符号,导致规则适应所有情况。然后我按照你的代码,复制官方代码示例 ,一一重写,就是这样,之后就可以在我这边工作了。 在此处输入图像描述

你也可以试试你身边的新代码。

# Naming rules definitions

dotnet_naming_rule.interfacesPascalWithI.symbols = interfaces
dotnet_naming_rule.interfacesPascalWithI.style = _c
dotnet_naming_rule.interfacesPascalWithI.severity = warning

dotnet_naming_rule.publicMethodsPascal.symbols = public_method
dotnet_naming_rule.publicMethodsPascal.style = _c
dotnet_naming_rule.publicMethodsPascal.severity = warning

dotnet_naming_rule.defaultMethodsCamel.symbols = methods
dotnet_naming_rule.defaultMethodsCamel.style = c
dotnet_naming_rule.defaultMethodsCamel.severity = warning

dotnet_naming_rule.staticFieldsPascal.symbols = static_filed
dotnet_naming_rule.staticFieldsPascal.style = c
dotnet_naming_rule.staticFieldsPascal.severity = warning

dotnet_naming_rule.constFieldsPascal.symbols = const_field
dotnet_naming_rule.constFieldsPascal.style = c
dotnet_naming_rule.constFieldsPascal.severity = warning

dotnet_naming_rule.privateFieldsUnderscore.symbols = private_field
dotnet_naming_rule.privateFieldsUnderscore.style = _c
dotnet_naming_rule.privateFieldsUnderscore.severity = warning

dotnet_naming_rule.defaultFieldsCamel.symbols = fields
dotnet_naming_rule.defaultFieldsCamel.style = c
dotnet_naming_rule.defaultFieldsCamel.severity = warning

dotnet_naming_rule.defaultPascal.symbols = default
dotnet_naming_rule.defaultPascal.style = P
dotnet_naming_rule.defaultPascal.severity = warning

# Style Definitions
dotnet_naming_style.P.capitalization = pascal_case

dotnet_naming_style.IP.capitalization = pascal_case
dotnet_naming_style.IP.required_prefix = I

dotnet_naming_style.c.capitalization = camel_case

dotnet_naming_style._c.capitalization = camel_case
dotnet_naming_style._c.required_prefix = _

# Symbols Definitions
dotnet_naming_symbols.default.applicable_kinds = *
dotnet_naming_symbols.default.applicable_accessibilities = *

dotnet_naming_symbols.interfaces.applicable_kinds = interface
dotnet_naming_symbols.interfaces.applicable_accessibilities = *

dotnet_naming_symbols.public_method.applicable_kinds  = method
dotnet_naming_symbols.public_method.applicable_accessibilities = public

dotnet_naming_symbols.methods.applicable_kinds = method
dotnet_naming_symbols.methods.applicable_accessibilities = *

dotnet_naming_symbols.static_filed.applicable_kinds  = field
dotnet_naming_symbols.static_filed.applicable_accessibilities = *
dotnet_naming_symbols.static_filed.required_modifiers = static

dotnet_naming_symbols.const_field.applicable_kinds  = field
dotnet_naming_symbols.const_field.applicable_accessibilities = *
dotnet_naming_symbols.const_field.required_modifiers = const

dotnet_naming_symbols.private_field.applicable_kinds  = field
dotnet_naming_symbols.private_field.applicable_accessibilities = private

dotnet_naming_symbols.fields.applicable_kinds = field
dotnet_naming_symbols.fields.applicable_accessibilities = *

推荐阅读