我大部分时间都使用astyle来格式化我的代码,我很喜欢它,但有一个烦恼是它无法为最大行长度指定至少一个“提示”。如果你有一行代码如:
this->mButtonCancel->setLeftClickProc(boost::bind(&FileListDialog::cancelLeftClick, this));
我希望源代码格式化程序能够适度地智能地包装它:
this->mButtonCancel->setLeftClickProc(
boost::bind(&FileListDialog::cancelLeftClick, this));
...可能就是我如何格式化这行代码。对于长参数列表,我可能更喜欢在开括号上对齐,但显然在这种情况下不起作用。无论哪种方式,astyle都不支持使用不包含多个语句的长行执行任何操作。有谁知道一个工具呢?
答案 0 :(得分:10)
GNU Indent支持打破长队。
答案 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