我正在使用Visual Stuido 2022来编写我的C#项目。
有没有一种方法可以使用(.editorconfig
文件(来配置VS,其中在命名空间前后添加了一行新行?
所以我的课看起来像这个
using System;
namespace ProjectName.Tests;
public class Test
{
}
而不是
using System;
namespace ProjectName.Tests;
public class Test
{
}
我不确定是否有Visual Studio本机方法可以做到这一点。
在.editorconfig
中单独使用Visual Studio(意味着没有插件(,肯定有而不是的方法可以做到这一点。在Namespace声明首选项的中途,它谈到了csharp_style_namespace_declarations
,并且当该值为file_scoped
时的代码格式示例看起来像
// csharp_style_namespace_declarations = file_scoped
using System;
namespace Convention;
class C
{
}
这似乎会让你走到那里(using
后面的空白行(。当您查看支持的格式规则时,列表非常简短。
如果你有ReSharper,有办法。.editorconfig
中的这些设置将执行您想要的操作:
resharper_blank_lines_after_file_scoped_namespace_directive = 1
resharper_blank_lines_after_imports = 1
如果ReSharper不是一种选择,这里有三条可能的途径,没有一条那么好。它们当然不是简单的解决方案。
- 尝试在Visual Studio市场中查找内容
- 编写一个通过
.editorconfig
配置的.NET分析器(请参阅本页( - 在开发者社区上提出一个问题,希望他们能解决
StyleComp.Analizers有一系列与格式相关的规则,您可以在代码库中强制执行,在某些情况下,还可以自动修复这些规则。
不幸的是,看起来似乎还没有以您想要的方式支持文件范围的命名空间格式。这里有一个PR可以添加,所以如果你真的想拥有这个,你可以让PR通过终点线,或者自己构建:
https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3512
这个问题可能也值得一看:
https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3578
就像另一个人说的,
不,没有编辑器配置(开箱即用(。
Resharper可以做到这一点;您可以为代码构建一个自定义格式,并告诉它,例如,出于某种奇怪的原因,您希望在类下面的某些部分(如导入(在哪里;(。。。当然,这些部分周围有这样的间距。
但现在你必须为所有的开发者获得ReSharper许可证。Resharper的开发人员非常酷,Jetbrains几十年来一直在构建高质量的软件。也许我多愁善感。
好吧,如果你不想付钱,还有另一种选择。。。在过去的DevOps角色中,我曾使用Roslyn构建自定义格式的扩展。
构建自定义Rosyln分析器https://learn.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview?view=vs-2022#分析仪的严重性级别
您可以构建具有可配置严重性的自定义代码建议。
多亏了Rosyln,这也很容易,但你必须向后想一想。如果我能提供更多帮助,请告诉我。