AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 格式选项 [TOC] ## break-closing-braces **--break-closing-braces 或 -y** 当设置风格为 **--style=java, --style=kr, --style=stroustrup, --style=linux, 或 --style=1tbs** 时,条件语句等分支语句(例如:'else', 'catch'等分支)与它们之前大括号结束后换行。其他的风格,已经包含了此选项设置。 ``` void Foo(bool isFoo) { if (isFoo) { bar(); } else { anotherBar(); } } 格式化为(换行 'else'): void Foo(bool isFoo) { if (isFoo) { bar(); } else { anotherBar(); } } ``` ## break-elseifs **--break-elseifs 或 -e** 将“else if”语句组合拆分成单独的两行。如果使用了 [keep-one-line-statements]() 选项,则此选项无效,“else if”语句将保持原样。如果不使用此选项,“else If”语句组合将放在一行上。 ``` if (isFoo) { bar(); } else if (isFoo1()) { bar1(); } else if (isFoo2()) { bar2; } 格式化为: if (isFoo) { bar(); } else if (isFoo1()) { bar1(); } else if (isFoo2()) { bar2(); } ``` ## break-one-line-headers **--break-one-line-headers 或 -xb** 条件语句或循环语句(例如:'if', 'while', 'else'等)如果写在一行,将会被格式化成多行语句。如果语句包含在大括号中,大括号将根据设置的[风格样式](风格选项.md)进行格式化。 如果设置了 [keep-one-line-statements]() 选项,则不会格式化成多行语句。如果设置了 [keep-one-line-blocks]() 选项,并且条件语句或循环语句包含在代码块中,那么那一行代码块将不会被格式化。 ``` void Foo(bool isFoo) { if (isFoo1) bar1(); if (isFoo2) { bar2(); } } 格式化为: void Foo(bool isFoo) { if (isFoo1) bar1(); if (isFoo2) { bar2(); } } ``` ## add-braces **--add-braces 或 -j** 给单行的条件语句或循环语句(例如:'if', 'for', 'while'等)加上大括号。语句必须在一行上。大括号将根据所设置的风格样式添加。如果没有要求样式,大括号将被附加到语句之后。 如果设置了 [keep-one-line-statements]() 选项,则不会将大括号添加到多行语句中。如果设置了 [keep-one-line-blocks]() 选项,大括号将不会添加到一行代码块中。如果与 **--add-one-line-braces** 一起使用,结果将是一行大括号。 ``` if (isFoo) isFoo = false; 格式化为: if (isFoo) { isFoo = false; } ``` ## add-one-line-braces **--add-one-line-braces 或 -J** 给单行的条件语句或循环语句(例如:'if', 'for', 'while'等)加上单独一行的大括号语句。语句必须在单独一行上。该选项类似于 **--keep-one-line-blocks** 选项,不会将单行大括号语句格式成多行语句。 ``` if (isFoo) isFoo = false; 格式化为: if (isFoo) { isFoo = false; } ``` ## remove-braces **--remove-braces 或 -xj** 如果条件语句或循环语句(例如:'if', 'for', 'while'等)只有单独一行,则移除大括号。如果设置了 **--add-braces** 或 **--add-one-line-braces** 选项,格式化的结果还是会带有大括号。大括号不会从“One True Brace Style”中被移除(**--style=1tbs**)。 ``` if (isFoo) { isFoo = false; } 格式化为: if (isFoo) isFoo = false; ``` ## break-return-type **--break-return-type 或 -xB** **--break-return-type-decl 或 -xD** 从函数名中换行返回类型。这两个选项用于函数定义(**-xB**),以及函数声明(**-xD**)。如果与选项 [attach-return-type]() 一起使用,那么结果将是换行返回类型。这个选项对 Objective-C 函数没有影响。 ``` void Foo(bool isFoo); 格式化为: void Foo(bool isFoo); ``` ## attach-return-type **--attach-return-type 或 -xf** **--attach-return-type-decl 或 -xh** 将返回类型附加到函数名之前。这两个选项分别用于函数定义(**-xf**)和函数声明**(-xh**)。它们的目的是撤消 [break-return-typ]() 选项。如果与 [break-return-typ]() 一起使用,结果将是破坏返回类型。这个选项对 Objective-C 函数没有影响。 ``` void Foo(bool isFoo); 格式化为: void Foo(bool isFoo); ``` ## keep-one-line-blocks **--keep-one-line-blocks 或 -O** 不要将单独一行代码块格式成多行。 ``` if (isFoo) { isFoo = false; cout << isFoo << endl; } 保持不变 ``` ## keep-one-line-statements **--keep-one-line-statements 或 -o** 不要将复杂语句和位于一行中的多个语句分开。 ``` if (isFoo) { isFoo = false; cout << isFoo << endl; } 保持不变 ``` ## convert-tabs **--convert-tabs 或 -c** 将制表符转换为行非缩进部分的空格。插入的空格数将保持制表符的间距。使用当前每个制表符的空格设置。如果在每个制表符更改空格时使用 [convert-tabs](),它可能不会产生预期的结果。引号内的制表符不会被改变。 ## close-templates **--close-templates 或 -xy** 移除模板定义的关闭尖括号之前的空格。现在 c++ 11 标准允许关闭结束尖括号。在进行更改之前,请确保编译器支持这一点。 ``` Stack< int, List< int > > stack1; 格式化为: Stack< int, List< int >> stack1; ``` ## remove-comment-prefix **--remove-comment-prefix 或 -xp** 删除注释中每一行开头多余的星号符“\*”,小于一个缩进的文本缩进为一个缩进,大于一个缩进的文本不会更改。从一行开始但是没有前面的‘\*’的多行注释,为了一致性而缩进到一个缩进中。这可以稍微修改注释掉的代码块的缩进。包含所有“\*”的行保持不变。从注释关闭 '*/'中删除额外的空格。 ``` /* * comment line 1 * comment line 2 */ 格式化为: /* comment line 1 comment line 2 */ ``` ## max-code-length ## break-after-logical **--max-code-length=# 或 -xC#** **--break-after-logical 或 -xL** 如果代码超过 # 个字符,最大代码长度将断行。有效值是 50 到 200 之间。没有逻辑条件的行将在逻辑运算符(||,&&等)、逗号、括号、分号或空格上换行。 有一些代码不会被该选项格式化,比如注释、引号和数组。如果设置了 [keep‑one‑line‑blocks]() 或 [add-one-line-braces]() 选项,也不会被格式化。如果设置了 [keep‑one‑line‑statements]() 选项,超过最大代码长度时会在分号位置折行。如果在最大代码长度内没有可用的断点,则在最大代码长度之后的第一个可用断点处折行。 默认情况下,逻辑条件将首先放在第一行中。选项 [break‑after‑logical]() 将导致逻辑运算符放在最后。如果没有设置 **max‑code‑length**,此选项** break-after-logical** 无效。 ``` if (thisVariable1 == thatVariable1 || thisVariable2 == thatVariable2 || thisVariable3 == thatVariable3) bar(); 格式化为: if (thisVariable1 == thatVariable1 || thisVariable2 == thatVariable2 || thisVariable3 == thatVariable3) bar(); 格式化为 (with break‑after‑logical): if (thisVariable1 == thatVariable1 || thisVariable2 == thatVariable2 || thisVariable3 == thatVariable3) bar(); ``` ## mode **--mode=c** **--mode=cs** **--mode=java** 缩进C类型、C# 或 Java 文件。C类型文件有C、C++、C++ /CLI 和 Objective-C。该选项通常依据每个文件的文件扩展名设置。您可以使用此条目覆盖设置。它将用于所有文件,无论文件扩展名如何。它允许格式化程序识别语言特定的语法,例如C++类、模板和关键字。