From 3afb086aeb7e21002e9ef05d6cd927ff85717221 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 13 May 2015 08:47:16 +0000 Subject: [PATCH] clang-format: Prefer formatting local lambdas like functions. Before: auto my_lambda = [](const string &some_parameter) { return some_parameter.size(); }; After: auto my_lambda = [](const string &some_parameter) { return some_parameter.size(); }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237235 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 3 +++ unittests/Format/FormatTest.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 6cf3f1d523..777de9bf1e 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1593,6 +1593,9 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, if (Right.is(tok::l_square)) { if (Style.Language == FormatStyle::LK_Proto) return 1; + // Slightly prefer formatting local lambda definitions like functions. + if (Right.is(TT_LambdaLSquare) && Left.is(tok::equal)) + return 50; if (!Right.isOneOf(TT_ObjCMethodExpr, TT_LambdaLSquare)) return 500; } diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 371fa0f3d2..ecd78b24d0 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -9967,6 +9967,9 @@ TEST_F(FormatTest, FormatsLambdas) { " : Field([] { // comment\n" " int i;\n" " }) {}"); + verifyFormat("auto my_lambda = [](const string &some_parameter) {\n" + " return some_parameter.size();\n" + "};"); // Lambdas with return types. verifyFormat("int c = []() -> int { return 2; }();\n"); -- 2.40.0