C#是否有漂亮的打印机/代码格式化程序(作为构建系统的一部分)?

时间:2012-10-26 15:30:25

标签: c# pretty-print

C#是否有漂亮的打印机/代码格式化程序(作为构建系统的一部分)?读作:“生活在Visual Studio之外”。对于Java,C ++ / C,Go来说似乎有很多这样的东西 - 所以C#应该还有一些代码格式化程序在IDE之外,这似乎更合理吗?

(我实际上想将格式化程序与StyleCop结合起来,并且让dev在提交之前将其作为进程的一部分运行。)

注意:不是语法高亮,如网页中的代码。取而代之的是一个 Code beautifier ,或代码漂亮的打印机,它将代码和格式化为样式/标准编码格式...... StyleCop进行样式检查以查看代码是否符合格式。

6 个答案:

答案 0 :(得分:3)

首先想到的是ReSharper。但是,它是VS的一个加载项,这不是你要求的。我不确定你是否可以在保存时将其设置为自动格式化。

来自website

  

ReSharper可以重新格式化任意选定的代码块,所有代码   在当前文件中,目录中的所有文件,甚至整个文件中的所有文件   项目或解决方案,根据您的代码样式首选项。   ReSharper为C#,VB.NET提供了不同的格式化选项,   JavaScript,CSS和XML代码。重新格式化会影响大括号布局,   空白行,换行和换行符,各种空格   上下文,缩进,对齐多个构造,以及更多   您可以在“ReSharper选项”对话框中微调的选项。

答案 1 :(得分:3)

JetBrains还制作了一个名为CleanupCode的免费命令行工具,该工具可根据.editorconfig设置来格式化c#。我为它编写了一个名为ReGitLint的包装器实用程序,该实用程序使作为预提交挂钩或在构建服务器上运行变得更加轻松快捷。如果您的队友使用了Visual Studio Code,而ReSharper则不可行,这将对您大有帮助。

要起床,只需运行以下命令

dotnet tool install JetBrains.ReSharper.GlobalTools
dotnet tool install ReGitLint

然后将以下内容添加到.git / hooks / pre-commit

#!/bin/sh
dotnet regitlint -f staged --fail-on-diff

要在jenkins上强制格式化,请将其添加到您的构建脚本中

dotnet tool restore
dotnet regitlint --jenkins

有关更多选项,请查看readme

答案 2 :(得分:1)

要在构建期间自动执行代码格式化(一种微重构),您需要一个可以从命令行运行的工具(并且可以轻松地在msbuild中集成)。

如果您的需求不太高级(作者将其定义为美化),那么这是一个很好的NArrange。它完全支持Framework 2.0的C#和VB.NET,但也支持许多广泛使用的新语言版本的功能。

  

NArrange是一个.NET代码美化器,可以自动组织.NET类中的代码成员和元素。

答案 3 :(得分:0)

如果您有关于空格和大括号展示位置的现有且不寻常的样式指南AStyle可能足够灵活以匹配它。 AStyle不是C#特有的,它可以做很多类似c的语言。

NArrange如果符合您的风格指南也很好。它可能更具侵略性,例如它可以将您的类的一部分放入不同的区域并对您的方法进行排序。

答案 4 :(得分:0)

Microsoft 有一个代码格式化工具,可以使用 Roslyn 根据他们的指南自动重写源代码。 请检查该链接 https://github.com/dotnet/codeformatter

答案 5 :(得分:-1)

代码审查后自动更改代码对我来说听起来不是一个好主意。

“Ctrl + E,D”需要整整2秒才能重新格式化整个文件,VS会在您编写代码时自动格式化...我会考虑简单地评论代码审查代码未格式化并完成它。