在使用uncrustify时,我遇到了while循环的问题。如果while循环没有正文,则尾随分号将被推送到下一行。在GitHub和这个网站上,我没有发现这一点。问题与强制不同行中的一个衬垫有关吗?
我尝试过的代码是:(这也是它最终应该是什么样子)
int main()
{
int i = 20000;
while(i--);
return 0;
}
但是,解开的是:
int main()
{
int i = 20000;
while (i--)
;
return 0;
}
答案 0 :(得分:0)
使用空配置文件时不会发生这种情况,因此这种行为是由您在正在使用的配置文件中添加的选项引起的(很可能是nl_*
选项之一)。
发布指向您文件的链接。
这两个选项都会导致此行为:
# Add or remove newline between 'while' and '{'.
nl_while_brace = force # ignore/add/remove/force
# Change a one-liner while statement into simple unbraced while
# 'while (i<5) foo(i++);' => 'while (i<5)\n foo(i++);'.
nl_split_while_one_liner = true # false/true
请记住,Uncrustify还认为缺少大括号(虚拟大括号)是大括号(nl_while_brace
)。
Uncrustify有一个选项可以禁用vbraces处理间距选项,但似乎它缺少新行选项。如果您需要在github存储库站点上打开一个功能或拉取请求:https://github.com/uncrustify/uncrustify。