gpt4 book ai didi

c++ - 配置 uncrustify 以添加大括号

转载 作者:行者123 更新时间:2023-11-30 03:27:23 25 4
gpt4 key购买 nike

我正在使用 uncrustify 的 0.66.1 版本,我对我设置为“force”的“mod_full_brace_if”的行为感到困惑。它的评论说:

Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an '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”。

文档说:

Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if.

If any must be braced, they are all braced. If all can be unbraced, then the braces are removed.

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

关于c++ - 配置 uncrustify 以添加大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47441111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com