diff options
author | Sylvestre Ledru <sylvestre@debian.org> | 2017-03-13 14:42:47 +0000 |
---|---|---|
committer | Sylvestre Ledru <sylvestre@debian.org> | 2017-03-13 14:42:47 +0000 |
commit | 7d21a3d2c3ffc24c68eed2d3f3e1843d1bb66a7d (patch) | |
tree | e11844fc0bd21801786724bcf1a4259c965db06c /clang/docs/ClangFormatStyleOptions.rst | |
parent | 78aa27004110fe9179512d93fb1b1e5fed8b02b8 (diff) | |
download | bcm5719-llvm-7d21a3d2c3ffc24c68eed2d3f3e1843d1bb66a7d.tar.gz bcm5719-llvm-7d21a3d2c3ffc24c68eed2d3f3e1843d1bb66a7d.zip |
[clang-format] Add more examples and fix a bug in the py generation script
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D30860
llvm-svn: 297623
Diffstat (limited to 'clang/docs/ClangFormatStyleOptions.rst')
-rw-r--r-- | clang/docs/ClangFormatStyleOptions.rst | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/clang/docs/ClangFormatStyleOptions.rst b/clang/docs/ClangFormatStyleOptions.rst index 3f9d1676d7d..7b13a7d009c 100644 --- a/clang/docs/ClangFormatStyleOptions.rst +++ b/clang/docs/ClangFormatStyleOptions.rst @@ -252,6 +252,13 @@ the configuration (without a prefix: ``Auto``). Allow putting all parameters of a function declaration onto the next line even if ``BinPackParameters`` is ``false``. + .. code-block:: c++ + + true: false: + myFunction(foo, vs. myFunction(foo, bar, plop); + bar, + plop); + **AllowShortBlocksOnASingleLine** (``bool``) Allows contracting simple braced statements to a single line. @@ -460,16 +467,148 @@ the configuration (without a prefix: ``Auto``). Nested configuration flags: + * ``bool AfterClass`` Wrap class definitions. + + .. code-block:: c++ + + true: + class foo {}; + + false: + class foo + {}; + * ``bool AfterControlStatement`` Wrap control statements (``if``/``for``/``while``/``switch``/..). + + .. code-block:: c++ + + true: + if (foo()) + { + } else + {} + for (int i = 0; i < 10; ++i) + {} + + false: + if (foo()) { + } else { + } + for (int i = 0; i < 10; ++i) { + } + * ``bool AfterEnum`` Wrap enum definitions. + + .. code-block:: c++ + + true: + enum X : int + { + B + }; + + false: + enum X : int { B }; + * ``bool AfterFunction`` Wrap function definitions. + + .. code-block:: c++ + + true: + void foo() + { + bar(); + bar2(); + } + + false: + void foo() { + bar(); + bar2(); + } + * ``bool AfterNamespace`` Wrap namespace definitions. + + .. code-block:: c++ + + true: + namespace + { + int foo(); + int bar(); + } + + false: + namespace { + int foo(); + int bar(); + } + * ``bool AfterObjCDeclaration`` Wrap ObjC definitions (``@autoreleasepool``, interfaces, ..). + * ``bool AfterStruct`` Wrap struct definitions. + + .. code-block:: c++ + + true: + struct foo + { + int x; + } + + false: + struct foo { + int x; + } + * ``bool AfterUnion`` Wrap union definitions. + + .. code-block:: c++ + + true: + union foo + { + int x; + } + + false: + union foo { + int x; + } + * ``bool BeforeCatch`` Wrap before ``catch``. + + .. code-block:: c++ + + true: + try { + foo(); + } + catch () { + } + + false: + try { + foo(); + } catch () { + } + * ``bool BeforeElse`` Wrap before ``else``. + + .. code-block:: c++ + + true: + if (foo()) { + } + else { + } + + false: + if (foo()) { + } else { + } + * ``bool IndentBraces`` Indent the wrapped braces themselves. @@ -500,29 +639,146 @@ the configuration (without a prefix: ``Auto``). * ``BS_Attach`` (in configuration: ``Attach``) Always attach braces to surrounding context. + .. code-block:: c++ + + try { + foo(); + } catch () { + } + void foo() { bar(); } + class foo {}; + if (foo()) { + } else { + } + enum X : int { A, B }; + * ``BS_Linux`` (in configuration: ``Linux``) Like ``Attach``, but break before braces on function, namespace and class definitions. + .. code-block:: c++ + + try { + foo(); + } catch () { + } + void foo() { bar(); } + class foo + { + }; + if (foo()) { + } else { + } + enum X : int { A, B }; + * ``BS_Mozilla`` (in configuration: ``Mozilla``) Like ``Attach``, but break before braces on enum, function, and record definitions. + .. code-block:: c++ + + try { + foo(); + } catch () { + } + void foo() { bar(); } + class foo + { + }; + if (foo()) { + } else { + } + enum X : int { A, B }; + * ``BS_Stroustrup`` (in configuration: ``Stroustrup``) Like ``Attach``, but break before function definitions, ``catch``, and ``else``. + .. code-block:: c++ + + try { + foo(); + } catch () { + } + void foo() { bar(); } + class foo + { + }; + if (foo()) { + } else { + } + enum X : int + { + A, + B + }; + * ``BS_Allman`` (in configuration: ``Allman``) Always break before braces. + .. code-block:: c++ + + try { + foo(); + } + catch () { + } + void foo() { bar(); } + class foo { + }; + if (foo()) { + } + else { + } + enum X : int { A, B }; + * ``BS_GNU`` (in configuration: ``GNU``) Always break before braces and add an extra level of indentation to braces of control statements, not to those of class, function or other definitions. + .. code-block:: c++ + + try + { + foo(); + } + catch () + { + } + void foo() { bar(); } + class foo + { + }; + if (foo()) + { + } + else + { + } + enum X : int + { + A, + B + }; + * ``BS_WebKit`` (in configuration: ``WebKit``) Like ``Attach``, but break before functions. + .. code-block:: c++ + + try { + foo(); + } catch () { + } + void foo() { bar(); } + class foo { + }; + if (foo()) { + } else { + } + enum X : int { A, B }; + * ``BS_Custom`` (in configuration: ``Custom``) Configure each individual brace in `BraceWrapping`. @@ -532,9 +788,29 @@ the configuration (without a prefix: ``Auto``). If ``true``, in the class inheritance expression clang-format will break before ``:`` and ``,`` if there is multiple inheritance. + .. code-block:: c++ + + true: false: + class MyClass vs. class MyClass : public X, public Y { + : public X }; + , public Y { + }; + **BreakBeforeTernaryOperators** (``bool``) If ``true``, ternary operators will be placed after line breaks. + .. code-block:: c++ + + true: + veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongDescription + ? firstValue + : SecondValueVeryVeryVeryVeryLong; + + true: + veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongDescription ? + firstValue : + SecondValueVeryVeryVeryVeryLong; + **BreakConstructorInitializersBeforeComma** (``bool``) Always break constructor initializers before commas and align the commas with the colon. @@ -565,6 +841,21 @@ the configuration (without a prefix: ``Auto``). If the constructor initializers don't fit on a line, put each initializer on its own line. + .. code-block:: c++ + + true: + SomeClass::Constructor() + : aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaa) { + return 0; + } + + false: + SomeClass::Constructor() + : aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa), + aaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaa) { + return 0; + } + **ConstructorInitializerIndentWidth** (``unsigned``) The number of characters to use for indentation of constructor initializer lists. |