gpt4 book ai didi

c++ - Astyle - 如何将不带大括号的条件格式化为 1TBS

转载 作者:行者123 更新时间:2023-11-30 16:58:41 24 4
gpt4 key购买 nike

我有一个程序,它使用 Astyle 将代码格式化为 1TBS。所以,如果我有这样的代码

if(condition)
func(a, b);

改成这样

if(condition) {
func(a, b);
}
<小时/>

问题是,当被调用函数中的参数被分成多行时,如下所示:

if(condition)
func(a,
b);

那么即使我尝试使用 --add-brackets 强制他,Astyle 也无法添加大括号。可以用其他方法吗?

我的命令现在看起来像这样:

astyle --style=1tbs --add-brackets  test.c

最佳答案

这可能看起来有点复杂,但如果你有很多来源添加大括号只需一次操作,以下方案可能有效。

您可以坚持使用 astyle,但您需要 uncrustify暂时地以及我编写的名为 whatstyle 的脚本.

在以下步骤中,将 test1.c 替换为您的源代码并保留备份您的来源将被修改。

教astyle您的来源的当前风格

whatstyle.py -f astyle --mode resilient --output astylerc test1.c

教导你了解当前来源的风格

whatstyle.py -f uncrustify --output uncrustify.cfg test1.c

告诉 uncrustify 始终为 ifs 添加大括号

( egrep -v mod_full_brace_if < uncrustify.cfg ; echo "mod_full_brace_if = force" ) \
> uncrustify_addbrace.cfg

使用 uncrustify 重新格式化您的源代码,并尽可能少地更改样式

uncrustify --replace -c uncrustify_addbrace.cfg test1.c

现在已经添加了大括号,用astyle重新转换为原始样式。

ARTISTIC_STYLE_OPTIONS=astylerc astyle test1.c

现在,除了添加的大括号之外,您的源代码应该看起来几乎与以前相同尽管来回风格转换可能会带来更多变化。

关于c++ - Astyle - 如何将不带大括号的条件格式化为 1TBS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38614248/

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