Author: Björn Schäpers Date: 2021-01-19T18:17:01+01:00 New Revision: cbdde495ba28915d52b561e44aaba12db4cf724f
URL: https://github.com/llvm/llvm-project/commit/cbdde495ba28915d52b561e44aaba12db4cf724f DIFF: https://github.com/llvm/llvm-project/commit/cbdde495ba28915d52b561e44aaba12db4cf724f.diff LOG: [clang-format] Apply Allman style to lambdas Differential Revision: https://reviews.llvm.org/D94906 Added: Modified: clang/lib/Format/Format.cpp clang/unittests/Format/FormatTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 9f007819326c..110e1a726f55 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -801,6 +801,7 @@ static FormatStyle expandPresets(const FormatStyle &Style) { Expanded.IndentExternBlock = FormatStyle::IEBS_AfterExternBlock; Expanded.BraceWrapping.BeforeCatch = true; Expanded.BraceWrapping.BeforeElse = true; + Expanded.BraceWrapping.BeforeLambdaBody = true; break; case FormatStyle::BS_Whitesmiths: Expanded.BraceWrapping.AfterCaseLabel = true; diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index ae8bfc60f6d9..1565016802f9 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -13481,6 +13481,58 @@ TEST_F(FormatTest, AllmanBraceBreaking) { "#endif", AllmanBraceStyle); + EXPECT_EQ(AllmanBraceStyle.AllowShortLambdasOnASingleLine, + FormatStyle::SLS_All); + + verifyFormat("[](int i) { return i + 2; };\n" + "[](int i, int j)\n" + "{\n" + " auto x = i + j;\n" + " auto y = i * j;\n" + " return x ^ y;\n" + "};\n" + "void foo()\n" + "{\n" + " auto shortLambda = [](int i) { return i + 2; };\n" + " auto longLambda = [](int i, int j)\n" + " {\n" + " auto x = i + j;\n" + " auto y = i * j;\n" + " return x ^ y;\n" + " };\n" + "}", + AllmanBraceStyle); + + AllmanBraceStyle.AllowShortLambdasOnASingleLine = FormatStyle::SLS_None; + + verifyFormat("[](int i)\n" + "{\n" + " return i + 2;\n" + "};\n" + "[](int i, int j)\n" + "{\n" + " auto x = i + j;\n" + " auto y = i * j;\n" + " return x ^ y;\n" + "};\n" + "void foo()\n" + "{\n" + " auto shortLambda = [](int i)\n" + " {\n" + " return i + 2;\n" + " };\n" + " auto longLambda = [](int i, int j)\n" + " {\n" + " auto x = i + j;\n" + " auto y = i * j;\n" + " return x ^ y;\n" + " };\n" + "}", + AllmanBraceStyle); + + // Reset + AllmanBraceStyle.AllowShortLambdasOnASingleLine = FormatStyle::SLS_All; + // This shouldn't affect ObjC blocks.. verifyFormat("[self doSomeThingWithACompletionHandler:^{\n" " // ...\n" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits