在构建/保存和提交时设置C#编辑器配置代码清理

18

我们的团队希望在我们的C#项目中强制执行样式规则。我曾经读到过微软说".editorconfig是未来",所以我们想使用它。注意:我们不想使用ReSharper。

C#现在有很多伟大的规则可以在editorconfig中定义,参见Microsoft自己的editorconfig指南

我们想要使用这个,并确保在编码Visual Studio时遵循编辑器配置中设置的规则,并强制执行提交到git的代码也遵循规则。

当添加.editorconfig规则时,我们会得到对文件的出色linting,如下所示:

use var warning

在Visual Studio 2019中运行完全启用的"Code Cleanup"后,它会完全按照所需格式化我们的代码:

run code cleanup

问题1:我们如何使"Run Code Cleanup"在保存/构建时自动运行?即使我们将某些规则设置为":error"严重程度,编译器仍然不会抱怨构建中的C#文件问题。

注意:我尝试过Visual Studio插件Format document on Save,但它不遵循编辑器配置中设置的所有规则(只有一些规则,如修复制表符/空格和文件末尾的换行符)

我们还希望确保提交到我们的git存储库中的所有内容都经过格式化。

有一个工具叫做dotnet-format,据说可以根据编辑器配置规则格式化代码。

我们想添加一个pre-commit钩子,运行以下两个命令:

dotnet tool install -g dotnet-format
dotnet-format
这很好运作,但问题是dotnet-format也无法修复具备":error"严重级别代码问题文件的问题。
dotnet-format的表现方式类似于“保存时格式化文档”,只修复一些像制表符/空格和文件结尾换行符之类的东西。
编辑:据他们的Wiki所说,dotnet-format目前显然仅支持少量规则。
问题2:我们如何从命令行运行一个与Visual Studio 2019中的“代码清理”命令相同的命令?

欢迎来到SO!请注意,即使问题之间有任何关联,请尽量不要一次性询问多个问题。在这种情况下,两个问题之间没有直接关系,因此请将其拆分为两个不同的问题。 - David García Bodego
如果您想了解如何在构建时运行清理操作,请参考以下链接: https://medium.com/c-sharp-progarmming/enforce-code-cleanup-on-build-net-9628382e0776 - CageE
2个回答

5
我可以回答您的第一个问题:
我一直在寻找这个功能,发现了一个叫做Code Cleanup on Save的扩展程序,您只需要安装并在“工具”->“选项”->“保存时清理代码”中进行配置,决定要设置哪些配置文件,就完成了。希望这能帮到您!

3
欢迎来到SO!这是一个原问题的问题(应该只有一个),已经被注意到了。 - David García Bodego

1
因为CageE的回答在一个登录墙后面:
默认情况下,所有.NET项目的构建都会禁用代码风格分析。您可以通过将EnforceCodeStyleInBuild属性设置为true来启用.NET项目的代码风格分析。
<PropertyGroup>
  <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接