是否有一个自动的源代码格式化程序,很好地包装了C / C ++的行?

时间:2009-06-25 22:27:13

标签: c++ formatting code-formatting

我大部分时间都使用astyle来格式化我的代码,我很喜欢它,但有一个烦恼是它无法为最大行长度指定至少一个“提示”。如果你有一行代码如:

this->mButtonCancel->setLeftClickProc(boost::bind(&FileListDialog::cancelLeftClick, this));

我希望源代码格式化程序能够适度地智能地包装它:

this->mButtonCancel->setLeftClickProc(
  boost::bind(&FileListDialog::cancelLeftClick, this));

...可能就是我如何格式化这行代码。对于长参数列表,我可能更喜欢在开括号上对齐,但显然在这种情况下不起作用。无论哪种方式,astyle都不支持使用不包含多个语句的长行执行任何操作。有谁知道一个工具呢?

5 个答案:

答案 0 :(得分:10)

答案 1 :(得分:5)

我发现 uncrustify 命令行工具非常实用。它有很多选项,因此有点难,但经过一些练习后,它是非常宝贵的。 主页在这里: http://uncrustify.sourceforge.net/

答案 2 :(得分:5)

Astyle 2.03现在支持基于max-code-length

分割线条

http://astyle.sourceforge.net/astyle.html#_max-code-length

我已经对此进行了测试,并且它使用max-code-length = 80来分割行,但是基于最小可能的更改。我最大化了一行中的代码量,因此中断并不总是容易阅读(但它会破坏它们)

答案 3 :(得分:2)

如果你谷歌“美化C代码”你会发现一些不错的实用程序。我知道在* nix上有一个叫做bc的二进制文件可以做一些基本的格式化。但它不是很容易定制的。

答案 4 :(得分:0)

如今,clang-format支持许多配置换行的选项,例如?path: /.+表示宽度,或其中一些用于控制何时以及如何破坏

ColumnLimit: 80