我需要一些帮助来理解一些与.editorconfig文件相关的行为,以及它在命名、约定和继承方面的表现。因此,我想介绍一个类似于SomeType_RestOfTheName的项目的命名样式。但是,我只希望此名称更改适用于某个项目,而不是全局应用于解决方案。这意味着我最终得到了一个类似于:
+ <root>
- Root.sln
- .editorconfig // has the root = true flag
+ test
+ project
- project.csproj
- .editorconfig名字是任意的。
现在,我添加了项目文件夹下的.editorconfig,它有以下内容:
[*]
# Microsoft .NET properties
dotnet_naming_rule.types_and_namespaces_rule.import_to_resharper = as_predefined
dotnet_naming_rule.types_and_namespaces_rule.resharper_style = AaBb, SomeType_ + AaBb
dotnet_naming_rule.types_and_namespaces_rule.severity = warning
dotnet_naming_rule.types_and_namespaces_rule.style = upper_camel_case_style
dotnet_naming_rule.types_and_namespaces_rule.symbols = types_and_namespaces_symbols
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities = *
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace,class,struct,enum,delegate如您所知,其他设置将从根目录中的.editorconfig继承,并且只有目标项目具有特定的命名约定。
注意:这是可行的,它确实应用了适当的命名样式。
现在听我的问题。
如果我移除或注释掉高于整个命名约定的任何这些设置,则会失败,并发出警告。为什么会这样呢?是否需要将所有这些设置配置在一起才能正常工作?关于.editorconfig文件的继承;如果我将所有这些设置都移到根.editorconfig文件,那么命名约定也会失败吗?为什么会这样呢?我认为它要么使用默认值,要么在根.editorconfig的根目录中找到值?
这在Rider和VS + Resharper中都不会发生,所以不确定这是Resharper或Rider相关的东西,或者它是否与一些设置需要如何定义有关(例如,需要将所有设置设置在一起)?
发布于 2022-03-10 21:58:20
对于任何好奇的人来说,这与其说是一个问题,不如说是用户的误解。在有关.editorconfig文件中的命名样式的MS文档中,有以下一行:
All naming rule properties are required for a rule to take effect.在玩了.editorconfig命名设置之后,我意识到我有点误解了这个结构。下面,我从上面修改了结构,希望对任何遇到这种情况的人来说,这是有意义的:
[*]
# Microsoft .NET properties - SomeType_ naming rule block
dotnet_naming_rule.sometype_prefix_rule.import_to_resharper = as_predefined
dotnet_naming_rule.sometype_prefix_rule.resharper_style = AaBb, SomeType_ + AaBb
dotnet_naming_rule.sometype_prefix_rule.severity = warning
dotnet_naming_rule.sometype_prefix_rule.style = upper_camel_case_style
dotnet_naming_rule.sometype_prefix_rule.symbols = sometype_prefix_symbols
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
dotnet_naming_symbols.sometype_prefix_symbols.applicable_accessibilities = *
dotnet_naming_symbols.sometype_prefix_symbols.applicable_kinds = namespace,class,struct,enum,delegate但归根结底,您使用自定义名称定义了一个自定义规则,并且必须配置所有相关属性,否则定义格式错误,不应用。
https://stackoverflow.com/questions/71422349
复制相似问题