Я пытаюсь отформатировать код 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
?