我们的团队希望在我们的C#项目中强制执行样式规则。我曾经读到过微软说".editorconfig是未来",所以我们想使用它。注意:我们不想使用ReSharper。
C#现在有很多伟大的规则可以在editorconfig中定义,参见Microsoft自己的editorconfig指南
我们想要使用这个,并确保在编码Visual Studio时遵循编辑器配置中设置的规则,并强制执行提交到git的代码也遵循规则。
当添加.editorconfig规则时,我们会得到对文件的出色linting,如下所示:
在Visual Studio 2019中运行完全启用的"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中的“代码清理”命令相同的命令?