在构建/保存和提交时设置 C# editorconfig 代码清理
Posted
技术标签:
【中文标题】在构建/保存和提交时设置 C# editorconfig 代码清理【英文标题】:Setting up C# editorconfig Code Cleanup on build/save and commit 【发布时间】:2019-08-20 04:20:08 【问题描述】:我们的团队希望在我们的 C# 项目中强制执行样式规则。我在某处读到微软说过“.editorconfig 是未来”,所以我们想使用它。注意:我们不想使用 ReSharper。
C# 现在有很多很棒的规则可以在 editorconfig 中定义,见Microsofts own editorconfig guide
我们想使用它,并强制在 Visual Studio 中编码时遵循编辑器配置中设置的规则,并强制提交给 git 的代码遵循规则。
当添加 .editorconfig 规则时,我们的文件会得到很好的 linting,如下所示:
在 Visual Studio 2019 中运行完全启用的“代码清理”,它会根据需要完全格式化我们的代码:
问题 1:如何让“运行代码清理”在保存/构建时自动运行?即使我们将某些规则设置为严重性 ":error",编译器仍然不会在构建时抱怨 C# 文件中的问题。
注意:我已经尝试了名为 Format document on Save 的 Visual Studio 插件,但它不遵循 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 中的“代码清理”命令行为方式相同的命令?
【问题讨论】:
欢迎来到 SO!请,即使问题之间有任何关系,也尽量不要一次问多个问题。在这种情况下,没有直接关系,所以请分成 2 个不同的问题。 如果您对如何在构建中运行清理感兴趣:medium.com/c-sharp-progarmming/… 【参考方案1】:我只能回答你的第一个问题:
我一直在寻找这个,我找到了一个名为 Code Cleanup on Save 的扩展程序,您只需安装它并在 Tool->Options->Code Clean up on Save 中配置它,决定您想要的配置文件设置,仅此而已, 希望对你有帮助!
【讨论】:
欢迎来到 SO!这是原始问题的问题(应该只有一个),已经注意到了。以上是关于在构建/保存和提交时设置 C# editorconfig 代码清理的主要内容,如果未能解决你的问题,请参考以下文章
在编辑节点 (C#) 时为 TreeView 提交更改很热?