我正在尝试配置uncrustify(源代码美化器)
避免在先前的左括号下面对齐。对于
例如,我希望代码看起来像这样(来自文件
indent_paren.c
):
void f(void)
{
while (one &&
two)
{
continue;
}
}
当我在上面的代码上运行uncrustify时,行two)
缩进与上面一行中的(
对齐:
void f(void)
{
while (one &&
two)
{
continue;
}
}
我正在使用最新版本的uncrustify(0.59)编译而成
source,具有此测试的以下配置设置
(在文件indent_paren.cfg
中):
indent_with_tabs = 0
indent_columns = 4
indent_paren_nl = false
indent_bool_paren = false
我按照以下方式调用uncrustify:
uncrustify -c indent_paren.cfg indent_paren.c
我发现0.56版本的相同行为(从...安装) Ubuntu 11.04的存储库)。我使用了错误的配置 设置,或者这里有什么不对吗?谢谢你的帮助。
答案 0 :(得分:9)
经过进一步的实验并在解开后进行探索
源代码,我发现indent_continue
选项可以
主要是我想要的。默认情况下,indent_continue
为零,并且
继续的线条在左侧的开括号下方缩进
上面这一行。将indent_continue
设置为非零值
覆盖此行为,导致延续行
基于当前“级别”缩进。所以我原来的例子
在使用以下设置时根据需要缩进
uncrustify.cfg:
indent_with_tabs = 0
indent_columns = 4
indent_continue = 4
因为嵌套括号的“级别”递增, 但是,对于这种情况,存在比期望更多的缩进 为:
void g(void)
{
/* Nested parentheses cause undesired additional indent. */
TRACE(("The varargs need extra parentheses %d %d\n",
(firstArgIsLong +
withMultipleTerms),
secondArg));
}
以上设置生成缩进,如下所示 不希望的额外缩进程度:
void g(void)
{
/* Nested parentheses cause undesired additional indent. */
TRACE(("The varargs need extra parentheses %d %d\n",
(firstArgIsLong +
withMultipleTerms),
secondArg));
}
看着unrusifictify源,看来这种行为
是不可调整的。 indent_continue
给出了预期的结果
在大多数情况下,它似乎是最接近unrustify
可以在这个时候来。