在使用uncrustify时,bodieless while循环和uncrustify中的分号之间的换行符
问题描述:
,我遇到while循环的问题。如果while循环没有主体,则尾随分号将被推送到下一行。在github和这个网站上,我发现没有提到这一点。这个问题是否涉及在不同的路线上强行划线?在使用uncrustify时,bodieless while循环和uncrustify中的分号之间的换行符
我试过它的代码是:(这也是它应该是什么样子到底)
int main()
{
int i = 20000;
while(i--);
return 0;
}
但是uncrustify的回报是:
int main()
{
int i = 20000;
while (i--)
;
return 0;
}
任何人可以帮助我识别导致这种情况的选项? 配置文件:https://pastebin.com/3FUqHmp8
先谢谢您!
答
对于空配置文件,这种情况不会发生,所以此行为是由您在使用的配置文件(最有可能是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。
好吧,我对这个vbrace的东西很难,但认为它可能只适用于空格,而不是新行。我想,我必须为此打开功能请求。不幸的是,我不能满足你的答案(没有足够的声望)。感谢你的付出! – InfoMathze