[clang] [clang-format] Stop moving lambda to new line only to indent it more. (PR #141576)

Owen Pan via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 11 23:23:29 PDT 2025


================
@@ -325,13 +325,30 @@ bool ContinuationIndenter::canBreak(const LineState &State) {
   if (Current.isMemberAccess() && CurrentState.ContainsUnwrappedBuilder)
     return false;
 
-  // Don't create a 'hanging' indent if there are multiple blocks in a single
-  // statement and we are aligning lambda blocks to their signatures.
-  if (Previous.is(tok::l_brace) && State.Stack.size() > 1 &&
+  // Force a lambda onto a new line so that we don't create a 'hanging' indent
+  // if there are multiple blocks in a single statement and we are aligning
+  // lambda blocks to their signatures.
+  if (Previous.is(tok::l_brace) && State.Stack.size() > 2 &&
       State.Stack[State.Stack.size() - 2].NestedBlockInlined &&
       State.Stack[State.Stack.size() - 2].HasMultipleNestedBlocks &&
       Style.LambdaBodyIndentation == FormatStyle::LBI_Signature) {
-    return false;
+    if (!Style.isCpp())
----------------
owenca wrote:

This seems weird as `LambdaBodyIndentation` only applies to C++.

https://github.com/llvm/llvm-project/pull/141576


More information about the cfe-commits mailing list