首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Resharper的.editorconfig dotnet命名设置

使用Resharper的.editorconfig dotnet命名设置
EN

Stack Overflow用户
提问于 2022-03-10 10:10:19
回答 1查看 281关注 0票数 0

我需要一些帮助来理解一些与.editorconfig文件相关的行为,以及它在命名、约定和继承方面的表现。因此,我想介绍一个类似于SomeType_RestOfTheName的项目的命名样式。但是,我只希望此名称更改适用于某个项目,而不是全局应用于解决方案。这意味着我最终得到了一个类似于:

代码语言:javascript
复制
+ <root>
    - Root.sln
    - .editorconfig // has the root = true flag
    + test
        + project
            - project.csproj    
            - .editorconfig

名字是任意的。

现在,我添加了项目文件夹下的.editorconfig,它有以下内容:

代码语言:javascript
复制
[*]
# 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相关的东西,或者它是否与一些设置需要如何定义有关(例如,需要将所有设置设置在一起)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-10 21:58:20

对于任何好奇的人来说,这与其说是一个问题,不如说是用户的误解。在有关.editorconfig文件中的命名样式的MS文档中,有以下一行:

代码语言:javascript
复制
All naming rule properties are required for a rule to take effect.

在玩了.editorconfig命名设置之后,我意识到我有点误解了这个结构。下面,我从上面修改了结构,希望对任何遇到这种情况的人来说,这是有意义的:

代码语言:javascript
复制
[*]
# 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

但归根结底,您使用自定义名称定义了一个自定义规则,并且必须配置所有相关属性,否则定义格式错误,不应用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71422349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档