prettier-plugin-java 1.6.2 → 2.1.0
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/LICENSE +1 -1
- package/dist/base-cst-printer.js +3 -3
- package/dist/index.js +2 -2
- package/dist/options.js +1 -0
- package/dist/printers/arrays.js +3 -3
- package/dist/printers/blocks-and-statements.js +106 -102
- package/dist/printers/classes.js +176 -160
- package/dist/printers/comments/format-comments.js +21 -13
- package/dist/printers/comments/handle-comments.js +1 -1
- package/dist/printers/expressions.js +127 -105
- package/dist/printers/interfaces.js +56 -56
- package/dist/printers/lexical-structure.js +4 -4
- package/dist/printers/names.js +8 -8
- package/dist/printers/packages-and-modules.js +72 -59
- package/dist/printers/prettier-builder.js +24 -12
- package/dist/printers/printer-utils.js +63 -56
- package/dist/printers/types-values-and-variables.js +43 -39
- package/dist/src/base-cst-printer.js +77 -0
- package/dist/src/cst-printer.js +37 -0
- package/dist/src/index.js +67 -0
- package/dist/src/options.js +256 -0
- package/dist/src/parser.js +7 -0
- package/dist/src/printer.js +28 -0
- package/dist/src/printers/arrays.js +49 -0
- package/dist/src/printers/blocks-and-statements.js +493 -0
- package/dist/src/printers/classes.js +724 -0
- package/dist/src/printers/comments/comments-utils.js +29 -0
- package/dist/src/printers/comments/format-comments.js +187 -0
- package/dist/src/printers/comments/handle-comments.js +38 -0
- package/dist/src/printers/expressions.js +549 -0
- package/dist/src/printers/interfaces.js +251 -0
- package/dist/src/printers/lexical-structure.js +43 -0
- package/dist/src/printers/names.js +53 -0
- package/dist/src/printers/packages-and-modules.js +185 -0
- package/dist/src/printers/prettier-builder.js +47 -0
- package/dist/src/printers/printer-utils.js +577 -0
- package/dist/src/printers/types-values-and-variables.js +183 -0
- package/dist/src/types/utils.js +29 -0
- package/dist/src/utils/expressions-utils.js +29 -0
- package/dist/src/utils/index.js +10 -0
- package/dist/src/utils/printArgumentListWithBraces.js +21 -0
- package/dist/src/utils/printSingleLambdaInvocation.js +20 -0
- package/dist/test/babel-register.js +3 -0
- package/dist/test/repository-test/core-test.js +12 -0
- package/dist/test/repository-test/jhipster-1-test.js +17 -0
- package/dist/test/repository-test/jhipster-2-test.js +16 -0
- package/dist/test/test-utils.js +215 -0
- package/dist/test/unit-test/annotation_type_declaration/annotation_type_declaration-spec.js +6 -0
- package/dist/test/unit-test/args/args-spec.js +6 -0
- package/dist/test/unit-test/assert/assert-spec.js +6 -0
- package/dist/test/unit-test/binary_expressions/binary_expressions-spec.js +6 -0
- package/dist/test/unit-test/blank_lines/blank_lines-spec.js +6 -0
- package/dist/test/unit-test/bug-fixes/bug-fixes-spec.js +6 -0
- package/dist/test/unit-test/cast/cast-spec.js +6 -0
- package/dist/test/unit-test/char_literal/char_literal-spec.js +6 -0
- package/dist/test/unit-test/classes/multiple_classes-spec.js +6 -0
- package/dist/test/unit-test/comments/comments-spec.js +14 -0
- package/dist/test/unit-test/complex_generic_class/complex_generic_class-spec.js +6 -0
- package/dist/test/unit-test/constructors/constructors-spec.js +6 -0
- package/dist/test/unit-test/empty_statement/empty_statement-spec.js +6 -0
- package/dist/test/unit-test/enum/enum-spec.js +6 -0
- package/dist/test/unit-test/expressions/expressions-spec.js +6 -0
- package/dist/test/unit-test/extends_abstract_class/extends_abstract_class-spec.js +6 -0
- package/dist/test/unit-test/extends_abstract_class_and_implements_interfaces/extends_abstract_class_and_implements_interfaces-spec.js +6 -0
- package/dist/test/unit-test/for/for-spec.js +6 -0
- package/dist/test/unit-test/generic_class/generic_class-spec.js +6 -0
- package/dist/test/unit-test/generic_questionmark/generic_questionmark-spec.js +6 -0
- package/dist/test/unit-test/hello-world/hello-word-spec.js +6 -0
- package/dist/test/unit-test/if/if-spec.js +6 -0
- package/dist/test/unit-test/indent/indent-spec.js +6 -0
- package/dist/test/unit-test/instantiation/instantiation-spec.js +6 -0
- package/dist/test/unit-test/interface/interface-spec.js +6 -0
- package/dist/test/unit-test/lambda/lambda-spec.js +6 -0
- package/dist/test/unit-test/marker_annotations/marker_annotations-spec.js +6 -0
- package/dist/test/unit-test/member_chain/member_chain-spec.js +6 -0
- package/dist/test/unit-test/method_reference/method_reference-spec.js +6 -0
- package/dist/test/unit-test/modifiers/modifiers-spec.js +6 -0
- package/dist/test/unit-test/modules/modules-spec.js +6 -0
- package/dist/test/unit-test/package_and_imports/package_and_imports-spec.js +34 -0
- package/dist/test/unit-test/pattern-matching/pattern-matching-spec.js +6 -0
- package/dist/test/unit-test/prettier-ignore/prettier-ignore-spec.js +28 -0
- package/dist/test/unit-test/records/records-spec.js +6 -0
- package/dist/test/unit-test/return/return-spec.js +6 -0
- package/dist/test/unit-test/sealed/sealed-spec.js +6 -0
- package/dist/test/unit-test/snippets/arrays/array-initializer.spec.js +94 -0
- package/dist/test/unit-test/snippets/arrays/variable-initializer-list.spec.js +19 -0
- package/dist/test/unit-test/snippets/blocks-and-statements/switch.spec.js +26 -0
- package/dist/test/unit-test/snippets/classes/class-body.spec.js +181 -0
- package/dist/test/unit-test/snippets/classes/enum-body.spec.js +87 -0
- package/dist/test/unit-test/snippets/classes/variableDeclarator/test.spec.js +186 -0
- package/dist/test/unit-test/snippets/interfaces/element-value-array-initializer.spec.js +85 -0
- package/dist/test/unit-test/snippets/names/ambiguousName/test.spec.js +19 -0
- package/dist/test/unit-test/snippets/names/expressionName/test.spec.js +19 -0
- package/dist/test/unit-test/snippets/names/methodName/test.spec.js +12 -0
- package/dist/test/unit-test/snippets/names/packageOrTypeName/test.spec.js +19 -0
- package/dist/test/unit-test/snippets/types-values-and-variables/floatingPointType/test.spec.js +19 -0
- package/dist/test/unit-test/snippets/types-values-and-variables/integralType/test.spec.js +40 -0
- package/dist/test/unit-test/snippets/types-values-and-variables/numericType/test.spec.js +88 -0
- package/dist/test/unit-test/snippets/types-values-and-variables/wildcard/test.spec.js +112 -0
- package/dist/test/unit-test/snippets/types-values-and-variables/wildcardBounds/test.spec.js +81 -0
- package/dist/test/unit-test/switch/switch-spec.js +6 -0
- package/dist/test/unit-test/synchronized/synchronized-spec.js +6 -0
- package/dist/test/unit-test/text-blocks/text-block-spec.js +6 -0
- package/dist/test/unit-test/throws/throws-spec.js +6 -0
- package/dist/test/unit-test/try_catch/try_catch-spec.js +6 -0
- package/dist/test/unit-test/types/types-spec.js +6 -0
- package/dist/test/unit-test/variables/variables-spec.js +6 -0
- package/dist/test/unit-test/while/while-spec.js +6 -0
- package/dist/test/unit-test/yield-statement/yield-statement-spec.js +6 -0
- package/dist/utils/index.js +3 -1
- package/dist/utils/isEmptyDoc.js +6 -0
- package/dist/utils/printArgumentListWithBraces.js +2 -2
- package/dist/utils/printSingleLambdaInvocation.js +4 -4
- package/package.json +21 -21
- package/dist/utils/constants.js +0 -4
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
18
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
19
|
+
to[j] = from[i];
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ExpressionsPrettierVisitor = void 0;
|
|
27
|
+
var forEach_1 = __importDefault(require("lodash/forEach"));
|
|
28
|
+
var doc_1 = require("prettier/doc");
|
|
29
|
+
var base_cst_printer_1 = require("../base-cst-printer");
|
|
30
|
+
var utils_1 = require("../types/utils");
|
|
31
|
+
var expressions_utils_1 = require("../utils/expressions-utils");
|
|
32
|
+
var utils_2 = require("../utils");
|
|
33
|
+
var format_comments_1 = require("./comments/format-comments");
|
|
34
|
+
var handle_comments_1 = require("./comments/handle-comments");
|
|
35
|
+
var prettier_builder_1 = require("./prettier-builder");
|
|
36
|
+
var printer_utils_1 = require("./printer-utils");
|
|
37
|
+
var ifBreak = doc_1.builders.ifBreak, line = doc_1.builders.line, softline = doc_1.builders.softline, indentIfBreak = doc_1.builders.indentIfBreak;
|
|
38
|
+
var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
|
|
39
|
+
__extends(ExpressionsPrettierVisitor, _super);
|
|
40
|
+
function ExpressionsPrettierVisitor() {
|
|
41
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
42
|
+
}
|
|
43
|
+
ExpressionsPrettierVisitor.prototype.expression = function (ctx, params) {
|
|
44
|
+
return this.visitSingle(ctx, params);
|
|
45
|
+
};
|
|
46
|
+
ExpressionsPrettierVisitor.prototype.lambdaExpression = function (ctx, params) {
|
|
47
|
+
var lambdaParameters = prettier_builder_1.group(this.visit(ctx.lambdaParameters, params), params ? { id: params.lambdaParametersGroupId } : undefined);
|
|
48
|
+
var lambdaBody = this.visit(ctx.lambdaBody);
|
|
49
|
+
var isLambdaBodyABlock = ctx.lambdaBody[0].children.block !== undefined;
|
|
50
|
+
if (isLambdaBodyABlock) {
|
|
51
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
52
|
+
lambdaParameters,
|
|
53
|
+
ctx.Arrow[0],
|
|
54
|
+
(params === null || params === void 0 ? void 0 : params.lambdaParametersGroupId) !== undefined
|
|
55
|
+
? indentIfBreak(lambdaBody, {
|
|
56
|
+
groupId: params.lambdaParametersGroupId
|
|
57
|
+
})
|
|
58
|
+
: lambdaBody
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
return prettier_builder_1.group(prettier_builder_1.indent(printer_utils_1.rejectAndJoin(line, [
|
|
62
|
+
printer_utils_1.rejectAndJoin(" ", [lambdaParameters, ctx.Arrow[0]]),
|
|
63
|
+
lambdaBody
|
|
64
|
+
])));
|
|
65
|
+
};
|
|
66
|
+
ExpressionsPrettierVisitor.prototype.lambdaParameters = function (ctx, params) {
|
|
67
|
+
if (ctx.lambdaParametersWithBraces) {
|
|
68
|
+
return this.visitSingle(ctx, params);
|
|
69
|
+
}
|
|
70
|
+
return format_comments_1.printTokenWithComments(this.getSingle(ctx));
|
|
71
|
+
};
|
|
72
|
+
ExpressionsPrettierVisitor.prototype.lambdaParametersWithBraces = function (ctx, params) {
|
|
73
|
+
var lambdaParameterList = this.visit(ctx.lambdaParameterList);
|
|
74
|
+
if (printer_utils_1.findDeepElementInPartsArray(lambdaParameterList, ",")) {
|
|
75
|
+
var content = printer_utils_1.putIntoBraces(lambdaParameterList, softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
76
|
+
if ((params === null || params === void 0 ? void 0 : params.isInsideMethodInvocationSuffix) === true) {
|
|
77
|
+
return prettier_builder_1.indent(prettier_builder_1.concat([softline, content]));
|
|
78
|
+
}
|
|
79
|
+
return content;
|
|
80
|
+
}
|
|
81
|
+
// removing braces when only no comments attached
|
|
82
|
+
if ((ctx.LBrace &&
|
|
83
|
+
ctx.RBrace &&
|
|
84
|
+
(!lambdaParameterList || printer_utils_1.isExplicitLambdaParameter(ctx))) ||
|
|
85
|
+
ctx.LBrace[0].leadingComments ||
|
|
86
|
+
ctx.LBrace[0].trailingComments ||
|
|
87
|
+
ctx.RBrace[0].leadingComments ||
|
|
88
|
+
ctx.RBrace[0].trailingComments) {
|
|
89
|
+
return printer_utils_1.rejectAndConcat([
|
|
90
|
+
ctx.LBrace[0],
|
|
91
|
+
lambdaParameterList,
|
|
92
|
+
ctx.RBrace[0]
|
|
93
|
+
]);
|
|
94
|
+
}
|
|
95
|
+
return lambdaParameterList;
|
|
96
|
+
};
|
|
97
|
+
ExpressionsPrettierVisitor.prototype.lambdaParameterList = function (ctx) {
|
|
98
|
+
return this.visitSingle(ctx);
|
|
99
|
+
};
|
|
100
|
+
ExpressionsPrettierVisitor.prototype.inferredLambdaParameterList = function (ctx) {
|
|
101
|
+
var commas = ctx.Comma
|
|
102
|
+
? ctx.Comma.map(function (elt) {
|
|
103
|
+
return prettier_builder_1.concat([elt, line]);
|
|
104
|
+
})
|
|
105
|
+
: [];
|
|
106
|
+
return printer_utils_1.rejectAndJoinSeps(commas, ctx.Identifier);
|
|
107
|
+
};
|
|
108
|
+
ExpressionsPrettierVisitor.prototype.explicitLambdaParameterList = function (ctx) {
|
|
109
|
+
var lambdaParameter = this.mapVisit(ctx.lambdaParameter);
|
|
110
|
+
var commas = ctx.Comma
|
|
111
|
+
? ctx.Comma.map(function (elt) {
|
|
112
|
+
return prettier_builder_1.concat([elt, line]);
|
|
113
|
+
})
|
|
114
|
+
: [];
|
|
115
|
+
return printer_utils_1.rejectAndJoinSeps(commas, lambdaParameter);
|
|
116
|
+
};
|
|
117
|
+
ExpressionsPrettierVisitor.prototype.lambdaParameter = function (ctx) {
|
|
118
|
+
return this.visitSingle(ctx);
|
|
119
|
+
};
|
|
120
|
+
ExpressionsPrettierVisitor.prototype.regularLambdaParameter = function (ctx) {
|
|
121
|
+
var variableModifier = this.mapVisit(ctx.variableModifier);
|
|
122
|
+
var lambdaParameterType = this.visit(ctx.lambdaParameterType);
|
|
123
|
+
var variableDeclaratorId = this.visit(ctx.variableDeclaratorId);
|
|
124
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
125
|
+
printer_utils_1.rejectAndJoin(" ", variableModifier),
|
|
126
|
+
lambdaParameterType,
|
|
127
|
+
variableDeclaratorId
|
|
128
|
+
]);
|
|
129
|
+
};
|
|
130
|
+
ExpressionsPrettierVisitor.prototype.lambdaParameterType = function (ctx) {
|
|
131
|
+
if (ctx.unannType) {
|
|
132
|
+
return this.visitSingle(ctx);
|
|
133
|
+
}
|
|
134
|
+
return format_comments_1.printTokenWithComments(this.getSingle(ctx));
|
|
135
|
+
};
|
|
136
|
+
ExpressionsPrettierVisitor.prototype.lambdaBody = function (ctx) {
|
|
137
|
+
return this.visitSingle(ctx);
|
|
138
|
+
};
|
|
139
|
+
ExpressionsPrettierVisitor.prototype.ternaryExpression = function (ctx, params) {
|
|
140
|
+
var binaryExpression = this.visit(ctx.binaryExpression, params);
|
|
141
|
+
if (ctx.QuestionMark) {
|
|
142
|
+
var expression1 = this.visit(ctx.expression[0]);
|
|
143
|
+
var expression2 = this.visit(ctx.expression[1]);
|
|
144
|
+
return prettier_builder_1.indent(prettier_builder_1.group(printer_utils_1.rejectAndConcat([
|
|
145
|
+
printer_utils_1.rejectAndJoin(line, [
|
|
146
|
+
binaryExpression,
|
|
147
|
+
printer_utils_1.rejectAndJoin(" ", [ctx.QuestionMark[0], expression1]),
|
|
148
|
+
printer_utils_1.rejectAndJoin(" ", [ctx.Colon[0], expression2])
|
|
149
|
+
])
|
|
150
|
+
])));
|
|
151
|
+
}
|
|
152
|
+
return binaryExpression;
|
|
153
|
+
};
|
|
154
|
+
ExpressionsPrettierVisitor.prototype.binaryExpression = function (ctx, params) {
|
|
155
|
+
handle_comments_1.handleCommentsBinaryExpression(ctx);
|
|
156
|
+
var instanceofReferences = this.mapVisit(printer_utils_1.sortNodes([ctx.pattern, ctx.referenceType]));
|
|
157
|
+
var expression = this.mapVisit(ctx.expression);
|
|
158
|
+
var unaryExpression = this.mapVisit(ctx.unaryExpression);
|
|
159
|
+
var _a = printer_utils_1.separateTokensIntoGroups(ctx), groupsOfOperator = _a.groupsOfOperator, sortedBinaryOperators = _a.sortedBinaryOperators;
|
|
160
|
+
var segmentsSplitByBinaryOperator = [];
|
|
161
|
+
var currentSegment = [];
|
|
162
|
+
if (groupsOfOperator.length === 1 && groupsOfOperator[0].length === 0) {
|
|
163
|
+
return unaryExpression.shift();
|
|
164
|
+
}
|
|
165
|
+
groupsOfOperator.forEach(function (subgroup) {
|
|
166
|
+
currentSegment = [unaryExpression.shift()];
|
|
167
|
+
for (var i = 0; i < subgroup.length; i++) {
|
|
168
|
+
var token = subgroup[i];
|
|
169
|
+
var shiftOperator = printer_utils_1.isShiftOperator(subgroup, i);
|
|
170
|
+
if (token.tokenType.name === "Instanceof") {
|
|
171
|
+
currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
|
|
172
|
+
ctx.Instanceof[0],
|
|
173
|
+
instanceofReferences.shift()
|
|
174
|
+
]));
|
|
175
|
+
}
|
|
176
|
+
else if (printer_utils_1.matchCategory(token, "'AssignmentOperator'")) {
|
|
177
|
+
currentSegment.push(prettier_builder_1.indent(printer_utils_1.rejectAndJoin(line, [token, expression.shift()])));
|
|
178
|
+
}
|
|
179
|
+
else if (shiftOperator === "leftShift" ||
|
|
180
|
+
shiftOperator === "rightShift") {
|
|
181
|
+
currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
|
|
182
|
+
printer_utils_1.rejectAndConcat([token, subgroup[i + 1]]),
|
|
183
|
+
unaryExpression.shift()
|
|
184
|
+
]));
|
|
185
|
+
i++;
|
|
186
|
+
}
|
|
187
|
+
else if (shiftOperator === "doubleRightShift") {
|
|
188
|
+
currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
|
|
189
|
+
printer_utils_1.rejectAndConcat([token, subgroup[i + 1], subgroup[i + 2]]),
|
|
190
|
+
unaryExpression.shift()
|
|
191
|
+
]));
|
|
192
|
+
i += 2;
|
|
193
|
+
}
|
|
194
|
+
else if (printer_utils_1.matchCategory(token, "'BinaryOperator'")) {
|
|
195
|
+
currentSegment.push(printer_utils_1.rejectAndJoin(line, [token, unaryExpression.shift()]));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
segmentsSplitByBinaryOperator.push(prettier_builder_1.group(printer_utils_1.rejectAndJoin(" ", currentSegment)));
|
|
199
|
+
});
|
|
200
|
+
if (params !== undefined && params.addParenthesisToWrapStatement) {
|
|
201
|
+
return prettier_builder_1.group(prettier_builder_1.concat([
|
|
202
|
+
ifBreak("(", ""),
|
|
203
|
+
prettier_builder_1.indent(prettier_builder_1.concat([
|
|
204
|
+
softline,
|
|
205
|
+
prettier_builder_1.group(printer_utils_1.rejectAndJoinSeps(sortedBinaryOperators.map(function (elt) { return prettier_builder_1.concat([" ", elt, line]); }), segmentsSplitByBinaryOperator))
|
|
206
|
+
])),
|
|
207
|
+
softline,
|
|
208
|
+
ifBreak(")")
|
|
209
|
+
]));
|
|
210
|
+
}
|
|
211
|
+
return prettier_builder_1.group(printer_utils_1.rejectAndJoinSeps(sortedBinaryOperators.map(function (elt) { return prettier_builder_1.concat([" ", elt, line]); }), segmentsSplitByBinaryOperator));
|
|
212
|
+
};
|
|
213
|
+
ExpressionsPrettierVisitor.prototype.unaryExpression = function (ctx) {
|
|
214
|
+
var unaryPrefixOperator = ctx.UnaryPrefixOperator
|
|
215
|
+
? ctx.UnaryPrefixOperator
|
|
216
|
+
: [];
|
|
217
|
+
var primary = this.visit(ctx.primary);
|
|
218
|
+
var unarySuffixOperator = ctx.UnarySuffixOperator
|
|
219
|
+
? ctx.UnarySuffixOperator
|
|
220
|
+
: [];
|
|
221
|
+
return printer_utils_1.rejectAndConcat([
|
|
222
|
+
printer_utils_1.rejectAndConcat(unaryPrefixOperator),
|
|
223
|
+
primary,
|
|
224
|
+
printer_utils_1.rejectAndConcat(unarySuffixOperator)
|
|
225
|
+
]);
|
|
226
|
+
};
|
|
227
|
+
ExpressionsPrettierVisitor.prototype.unaryExpressionNotPlusMinus = function (ctx) {
|
|
228
|
+
var unaryPrefixOperatorNotPlusMinus = ctx.UnaryPrefixOperatorNotPlusMinus // changed when moved to TS
|
|
229
|
+
? printer_utils_1.rejectAndJoin(" ", ctx.UnaryPrefixOperatorNotPlusMinus) // changed when moved to TS
|
|
230
|
+
: "";
|
|
231
|
+
var primary = this.visit(ctx.primary);
|
|
232
|
+
var unarySuffixOperator = ctx.UnarySuffixOperator // changed when moved to TS
|
|
233
|
+
? printer_utils_1.rejectAndJoin(" ", ctx.UnarySuffixOperator) // changed when moved to TS
|
|
234
|
+
: "";
|
|
235
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
236
|
+
unaryPrefixOperatorNotPlusMinus,
|
|
237
|
+
primary,
|
|
238
|
+
unarySuffixOperator
|
|
239
|
+
]);
|
|
240
|
+
};
|
|
241
|
+
ExpressionsPrettierVisitor.prototype.primary = function (ctx) {
|
|
242
|
+
var countMethodInvocation = printer_utils_1.isUniqueMethodInvocation(ctx.primarySuffix);
|
|
243
|
+
var primaryPrefix = this.visit(ctx.primaryPrefix, {
|
|
244
|
+
shouldBreakBeforeFirstMethodInvocation: countMethodInvocation > 1
|
|
245
|
+
});
|
|
246
|
+
var suffixes = [];
|
|
247
|
+
if (ctx.primarySuffix !== undefined) {
|
|
248
|
+
// edge case: https://github.com/jhipster/prettier-java/issues/381
|
|
249
|
+
var hasFirstInvocationArg = true;
|
|
250
|
+
if (ctx.primarySuffix.length > 1 &&
|
|
251
|
+
ctx.primarySuffix[1].children.methodInvocationSuffix &&
|
|
252
|
+
Object.keys(ctx.primarySuffix[1].children.methodInvocationSuffix[0].children).length === 2) {
|
|
253
|
+
hasFirstInvocationArg = false;
|
|
254
|
+
}
|
|
255
|
+
if (ctx.primarySuffix[0].children.Dot !== undefined &&
|
|
256
|
+
ctx.primaryPrefix[0].children.newExpression !== undefined) {
|
|
257
|
+
suffixes.push(softline);
|
|
258
|
+
}
|
|
259
|
+
suffixes.push(this.visit(ctx.primarySuffix[0], {
|
|
260
|
+
shouldDedent:
|
|
261
|
+
// dedent when simple method invocation
|
|
262
|
+
countMethodInvocation !== 1 &&
|
|
263
|
+
// dedent when (chain) method invocation
|
|
264
|
+
ctx.primaryPrefix[0] &&
|
|
265
|
+
ctx.primaryPrefix[0].children.fqnOrRefType &&
|
|
266
|
+
!(ctx.primaryPrefix[0].children.fqnOrRefType[0].children.Dot !==
|
|
267
|
+
undefined) &&
|
|
268
|
+
// indent when lambdaExpression
|
|
269
|
+
ctx.primarySuffix[0].children.methodInvocationSuffix &&
|
|
270
|
+
ctx.primarySuffix[0].children.methodInvocationSuffix[0].children
|
|
271
|
+
.argumentList &&
|
|
272
|
+
ctx.primarySuffix[0].children.methodInvocationSuffix[0].children
|
|
273
|
+
.argumentList[0].children.expression &&
|
|
274
|
+
ctx.primarySuffix[0].children.methodInvocationSuffix[0].children
|
|
275
|
+
.argumentList[0].children.expression[0].children
|
|
276
|
+
.lambdaExpression === undefined
|
|
277
|
+
}));
|
|
278
|
+
for (var i = 1; i < ctx.primarySuffix.length; i++) {
|
|
279
|
+
if (ctx.primarySuffix[i].children.Dot !== undefined &&
|
|
280
|
+
ctx.primarySuffix[i - 1].children.methodInvocationSuffix !== undefined) {
|
|
281
|
+
suffixes.push(softline);
|
|
282
|
+
}
|
|
283
|
+
suffixes.push(this.visit(ctx.primarySuffix[i]));
|
|
284
|
+
}
|
|
285
|
+
if (countMethodInvocation === 1 &&
|
|
286
|
+
ctx.primaryPrefix[0].children.newExpression === undefined) {
|
|
287
|
+
return prettier_builder_1.group(printer_utils_1.rejectAndConcat([
|
|
288
|
+
primaryPrefix,
|
|
289
|
+
hasFirstInvocationArg ? suffixes[0] : prettier_builder_1.indent(suffixes[0]),
|
|
290
|
+
prettier_builder_1.indent(printer_utils_1.rejectAndConcat(suffixes.slice(1)))
|
|
291
|
+
]));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return prettier_builder_1.group(printer_utils_1.rejectAndConcat([primaryPrefix, prettier_builder_1.indent(printer_utils_1.rejectAndConcat(suffixes))]));
|
|
295
|
+
};
|
|
296
|
+
ExpressionsPrettierVisitor.prototype.primaryPrefix = function (ctx, params) {
|
|
297
|
+
if (ctx.This || ctx.Void) {
|
|
298
|
+
return format_comments_1.printTokenWithComments(this.getSingle(ctx));
|
|
299
|
+
}
|
|
300
|
+
return this.visitSingle(ctx, params);
|
|
301
|
+
};
|
|
302
|
+
ExpressionsPrettierVisitor.prototype.primarySuffix = function (ctx, params) {
|
|
303
|
+
if (ctx.Dot) {
|
|
304
|
+
if (ctx.This) {
|
|
305
|
+
return printer_utils_1.rejectAndConcat([ctx.Dot[0], ctx.This[0]]);
|
|
306
|
+
}
|
|
307
|
+
else if (ctx.Identifier) {
|
|
308
|
+
var typeArguments = this.visit(ctx.typeArguments);
|
|
309
|
+
return printer_utils_1.rejectAndConcat([ctx.Dot[0], typeArguments, ctx.Identifier[0]]);
|
|
310
|
+
}
|
|
311
|
+
var unqualifiedClassInstanceCreationExpression = this.visit(ctx.unqualifiedClassInstanceCreationExpression);
|
|
312
|
+
return printer_utils_1.rejectAndConcat([
|
|
313
|
+
ctx.Dot[0],
|
|
314
|
+
unqualifiedClassInstanceCreationExpression
|
|
315
|
+
]);
|
|
316
|
+
}
|
|
317
|
+
return this.visitSingle(ctx, params);
|
|
318
|
+
};
|
|
319
|
+
ExpressionsPrettierVisitor.prototype.fqnOrRefType = function (ctx, params) {
|
|
320
|
+
var fqnOrRefTypePartFirst = this.visit(ctx.fqnOrRefTypePartFirst);
|
|
321
|
+
var fqnOrRefTypePartRest = this.mapVisit(ctx.fqnOrRefTypePartRest);
|
|
322
|
+
var dims = this.visit(ctx.dims);
|
|
323
|
+
var dots = ctx.Dot ? ctx.Dot : [];
|
|
324
|
+
var isMethodInvocation = ctx.Dot && ctx.Dot.length === 1;
|
|
325
|
+
if (params !== undefined &&
|
|
326
|
+
params.shouldBreakBeforeFirstMethodInvocation === true) {
|
|
327
|
+
// when fqnOrRefType is a method call from an object
|
|
328
|
+
if (isMethodInvocation) {
|
|
329
|
+
return printer_utils_1.rejectAndConcat([
|
|
330
|
+
prettier_builder_1.indent(printer_utils_1.rejectAndJoin(prettier_builder_1.concat([softline, dots[0]]), [
|
|
331
|
+
fqnOrRefTypePartFirst,
|
|
332
|
+
printer_utils_1.rejectAndJoinSeps(dots.slice(1), fqnOrRefTypePartRest),
|
|
333
|
+
dims
|
|
334
|
+
]))
|
|
335
|
+
]);
|
|
336
|
+
// otherwise it is a fully qualified name but we need to exclude when it is just a method call
|
|
337
|
+
}
|
|
338
|
+
else if (ctx.Dot) {
|
|
339
|
+
return prettier_builder_1.indent(printer_utils_1.rejectAndConcat([
|
|
340
|
+
printer_utils_1.rejectAndJoinSeps(dots.slice(0, dots.length - 1), __spreadArray([
|
|
341
|
+
fqnOrRefTypePartFirst
|
|
342
|
+
], fqnOrRefTypePartRest.slice(0, fqnOrRefTypePartRest.length - 1))),
|
|
343
|
+
softline,
|
|
344
|
+
printer_utils_1.rejectAndConcat([
|
|
345
|
+
dots[dots.length - 1],
|
|
346
|
+
fqnOrRefTypePartRest[fqnOrRefTypePartRest.length - 1]
|
|
347
|
+
]),
|
|
348
|
+
dims
|
|
349
|
+
]));
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return printer_utils_1.rejectAndConcat([
|
|
353
|
+
printer_utils_1.rejectAndJoinSeps(dots, __spreadArray([fqnOrRefTypePartFirst], fqnOrRefTypePartRest)),
|
|
354
|
+
dims
|
|
355
|
+
]);
|
|
356
|
+
};
|
|
357
|
+
ExpressionsPrettierVisitor.prototype.fqnOrRefTypePartFirst = function (ctx) {
|
|
358
|
+
var annotation = this.mapVisit(ctx.annotation);
|
|
359
|
+
var fqnOrRefTypeCommon = this.visit(ctx.fqnOrRefTypePartCommon);
|
|
360
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
361
|
+
printer_utils_1.rejectAndJoin(" ", annotation),
|
|
362
|
+
fqnOrRefTypeCommon
|
|
363
|
+
]);
|
|
364
|
+
};
|
|
365
|
+
ExpressionsPrettierVisitor.prototype.fqnOrRefTypePartRest = function (ctx) {
|
|
366
|
+
var annotation = this.mapVisit(ctx.annotation);
|
|
367
|
+
var fqnOrRefTypeCommon = this.visit(ctx.fqnOrRefTypePartCommon);
|
|
368
|
+
var typeArguments = this.visit(ctx.typeArguments);
|
|
369
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
370
|
+
printer_utils_1.rejectAndJoin(" ", annotation),
|
|
371
|
+
printer_utils_1.rejectAndConcat([typeArguments, fqnOrRefTypeCommon])
|
|
372
|
+
]);
|
|
373
|
+
};
|
|
374
|
+
ExpressionsPrettierVisitor.prototype.fqnOrRefTypePartCommon = function (ctx) {
|
|
375
|
+
var keyWord = null;
|
|
376
|
+
if (ctx.Identifier) {
|
|
377
|
+
keyWord = ctx.Identifier[0];
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
keyWord = ctx.Super[0];
|
|
381
|
+
}
|
|
382
|
+
var typeArguments = this.visit(ctx.typeArguments);
|
|
383
|
+
return printer_utils_1.rejectAndConcat([keyWord, typeArguments]);
|
|
384
|
+
};
|
|
385
|
+
ExpressionsPrettierVisitor.prototype.parenthesisExpression = function (ctx) {
|
|
386
|
+
var expression = this.visit(ctx.expression);
|
|
387
|
+
return printer_utils_1.putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
388
|
+
};
|
|
389
|
+
ExpressionsPrettierVisitor.prototype.castExpression = function (ctx) {
|
|
390
|
+
return this.visitSingle(ctx);
|
|
391
|
+
};
|
|
392
|
+
ExpressionsPrettierVisitor.prototype.primitiveCastExpression = function (ctx) {
|
|
393
|
+
var primitiveType = this.visit(ctx.primitiveType);
|
|
394
|
+
var unaryExpression = this.visit(ctx.unaryExpression);
|
|
395
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
396
|
+
printer_utils_1.rejectAndConcat([ctx.LBrace[0], primitiveType, ctx.RBrace[0]]),
|
|
397
|
+
unaryExpression
|
|
398
|
+
]);
|
|
399
|
+
};
|
|
400
|
+
ExpressionsPrettierVisitor.prototype.referenceTypeCastExpression = function (ctx) {
|
|
401
|
+
var referenceType = this.visit(ctx.referenceType);
|
|
402
|
+
var hasAdditionalBounds = ctx.additionalBound !== undefined;
|
|
403
|
+
var additionalBounds = printer_utils_1.rejectAndJoin(line, this.mapVisit(ctx.additionalBound));
|
|
404
|
+
var expression = ctx.lambdaExpression
|
|
405
|
+
? this.visit(ctx.lambdaExpression)
|
|
406
|
+
: this.visit(ctx.unaryExpressionNotPlusMinus);
|
|
407
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
408
|
+
printer_utils_1.putIntoBraces(printer_utils_1.rejectAndJoin(line, [referenceType, additionalBounds]), hasAdditionalBounds ? softline : "", ctx.LBrace[0], ctx.RBrace[0]),
|
|
409
|
+
expression
|
|
410
|
+
]);
|
|
411
|
+
};
|
|
412
|
+
ExpressionsPrettierVisitor.prototype.newExpression = function (ctx) {
|
|
413
|
+
return this.visitSingle(ctx);
|
|
414
|
+
};
|
|
415
|
+
ExpressionsPrettierVisitor.prototype.unqualifiedClassInstanceCreationExpression = function (ctx) {
|
|
416
|
+
var typeArguments = this.visit(ctx.typeArguments);
|
|
417
|
+
var classOrInterfaceTypeToInstantiate = this.visit(ctx.classOrInterfaceTypeToInstantiate);
|
|
418
|
+
var content = utils_2.printArgumentListWithBraces.call(this, ctx.argumentList, ctx.RBrace[0], ctx.LBrace[0]);
|
|
419
|
+
var classBody = this.visit(ctx.classBody);
|
|
420
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
421
|
+
ctx.New[0],
|
|
422
|
+
printer_utils_1.rejectAndConcat([
|
|
423
|
+
typeArguments,
|
|
424
|
+
classOrInterfaceTypeToInstantiate,
|
|
425
|
+
content
|
|
426
|
+
]),
|
|
427
|
+
classBody
|
|
428
|
+
]);
|
|
429
|
+
};
|
|
430
|
+
ExpressionsPrettierVisitor.prototype.classOrInterfaceTypeToInstantiate = function (ctx) {
|
|
431
|
+
var _this = this;
|
|
432
|
+
var tokens = printer_utils_1.sortAnnotationIdentifier(ctx.annotation, ctx.Identifier);
|
|
433
|
+
var segments = [];
|
|
434
|
+
var currentSegment = [];
|
|
435
|
+
forEach_1.default(tokens, function (token) {
|
|
436
|
+
if (utils_1.isAnnotationCstNode(token)) {
|
|
437
|
+
currentSegment.push(_this.visit([token]));
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
currentSegment.push(token);
|
|
441
|
+
segments.push(printer_utils_1.rejectAndJoin(" ", currentSegment));
|
|
442
|
+
currentSegment = [];
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
var typeArgumentsOrDiamond = this.visit(ctx.typeArgumentsOrDiamond);
|
|
446
|
+
var dots = ctx.Dot ? ctx.Dot : [];
|
|
447
|
+
return printer_utils_1.rejectAndConcat([
|
|
448
|
+
printer_utils_1.rejectAndJoinSeps(dots, segments),
|
|
449
|
+
typeArgumentsOrDiamond
|
|
450
|
+
]);
|
|
451
|
+
};
|
|
452
|
+
ExpressionsPrettierVisitor.prototype.typeArgumentsOrDiamond = function (ctx) {
|
|
453
|
+
return this.visitSingle(ctx);
|
|
454
|
+
};
|
|
455
|
+
ExpressionsPrettierVisitor.prototype.diamond = function (ctx) {
|
|
456
|
+
return prettier_builder_1.concat([ctx.Less[0], ctx.Greater[0]]);
|
|
457
|
+
};
|
|
458
|
+
ExpressionsPrettierVisitor.prototype.methodInvocationSuffix = function (ctx, params) {
|
|
459
|
+
var isSingleLambda = expressions_utils_1.isArgumentListSingleLambda(ctx.argumentList);
|
|
460
|
+
if (isSingleLambda) {
|
|
461
|
+
return utils_2.printSingleLambdaInvocation.call(this, ctx.argumentList, ctx.RBrace[0], ctx.LBrace[0]);
|
|
462
|
+
}
|
|
463
|
+
var argumentList = this.visit(ctx.argumentList);
|
|
464
|
+
if (params && params.shouldDedent) {
|
|
465
|
+
return prettier_builder_1.dedent(printer_utils_1.putIntoBraces(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]));
|
|
466
|
+
}
|
|
467
|
+
return printer_utils_1.putIntoBraces(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
468
|
+
};
|
|
469
|
+
ExpressionsPrettierVisitor.prototype.argumentList = function (ctx, params) {
|
|
470
|
+
var expressions = this.mapVisit(ctx.expression, params);
|
|
471
|
+
var commas = ctx.Comma ? ctx.Comma.map(function (elt) { return prettier_builder_1.concat([elt, line]); }) : [];
|
|
472
|
+
return printer_utils_1.rejectAndJoinSeps(commas, expressions);
|
|
473
|
+
};
|
|
474
|
+
ExpressionsPrettierVisitor.prototype.arrayCreationExpression = function (ctx) {
|
|
475
|
+
var type = ctx.primitiveType
|
|
476
|
+
? this.visit(ctx.primitiveType)
|
|
477
|
+
: this.visit(ctx.classOrInterfaceType);
|
|
478
|
+
var suffix = ctx.arrayCreationDefaultInitSuffix
|
|
479
|
+
? this.visit(ctx.arrayCreationDefaultInitSuffix)
|
|
480
|
+
: this.visit(ctx.arrayCreationExplicitInitSuffix);
|
|
481
|
+
return printer_utils_1.rejectAndConcat([prettier_builder_1.concat([ctx.New[0], " "]), type, suffix]);
|
|
482
|
+
};
|
|
483
|
+
ExpressionsPrettierVisitor.prototype.arrayCreationDefaultInitSuffix = function (ctx) {
|
|
484
|
+
var dimExprs = this.visit(ctx.dimExprs);
|
|
485
|
+
var dims = this.visit(ctx.dims);
|
|
486
|
+
return printer_utils_1.rejectAndConcat([dimExprs, dims]);
|
|
487
|
+
};
|
|
488
|
+
ExpressionsPrettierVisitor.prototype.arrayCreationExplicitInitSuffix = function (ctx) {
|
|
489
|
+
var dims = this.visit(ctx.dims);
|
|
490
|
+
var arrayInitializer = this.visit(ctx.arrayInitializer);
|
|
491
|
+
return printer_utils_1.rejectAndJoin(" ", [dims, arrayInitializer]);
|
|
492
|
+
};
|
|
493
|
+
ExpressionsPrettierVisitor.prototype.dimExprs = function (ctx) {
|
|
494
|
+
var dimExpr = this.mapVisit(ctx.dimExpr);
|
|
495
|
+
return printer_utils_1.rejectAndConcat(dimExpr);
|
|
496
|
+
};
|
|
497
|
+
ExpressionsPrettierVisitor.prototype.dimExpr = function (ctx) {
|
|
498
|
+
var annotations = this.mapVisit(ctx.annotation);
|
|
499
|
+
var expression = this.visit(ctx.expression);
|
|
500
|
+
return printer_utils_1.rejectAndJoin(" ", [
|
|
501
|
+
printer_utils_1.rejectAndJoin(" ", annotations),
|
|
502
|
+
printer_utils_1.rejectAndConcat([ctx.LSquare[0], expression, ctx.RSquare[0]])
|
|
503
|
+
]);
|
|
504
|
+
};
|
|
505
|
+
ExpressionsPrettierVisitor.prototype.classLiteralSuffix = function (ctx) {
|
|
506
|
+
var squares = [];
|
|
507
|
+
if (ctx.LSquare) {
|
|
508
|
+
for (var i = 0; i < ctx.LSquare.length; i++) {
|
|
509
|
+
squares.push(prettier_builder_1.concat([ctx.LSquare[i], ctx.RSquare[i]]));
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
return printer_utils_1.rejectAndConcat(__spreadArray(__spreadArray([], squares), [ctx.Dot[0], ctx.Class[0]]));
|
|
513
|
+
};
|
|
514
|
+
ExpressionsPrettierVisitor.prototype.arrayAccessSuffix = function (ctx) {
|
|
515
|
+
var expression = this.visit(ctx.expression);
|
|
516
|
+
return printer_utils_1.rejectAndConcat([ctx.LSquare[0], expression, ctx.RSquare[0]]);
|
|
517
|
+
};
|
|
518
|
+
ExpressionsPrettierVisitor.prototype.methodReferenceSuffix = function (ctx) {
|
|
519
|
+
var typeArguments = this.visit(ctx.typeArguments);
|
|
520
|
+
var identifierOrNew = ctx.New ? ctx.New[0] : ctx.Identifier[0];
|
|
521
|
+
return printer_utils_1.rejectAndConcat([ctx.ColonColon[0], typeArguments, identifierOrNew]);
|
|
522
|
+
};
|
|
523
|
+
ExpressionsPrettierVisitor.prototype.pattern = function (ctx) {
|
|
524
|
+
return this.visitSingle(ctx);
|
|
525
|
+
};
|
|
526
|
+
ExpressionsPrettierVisitor.prototype.typePattern = function (ctx) {
|
|
527
|
+
return this.visitSingle(ctx);
|
|
528
|
+
};
|
|
529
|
+
ExpressionsPrettierVisitor.prototype.identifyNewExpressionType = function () {
|
|
530
|
+
return "identifyNewExpressionType";
|
|
531
|
+
};
|
|
532
|
+
ExpressionsPrettierVisitor.prototype.isLambdaExpression = function () {
|
|
533
|
+
return "isLambdaExpression";
|
|
534
|
+
};
|
|
535
|
+
ExpressionsPrettierVisitor.prototype.isCastExpression = function () {
|
|
536
|
+
return "isCastExpression";
|
|
537
|
+
};
|
|
538
|
+
ExpressionsPrettierVisitor.prototype.isPrimitiveCastExpression = function () {
|
|
539
|
+
return "isPrimitiveCastExpression";
|
|
540
|
+
};
|
|
541
|
+
ExpressionsPrettierVisitor.prototype.isReferenceTypeCastExpression = function () {
|
|
542
|
+
return "isReferenceTypeCastExpression";
|
|
543
|
+
};
|
|
544
|
+
ExpressionsPrettierVisitor.prototype.isRefTypeInMethodRef = function () {
|
|
545
|
+
return "isRefTypeInMethodRef";
|
|
546
|
+
};
|
|
547
|
+
return ExpressionsPrettierVisitor;
|
|
548
|
+
}(base_cst_printer_1.BaseCstPrettierPrinter));
|
|
549
|
+
exports.ExpressionsPrettierVisitor = ExpressionsPrettierVisitor;
|