繁体   English   中英

配置Unrustify添加大括号

[英]Configuring uncrustify to add braces

我正在使用0.66.1的uncrustify版本,并对设置为“强制”的'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”更改为“ force”。 在我的测试文件上使用它会导致括号包围if语句的主体。 显然,多种设置之间存在一些怪异的相互作用。 我将来会遇到一些麻烦和考验。

事实证明,问题出在将“ mod_full_brace_if_chain”设置为“ true”。

该文件说:

使链中的所有if / elseif / else语句都用括号括起来。 覆盖mod_full_brace_if。

如果必须将其支撑起来,它们都将被支撑。 如果可以将所有支架拆开,则将支架拆下。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM