Skip to content

Commit 805def9

Browse files
committed
fix: correct indentation of lambda argument bodies in method chains
1 parent 6935bd8 commit 805def9

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
each,
1313
findBaseIndent,
1414
flatMap,
15+
hasLeadingComments,
1516
indentInParentheses,
1617
isBinaryExpression,
1718
isNonTerminal,
@@ -276,8 +277,11 @@ export default {
276277
},
277278
"primarySuffix"
278279
);
280+
const hasSuffixComments = children.primarySuffix.some(suffix =>
281+
hasLeadingComments(suffix)
282+
);
279283
return group(
280-
canBreakForCallExpressions || willBreak(suffixes)
284+
canBreakForCallExpressions || hasSuffixComments
281285
? [prefix, indent(suffixes)]
282286
: [prefix, ...suffixes]
283287
);
@@ -766,7 +770,7 @@ function printTemplate<
766770
const parts = [begin, ...mids, end].map(image =>
767771
join(hardline, image.split(prefix))
768772
);
769-
return [
773+
return indent([
770774
parts[0],
771775
...map(
772776
path,
@@ -780,5 +784,5 @@ function printTemplate<
780784
"embeddedExpression" as IterProperties<T["children"]>
781785
),
782786
parts.at(-1)!
783-
];
787+
]);
784788
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ void argumentAfterLambdaWithBlock() {
212212
}
213213

214214
void huggableArguments() {
215+
A.b().c(() -> {
216+
return d;
217+
});
218+
215219
aaaaaaaaaaaaaaaaaaaaaaaa((bbbbbbbbbbbbbbbbbbbbbbbb, cccccccccccccccccccccccc, dddddddddddddddddddddddd) -> eeeeeeeeeeeeeeeeeeeeeeee.ffffffffffffffffffffffff());
216220

217221
a.b(c -> d -> eeeeeeeeee.ffffffffff(gggggggggg, hhhhhhhhhh, iiiiiiiiii, jjjjjjjjjj, kkkkkkkkkk));

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ void argumentAfterLambdaWithBlock() {
228228
}
229229

230230
void huggableArguments() {
231+
A.b().c(() -> {
232+
return d;
233+
});
234+
231235
aaaaaaaaaaaaaaaaaaaaaaaa(
232236
(
233237
bbbbbbbbbbbbbbbbbbbbbbbb,

packages/prettier-plugin-java/test/unit-test/template-expression/_output.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ class TemplateExpression {
77
String s = STR."You have a \{getOfferType()} waiting for you!";
88

99
String msg = STR."The file \{filePath} \{
10-
file.exists() ? "does" : "does not"
11-
} exist";
10+
file.exists() ? "does" : "does not"
11+
} exist";
1212

1313
String time = STR."The time is \{
1414
// The java.time.format package is very useful
@@ -55,6 +55,6 @@ class TemplateExpression {
5555
""";
5656

5757
PreparedStatement ps = DB."SELECT * FROM Person p WHERE p.last_name = \{
58-
name
59-
}";
58+
name
59+
}";
6060
}

0 commit comments

Comments
 (0)