forked from OSchip/llvm-project
clang-format: Adapt line break penalties for LLVM style.
Specifically make clang-format less eager to break after the opening parenthesis of a function call. Before: aaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); After: aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa); Apparently that is preferable. This penalties are adapted conservatively, we might have to increase them a little bit further. llvm-svn: 193410
This commit is contained in:
parent
2acb2470f9
commit
33b909c5f3
|
@ -52,6 +52,9 @@ struct FormatStyle {
|
||||||
/// \brief The penalty for breaking before the first \c <<.
|
/// \brief The penalty for breaking before the first \c <<.
|
||||||
unsigned PenaltyBreakFirstLessLess;
|
unsigned PenaltyBreakFirstLessLess;
|
||||||
|
|
||||||
|
/// \brief The penalty for breaking a function call after "call(".
|
||||||
|
unsigned PenaltyBreakBeforeFirstCallParameter;
|
||||||
|
|
||||||
/// \brief Set whether & and * bind to the type as opposed to the variable.
|
/// \brief Set whether & and * bind to the type as opposed to the variable.
|
||||||
bool PointerBindsToType;
|
bool PointerBindsToType;
|
||||||
|
|
||||||
|
|
|
@ -137,6 +137,8 @@ template <> struct MappingTraits<clang::format::FormatStyle> {
|
||||||
IO.mapOptional("NamespaceIndentation", Style.NamespaceIndentation);
|
IO.mapOptional("NamespaceIndentation", Style.NamespaceIndentation);
|
||||||
IO.mapOptional("ObjCSpaceBeforeProtocolList",
|
IO.mapOptional("ObjCSpaceBeforeProtocolList",
|
||||||
Style.ObjCSpaceBeforeProtocolList);
|
Style.ObjCSpaceBeforeProtocolList);
|
||||||
|
IO.mapOptional("PenaltyBreakBeforeFirstCallParameter",
|
||||||
|
Style.PenaltyBreakBeforeFirstCallParameter);
|
||||||
IO.mapOptional("PenaltyBreakComment", Style.PenaltyBreakComment);
|
IO.mapOptional("PenaltyBreakComment", Style.PenaltyBreakComment);
|
||||||
IO.mapOptional("PenaltyBreakString", Style.PenaltyBreakString);
|
IO.mapOptional("PenaltyBreakString", Style.PenaltyBreakString);
|
||||||
IO.mapOptional("PenaltyBreakFirstLessLess",
|
IO.mapOptional("PenaltyBreakFirstLessLess",
|
||||||
|
@ -219,6 +221,7 @@ FormatStyle getLLVMStyle() {
|
||||||
|
|
||||||
setDefaultPenalties(LLVMStyle);
|
setDefaultPenalties(LLVMStyle);
|
||||||
LLVMStyle.PenaltyReturnTypeOnItsOwnLine = 60;
|
LLVMStyle.PenaltyReturnTypeOnItsOwnLine = 60;
|
||||||
|
LLVMStyle.PenaltyBreakBeforeFirstCallParameter = 19;
|
||||||
|
|
||||||
return LLVMStyle;
|
return LLVMStyle;
|
||||||
}
|
}
|
||||||
|
@ -263,6 +266,7 @@ FormatStyle getGoogleStyle() {
|
||||||
|
|
||||||
setDefaultPenalties(GoogleStyle);
|
setDefaultPenalties(GoogleStyle);
|
||||||
GoogleStyle.PenaltyReturnTypeOnItsOwnLine = 200;
|
GoogleStyle.PenaltyReturnTypeOnItsOwnLine = 200;
|
||||||
|
GoogleStyle.PenaltyBreakBeforeFirstCallParameter = 1;
|
||||||
|
|
||||||
return GoogleStyle;
|
return GoogleStyle;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1177,7 +1177,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
|
||||||
if (Left.is(tok::l_paren) && Line.MightBeFunctionDecl)
|
if (Left.is(tok::l_paren) && Line.MightBeFunctionDecl)
|
||||||
return 100;
|
return 100;
|
||||||
if (Left.opensScope())
|
if (Left.opensScope())
|
||||||
return Left.ParameterCount > 1 ? prec::Comma : 19;
|
return Left.ParameterCount > 1 ? Style.PenaltyBreakBeforeFirstCallParameter
|
||||||
|
: 19;
|
||||||
|
|
||||||
if (Right.is(tok::lessless)) {
|
if (Right.is(tok::lessless)) {
|
||||||
if (Left.is(tok::string_literal)) {
|
if (Left.is(tok::string_literal)) {
|
||||||
|
|
|
@ -2973,9 +2973,9 @@ TEST_F(FormatTest, BreaksDesireably) {
|
||||||
"aaaaaa(aaa, new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
|
"aaaaaa(aaa, new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
|
||||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));");
|
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));");
|
||||||
verifyFormat(
|
verifyFormat(
|
||||||
"aaaaaaaaaaaaaaaaa(\n"
|
"aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +\n"
|
||||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
||||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);");
|
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);");
|
||||||
|
|
||||||
// Indent consistently indenpendent of call expression.
|
// Indent consistently indenpendent of call expression.
|
||||||
verifyFormat("aaaaaaaaaaa(bbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccc(\n"
|
verifyFormat("aaaaaaaaaaa(bbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccc(\n"
|
||||||
|
@ -3122,7 +3122,7 @@ TEST_F(FormatTest, FormatsBuilderPattern) {
|
||||||
" ->aaaaaaaaaaaaaaaa(\n"
|
" ->aaaaaaaaaaaaaaaa(\n"
|
||||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
|
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
|
||||||
" ->aaaaaaaaaaaaaaaaa();");
|
" ->aaaaaaaaaaaaaaaaa();");
|
||||||
verifyFormat(
|
verifyGoogleFormat(
|
||||||
"someobj->Add((new util::filetools::Handler(dir))\n"
|
"someobj->Add((new util::filetools::Handler(dir))\n"
|
||||||
" ->OnEvent1(NewPermanentCallback(\n"
|
" ->OnEvent1(NewPermanentCallback(\n"
|
||||||
" this, &HandlerHolderClass::EventHandlerCBA))\n"
|
" this, &HandlerHolderClass::EventHandlerCBA))\n"
|
||||||
|
@ -4497,7 +4497,7 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) {
|
||||||
NoSpaces);
|
NoSpaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(FormatTest, FormatsBracedListsinColumnLayout) {
|
TEST_F(FormatTest, FormatsBracedListsInColumnLayout) {
|
||||||
verifyFormat("vector<int> x = { 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
verifyFormat("vector<int> x = { 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
||||||
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
||||||
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
" 1, 22, 333, 4444, 55555, 666666, 7777777,\n"
|
||||||
|
@ -4538,8 +4538,8 @@ TEST_F(FormatTest, FormatsBracedListsinColumnLayout) {
|
||||||
verifyFormat("vector<int> x = { 1, 1, 1, 1,\n"
|
verifyFormat("vector<int> x = { 1, 1, 1, 1,\n"
|
||||||
" 1, 1, 1, 1, };",
|
" 1, 1, 1, 1, };",
|
||||||
getLLVMStyleWithColumns(39));
|
getLLVMStyleWithColumns(39));
|
||||||
verifyFormat("vector<int> x = {\n"
|
verifyFormat("vector<int> x = { 1, 1, 1, 1,\n"
|
||||||
" 1, 1, 1, 1, 1, 1, 1, 1, //\n"
|
" 1, 1, 1, 1, //\n"
|
||||||
"};",
|
"};",
|
||||||
getLLVMStyleWithColumns(39));
|
getLLVMStyleWithColumns(39));
|
||||||
verifyFormat("vector<int> x = { 1, 1, 1, 1,\n"
|
verifyFormat("vector<int> x = { 1, 1, 1, 1,\n"
|
||||||
|
@ -6597,6 +6597,8 @@ TEST_F(FormatTest, ParsesConfiguration) {
|
||||||
ConstructorInitializerIndentWidth, 1234u);
|
ConstructorInitializerIndentWidth, 1234u);
|
||||||
CHECK_PARSE("ColumnLimit: 1234", ColumnLimit, 1234u);
|
CHECK_PARSE("ColumnLimit: 1234", ColumnLimit, 1234u);
|
||||||
CHECK_PARSE("MaxEmptyLinesToKeep: 1234", MaxEmptyLinesToKeep, 1234u);
|
CHECK_PARSE("MaxEmptyLinesToKeep: 1234", MaxEmptyLinesToKeep, 1234u);
|
||||||
|
CHECK_PARSE("PenaltyBreakBeforeFirstCallParameter: 1234",
|
||||||
|
PenaltyBreakBeforeFirstCallParameter, 1234u);
|
||||||
CHECK_PARSE("PenaltyExcessCharacter: 1234", PenaltyExcessCharacter, 1234u);
|
CHECK_PARSE("PenaltyExcessCharacter: 1234", PenaltyExcessCharacter, 1234u);
|
||||||
CHECK_PARSE("PenaltyReturnTypeOnItsOwnLine: 1234",
|
CHECK_PARSE("PenaltyReturnTypeOnItsOwnLine: 1234",
|
||||||
PenaltyReturnTypeOnItsOwnLine, 1234u);
|
PenaltyReturnTypeOnItsOwnLine, 1234u);
|
||||||
|
|
Loading…
Reference in New Issue