配置uncrustify以添加大括号

时间:2017-11-22 17:55:27

标签: c++ uncrustify

我正在使用0.66.1版本的unrustify,并且对'mod_full_brace_if'的行为感到困惑,我已经设置为'强制'。它的评论说:

  

在单行'if'语句中添加或删除大括号。如果它们包含'else',则不会删除括号。

鉴于这一行:

if (flag) val = 10;

我希望/期望它转变为

if (flag) { val = 10; }

相反,它保持不变。

这只是我对'mod_full_brace_if'行为的误解吗?

随后: 我有时间在家做一些实验。我开始创建一个新的格式文件,并修改了一些与强制括号与各种关键字在同一行上的设置,以及一些强制括号围绕单行体的设置。我制作了一个包含以下内容的测试文件:

void foo() {
bool flag;
int var;
if (flag) var = 10;
if (!flag)
    var = 20; 
}

使用我的新配置文件运行uncrustify产生了我在工作中看到的相同的转换缺乏。

然后我创建了另一个配置文件,只更改了'mod_full_brace_if'('强制')。在我的测试文件中使用它会导致围绕if语句的主体的大括号。显然,多个设置有一些奇怪的交互。在我的未来,我看到了一些改变 - 设定和测试的苦差事。

1 个答案:

答案 0 :(得分:2)

事实证明问题是将“mod_full_brace_if_chain”设置为“true”。

文档说:

  

使链中的所有if / elseif / else语句都被支撑。覆盖mod_full_brace_if。

     

如果必须支撑,它们都是支撑的。如果所有都可以无支撑,则删除括号。

设置值时,我没有仔细阅读最后一句话。