[英]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.