http://uncrustify.sourceforge.net/
- Ident code, aligning on parens, assignments, etc
- Align on '=' and variable definitions
- Align structure initializers
- Align #define stuff
- Align backslash-newline stuff
- Reformat comments (a little bit)
- Fix inter-character spacing
- Add or remove parens on return statements
- Add or remove braces on single-statement if/do/while/for statements
- Supports embedded SQL 'EXEC SQL' stuff
- Highly configurable - 385 configurable options as of version 0.56
Output :
const char *token_names[] =
{
[CT_POUND] = "POUND",
[CT_PREPROC] = "PREPROC",
[CT_PREPROC_BODY] = "PREPROC_BODY",
[CT_PP] = "PP",
};
int main(int argc, char *argv[])
{
struct junk a[] =
{
{ "version", 0, 0, 0 },
{ "file", 1, 150, 'f' },
{ "config", 1, 0, 'c' },
{ "parsed", 25, 0, 'p' },
{ NULL, 0, 0, 0 }
};
}
color_t colors[] =
{
{ "red", { 255, 0, 0 } }, { "blue", { 0, 255, 0 } },
{ "green", { 0, 0, 255 } }, { "purple", { 255, 255, 0 } },
};
struct foo_t bar =
{
.name = "bar",
.age = 21
};
struct foo_t bars[] =
{
[0] = { .name = "bar",
.age = 21 },
[1] = { .name = "barley",
.age = 55 },
};
void foo(void)
{
int i;
char *name;
i = 5;
name = "bob";
}
/**
* This is your typical header comment
*/
int foo(int bar)
{
int idx;
int res = 0; // trailing comment
// that spans two lines
for (idx = 1; idx < bar; idx++)
/* comment in virtual braces */
res += idx;
res *= idx; // some comment
// almost continued, but a NL in between
// col1 comment in level 1
return(res);
}
// col1 comment in level 0
#define foobar(x) /
{ /
for (i = 0; i < x; i++) /
{ /
junk(i, x); /
} /
}
void foo(void)
{
switch(ch)
{
case 'a':
{
handle_a();
break;
}
case 'b':
handle_b();
break;
case 'c':
case 'd':
handle_cd();
break;
case 'e':
{
handle_a();
}
break;
default:
handle_default();
break;
}
}
本文介绍了一款强大的代码格式化工具Uncrustify,它能自动调整代码风格,包括对齐符号、变量定义、注释、空格等,支持多种编程语言,并提供高度可配置选项。
4560

被折叠的 条评论
为什么被折叠?



