NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# 缩进选项 [TOC] ## indent-classes **--indent-classes 或 -C** 缩进类和结构体的代码块,使整个代码块缩进。只有当访问修饰符‘public:’、‘protected:’或‘private:’在结构体中某处被声明时,结构体代码块才能进行缩进。此选项仅对 c++ 文件有效。 ``` class Foo { public: Foo(); virtual ~Foo(); }; 格式化为: class Foo { public: Foo(); virtual ~Foo(); }; ``` ## indent-modifiers **--indent-modifiers 或 -xG** 缩进类和结构体的访问修饰符、“public:”、“protected:”和“private:”,但是只进行半个缩进。类的其它部分不执行缩进。此选项仅对c++ 文件有效。如果与 [indent-classes]() 一起使用,这个选项将被忽略。 ``` class Foo { public: Foo(); virtual ~Foo(); }; 格式化为: class Foo { public: Foo(); virtual ~Foo(); }; ``` ## indent-switches **--indent-switches 或 -S** 缩进 Switch 语句模块,使 case 语句在 Switch 模块中缩进。整个 case 块都是缩进的。 ``` switch (foo) { case 1: a += 1; break; case 2: { a += 2; break; } } 格式化为: switch (foo) { case 1: a += 1; break; case 2: { a += 2; break; } } ``` ## indent-cases **--indent-cases 或 -K** 缩进 case 语句的代码块以 case 关键字为缩进起始位置。没有包含在大括号中的 case 语句不会缩进。 ``` switch (foo) { case 1: a += 1; break; case 2: { a += 2; break; } } 格式化为: switch (foo) { case 1: a += 1; break; case 2: { a += 2; break; } } ``` ## indent-namespaces **--indent-namespaces 或 -N** 为命名空间代码块添加额外的缩进。这个选项对 Java 文件没有影响。它还将缩进 CORBA IDL 模块语句。 ``` namespace foospace { class Foo { public: Foo(); virtual ~Foo(); }; } 格式化为: namespace foospace { class Foo { public: Foo(); virtual ~Foo(); }; } ``` ## indent-after-parens **--indent-after-parens 或 -xU** 在左括号“(”或者等于号“=”之后的语句换行时,每行进行缩进,而不是与符号对齐。这包括函数定义和声明以及返回语句。缩进长度可以通过使用下面的 [indent-continuation]() 选项来修改。此选项可用于显示比例字体的编辑器。 ``` void Foo(bool bar1, bool bar2) { isLongFunction(bar1, bar2); isLongVariable = foo1 || foo2; } 格式化为: void Foo(bool bar1, bool bar2) { isLongFunction(bar1, bar2); isLongVariable = foo1 || foo2; } ``` ## indent-continuation **--indent-continuation=# 或 -xt#** 在左括号“(”或者等于号“=”之后的语句换行时,每行进行一定长度的缩进。这包括函数定义和声明。它还将修改之前的 [indent-after-parens]() 选项。符号 # 的值表示缩进的个数,有效值是从 0 到 4 的整数值。如果不设置此选项,则使用默认值为:1。 ``` isLongVariable = foo1 || foo2; isLongFunction( bar1, bar2); 格式化为(indent-continuation=3),三个缩进: isLongVariable = foo1 || foo2; isLongFunction( bar1, bar2); ``` ## indent-labels **--indent-labels 或 -L** 为 goto 标签添加额外的缩进,使它们看起来比当前缩进少1个缩进,而不是与左侧对齐(默认)。 ``` void Foo() { while (isFoo) { if (isFoo) goto error; ... error: ... } } 格式化为(缩进标签 'error:'): void Foo() { while (isFoo) { if (isFoo) goto error; ... error: ... } } ``` ## indent-preproc-block **--indent-preproc-block 或 -xW** 在最初级别处缩进预处理代码块,并立即在命名空间内缩进。对于缩进的内容有限制。方法、类、数组等中的代码块不会缩进。包含大括号或多行定义语句的代码块不会缩进。如果没有这个选项,预处理代码块就不会缩进。 ``` #ifdef _WIN32 #include <windows.h> #ifndef NO_EXPORT #define EXPORT #endif #endif 格式化为: #ifdef _WIN32 #include <windows.h> #ifndef NO_EXPORT #define EXPORT #endif #endif ``` ## indent-preproc-define **--indent-preproc-define 或 -w** 缩进以反斜杠结尾的多行预处理定义。应该与 **--convert-tabs** 一起使用,以获得预期的结果。在混乱的预处理模块中,并不能很好地工作。如果未设置这个选项,预处理语句保持不变。 ``` #define Is_Bar(arg,a,b) \ (Is_Foo((arg), (a)) \ || Is_Foo((arg), (b))) 格式化为: #define Is_Bar(arg,a,b) \ (Is_Foo((arg), (a)) \ || Is_Foo((arg), (b))) ``` ## indent-preproc-cond **--indent-preproc-cond 或 -xw** 缩进预处理条件语句到与源代码相同的级别。 ``` isFoo = true; #ifdef UNICODE text = wideBuff; #else text = buff; #endif 格式化为: isFoo = true; #ifdef UNICODE text = wideBuff; #else text = buff; #endif ``` ## indent-col1-comments **--indent-col1-comments 或 -Y** 缩进从第一列开始的 c++ 注释。默认情况下,从第一列开始的 c++ 注释被认为是注释输出代码,而不是缩进。这个选项将允许注释与代码缩进对齐。 ``` void Foo() { // comment if (isFoo) bar(); } 格式化为: void Foo() { // comment if (isFoo) bar(); } ``` ## min-conditional-indent **--min-conditional-indent=# 或 -m#** 设置在由多行条件语句之前添加的最小缩进。这个缩进有助于轻松地将标题与后面的命令语句分开。符号 # 的值表示缩进最小值。缩进可能更大,以便与前一行中的数据对齐 > 有效值为: > > 0:没有最小缩进,这些行将与前一行的左括号对齐。 > > 1:缩进至少一个额外的缩进。 > > 2:缩进至少两个额外的缩进。 > > 3:缩进至少一半的额外缩进。这是为较长缩进设计的(例如:8 个空格长度的缩进)。 > 默认值是2,两个额外缩进。 ``` // default setting makes this non-braced code clear if (a < b || c > d) foo++; // but creates an exaggerated indent in this braced code if (a < b || c > d) { foo++; } 格式化为(当设置 --min-conditional-indent=0): // setting makes this non-braced code less clear if (a < b || c > d) foo++; // but makes this braced code clearer if (a < b || c > d) { foo++; } ``` ## max-continuation-indent **--max-continuation-indent=# 或 -M#** 设置最大的 # 个空格来缩进后续换行。符号 # 表示一定数量的列,并且不能小于 40 或大于 120。如果没有设置值,则使用默认值40。此选项将防止后续换行过分向右扩展。设置更大的值将允许代码进一步向右扩展。 ``` fooArray[] = { red, green, blue }; fooFunction(barArg1, barArg2, barArg3); 格式化为(with larger value): fooArray[] = { red, green, blue }; fooFunction(barArg1, barArg2, barArg3); ```