C#是否有自动代码格式化程序?

时间:2008-08-27 13:31:25

标签: c# formatting build-automation

在我的工作中,我现在主要处理C#代码,不时有一些java。我非常喜欢Eclipse(我知道每天使用它的人更喜欢它)是一种复杂的代码格式化程序,能够将代码转换成任何可能想象的编码标准。 C#有这样的工具吗? Visual Studio代码格式(Crtl + K,Crtl + D)是subpar,StyleCop只检查源而不修复它。

我的梦想工具将从控制台运行(以便轻松包含在自动构建或预提交钩子中以及在Linux + Mono上执行),基于文本文件的配置易于存储在项目存储库和图形规则编辑器中预览 - 就像Eclipse Code Formatter一样。

14 个答案:

答案 0 :(得分:45)

对于Visual Studio,请查看ReSharper。这是一个很棒的工具,也是一个必备的必备工具。 4.0之后的版本具有您正在寻找的代码格式和清理功能。还有plugin integration with StyleCop,包括格式设置文件。您可能还需要Agent Smith plugin,以便对标识符和注释进行拼写检查。 ReSharper支持每个解决方案格式设置文件,可以将其检入版本控制系统并由整个团队共享。代码清理的键盘快捷键是 Ctrl + E C

在'vanilla'Visual Studio中,当前文件可以使用 Crtl + K Crtl + D 自动格式化, Ctrl + K < kbd> Ctrl + F 格式化所选文本。

对于要与提交挂钩一起使用的随处运行命令行工具,请尝试NArrange。它是免费的,可以立即处理整个目录,并在Mono和Microsoft.Net上运行。

有些人还使用Artistic Style命令行工具,虽然它需要perl并且使用C / C ++代码比使用C#更好。

答案 1 :(得分:15)

继@Chris Karcher的回答 - 您还可以通过按 Ctrl + K Ctrl <自动格式化整个文档 / KBD> + d

这些格式化功能适用于各种文件格式 - 它可以在丑陋的HTML上创建奇迹。

答案 2 :(得分:13)

.NET Foundation刚刚在GitHub上发布了他们的代码格式化工具

https://github.com/dotnet/codeformatter

它使用Rosyln编译器服务来解析项目文档并将它们转换为预期的格式约定。他们将此应用于一些非常旧的CLR代码,以使所有项目保持一致。

答案 3 :(得分:6)

另一种选择:NArrange;

  • 自由
  • 基于控制台(非常适合提交挂钩等,但仍可用作VS中的“外部工具”)
  • 灵活的配置文件

答案 4 :(得分:5)

对我来说, Ctrl + Shift + F 映射到在文件中查找。当我需要格式化代码时,我突出显示它并点击 Ctrl + K Ctrl + F

我理解这并不能真正解决自动格式问题,我只想澄清那些可能不知道此功能的人甚至存在于VS中。

答案 5 :(得分:3)

我只听到ReSharper的好消息。这是我的学习清单。

答案 6 :(得分:3)

http://www.sourceformat.com/

这个工具在(~30 $)左右,我试了一下它很好用(有多种语言) 我最喜欢这个工具因为它不检查代码文件的正确性。我可以从网上发布代码片段,无论它们是否在代码的缺失部分,它都会将它们相互关联。我尝试的其他工具在那种情况下抱怨。该工具还可以轻松集成到编辑器中,因为它允许命令行驱动。

其他工具:

http://www.polystyle.com/index.jsp

http://astyle.sourceforge.net/(开源)

答案 7 :(得分:2)

不直接,但我使用R#的Agent Smith插件来执行此操作。不幸的是,R#不是免费的。

答案 8 :(得分:2)

另请查看Microsoft StyleCop

答案 9 :(得分:1)

我没试过这个(通过谷歌发现)。可能会工作吗? http://www.semdesigns.com/Products/Formatters/CSharpFormatter.html。这是相当便宜的50美元,但没有试用。

答案 10 :(得分:1)

见上一个问题:

Is there any tool for reformatting C# code?

搜索[c#] astyle也会显示更多以前的问题。

答案 11 :(得分:1)

这是一个开源代码格式化工具,具有惊人的功能

CodeMaid

答案 12 :(得分:1)

我知道这是一个非常晚的答案,但也许你可能对Visual Studio 2010/2012的this free Addin感兴趣

答案 13 :(得分:0)

我想在网上做一个:freecodeformat