Editorconfig类命名与大小写规则是否可放宽支持任意命名约定
EditorConfig放宽类命名约定限制的实现方案
你的需求可以实现,无需完全移除命名规则,仅需通过EditorConfig的文件匹配规则为测试文件单独配置宽松命名策略即可。
你之前配置中使用的TAKE_YOUR_PICK不属于官方capitalization的合法可选值,配置后对应规则会被忽略,无法生效。
实现逻辑
- 保留全局生产代码的类命名规则,不影响业务代码的规范校验
- 通过文件匹配模式限定宽松规则仅对测试文件生效
- 配置多个并行的合法命名规则,只要类名符合任意一个规则就不会触发警告
- 配合Rider专属配置,进一步适配混合大小写加下划线的命名需求
完整配置示例
# 全局生产代码类命名规则(默认帕斯卡命名,无下划线) dotnet_naming_symbols.global_class_group.applicable_kinds = class dotnet_naming_style.pascal_case.capitalization = pascal_case dotnet_naming_rule.global_class_rule.symbols = global_class_group dotnet_naming_rule.global_class_rule.style = pascal_case dotnet_naming_rule.global_class_rule.severity = warning # 针对测试文件的单独配置,可根据你的测试文件命名规则调整匹配模式 # 示例匹配所有带Test、Spec后缀的.cs文件,也可写成[**/tests/**/*.cs]匹配测试目录下所有文件 [*{Test,Spec}.cs] # 关闭全局类命名规则在当前匹配文件中的生效 dotnet_naming_rule.global_class_rule.severity = none # 定义测试场景下的类符号组,包含所有类(含嵌套类) dotnet_naming_symbols.test_class_group.applicable_kinds = class # 允许的命名风格1:帕斯卡命名+下划线分隔,适配Foo_spec、A_Foo这类命名 dotnet_naming_style.test_class_style1.capitalization = pascal_case dotnet_naming_style.test_class_style1.word_separator = _ # 允许的命名风格2:驼峰命名+下划线分隔,适配foo_setup、named_Bob这类命名 dotnet_naming_style.test_class_style2.capitalization = camel_case dotnet_naming_style.test_class_style2.word_separator = _ # 绑定两个并行规则,优先级相同,符合任意一个规则即不会触发警告 dotnet_naming_rule.test_class_rule1.symbols = test_class_group dotnet_naming_rule.test_class_rule1.style = test_class_style1 dotnet_naming_rule.test_class_rule1.severity = warning dotnet_naming_rule.test_class_rule2.symbols = test_class_group dotnet_naming_rule.test_class_rule2.style = test_class_style2 dotnet_naming_rule.test_class_rule2.severity = warning # Rider专属配置,进一步放宽下划线命名的大小写限制,完全覆盖你的需求 resharper_csharp_naming_rule_class = Aa_Bb, aa_bb, AA_BB
效果说明
配置完成后,你示例中的Foo_spec、foo_setup、嵌套类A_Foo、named_Bob都不会触发命名提示,同时生产代码的帕斯卡命名规则依然正常生效,也不会触发Rider的默认命名校验。
内容的提问来源于stack exchange,提问作者Andez
相关产品推荐
相关产品推荐

