最佳的C++代码格式化程序/美化工具

127

有许多源代码格式化工具可供选择。哪些工具最适合C++?

我对命令行工具或其他可以在检入/检出代码时自动运行的工具感兴趣,最好无需启动编辑器或IDE。

(如果你看到你喜欢的答案已经列出,请投赞成票。如果没有,请添加。)

1个回答

120

AStyle 可以针对 C++ 和 Java(以及其他语言)进行高度自定义的源代码格式化工具。


clang-format 是一个功能强大的命令行工具,与 clang 编译器捆绑在一起,可以以一种连贯的方式处理包括最奇怪的语言构造在内的代码。

它可以与 Visual Studio、Emacs、Vim(和其他编辑器)集成,并且可以仅对选定的行进行格式化(或者使用 git/svn 格式化某些差异)。

它可以配置多种选项,列表在这里

当使用配置文件(命名为 .clang-format)时,样式可以按目录进行分别设置 - 父目录中最接近的该类文件将用于特定的文件。

样式可以从预设值(如 LLVM 或 Google)继承,并且可以稍后覆盖不同的选项。

它被 Google 和其他公司使用,并且已经适用于生产。


还可以查看项目 UniversalIndentGUI。您可以使用它尝试几种缩进器: AStyle、Uncrustify、GreatCode 等,并选择最适合您的一个。以后可以通过命令行运行其中任何一个。


Uncrustify 有很多可配置的选项。您可能还需要 Konstantin 的回复中提到的 Universal Indent GUI 来进行配置。


1
我们有一些混乱的源文件,其中包含复杂的宏定义,很难理解如何修改代码或设置断点。我们使用gcc -E工具来去除宏定义,结果得到非常长的嵌套for循环、if语句等。Astyle修复了这个问题,使代码易读,为我们节省了很多麻烦。Astyle已成为我软件工具箱中的必备工具! - DarenW
8
Vim小技巧:如果你想美化当前正在编辑的文件中的代码,请使用:%!astyle - tonylo
这是一个很棒的工具。每次我需要在同一个项目上使用MSVStudio(在工作中)和Linux上的emacs(在家中)时,我都会运行astyle。我在emacs和astyle中使用BSD样式(与我在MSVC编辑器中使用的样式接近),并且我总是有正确缩进的源代码。即使在不同的制表符大小下,它看起来也很美观! - Alexandre C.
1
试过了,很容易得到快速结果(文档也不错)。可惜选项不是很多!有些程序员用空格填充代码的方式非常有创意,而AStyle并不能处理所有这些创意。 - fury
没有最大行宽选项。这应该是必备的。 - Sogartar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接