prettier-plugin-java 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/options.js +18 -16
- package/dist/printers/blocks-and-statements.js +9 -12
- package/dist/printers/classes.js +34 -23
- package/dist/printers/comments/handle-comments.js +29 -0
- package/dist/printers/expressions.js +103 -56
- package/dist/printers/interfaces.js +21 -17
- package/dist/printers/printer-utils.js +9 -5
- package/dist/utils/printArgumentListWithBraces.js +33 -27
- package/package.json +9 -4
- package/dist/utils/expressions-utils.js +0 -25
- package/dist/utils/printSingleLambdaInvocation.js +0 -18
package/dist/options.js
CHANGED
|
@@ -27,6 +27,7 @@ export default {
|
|
|
27
27
|
{ value: "switchLabel" },
|
|
28
28
|
{ value: "switchRule" },
|
|
29
29
|
{ value: "caseConstant" },
|
|
30
|
+
{ value: "casePattern" },
|
|
30
31
|
{ value: "whileStatement" },
|
|
31
32
|
{ value: "doStatement" },
|
|
32
33
|
{ value: "forStatement" },
|
|
@@ -57,8 +58,8 @@ export default {
|
|
|
57
58
|
{ value: "classModifier" },
|
|
58
59
|
{ value: "typeParameters" },
|
|
59
60
|
{ value: "typeParameterList" },
|
|
60
|
-
{ value: "
|
|
61
|
-
{ value: "
|
|
61
|
+
{ value: "classExtends" },
|
|
62
|
+
{ value: "classImplements" },
|
|
62
63
|
{ value: "interfaceTypeList" },
|
|
63
64
|
{ value: "classPermits" },
|
|
64
65
|
{ value: "classBody" },
|
|
@@ -124,13 +125,14 @@ export default {
|
|
|
124
125
|
{ value: "lambdaParameters" },
|
|
125
126
|
{ value: "lambdaParametersWithBraces" },
|
|
126
127
|
{ value: "lambdaParameterList" },
|
|
127
|
-
{ value: "
|
|
128
|
-
{ value: "
|
|
129
|
-
{ value: "
|
|
128
|
+
{ value: "conciseLambdaParameterList" },
|
|
129
|
+
{ value: "normalLambdaParameterList" },
|
|
130
|
+
{ value: "normalLambdaParameter" },
|
|
130
131
|
{ value: "regularLambdaParameter" },
|
|
131
132
|
{ value: "lambdaParameterType" },
|
|
133
|
+
{ value: "conciseLambdaParameter" },
|
|
132
134
|
{ value: "lambdaBody" },
|
|
133
|
-
{ value: "
|
|
135
|
+
{ value: "conditionalExpression" },
|
|
134
136
|
{ value: "binaryExpression" },
|
|
135
137
|
{ value: "unaryExpression" },
|
|
136
138
|
{ value: "unaryExpressionNotPlusMinus" },
|
|
@@ -153,8 +155,8 @@ export default {
|
|
|
153
155
|
{ value: "methodInvocationSuffix" },
|
|
154
156
|
{ value: "argumentList" },
|
|
155
157
|
{ value: "arrayCreationExpression" },
|
|
156
|
-
{ value: "
|
|
157
|
-
{ value: "
|
|
158
|
+
{ value: "arrayCreationExpressionWithoutInitializerSuffix" },
|
|
159
|
+
{ value: "arrayCreationWithInitializerSuffix" },
|
|
158
160
|
{ value: "dimExprs" },
|
|
159
161
|
{ value: "dimExpr" },
|
|
160
162
|
{ value: "classLiteralSuffix" },
|
|
@@ -170,13 +172,13 @@ export default {
|
|
|
170
172
|
{ value: "recordPattern" },
|
|
171
173
|
{ value: "componentPatternList" },
|
|
172
174
|
{ value: "componentPattern" },
|
|
173
|
-
{ value: "
|
|
175
|
+
{ value: "matchAllPattern" },
|
|
174
176
|
{ value: "guard" },
|
|
175
177
|
{ value: "isRefTypeInMethodRef" },
|
|
176
178
|
{ value: "interfaceDeclaration" },
|
|
177
179
|
{ value: "normalInterfaceDeclaration" },
|
|
178
180
|
{ value: "interfaceModifier" },
|
|
179
|
-
{ value: "
|
|
181
|
+
{ value: "interfaceExtends" },
|
|
180
182
|
{ value: "interfacePermits" },
|
|
181
183
|
{ value: "interfaceBody" },
|
|
182
184
|
{ value: "interfaceMemberDeclaration" },
|
|
@@ -184,11 +186,11 @@ export default {
|
|
|
184
186
|
{ value: "constantModifier" },
|
|
185
187
|
{ value: "interfaceMethodDeclaration" },
|
|
186
188
|
{ value: "interfaceMethodModifier" },
|
|
187
|
-
{ value: "
|
|
188
|
-
{ value: "
|
|
189
|
-
{ value: "
|
|
190
|
-
{ value: "
|
|
191
|
-
{ value: "
|
|
189
|
+
{ value: "annotationInterfaceDeclaration" },
|
|
190
|
+
{ value: "annotationInterfaceBody" },
|
|
191
|
+
{ value: "annotationInterfaceMemberDeclaration" },
|
|
192
|
+
{ value: "annotationInterfaceElementDeclaration" },
|
|
193
|
+
{ value: "annotationInterfaceElementModifier" },
|
|
192
194
|
{ value: "defaultValue" },
|
|
193
195
|
{ value: "annotation" },
|
|
194
196
|
{ value: "elementValuePairList" },
|
|
@@ -248,7 +250,7 @@ export default {
|
|
|
248
250
|
type: "choice",
|
|
249
251
|
category: "Java",
|
|
250
252
|
default: "all",
|
|
251
|
-
choices: ["all", "none"],
|
|
253
|
+
choices: ["all", "es5", "none"],
|
|
252
254
|
description: "Print trailing commas wherever possible when multi-line."
|
|
253
255
|
}
|
|
254
256
|
};
|
|
@@ -169,14 +169,14 @@ export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
169
169
|
: this.mapVisit(ctx.caseConstant);
|
|
170
170
|
return group(indent(join(" ", [Case, rejectAndJoinSeps(commas, caseConstants)])));
|
|
171
171
|
}
|
|
172
|
-
else if (ctx.
|
|
173
|
-
const
|
|
172
|
+
else if (ctx.casePattern) {
|
|
173
|
+
const casePatterns = this.mapVisit(ctx.casePattern);
|
|
174
174
|
const guard = this.visit(ctx.guard);
|
|
175
|
-
const multiplePatterns = ctx.
|
|
175
|
+
const multiplePatterns = ctx.casePattern.length > 1;
|
|
176
176
|
const separator = multiplePatterns ? line : " ";
|
|
177
177
|
const contents = join(separator, [
|
|
178
178
|
Case,
|
|
179
|
-
rejectAndJoinSeps(commas,
|
|
179
|
+
rejectAndJoinSeps(commas, casePatterns)
|
|
180
180
|
]);
|
|
181
181
|
return group(rejectAndJoin(separator, [
|
|
182
182
|
multiplePatterns ? indent(contents) : contents,
|
|
@@ -202,6 +202,9 @@ export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
202
202
|
caseConstant(ctx) {
|
|
203
203
|
return this.visitSingle(ctx);
|
|
204
204
|
}
|
|
205
|
+
casePattern(ctx) {
|
|
206
|
+
return this.visitSingle(ctx);
|
|
207
|
+
}
|
|
205
208
|
whileStatement(ctx) {
|
|
206
209
|
const expression = this.visit(ctx.expression);
|
|
207
210
|
const statement = this.visit(ctx.statement[0], {
|
|
@@ -271,9 +274,7 @@ export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
271
274
|
return rejectAndJoinSeps(commas, statementExpressions);
|
|
272
275
|
}
|
|
273
276
|
enhancedForStatement(ctx) {
|
|
274
|
-
const
|
|
275
|
-
const localVariableType = this.visit(ctx.localVariableType);
|
|
276
|
-
const variableDeclaratorId = this.visit(ctx.variableDeclaratorId);
|
|
277
|
+
const localVariableDeclaration = this.visit(ctx.localVariableDeclaration);
|
|
277
278
|
const expression = this.visit(ctx.expression);
|
|
278
279
|
const statement = this.visit(ctx.statement[0], {
|
|
279
280
|
allowEmptyStatement: true
|
|
@@ -281,11 +282,7 @@ export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
281
282
|
const statementSeparator = isStatementEmptyStatement(statement) ? "" : " ";
|
|
282
283
|
return rejectAndConcat([
|
|
283
284
|
rejectAndJoin(" ", [ctx.For[0], ctx.LBrace[0]]),
|
|
284
|
-
|
|
285
|
-
rejectAndJoin(" ", variableModifiers),
|
|
286
|
-
localVariableType,
|
|
287
|
-
variableDeclaratorId
|
|
288
|
-
]),
|
|
285
|
+
localVariableDeclaration,
|
|
289
286
|
concat([" ", ctx.Colon[0], " "]),
|
|
290
287
|
expression,
|
|
291
288
|
concat([ctx.RBrace[0], statementSeparator]),
|
package/dist/printers/classes.js
CHANGED
|
@@ -3,6 +3,7 @@ import { displaySemicolon, getBlankLinesSeparator, getClassBodyDeclarationsSepar
|
|
|
3
3
|
import { concat, group, indent, join, indentIfBreak } from "./prettier-builder.js";
|
|
4
4
|
import { printTokenWithComments } from "./comments/format-comments.js";
|
|
5
5
|
import { hasLeadingComments, hasLeadingLineComments } from "./comments/comments-utils.js";
|
|
6
|
+
import { handleCommentsParameters } from "./comments/handle-comments.js";
|
|
6
7
|
import { builders } from "prettier/doc";
|
|
7
8
|
import { BaseCstPrettierPrinter } from "../base-cst-printer.js";
|
|
8
9
|
import { isAnnotationCstNode, isTypeArgumentsCstNode } from "../types/utils.js";
|
|
@@ -32,17 +33,17 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
32
33
|
normalClassDeclaration(ctx) {
|
|
33
34
|
const name = this.visit(ctx.typeIdentifier);
|
|
34
35
|
const optionalTypeParams = this.visit(ctx.typeParameters);
|
|
35
|
-
const
|
|
36
|
-
const
|
|
36
|
+
const optionalClassExtends = this.visit(ctx.classExtends);
|
|
37
|
+
const optionalClassImplements = this.visit(ctx.classImplements);
|
|
37
38
|
const optionalClassPermits = this.visit(ctx.classPermits);
|
|
38
39
|
const body = this.visit(ctx.classBody, { isNormalClassDeclaration: true });
|
|
39
40
|
let superClassesPart = "";
|
|
40
|
-
if (
|
|
41
|
-
superClassesPart = indent(rejectAndConcat([line,
|
|
41
|
+
if (optionalClassExtends) {
|
|
42
|
+
superClassesPart = indent(rejectAndConcat([line, optionalClassExtends]));
|
|
42
43
|
}
|
|
43
44
|
let superInterfacesPart = "";
|
|
44
|
-
if (
|
|
45
|
-
superInterfacesPart = indent(rejectAndConcat([line,
|
|
45
|
+
if (optionalClassImplements) {
|
|
46
|
+
superInterfacesPart = indent(rejectAndConcat([line, optionalClassImplements]));
|
|
46
47
|
}
|
|
47
48
|
let classPermits = "";
|
|
48
49
|
if (optionalClassPermits) {
|
|
@@ -75,10 +76,10 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
75
76
|
const commas = ctx.Comma ? ctx.Comma.map(elt => concat([elt, line])) : [];
|
|
76
77
|
return group(rejectAndJoinSeps(commas, typeParameter));
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
classExtends(ctx) {
|
|
79
80
|
return join(" ", [ctx.Extends[0], this.visit(ctx.classType)]);
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
classImplements(ctx) {
|
|
82
83
|
const interfaceTypeList = this.visit(ctx.interfaceTypeList);
|
|
83
84
|
return group(rejectAndConcat([
|
|
84
85
|
ctx.Implements[0],
|
|
@@ -177,9 +178,9 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
177
178
|
.lambdaExpression !== undefined ||
|
|
178
179
|
// Ternary Expression
|
|
179
180
|
(ctx.variableInitializer[0].children.expression[0].children
|
|
180
|
-
.
|
|
181
|
+
.conditionalExpression !== undefined &&
|
|
181
182
|
ctx.variableInitializer[0].children.expression[0].children
|
|
182
|
-
.
|
|
183
|
+
.conditionalExpression[0].children.QuestionMark !== undefined)) {
|
|
183
184
|
const groupId = Symbol("assignment");
|
|
184
185
|
return group([
|
|
185
186
|
group(variableDeclaratorId),
|
|
@@ -191,9 +192,9 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
191
192
|
]);
|
|
192
193
|
}
|
|
193
194
|
if (ctx.variableInitializer[0].children.expression[0].children
|
|
194
|
-
.
|
|
195
|
+
.conditionalExpression !== undefined) {
|
|
195
196
|
const unaryExpressions = ctx.variableInitializer[0].children.expression[0].children
|
|
196
|
-
.
|
|
197
|
+
.conditionalExpression[0].children.binaryExpression[0].children
|
|
197
198
|
.unaryExpression;
|
|
198
199
|
const firstPrimary = unaryExpressions[0].children.primary[0];
|
|
199
200
|
// Cast Expression
|
|
@@ -228,7 +229,7 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
228
229
|
firstPrimary.children.primarySuffix[0].children
|
|
229
230
|
.methodInvocationSuffix !== undefined;
|
|
230
231
|
const isUniqueUnaryExpression = ctx.variableInitializer[0].children.expression[0].children
|
|
231
|
-
.
|
|
232
|
+
.conditionalExpression[0].children.binaryExpression[0].children
|
|
232
233
|
.unaryExpression.length === 1;
|
|
233
234
|
const isUniqueMethodInvocation = isMethodInvocation && isUniqueUnaryExpression;
|
|
234
235
|
if (isUniqueMethodInvocation) {
|
|
@@ -360,7 +361,12 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
360
361
|
return printTokenWithComments(this.getSingle(ctx));
|
|
361
362
|
}
|
|
362
363
|
methodDeclarator(ctx) {
|
|
363
|
-
var _a;
|
|
364
|
+
var _a, _b, _c, _d;
|
|
365
|
+
const parameters = [
|
|
366
|
+
...((_a = ctx.receiverParameter) !== null && _a !== void 0 ? _a : []),
|
|
367
|
+
...((_c = (_b = ctx.formalParameterList) === null || _b === void 0 ? void 0 : _b[0].children.formalParameter) !== null && _c !== void 0 ? _c : [])
|
|
368
|
+
];
|
|
369
|
+
handleCommentsParameters(ctx.LBrace[0], parameters, ctx.RBrace[0]);
|
|
364
370
|
const identifier = printTokenWithComments(ctx.Identifier[0]);
|
|
365
371
|
const receiverParameter = this.visit(ctx.receiverParameter);
|
|
366
372
|
const formalParameterList = this.visit(ctx.formalParameterList);
|
|
@@ -368,7 +374,7 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
368
374
|
return rejectAndConcat([
|
|
369
375
|
identifier,
|
|
370
376
|
putIntoBraces(rejectAndJoin(line, [
|
|
371
|
-
rejectAndConcat([receiverParameter, (
|
|
377
|
+
rejectAndConcat([receiverParameter, (_d = ctx.Comma) === null || _d === void 0 ? void 0 : _d[0]]),
|
|
372
378
|
formalParameterList
|
|
373
379
|
]), softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
374
380
|
dims
|
|
@@ -479,7 +485,9 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
479
485
|
return printTokenWithComments(this.getSingle(ctx));
|
|
480
486
|
}
|
|
481
487
|
constructorDeclarator(ctx) {
|
|
482
|
-
var _a;
|
|
488
|
+
var _a, _b, _c, _d;
|
|
489
|
+
const parameters = (_c = (_a = ctx.receiverParameter) !== null && _a !== void 0 ? _a : (_b = ctx.formalParameterList) === null || _b === void 0 ? void 0 : _b[0].children.formalParameter) !== null && _c !== void 0 ? _c : [];
|
|
490
|
+
handleCommentsParameters(ctx.LBrace[0], parameters, ctx.RBrace[0]);
|
|
483
491
|
const typeParameters = this.visit(ctx.typeParameters);
|
|
484
492
|
const simpleTypeName = this.visit(ctx.simpleTypeName);
|
|
485
493
|
const receiverParameter = this.visit(ctx.receiverParameter);
|
|
@@ -489,14 +497,14 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
489
497
|
concat([
|
|
490
498
|
simpleTypeName,
|
|
491
499
|
putIntoBraces(rejectAndJoin(line, [
|
|
492
|
-
rejectAndConcat([receiverParameter, (
|
|
500
|
+
rejectAndConcat([receiverParameter, (_d = ctx.Comma) === null || _d === void 0 ? void 0 : _d[0]]),
|
|
493
501
|
formalParameterList
|
|
494
502
|
]), softline, ctx.LBrace[0], ctx.RBrace[0])
|
|
495
503
|
])
|
|
496
504
|
]);
|
|
497
505
|
}
|
|
498
506
|
simpleTypeName(ctx) {
|
|
499
|
-
return
|
|
507
|
+
return this.visitSingle(ctx);
|
|
500
508
|
}
|
|
501
509
|
constructorBody(ctx) {
|
|
502
510
|
const explicitConstructorInvocation = this.visit(ctx.explicitConstructorInvocation);
|
|
@@ -531,13 +539,13 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
531
539
|
enumDeclaration(ctx) {
|
|
532
540
|
const classModifier = this.mapVisit(ctx.classModifier);
|
|
533
541
|
const typeIdentifier = this.visit(ctx.typeIdentifier);
|
|
534
|
-
const
|
|
542
|
+
const classImplements = this.visit(ctx.classImplements);
|
|
535
543
|
const enumBody = this.visit(ctx.enumBody);
|
|
536
544
|
return rejectAndJoin(" ", [
|
|
537
545
|
join(" ", classModifier),
|
|
538
546
|
ctx.Enum[0],
|
|
539
547
|
typeIdentifier,
|
|
540
|
-
|
|
548
|
+
classImplements,
|
|
541
549
|
enumBody
|
|
542
550
|
]);
|
|
543
551
|
}
|
|
@@ -613,9 +621,9 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
613
621
|
const optionalTypeParams = this.visit(ctx.typeParameters);
|
|
614
622
|
const recordHeader = this.visit(ctx.recordHeader);
|
|
615
623
|
let superInterfacesPart = "";
|
|
616
|
-
const
|
|
617
|
-
if (
|
|
618
|
-
superInterfacesPart = indent(rejectAndConcat([line,
|
|
624
|
+
const optionalClassImplements = this.visit(ctx.classImplements);
|
|
625
|
+
if (optionalClassImplements) {
|
|
626
|
+
superInterfacesPart = indent(rejectAndConcat([line, optionalClassImplements]));
|
|
619
627
|
}
|
|
620
628
|
const body = this.visit(ctx.recordBody);
|
|
621
629
|
return rejectAndJoin(" ", [
|
|
@@ -629,6 +637,9 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
629
637
|
]);
|
|
630
638
|
}
|
|
631
639
|
recordHeader(ctx) {
|
|
640
|
+
var _a, _b;
|
|
641
|
+
const recordComponents = (_b = (_a = ctx.recordComponentList) === null || _a === void 0 ? void 0 : _a[0].children.recordComponent) !== null && _b !== void 0 ? _b : [];
|
|
642
|
+
handleCommentsParameters(ctx.LBrace[0], recordComponents, ctx.RBrace[0]);
|
|
632
643
|
const recordComponentList = this.visit(ctx.recordComponentList);
|
|
633
644
|
return putIntoBraces(recordComponentList, softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
634
645
|
}
|
|
@@ -3,6 +3,35 @@ export function handleCommentsBinaryExpression(ctx) {
|
|
|
3
3
|
moveOperatorLeadingCommentsToNextExpression(ctx);
|
|
4
4
|
moveExpressionTrailingCommentsToNextOperator(ctx);
|
|
5
5
|
}
|
|
6
|
+
export function handleCommentsParameters(lBrace, parameters, rBrace) {
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
const lBraceTrailingComments = lBrace.trailingComments;
|
|
9
|
+
const firstParameter = parameters.at(0);
|
|
10
|
+
if (lBraceTrailingComments && firstParameter) {
|
|
11
|
+
delete lBrace.trailingComments;
|
|
12
|
+
firstParameter.leadingComments = [
|
|
13
|
+
...lBraceTrailingComments,
|
|
14
|
+
...((_a = firstParameter.leadingComments) !== null && _a !== void 0 ? _a : [])
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
const lastParameter = parameters.at(-1);
|
|
18
|
+
const rBraceLeadingComments = rBrace.leadingComments;
|
|
19
|
+
if (rBraceLeadingComments) {
|
|
20
|
+
delete rBrace.leadingComments;
|
|
21
|
+
if (lastParameter) {
|
|
22
|
+
lastParameter.trailingComments = [
|
|
23
|
+
...((_b = lastParameter.trailingComments) !== null && _b !== void 0 ? _b : []),
|
|
24
|
+
...rBraceLeadingComments
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
lBrace.trailingComments = [
|
|
29
|
+
...((_c = lBrace.trailingComments) !== null && _c !== void 0 ? _c : []),
|
|
30
|
+
...rBraceLeadingComments
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
6
35
|
function moveOperatorLeadingCommentsToNextExpression(ctx) {
|
|
7
36
|
var _a;
|
|
8
37
|
let unaryExpressionIndex = 1;
|
|
@@ -1,41 +1,57 @@
|
|
|
1
1
|
import forEach from "lodash/forEach.js";
|
|
2
|
-
import { builders } from "prettier/doc";
|
|
2
|
+
import { builders, utils } from "prettier/doc";
|
|
3
3
|
import { BaseCstPrettierPrinter } from "../base-cst-printer.js";
|
|
4
4
|
import { isAnnotationCstNode } from "../types/utils.js";
|
|
5
5
|
import { printArgumentListWithBraces } from "../utils/index.js";
|
|
6
6
|
import { printTokenWithComments } from "./comments/format-comments.js";
|
|
7
|
-
import { handleCommentsBinaryExpression } from "./comments/handle-comments.js";
|
|
7
|
+
import { handleCommentsBinaryExpression, handleCommentsParameters } from "./comments/handle-comments.js";
|
|
8
8
|
import { concat, dedent, group, indent } from "./prettier-builder.js";
|
|
9
9
|
import { binary, findDeepElementInPartsArray, isExplicitLambdaParameter, isUniqueMethodInvocation, putIntoBraces, rejectAndConcat, rejectAndJoin, rejectAndJoinSeps, sortAnnotationIdentifier, sortNodes, sortTokens } from "./printer-utils.js";
|
|
10
|
-
const {
|
|
10
|
+
const { breakParent, conditionalGroup, ifBreak, label, line, lineSuffixBoundary, softline } = builders;
|
|
11
|
+
const { removeLines, willBreak } = utils;
|
|
11
12
|
export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
12
13
|
expression(ctx, params) {
|
|
13
|
-
|
|
14
|
+
const expression = this.visitSingle(ctx, params);
|
|
15
|
+
return (params === null || params === void 0 ? void 0 : params.hug) && expression.label !== undefined
|
|
16
|
+
? label(expression.label, expression)
|
|
17
|
+
: expression;
|
|
14
18
|
}
|
|
15
19
|
lambdaExpression(ctx, params) {
|
|
16
|
-
const lambdaParameters = group(this.visit(ctx.lambdaParameters
|
|
20
|
+
const lambdaParameters = group(this.visit(ctx.lambdaParameters));
|
|
17
21
|
const lambdaBody = this.visit(ctx.lambdaBody);
|
|
18
22
|
const isLambdaBodyABlock = ctx.lambdaBody[0].children.block !== undefined;
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
const suffix = [
|
|
24
|
+
" ",
|
|
25
|
+
ctx.Arrow[0],
|
|
26
|
+
...(isLambdaBodyABlock
|
|
27
|
+
? [" ", lambdaBody]
|
|
28
|
+
: [group(indent([line, lambdaBody]))])
|
|
29
|
+
];
|
|
30
|
+
if (params === null || params === void 0 ? void 0 : params.hug) {
|
|
31
|
+
return willBreak(lambdaParameters)
|
|
32
|
+
? label({ huggable: false }, concat([lambdaParameters, ...suffix]))
|
|
33
|
+
: concat([removeLines(lambdaParameters), ...suffix]);
|
|
21
34
|
}
|
|
22
|
-
return
|
|
23
|
-
rejectAndJoin(" ", [lambdaParameters, ctx.Arrow[0]]),
|
|
24
|
-
lambdaBody
|
|
25
|
-
])));
|
|
35
|
+
return concat([lambdaParameters, ...suffix]);
|
|
26
36
|
}
|
|
27
|
-
lambdaParameters(ctx
|
|
37
|
+
lambdaParameters(ctx) {
|
|
28
38
|
if (ctx.lambdaParametersWithBraces) {
|
|
29
|
-
return this.visitSingle(ctx
|
|
39
|
+
return this.visitSingle(ctx);
|
|
30
40
|
}
|
|
31
41
|
return printTokenWithComments(this.getSingle(ctx));
|
|
32
42
|
}
|
|
33
|
-
lambdaParametersWithBraces(ctx
|
|
34
|
-
|
|
43
|
+
lambdaParametersWithBraces(ctx) {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f;
|
|
45
|
+
const lambdaParameters = (_f = (_c = (_b = (_a = ctx.lambdaParameterList) === null || _a === void 0 ? void 0 : _a[0].children.normalLambdaParameterList) === null || _b === void 0 ? void 0 : _b[0].children.normalLambdaParameter) !== null && _c !== void 0 ? _c : (_e = (_d = ctx.lambdaParameterList) === null || _d === void 0 ? void 0 : _d[0].children.conciseLambdaParameterList) === null || _e === void 0 ? void 0 : _e[0].children.conciseLambdaParameter) !== null && _f !== void 0 ? _f : [];
|
|
46
|
+
handleCommentsParameters(ctx.LBrace[0], lambdaParameters, ctx.RBrace[0]);
|
|
47
|
+
const lambdaParameterList = this.visit(ctx.lambdaParameterList);
|
|
35
48
|
if (findDeepElementInPartsArray(lambdaParameterList, ",")) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
49
|
+
return concat([
|
|
50
|
+
ctx.LBrace[0],
|
|
51
|
+
indent([softline, lambdaParameterList]),
|
|
52
|
+
softline,
|
|
53
|
+
ctx.RBrace[0]
|
|
54
|
+
]);
|
|
39
55
|
}
|
|
40
56
|
// removing braces when only no comments attached
|
|
41
57
|
if ((ctx.LBrace &&
|
|
@@ -53,23 +69,22 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
53
69
|
}
|
|
54
70
|
return lambdaParameterList;
|
|
55
71
|
}
|
|
56
|
-
lambdaParameterList(ctx
|
|
57
|
-
return this.visitSingle(ctx
|
|
72
|
+
lambdaParameterList(ctx) {
|
|
73
|
+
return this.visitSingle(ctx);
|
|
58
74
|
}
|
|
59
|
-
|
|
75
|
+
conciseLambdaParameterList(ctx) {
|
|
60
76
|
var _a;
|
|
61
|
-
const
|
|
62
|
-
const commas = (_a = ctx.Comma) === null || _a === void 0 ? void 0 : _a.map(comma => concat([comma,
|
|
63
|
-
return rejectAndJoinSeps(commas,
|
|
77
|
+
const conciseLambdaParameters = this.mapVisit(ctx.conciseLambdaParameter);
|
|
78
|
+
const commas = (_a = ctx.Comma) === null || _a === void 0 ? void 0 : _a.map(comma => concat([comma, line]));
|
|
79
|
+
return rejectAndJoinSeps(commas, conciseLambdaParameters);
|
|
64
80
|
}
|
|
65
|
-
|
|
81
|
+
normalLambdaParameterList(ctx) {
|
|
66
82
|
var _a;
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
return rejectAndJoinSeps(commas, lambdaParameter);
|
|
83
|
+
const normalLambdaParameter = this.mapVisit(ctx.normalLambdaParameter);
|
|
84
|
+
const commas = (_a = ctx.Comma) === null || _a === void 0 ? void 0 : _a.map(comma => concat([comma, line]));
|
|
85
|
+
return rejectAndJoinSeps(commas, normalLambdaParameter);
|
|
71
86
|
}
|
|
72
|
-
|
|
87
|
+
normalLambdaParameter(ctx) {
|
|
73
88
|
return this.visitSingle(ctx);
|
|
74
89
|
}
|
|
75
90
|
regularLambdaParameter(ctx) {
|
|
@@ -88,10 +103,13 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
88
103
|
}
|
|
89
104
|
return printTokenWithComments(this.getSingle(ctx));
|
|
90
105
|
}
|
|
106
|
+
conciseLambdaParameter(ctx) {
|
|
107
|
+
return printTokenWithComments(this.getSingle(ctx));
|
|
108
|
+
}
|
|
91
109
|
lambdaBody(ctx) {
|
|
92
110
|
return this.visitSingle(ctx);
|
|
93
111
|
}
|
|
94
|
-
|
|
112
|
+
conditionalExpression(ctx, params) {
|
|
95
113
|
const binaryExpression = this.visit(ctx.binaryExpression, params);
|
|
96
114
|
if (ctx.QuestionMark) {
|
|
97
115
|
const expression1 = this.visit(ctx.expression[0]);
|
|
@@ -387,41 +405,53 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
387
405
|
methodInvocationSuffix(ctx) {
|
|
388
406
|
return printArgumentListWithBraces.call(this, ctx.argumentList, ctx.RBrace[0], ctx.LBrace[0]);
|
|
389
407
|
}
|
|
390
|
-
argumentList(ctx
|
|
391
|
-
var _a;
|
|
392
|
-
const
|
|
393
|
-
const
|
|
394
|
-
const
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
group([
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
])
|
|
408
|
+
argumentList(ctx) {
|
|
409
|
+
var _a, _b;
|
|
410
|
+
const headArgs = this.mapVisit(ctx.expression.slice(0, -1)).map((expression, index) => concat([expression, ctx.Comma[index], line]));
|
|
411
|
+
const lastExpression = ctx.expression.at(-1);
|
|
412
|
+
const lastArg = this.visit(lastExpression);
|
|
413
|
+
if (this.isArgumentListHuggable(ctx)) {
|
|
414
|
+
const huggedLastArg = this.visit(lastExpression, { hug: true });
|
|
415
|
+
const lastArgNotHuggable = typeof huggedLastArg === "object" &&
|
|
416
|
+
!Array.isArray(huggedLastArg) &&
|
|
417
|
+
huggedLastArg.type === "label" &&
|
|
418
|
+
((_a = huggedLastArg.label) === null || _a === void 0 ? void 0 : _a.huggable) === false;
|
|
419
|
+
if (lastArgNotHuggable || headArgs.some(willBreak)) {
|
|
420
|
+
return group([indent([line, ...headArgs, lastArg]), line], {
|
|
421
|
+
shouldBreak: true
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
const suffix = ((_b = lastExpression === null || lastExpression === void 0 ? void 0 : lastExpression.children.lambdaExpression) === null || _b === void 0 ? void 0 : _b[0].children.lambdaBody[0].children.block)
|
|
425
|
+
? ""
|
|
426
|
+
: line;
|
|
427
|
+
const hugged = [
|
|
428
|
+
...headArgs,
|
|
429
|
+
group([huggedLastArg, suffix], { shouldBreak: true })
|
|
430
|
+
];
|
|
431
|
+
const expanded = group([indent([line, ...headArgs, lastArg]), line], {
|
|
432
|
+
shouldBreak: true
|
|
433
|
+
});
|
|
434
|
+
return willBreak(huggedLastArg)
|
|
435
|
+
? [breakParent, conditionalGroup([hugged, expanded])]
|
|
436
|
+
: conditionalGroup([[...headArgs, huggedLastArg], hugged, expanded]);
|
|
407
437
|
}
|
|
408
|
-
return
|
|
438
|
+
return group([indent([softline, ...headArgs, lastArg]), softline]);
|
|
409
439
|
}
|
|
410
440
|
arrayCreationExpression(ctx) {
|
|
411
441
|
const type = ctx.primitiveType
|
|
412
442
|
? this.visit(ctx.primitiveType)
|
|
413
443
|
: this.visit(ctx.classOrInterfaceType);
|
|
414
|
-
const suffix = ctx.
|
|
415
|
-
? this.visit(ctx.
|
|
416
|
-
: this.visit(ctx.
|
|
444
|
+
const suffix = ctx.arrayCreationExpressionWithoutInitializerSuffix
|
|
445
|
+
? this.visit(ctx.arrayCreationExpressionWithoutInitializerSuffix)
|
|
446
|
+
: this.visit(ctx.arrayCreationWithInitializerSuffix);
|
|
417
447
|
return rejectAndConcat([concat([ctx.New[0], " "]), type, suffix]);
|
|
418
448
|
}
|
|
419
|
-
|
|
449
|
+
arrayCreationExpressionWithoutInitializerSuffix(ctx) {
|
|
420
450
|
const dimExprs = this.visit(ctx.dimExprs);
|
|
421
451
|
const dims = this.visit(ctx.dims);
|
|
422
452
|
return rejectAndConcat([dimExprs, dims]);
|
|
423
453
|
}
|
|
424
|
-
|
|
454
|
+
arrayCreationWithInitializerSuffix(ctx) {
|
|
425
455
|
const dims = this.visit(ctx.dims);
|
|
426
456
|
const arrayInitializer = this.visit(ctx.arrayInitializer);
|
|
427
457
|
return rejectAndJoin(" ", [dims, arrayInitializer]);
|
|
@@ -491,6 +521,9 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
491
521
|
return this.visitSingle(ctx);
|
|
492
522
|
}
|
|
493
523
|
recordPattern(ctx) {
|
|
524
|
+
var _a, _b;
|
|
525
|
+
const componentPatterns = (_b = (_a = ctx.componentPatternList) === null || _a === void 0 ? void 0 : _a[0].children.componentPattern) !== null && _b !== void 0 ? _b : [];
|
|
526
|
+
handleCommentsParameters(ctx.LBrace[0], componentPatterns, ctx.RBrace[0]);
|
|
494
527
|
const referenceType = this.visit(ctx.referenceType);
|
|
495
528
|
const componentPatternList = this.visit(ctx.componentPatternList);
|
|
496
529
|
return concat([
|
|
@@ -507,7 +540,7 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
507
540
|
componentPattern(ctx) {
|
|
508
541
|
return this.visitSingle(ctx);
|
|
509
542
|
}
|
|
510
|
-
|
|
543
|
+
matchAllPattern(ctx) {
|
|
511
544
|
return printTokenWithComments(ctx.Underscore[0]);
|
|
512
545
|
}
|
|
513
546
|
guard(ctx) {
|
|
@@ -519,13 +552,27 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
519
552
|
isRefTypeInMethodRef() {
|
|
520
553
|
return "isRefTypeInMethodRef";
|
|
521
554
|
}
|
|
555
|
+
isArgumentListHuggable(argumentList) {
|
|
556
|
+
var _a, _b, _c;
|
|
557
|
+
const expressions = argumentList.expression;
|
|
558
|
+
const lastArgument = expressions.at(-1);
|
|
559
|
+
const lastArgumentLambdaBodyExpression = (_b = (_a = lastArgument === null || lastArgument === void 0 ? void 0 : lastArgument.children.lambdaExpression) === null || _a === void 0 ? void 0 : _a[0].children.lambdaBody[0].children.expression) === null || _b === void 0 ? void 0 : _b[0].children;
|
|
560
|
+
const lastArgumentLambdaBodyTernaryExpression = (_c = lastArgumentLambdaBodyExpression === null || lastArgumentLambdaBodyExpression === void 0 ? void 0 : lastArgumentLambdaBodyExpression.conditionalExpression) === null || _c === void 0 ? void 0 : _c[0].children;
|
|
561
|
+
return (!(lastArgument === null || lastArgument === void 0 ? void 0 : lastArgument.leadingComments) &&
|
|
562
|
+
!(lastArgument === null || lastArgument === void 0 ? void 0 : lastArgument.trailingComments) &&
|
|
563
|
+
(!lastArgumentLambdaBodyExpression ||
|
|
564
|
+
(lastArgumentLambdaBodyTernaryExpression === null || lastArgumentLambdaBodyTernaryExpression === void 0 ? void 0 : lastArgumentLambdaBodyTernaryExpression.QuestionMark) !== undefined ||
|
|
565
|
+
(lastArgumentLambdaBodyTernaryExpression === null || lastArgumentLambdaBodyTernaryExpression === void 0 ? void 0 : lastArgumentLambdaBodyTernaryExpression.binaryExpression[0].children.unaryExpression.length) === 1) &&
|
|
566
|
+
expressions.findIndex(({ children }) => children.lambdaExpression) ===
|
|
567
|
+
expressions.length - 1);
|
|
568
|
+
}
|
|
522
569
|
isBreakableNewExpression(newExpression) {
|
|
523
570
|
var _a, _b, _c, _d, _e;
|
|
524
571
|
const arrayCreationExpression = (_a = newExpression === null || newExpression === void 0 ? void 0 : newExpression.arrayCreationExpression) === null || _a === void 0 ? void 0 : _a[0].children;
|
|
525
572
|
const classInstanceCreationExpression = (_b = newExpression === null || newExpression === void 0 ? void 0 : newExpression.unqualifiedClassInstanceCreationExpression) === null || _b === void 0 ? void 0 : _b[0].children;
|
|
526
573
|
return [
|
|
527
574
|
(_c = arrayCreationExpression === null || arrayCreationExpression === void 0 ? void 0 : arrayCreationExpression.classOrInterfaceType) === null || _c === void 0 ? void 0 : _c[0].children.classType[0].children.typeArguments,
|
|
528
|
-
(_d = arrayCreationExpression === null || arrayCreationExpression === void 0 ? void 0 : arrayCreationExpression.
|
|
575
|
+
(_d = arrayCreationExpression === null || arrayCreationExpression === void 0 ? void 0 : arrayCreationExpression.arrayCreationWithInitializerSuffix) === null || _d === void 0 ? void 0 : _d[0].children.arrayInitializer[0].children.variableInitializerList,
|
|
529
576
|
(_e = classInstanceCreationExpression === null || classInstanceCreationExpression === void 0 ? void 0 : classInstanceCreationExpression.classOrInterfaceTypeToInstantiate[0].children.typeArgumentsOrDiamond) === null || _e === void 0 ? void 0 : _e[0].children.typeArguments,
|
|
530
577
|
classInstanceCreationExpression === null || classInstanceCreationExpression === void 0 ? void 0 : classInstanceCreationExpression.argumentList
|
|
531
578
|
].some(breakablePart => breakablePart !== undefined);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { concat, group, indent } from "./prettier-builder.js";
|
|
2
2
|
import { printTokenWithComments } from "./comments/format-comments.js";
|
|
3
|
+
import { handleCommentsParameters } from "./comments/handle-comments.js";
|
|
3
4
|
import { displaySemicolon, getInterfaceBodyDeclarationsSeparator, isStatementEmptyStatement, printArrayList, putIntoBraces, rejectAndConcat, rejectAndJoin, rejectAndJoinSeps, sortModifiers } from "./printer-utils.js";
|
|
4
5
|
import { builders } from "prettier/doc";
|
|
5
6
|
import { BaseCstPrettierPrinter } from "../base-cst-printer.js";
|
|
@@ -11,7 +12,7 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
11
12
|
const otherModifiers = this.mapVisit(modifiers[1]);
|
|
12
13
|
const declaration = ctx.normalInterfaceDeclaration
|
|
13
14
|
? this.visit(ctx.normalInterfaceDeclaration)
|
|
14
|
-
: this.visit(ctx.
|
|
15
|
+
: this.visit(ctx.annotationInterfaceDeclaration);
|
|
15
16
|
return rejectAndJoin(hardline, [
|
|
16
17
|
rejectAndJoin(hardline, firstAnnotations),
|
|
17
18
|
rejectAndJoin(" ", [rejectAndJoin(" ", otherModifiers), declaration])
|
|
@@ -20,12 +21,12 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
20
21
|
normalInterfaceDeclaration(ctx) {
|
|
21
22
|
const typeIdentifier = this.visit(ctx.typeIdentifier);
|
|
22
23
|
const typeParameters = this.visit(ctx.typeParameters);
|
|
23
|
-
const
|
|
24
|
+
const interfaceExtends = this.visit(ctx.interfaceExtends);
|
|
24
25
|
const optionalInterfacePermits = this.visit(ctx.interfacePermits);
|
|
25
26
|
const interfaceBody = this.visit(ctx.interfaceBody);
|
|
26
|
-
let
|
|
27
|
-
if (
|
|
28
|
-
|
|
27
|
+
let interfaceExtendsPart = "";
|
|
28
|
+
if (interfaceExtends) {
|
|
29
|
+
interfaceExtendsPart = indent(rejectAndConcat([softline, interfaceExtends]));
|
|
29
30
|
}
|
|
30
31
|
let interfacePermits = "";
|
|
31
32
|
if (optionalInterfacePermits) {
|
|
@@ -35,7 +36,7 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
35
36
|
group(rejectAndJoin(" ", [
|
|
36
37
|
ctx.Interface[0],
|
|
37
38
|
concat([typeIdentifier, typeParameters]),
|
|
38
|
-
|
|
39
|
+
interfaceExtendsPart,
|
|
39
40
|
interfacePermits
|
|
40
41
|
])),
|
|
41
42
|
interfaceBody
|
|
@@ -47,7 +48,7 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
47
48
|
}
|
|
48
49
|
return printTokenWithComments(this.getSingle(ctx));
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
+
interfaceExtends(ctx) {
|
|
51
52
|
const interfaceTypeList = this.visit(ctx.interfaceTypeList);
|
|
52
53
|
return group(rejectAndConcat([
|
|
53
54
|
ctx.Extends[0],
|
|
@@ -114,33 +115,33 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
114
115
|
}
|
|
115
116
|
return printTokenWithComments(this.getSingle(ctx));
|
|
116
117
|
}
|
|
117
|
-
|
|
118
|
+
annotationInterfaceDeclaration(ctx) {
|
|
118
119
|
const typeIdentifier = this.visit(ctx.typeIdentifier);
|
|
119
|
-
const
|
|
120
|
+
const annotationInterfaceBody = this.visit(ctx.annotationInterfaceBody);
|
|
120
121
|
return rejectAndJoin(" ", [
|
|
121
122
|
concat([ctx.At[0], ctx.Interface[0]]),
|
|
122
123
|
typeIdentifier,
|
|
123
|
-
|
|
124
|
+
annotationInterfaceBody
|
|
124
125
|
]);
|
|
125
126
|
}
|
|
126
|
-
|
|
127
|
-
const
|
|
127
|
+
annotationInterfaceBody(ctx) {
|
|
128
|
+
const annotationInterfaceMemberDeclaration = this.mapVisit(ctx.annotationInterfaceMemberDeclaration);
|
|
128
129
|
return rejectAndJoin(line, [
|
|
129
130
|
indent(rejectAndJoin(line, [
|
|
130
131
|
ctx.LCurly[0],
|
|
131
|
-
rejectAndJoin(concat([line, line]),
|
|
132
|
+
rejectAndJoin(concat([line, line]), annotationInterfaceMemberDeclaration)
|
|
132
133
|
])),
|
|
133
134
|
ctx.RCurly[0]
|
|
134
135
|
]);
|
|
135
136
|
}
|
|
136
|
-
|
|
137
|
+
annotationInterfaceMemberDeclaration(ctx) {
|
|
137
138
|
if (ctx.Semicolon) {
|
|
138
139
|
return printTokenWithComments(this.getSingle(ctx));
|
|
139
140
|
}
|
|
140
141
|
return this.visitSingle(ctx);
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
-
const modifiers = sortModifiers(ctx.
|
|
143
|
+
annotationInterfaceElementDeclaration(ctx) {
|
|
144
|
+
const modifiers = sortModifiers(ctx.annotationInterfaceElementModifier);
|
|
144
145
|
const firstAnnotations = this.mapVisit(modifiers[0]);
|
|
145
146
|
const otherModifiers = this.mapVisit(modifiers[1]);
|
|
146
147
|
const unannType = this.visit(ctx.unannType);
|
|
@@ -164,7 +165,7 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
164
165
|
])
|
|
165
166
|
]);
|
|
166
167
|
}
|
|
167
|
-
|
|
168
|
+
annotationInterfaceElementModifier(ctx) {
|
|
168
169
|
if (ctx.annotation) {
|
|
169
170
|
return this.visitSingle(ctx);
|
|
170
171
|
}
|
|
@@ -175,9 +176,12 @@ export class InterfacesPrettierVisitor extends BaseCstPrettierPrinter {
|
|
|
175
176
|
return rejectAndJoin(" ", [ctx.Default[0], elementValue]);
|
|
176
177
|
}
|
|
177
178
|
annotation(ctx) {
|
|
179
|
+
var _a, _b, _c;
|
|
178
180
|
const fqn = this.visit(ctx.typeName);
|
|
179
181
|
let annoArgs = "";
|
|
180
182
|
if (ctx.LBrace) {
|
|
183
|
+
const elementValues = (_c = (_b = (_a = ctx.elementValuePairList) === null || _a === void 0 ? void 0 : _a[0].children.elementValuePair) !== null && _b !== void 0 ? _b : ctx.elementValue) !== null && _c !== void 0 ? _c : [];
|
|
184
|
+
handleCommentsParameters(ctx.LBrace[0], elementValues, ctx.RBrace[0]);
|
|
181
185
|
if (ctx.elementValuePairList) {
|
|
182
186
|
annoArgs = putIntoBraces(this.visit(ctx.elementValuePairList), softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
183
187
|
}
|
|
@@ -9,7 +9,7 @@ import { isEmptyDoc } from "../utils/index.js";
|
|
|
9
9
|
import { hasComments, hasLeadingComments, hasTrailingComments } from "./comments/comments-utils.js";
|
|
10
10
|
import { getTokenLeadingComments, printTokenWithComments } from "./comments/format-comments.js";
|
|
11
11
|
import { concat, group, ifBreak, indentIfBreak, join } from "./prettier-builder.js";
|
|
12
|
-
const { indent, hardline, line } = builders;
|
|
12
|
+
const { indent, hardline, line, lineSuffixBoundary, softline } = builders;
|
|
13
13
|
const orderedModifiers = [
|
|
14
14
|
"Public",
|
|
15
15
|
"Protected",
|
|
@@ -222,7 +222,7 @@ export function isExplicitLambdaParameter(ctx) {
|
|
|
222
222
|
ctx.lambdaParameterList &&
|
|
223
223
|
ctx.lambdaParameterList[0] &&
|
|
224
224
|
ctx.lambdaParameterList[0].children &&
|
|
225
|
-
ctx.lambdaParameterList[0].children.
|
|
225
|
+
ctx.lambdaParameterList[0].children.normalLambdaParameterList);
|
|
226
226
|
}
|
|
227
227
|
export function getBlankLinesSeparator(ctx, separator = hardline) {
|
|
228
228
|
if (ctx === undefined) {
|
|
@@ -380,7 +380,11 @@ export function putIntoBraces(argument, separator, LBrace, RBrace) {
|
|
|
380
380
|
let contentInsideBraces;
|
|
381
381
|
if (isEmptyDoc(argument)) {
|
|
382
382
|
if (rightBraceLeadingComments.length === 0) {
|
|
383
|
-
return
|
|
383
|
+
return group([
|
|
384
|
+
indent(printTokenWithComments(LBrace)),
|
|
385
|
+
...(LBrace.trailingComments ? [softline, lineSuffixBoundary] : []),
|
|
386
|
+
RBrace
|
|
387
|
+
]);
|
|
384
388
|
}
|
|
385
389
|
contentInsideBraces = [separator, ...rightBraceLeadingComments];
|
|
386
390
|
}
|
|
@@ -444,10 +448,10 @@ export function binary(nodes, tokens, isRoot = false) {
|
|
|
444
448
|
}
|
|
445
449
|
}
|
|
446
450
|
else {
|
|
447
|
-
const content =
|
|
451
|
+
const content = binary(nodes, tokens);
|
|
448
452
|
nodes.unshift(levelOperator !== undefined &&
|
|
449
453
|
needsParentheses(nextOperator, levelOperator)
|
|
450
|
-
? concat(["(", content, ")"])
|
|
454
|
+
? concat(["(", indent(content), ")"])
|
|
451
455
|
: content);
|
|
452
456
|
}
|
|
453
457
|
}
|
|
@@ -1,31 +1,37 @@
|
|
|
1
|
-
import { builders
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { builders } from "prettier/doc";
|
|
2
|
+
import { handleCommentsParameters } from "../printers/comments/handle-comments.js";
|
|
3
|
+
import { indent } from "../printers/prettier-builder.js";
|
|
4
|
+
import { rejectAndConcat } from "../printers/printer-utils.js";
|
|
5
|
+
const { lineSuffixBoundary, softline } = builders;
|
|
5
6
|
export default function printArgumentListWithBraces(argumentListNodes, rBrace, lBrace) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
var _a, _b, _c;
|
|
8
|
+
const argumentListNode = argumentListNodes === null || argumentListNodes === void 0 ? void 0 : argumentListNodes[0];
|
|
9
|
+
const expressions = (_a = argumentListNode === null || argumentListNode === void 0 ? void 0 : argumentListNode.children.expression) !== null && _a !== void 0 ? _a : [];
|
|
10
|
+
if (argumentListNode) {
|
|
11
|
+
const { leadingComments, trailingComments } = argumentListNode;
|
|
12
|
+
delete argumentListNode.leadingComments;
|
|
13
|
+
delete argumentListNode.trailingComments;
|
|
14
|
+
if (leadingComments) {
|
|
15
|
+
const firstExpression = expressions[0];
|
|
16
|
+
firstExpression.leadingComments = [
|
|
17
|
+
...leadingComments,
|
|
18
|
+
...((_b = firstExpression.leadingComments) !== null && _b !== void 0 ? _b : [])
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
if (trailingComments) {
|
|
22
|
+
const lastExpression = expressions.at(-1);
|
|
23
|
+
lastExpression.trailingComments = [
|
|
24
|
+
...((_c = lastExpression.trailingComments) !== null && _c !== void 0 ? _c : []),
|
|
25
|
+
...trailingComments
|
|
26
|
+
];
|
|
27
|
+
}
|
|
21
28
|
}
|
|
29
|
+
handleCommentsParameters(lBrace, expressions, rBrace);
|
|
22
30
|
const argumentList = this.visit(argumentListNodes);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return ((
|
|
29
|
-
((_a = expressions[expressions.length - 1].children.lambdaExpression) === null || _a === void 0 ? void 0 : _a[0].children.lambdaBody[0].children.block) !== undefined) &&
|
|
30
|
-
expressions.filter(({ children }) => children.lambdaExpression).length === 1);
|
|
31
|
+
const contents = argumentList
|
|
32
|
+
? [argumentList]
|
|
33
|
+
: lBrace.trailingComments
|
|
34
|
+
? [softline, lineSuffixBoundary]
|
|
35
|
+
: [];
|
|
36
|
+
return rejectAndConcat([indent(lBrace), ...contents, rBrace]);
|
|
31
37
|
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prettier-plugin-java",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
4
4
|
"description": "Prettier Java Plugin",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"exports":
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./src/index.d.ts",
|
|
9
|
+
"default": "./src/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
7
12
|
"files": [
|
|
8
13
|
"dist"
|
|
9
14
|
],
|
|
@@ -11,7 +16,7 @@
|
|
|
11
16
|
"repository": "https://github.com/jhipster/prettier-java",
|
|
12
17
|
"license": "Apache-2.0",
|
|
13
18
|
"dependencies": {
|
|
14
|
-
"java-parser": "2.3.
|
|
19
|
+
"java-parser": "2.3.2",
|
|
15
20
|
"lodash": "4.17.21",
|
|
16
21
|
"prettier": "3.2.5"
|
|
17
22
|
},
|
|
@@ -38,5 +43,5 @@
|
|
|
38
43
|
"ts-node": "10.9.1",
|
|
39
44
|
"typescript": "4.9.3"
|
|
40
45
|
},
|
|
41
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "182d1f5bbb1e6d58cc57b32886cc3f3bcc75c164"
|
|
42
47
|
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export function isArgumentListSingleLambda(argumentList) {
|
|
2
|
-
if (argumentList === undefined) {
|
|
3
|
-
return false;
|
|
4
|
-
}
|
|
5
|
-
const args = argumentList[0].children.expression;
|
|
6
|
-
if (args.length !== 1) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
const argument = args[0];
|
|
10
|
-
return argument.children.lambdaExpression !== undefined;
|
|
11
|
-
}
|
|
12
|
-
export const isSingleArgumentLambdaExpressionWithBlock = (argumentList) => {
|
|
13
|
-
if (argumentList === undefined) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
const args = argumentList[0].children.expression;
|
|
17
|
-
if (args.length !== 1) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
const argument = args[0];
|
|
21
|
-
return (argument.children.lambdaExpression !== undefined &&
|
|
22
|
-
argument.children.lambdaExpression[0].children.lambdaBody[0].children
|
|
23
|
-
.block !== undefined);
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZXhwcmVzc2lvbnMtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxZQUErQztJQUUvQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDOUIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDckIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO0FBQzFELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx5Q0FBeUMsR0FBRyxDQUN2RCxZQUErQyxFQUMvQyxFQUFFO0lBQ0YsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNqRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUNMLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEtBQUssU0FBUztRQUNoRCxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTthQUNsRSxLQUFLLEtBQUssU0FBUyxDQUN2QixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { builders } from "prettier/doc";
|
|
2
|
-
import { isSingleArgumentLambdaExpressionWithBlock } from "./expressions-utils.js";
|
|
3
|
-
import { printTokenWithComments } from "../printers/comments/format-comments.js";
|
|
4
|
-
import { concat, dedent, indent } from "../printers/prettier-builder.js";
|
|
5
|
-
import { putIntoBraces } from "../printers/printer-utils.js";
|
|
6
|
-
const { softline, ifBreak } = builders;
|
|
7
|
-
export default function printSingleLambdaInvocation(argumentListCtx, rBrace, lBrace) {
|
|
8
|
-
const lambdaParametersGroupId = Symbol("lambdaParameters");
|
|
9
|
-
const argumentList = this.visit(argumentListCtx, {
|
|
10
|
-
lambdaParametersGroupId,
|
|
11
|
-
isInsideMethodInvocationSuffix: true
|
|
12
|
-
});
|
|
13
|
-
const formattedRBrace = isSingleArgumentLambdaExpressionWithBlock(argumentListCtx)
|
|
14
|
-
? ifBreak(indent(concat([softline, rBrace])), printTokenWithComments(rBrace), { groupId: lambdaParametersGroupId })
|
|
15
|
-
: indent(concat([softline, rBrace]));
|
|
16
|
-
return dedent(putIntoBraces(argumentList, "", lBrace, formattedRBrace));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnRTaW5nbGVMYW1iZGFJbnZvY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3ByaW50U2luZ2xlTGFtYmRhSW52b2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUV2QyxNQUFNLENBQUMsT0FBTyxVQUFVLDJCQUEyQixDQUNqRCxlQUFrRCxFQUNsRCxNQUFjLEVBQ2QsTUFBYztJQUVkLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7UUFDL0MsdUJBQXVCO1FBQ3ZCLDhCQUE4QixFQUFFLElBQUk7S0FDckMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQUcseUNBQXlDLENBQy9ELGVBQWUsQ0FDaEI7UUFDQyxDQUFDLENBQUMsT0FBTyxDQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNsQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsRUFDOUIsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FDckM7UUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyJ9
|