"void functionDecl(int A, int B,\n"
" int C);"),
format(Input, Style));
- // However, BAS_AlwaysBreak should take precedence over
+ // However, BAS_AlwaysBreak and BAS_BlockIndent should take precedence over
// AllowAllArgumentsOnNextLine.
Style.AlignAfterOpenBracket = FormatStyle::BAS_AlwaysBreak;
EXPECT_EQ(StringRef("functionCall(\n"
"void functionDecl(\n"
" int A, int B, int C);"),
format(Input, Style));
+ Style.AlignAfterOpenBracket = FormatStyle::BAS_BlockIndent;
+ verifyFormat("functionCall(\n"
+ " paramA, paramB, paramC\n"
+ ");\n"
+ "void functionDecl(\n"
+ " int A, int B, int C\n"
+ ");",
+ Input, Style);
// When AllowAllArgumentsOnNextLine is set, we prefer breaking before the
// first argument.
" aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa)) &&\n"
" aaaaaaaaaaaaaaaa);",
Style);
+
+ Style.AlignAfterOpenBracket = FormatStyle::BAS_BlockIndent;
+ Style.BinPackArguments = false;
+ Style.BinPackParameters = false;
+ verifyFormat("void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaa aaaaaaaa,\n"
+ " aaaaaaaaa aaaaaaa,\n"
+ " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
+ ") {}",
+ Style);
+ verifyFormat("SomeLongVariableName->someVeryLongFunctionName(\n"
+ " aaaaaaaaaaa aaaaaaaaa,\n"
+ " aaaaaaaaaaa aaaaaaaaa,\n"
+ " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
+ ");",
+ Style);
+ verifyFormat("SomeLongVariableName->someFunction(foooooooo(\n"
+ " aaaaaaaaaaaaaaa,\n"
+ " aaaaaaaaaaaaaaaaaaaaa,\n"
+ " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
+ "));",
+ Style);
+ verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa)\n"
+ "));",
+ Style);
+ verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaa.aaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa)\n"
+ "));",
+ Style);
+ verifyFormat(
+ "aaaaaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa)\n"
+ " ),\n"
+ " aaaaaaaaaaaaaaaa\n"
+ ");",
+ Style);
+ verifyFormat(
+ "aaaaaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaaa(\n"
+ " aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa)\n"
+ " ) &&\n"
+ " aaaaaaaaaaaaaaaa\n"
+ ");",
+ Style);
}
TEST_F(FormatTest, ParenthesesAndOperandAlignment) {
" \"long\",\n"
" a);",
format("someFunction(\"long long long long\", a);", Style));
+ Style.AlignAfterOpenBracket = FormatStyle::BAS_BlockIndent;
+ verifyFormat("someFunction(\n"
+ " \"long long long \"\n"
+ " \"long\",\n"
+ " a\n"
+ ");",
+ Style);
}
TEST_F(FormatTest, DontSplitStringLiteralsWithEscapedNewlines) {
" FoooooooooLooooong);\n"
"}",
Spaces);
+
+ Spaces.AlignAfterOpenBracket = FormatStyle::BAS_BlockIndent;
+ verifyFormat("void foo( ) {\n"
+ " size_t foo = (*(function))(\n"
+ " Foooo, Barrrrr, Foooo, Barrrr, FoooooooooLooooong, "
+ "BarrrrrrrrrrrrLong,\n"
+ " FoooooooooLooooong\n"
+ " );\n"
+ "}",
+ Spaces);
+ verifyFormat("size_t idx = (size_t)(ptr - ((char *)file));", Spaces);
+ verifyFormat("size_t idx = (size_t)a;", Spaces);
+ verifyFormat("size_t idx = (size_t)(a - 1);", Spaces);
+ verifyFormat("size_t idx = (a->*foo)(a - 1);", Spaces);
+ verifyFormat("size_t idx = (a->foo)(a - 1);", Spaces);
+ verifyFormat("size_t idx = (*foo)(a - 1);", Spaces);
+ verifyFormat("size_t idx = (*(foo))(a - 1);", Spaces);
}
TEST_F(FormatTest, ConfigurableSpacesInSquareBrackets) {