Skip to content

Commit 841de42

Browse files
committed
fix: break hugged lambda body when closing parenthesis wraps
1 parent cae3fc4 commit 841de42

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

packages/prettier-plugin-java/src/printers/expressions.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
120120
ctx.Arrow[0],
121121
...(isLambdaBodyABlock
122122
? [" ", lambdaBody]
123-
: [group(indent([line, lambdaBody]))])
123+
: [group([indent([line, lambdaBody]), params?.hug ? softline : ""])])
124124
];
125125
if (params?.hug) {
126126
return willBreak(lambdaParameters)
@@ -649,14 +649,7 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
649649
shouldBreak: true
650650
});
651651
}
652-
const suffix = lastExpression?.children.lambdaExpression?.[0].children
653-
.lambdaBody[0].children.block
654-
? ""
655-
: line;
656-
const hugged = [
657-
...headArgs,
658-
group([huggedLastArg, suffix], { shouldBreak: true })
659-
];
652+
const hugged = [...headArgs, group(huggedLastArg, { shouldBreak: true })];
660653
const expanded = group([indent([line, ...headArgs, lastArg]), line], {
661654
shouldBreak: true
662655
});

packages/prettier-plugin-java/test/unit-test/lambda/_input.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public void onlyOneMethodInBody() {
4848
public void lambdaWithoutBracesWhichBreak() {
4949
call(x -> foo.isVeryVeryVeryLongConditionTrue() &&
5050
foo.isAnotherVeryVeryLongConditionTrue());
51+
aaaaaaaaaa(bbbbbbbbbb -> "123456789012345678901234567890123456789012345678");
52+
aaaaaaaaaa(bbbbbbbbbb -> cccccccccc("123456789012345678901234567890123456"));
5153
}
5254

5355
public void chainCallWithLambda() {

packages/prettier-plugin-java/test/unit-test/lambda/_output.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public void lambdaWithoutBracesWhichBreak() {
5151
foo.isVeryVeryVeryLongConditionTrue() &&
5252
foo.isAnotherVeryVeryLongConditionTrue()
5353
);
54+
aaaaaaaaaa(bbbbbbbbbb ->
55+
"123456789012345678901234567890123456789012345678"
56+
);
57+
aaaaaaaaaa(bbbbbbbbbb ->
58+
cccccccccc("123456789012345678901234567890123456")
59+
);
5460
}
5561

5662
public void chainCallWithLambda() {

0 commit comments

Comments
 (0)