C# 有自动代码格式化程序吗? [关闭]

Posted

技术标签:

【中文标题】C# 有自动代码格式化程序吗? [关闭]【英文标题】:Is there an automatic code formatter for C#? [closed] 【发布时间】:2010-09-07 00:05:23 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

对于 Visual Studio,请查看 ReSharper。这是一个很棒的工具,也是绝对必备的。 4.0 之后的版本具有您正在寻找的代码格式化和清理功能。还有plugin integration with StyleCop,包括格式化设置文件。

您可能还需要Agent Smith plugin,用于对标识符和 cmets 进行拼写检查。 ReSharper 支持每个解决方案的格式化设置文件,这些文件可以签入版本控制系统并由整个团队共享。代码清理的快捷键是Ctrl + E, C

在'vanilla' Visual Studio中,当前文件可以通过Ctrl + K, Ctrl + D 和 Ctrl + KCtrl + F 格式化所选文本。

至于与提交挂钩一起使用的无处不在的命令行工具,请尝试NArrange。它是免费的,可以一次处理整个目录并在 Mono 和 Microsoft .NET 上运行。

有些人也使用Artistic Style 命令行工具,尽管它需要 Perl 并且与 C/C++ 代码相比,它与 C# 相比更有效。

【讨论】:

效果很好......而且它不仅仅可以格式化代码!【参考方案2】:

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

https://github.com/dotnet/codeformatter

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

【讨论】:

一定要配置自己的Editor Config文件:editorconfig.org github.com/dotnet/codeformatter/releases 无法让它工作,它什么也没做。为什么这个工具还需要一个项目文件?格式化如何不是每个文件的工作? 他们也是 CSharpier github.com/belav/csharpier(灵感来自 Prettier) 注意这个工具好像已经被dotnet-format取代了。【参考方案3】:

进一步@Chris Karcher 的回答 - 您还可以通过点击 Ctrl+KCtrl整个文档 /kbd>+D.

这些格式化功能适用于各种文件格式 - 它在丑陋的 html 上效果惊人。

【讨论】:

【参考方案4】:

另一个选项:NArrange;

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

【讨论】:

我还没有设法使用 NArrange 进行代码格式化(还没有?)。它似乎所做的只是根据基本任意的标准(例如访问级别或成员类型)随机化我的源文件中成员的顺序,但方法中的错误缩进和运算符间距保持不变。事实上,NArrange 文档甚至说“NArrange 目前不解析到构造函数、方法和属性的语句级别”——如果这意味着我认为的意思,那么 NArrange 可能对代码重组有用,但并没有真正做太多格式化。【参考方案5】:

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

我知道这并没有真正解决自动格式化问题。我只是想向那些可能不知道 Visual Studio 中甚至存在此功能的人澄清一下。

【讨论】:

【参考方案6】:

我只听说过关于ReSharper 的好消息。它在我的学习清单上。

【讨论】:

但是每年要花费 1000 美元?【参考方案7】:

http://www.sourceformat.com/

这个工具大约是(~30 美元)。我试过了,效果很好(支持多种语言)。

我最喜欢这个工具,因为它不会检查代码文件的正确性。我可以从 Internet 上发布代码 sn-ps,无论它们是否在代码的缺失部分中,它都会正确翻译它们。在这种情况下,我尝试抱怨的其他工具。该工具还可以轻松集成到编辑器中,因为它允许命令行驱动。

其他工具:

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

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

也可以看看Microsoft StyleCop

【讨论】:

【参考方案10】:

查看上一个问题:

Is there any tool for reformatting C# code?

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

【讨论】:

【参考方案11】:

我没有尝试过(通过 Google 找到的)。它可能会起作用。 http://www.semdesigns.com/Products/Formatters/CSharpFormatter.html。 50 美元的价格相当便宜,但没有试用版。

【讨论】:

【参考方案12】:

也许您可能对 Visual Studio 2010/2012 的 this free Addin 感兴趣。

【讨论】:

【参考方案13】:

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

CodeMaid

【讨论】:

谢谢你指点我! 此插件无法格式化代码,仅支持 cmets 格式化【参考方案14】:

如果您想在线进行,请联系freecodeformat。

【讨论】:

以上是关于C# 有自动代码格式化程序吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

matlab代码格式化程序[关闭]

有没有 Sass 代码格式化程序? [关闭]

Xcode 有代码自动格式化功能吗?

关闭选定代码区域的 Eclipse 格式化程序? [复制]

C#程序做记事本, 记事本中的格式下面得菜单的自动换行怎么做

继承代码:格式化还是不格式化? [关闭]