我正在尝试将uncrustify(源代码美化器)配置为
避免在先前的开放括号下对齐。对于
例如,我希望代码看起来像这样(来自文件indent_paren.c
):
void f(void)
{
while (one &&
two)
{
continue;
}
}
当我在上面的代码上运行uncrustify时,行
two)
缩进以与上一行的
(
对齐:void f(void)
{
while (one &&
two)
{
continue;
}
}
我正在使用从编译的最新版本的uncrustify(0.59)
源,具有此测试的以下配置设置
(在文件
indent_paren.cfg
中):indent_with_tabs = 0
indent_columns = 4
indent_paren_nl = false
indent_bool_paren = false
我正在调用unrustify,如下所示:
uncrustify -c indent_paren.cfg indent_paren.c
我发现与版本0.56相同的行为(从
Ubuntu 11.04的存储库)。我使用了错误的配置吗
设置,还是这里有其他问题?谢谢你的帮助。
最佳答案
经过进一步的实验并在不生锈的地方进行了探索
源代码,我发现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));
}
观察不可靠的来源,看来这种行为
不可调。
indent_continue
提供所需的结果在大多数情况下,这似乎是最令人信服的
可以在这个时候来。
关于uncrustify - 在开括号下使用unrustify而不对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7730378/