15

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

C#现在有很多很棒的规则可以在editorconfig中定义,见微软自己的editorconfig指南

我们想使用它,并强制在 Visual Studio 中编码时遵循编辑器配置中设置的规则,并强制提交给 git 的代码遵循规则。

添加 .editorconfig 规则时,我们的文件会得到很好的 linting,如下所示:

使用 var 警告

在 Visual Studio 2019 中运行完全启用的“代码清理”,它会根据需要完全格式化我们的代码:

运行代码清理

问题 1:我们如何使“运行代码清理”在保存/构建时自动运行?即使我们将某些规则设置为严重性“:错误”,编译器仍然不会在构建时抱怨 C# 文件中的问题。

注意:我已经尝试了 Visual Studio 的插件,名为Format document on Save,但它不遵循 editorconfig 中设置的所有规则(只有少数,比如修复制表符/空格和文件换行符结尾)

我们还想确保对我们的 git 存储库的所有提交都进行格式化。

有一个名为dotnet-format的工具应该根据 editorconfig 规则格式化代码。

我们想添加一个运行以下 2 个命令的预提交挂钩:

dotnet tool install -g dotnet-format
dotnet-format

这可以正常工作,但问题是 dotnet-format 也不能​​解决文件中的问题,代码给出严重性“:错误”。

dotnet-format 的行为方式与“保存时格式化文档”的行为相同,只是修复了一些问题,如制表符/空格和文件换行符结尾。

编辑:dotnet-format 现在根据他们的Wiki似乎只支持一些规则

问题 2:我们如何从命令行运行与 Visual Studio 2019 中的“代码清理”命令行为方式相同的命令?

4

1 回答 1

4

我只能回答你的第一个问题:

我一直在寻找这个,我发现了一个名为Code Cleanup on Save的扩展程序,您只需安装它并在 Tool->Options->Code Clean up on Save 进行配置,决定您要设置的配置文件和仅此而已,希望对您有所帮助!

于 2019-10-21T09:23:08.673 回答