在构建/保存和提交上设置C#editorconfig代码清除

Tot*_*tty 8 c# lint code-cleanup .net-core editorconfig

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

C#有很多很棒的规则,现在可以在editorconfig中定义,请参阅Microsoft自己的editorconfig指南

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

当添加.editorconfig规则时,我们会像这样对文件进行很好的处理:

使用var警告

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

运行代码清理

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

注意:我已经尝试过在保存时调用Visual Studio的名为Format document的插件,但是它不遵循在editorconfig中设置的所有规则(只有少数规则,如固定制表符/空格和文件换行符结尾)

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

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

我们想添加一个预提交的钩子,该钩子运行以下两个命令:

dotnet tool install -g dotnet-format
dotnet-format
Run Code Online (Sandbox Code Playgroud)

这可以很好地工作,但是问题是dotnet格式也不能解决文件严重性为“:error”的文件中的问题。

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

编辑:根据他们的Wiki, dotnet格式目前仅支持一些规则

问题2:我们如何从命令行运行与Visual Studio 2019中的``代码清理''命令相同的命令?

小智 5

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

我一直在寻找这个,我发现了一个名为Code Cleanup on Save 的扩展,您只需安装它并在“工具”->“选项”->“保存时代码清理”中配置它,决定要设置哪些配置文件,然后仅此而已,希望对您有所帮助!

  • 欢迎来到SO!这是原始问题的问题(应该只有一个),已经注意到了。 (3认同)