Clang-Format: разрыв строки в инициализаторах между членами, а не внутри члена? - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь отформатировать код C ++ с использованием clang-формата.

// input.hpp

namespace Foo{
    class Bar{
        Bar(bool is_zzz, int nn) : foobar(nullptr), xx{nullptr, nullptr}, yy{0, 0}, zzz(is_zzz), value(xxx_yyy_zzz) {}
    };
}
// .clang-format

BasedOnStyle: LLVM
IndentWidth: 4
TabWidth: 4
UseTab: Never
ColumnLimit: 64

AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AllowShortFunctionsOnASingleLine: All
ContinuationIndentWidth: 8
AllowShortIfStatementsOnASingleLine: Always
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: false
Cpp11BracedListStyle: false
FixNamespaceComments: true
IndentCaseLabels: false
IndentWrappedFunctionNames: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
PointerAlignment: Middle
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyParentheses: false

Clang-формат версии 9.0.0 производит

// output.hpp

namespace Foo {
    class Bar {
        Bar(bool is_zzz, int nn)
            : foobar(nullptr), xx{ nullptr, nullptr }, yy{ 0,
                                                           0 },
              zzz(is_zzz), value(xxx_yyy_zzz) {}
    };
} // namespace Foo

Это разрыв строки в инициализаторе для yy ({0, 0}). Однако я предпочитаю следующее:

// output2.hpp

namespace Foo {
    class Bar {
        Bar(bool is_zzz, int nn)
            : foobar(nullptr), xx{ nullptr, nullptr },
              yy{ 0, 0 }, zzz(is_zzz), value(xxx_yyy_zzz) {}
    };
} // namespace Foo

, то есть, предпочитаю разрывать строку в инициализаторах между членами, а не внутри члена. Как мне настроить .clang-format?

...