prettier-plugin-java 2.4.0 → 2.6.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 +22 -44
- package/dist/cst-printer.js +19 -27
- package/dist/index.js +19 -20
- package/dist/options.js +16 -21
- package/dist/parser.js +2 -4
- package/dist/printer.js +3 -5
- package/dist/printers/arrays.js +17 -41
- package/dist/printers/blocks-and-statements.js +289 -356
- package/dist/printers/classes.js +451 -495
- package/dist/printers/comments/comments-utils.js +5 -13
- package/dist/printers/comments/format-comments.js +34 -50
- package/dist/printers/comments/handle-comments.js +17 -23
- package/dist/printers/expressions.js +378 -386
- package/dist/printers/interfaces.js +148 -181
- package/dist/printers/lexical-structure.js +26 -58
- package/dist/printers/names.js +29 -53
- package/dist/printers/packages-and-modules.js +116 -143
- package/dist/printers/prettier-builder.js +21 -31
- package/dist/printers/printer-utils.js +173 -221
- package/dist/printers/types-values-and-variables.js +111 -149
- package/dist/types/utils.js +6 -15
- package/dist/utils/expressions-utils.js +7 -11
- package/dist/utils/index.js +2 -12
- package/dist/utils/isEmptyDoc.js +2 -4
- package/dist/utils/printArgumentListWithBraces.js +29 -19
- package/dist/utils/printSingleLambdaInvocation.js +15 -17
- package/package.json +10 -13
- package/dist/src/base-cst-printer.js +0 -77
- package/dist/src/cst-printer.js +0 -37
- package/dist/src/index.js +0 -67
- package/dist/src/options.js +0 -256
- package/dist/src/parser.js +0 -7
- package/dist/src/printer.js +0 -28
- package/dist/src/printers/arrays.js +0 -49
- package/dist/src/printers/blocks-and-statements.js +0 -493
- package/dist/src/printers/classes.js +0 -724
- package/dist/src/printers/comments/comments-utils.js +0 -29
- package/dist/src/printers/comments/format-comments.js +0 -187
- package/dist/src/printers/comments/handle-comments.js +0 -38
- package/dist/src/printers/expressions.js +0 -549
- package/dist/src/printers/interfaces.js +0 -251
- package/dist/src/printers/lexical-structure.js +0 -43
- package/dist/src/printers/names.js +0 -53
- package/dist/src/printers/packages-and-modules.js +0 -185
- package/dist/src/printers/prettier-builder.js +0 -47
- package/dist/src/printers/printer-utils.js +0 -577
- package/dist/src/printers/types-values-and-variables.js +0 -183
- package/dist/src/types/utils.js +0 -29
- package/dist/src/utils/expressions-utils.js +0 -29
- package/dist/src/utils/index.js +0 -10
- package/dist/src/utils/printArgumentListWithBraces.js +0 -21
- package/dist/src/utils/printSingleLambdaInvocation.js +0 -20
- package/dist/test/babel-register.js +0 -3
- package/dist/test/repository-test/core-test.js +0 -12
- package/dist/test/repository-test/jhipster-1-test.js +0 -17
- package/dist/test/repository-test/jhipster-2-test.js +0 -16
- package/dist/test/test-utils.js +0 -215
- package/dist/test/unit-test/annotation_type_declaration/annotation_type_declaration-spec.js +0 -6
- package/dist/test/unit-test/args/args-spec.js +0 -6
- package/dist/test/unit-test/assert/assert-spec.js +0 -6
- package/dist/test/unit-test/binary_expressions/binary_expressions-spec.js +0 -6
- package/dist/test/unit-test/blank_lines/blank_lines-spec.js +0 -6
- package/dist/test/unit-test/bug-fixes/bug-fixes-spec.js +0 -6
- package/dist/test/unit-test/cast/cast-spec.js +0 -6
- package/dist/test/unit-test/char_literal/char_literal-spec.js +0 -6
- package/dist/test/unit-test/classes/multiple_classes-spec.js +0 -6
- package/dist/test/unit-test/comments/comments-spec.js +0 -14
- package/dist/test/unit-test/complex_generic_class/complex_generic_class-spec.js +0 -6
- package/dist/test/unit-test/constructors/constructors-spec.js +0 -6
- package/dist/test/unit-test/empty_statement/empty_statement-spec.js +0 -6
- package/dist/test/unit-test/enum/enum-spec.js +0 -6
- package/dist/test/unit-test/expressions/expressions-spec.js +0 -6
- package/dist/test/unit-test/extends_abstract_class/extends_abstract_class-spec.js +0 -6
- package/dist/test/unit-test/extends_abstract_class_and_implements_interfaces/extends_abstract_class_and_implements_interfaces-spec.js +0 -6
- package/dist/test/unit-test/for/for-spec.js +0 -6
- package/dist/test/unit-test/generic_class/generic_class-spec.js +0 -6
- package/dist/test/unit-test/generic_questionmark/generic_questionmark-spec.js +0 -6
- package/dist/test/unit-test/hello-world/hello-word-spec.js +0 -6
- package/dist/test/unit-test/if/if-spec.js +0 -6
- package/dist/test/unit-test/indent/indent-spec.js +0 -6
- package/dist/test/unit-test/instantiation/instantiation-spec.js +0 -6
- package/dist/test/unit-test/interface/interface-spec.js +0 -6
- package/dist/test/unit-test/lambda/lambda-spec.js +0 -6
- package/dist/test/unit-test/marker_annotations/marker_annotations-spec.js +0 -6
- package/dist/test/unit-test/member_chain/member_chain-spec.js +0 -6
- package/dist/test/unit-test/method_reference/method_reference-spec.js +0 -6
- package/dist/test/unit-test/modifiers/modifiers-spec.js +0 -6
- package/dist/test/unit-test/modules/modules-spec.js +0 -6
- package/dist/test/unit-test/package_and_imports/package_and_imports-spec.js +0 -34
- package/dist/test/unit-test/pattern-matching/pattern-matching-spec.js +0 -6
- package/dist/test/unit-test/prettier-ignore/prettier-ignore-spec.js +0 -28
- package/dist/test/unit-test/records/records-spec.js +0 -6
- package/dist/test/unit-test/return/return-spec.js +0 -6
- package/dist/test/unit-test/sealed/sealed-spec.js +0 -6
- package/dist/test/unit-test/snippets/arrays/array-initializer.spec.js +0 -94
- package/dist/test/unit-test/snippets/arrays/variable-initializer-list.spec.js +0 -19
- package/dist/test/unit-test/snippets/blocks-and-statements/switch.spec.js +0 -26
- package/dist/test/unit-test/snippets/classes/class-body.spec.js +0 -181
- package/dist/test/unit-test/snippets/classes/enum-body.spec.js +0 -87
- package/dist/test/unit-test/snippets/classes/variableDeclarator/test.spec.js +0 -186
- package/dist/test/unit-test/snippets/interfaces/element-value-array-initializer.spec.js +0 -85
- package/dist/test/unit-test/snippets/names/ambiguousName/test.spec.js +0 -19
- package/dist/test/unit-test/snippets/names/expressionName/test.spec.js +0 -19
- package/dist/test/unit-test/snippets/names/methodName/test.spec.js +0 -12
- package/dist/test/unit-test/snippets/names/packageOrTypeName/test.spec.js +0 -19
- package/dist/test/unit-test/snippets/types-values-and-variables/floatingPointType/test.spec.js +0 -19
- package/dist/test/unit-test/snippets/types-values-and-variables/integralType/test.spec.js +0 -40
- package/dist/test/unit-test/snippets/types-values-and-variables/numericType/test.spec.js +0 -88
- package/dist/test/unit-test/snippets/types-values-and-variables/wildcard/test.spec.js +0 -112
- package/dist/test/unit-test/snippets/types-values-and-variables/wildcardBounds/test.spec.js +0 -81
- package/dist/test/unit-test/switch/switch-spec.js +0 -6
- package/dist/test/unit-test/synchronized/synchronized-spec.js +0 -6
- package/dist/test/unit-test/text-blocks/text-block-spec.js +0 -6
- package/dist/test/unit-test/throws/throws-spec.js +0 -6
- package/dist/test/unit-test/try_catch/try_catch-spec.js +0 -6
- package/dist/test/unit-test/types/types-spec.js +0 -6
- package/dist/test/unit-test/variables/variables-spec.js +0 -6
- package/dist/test/unit-test/while/while-spec.js +0 -6
- package/dist/test/unit-test/yield-statement/yield-statement-spec.js +0 -6
|
@@ -1,103 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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 __assign = (this && this.__assign) || function () {
|
|
18
|
-
__assign = Object.assign || function(t) {
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
}
|
|
24
|
-
return t;
|
|
25
|
-
};
|
|
26
|
-
return __assign.apply(this, arguments);
|
|
27
|
-
};
|
|
28
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
29
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
|
-
if (ar || !(i in from)) {
|
|
31
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32
|
-
ar[i] = from[i];
|
|
33
|
-
}
|
|
1
|
+
import { builders } from "prettier/doc";
|
|
2
|
+
import { concat, group, indent, join } from "./prettier-builder.js";
|
|
3
|
+
import { printTokenWithComments } from "./comments/format-comments.js";
|
|
4
|
+
import { hasLeadingLineComments, hasTrailingLineComments } from "./comments/comments-utils.js";
|
|
5
|
+
import { displaySemicolon, getBlankLinesSeparator, isStatementEmptyStatement, putIntoBraces, rejectAndConcat, rejectAndJoin, rejectAndJoinSeps, rejectSeparators, sortModifiers } from "./printer-utils.js";
|
|
6
|
+
import { BaseCstPrettierPrinter } from "../base-cst-printer.js";
|
|
7
|
+
const { line, softline, hardline } = builders;
|
|
8
|
+
export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
|
|
9
|
+
block(ctx) {
|
|
10
|
+
const blockStatements = this.visit(ctx.blockStatements);
|
|
11
|
+
return putIntoBraces(blockStatements, hardline, ctx.LCurly[0], ctx.RCurly[0]);
|
|
34
12
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var format_comments_1 = require("./comments/format-comments");
|
|
42
|
-
var comments_utils_1 = require("./comments/comments-utils");
|
|
43
|
-
var printer_utils_1 = require("./printer-utils");
|
|
44
|
-
var base_cst_printer_1 = require("../base-cst-printer");
|
|
45
|
-
var line = doc_1.builders.line, softline = doc_1.builders.softline, hardline = doc_1.builders.hardline;
|
|
46
|
-
var BlocksAndStatementPrettierVisitor = /** @class */ (function (_super) {
|
|
47
|
-
__extends(BlocksAndStatementPrettierVisitor, _super);
|
|
48
|
-
function BlocksAndStatementPrettierVisitor() {
|
|
49
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
50
|
-
}
|
|
51
|
-
BlocksAndStatementPrettierVisitor.prototype.block = function (ctx) {
|
|
52
|
-
var blockStatements = this.visit(ctx.blockStatements);
|
|
53
|
-
return (0, printer_utils_1.putIntoBraces)(blockStatements, hardline, ctx.LCurly[0], ctx.RCurly[0]);
|
|
54
|
-
};
|
|
55
|
-
BlocksAndStatementPrettierVisitor.prototype.blockStatements = function (ctx) {
|
|
56
|
-
var blockStatement = this.mapVisit(ctx.blockStatement);
|
|
57
|
-
var separators = (0, printer_utils_1.rejectSeparators)((0, printer_utils_1.getBlankLinesSeparator)(ctx.blockStatement), blockStatement);
|
|
58
|
-
return (0, printer_utils_1.rejectAndJoinSeps)(separators, blockStatement);
|
|
59
|
-
};
|
|
60
|
-
BlocksAndStatementPrettierVisitor.prototype.blockStatement = function (ctx) {
|
|
13
|
+
blockStatements(ctx) {
|
|
14
|
+
const blockStatement = this.mapVisit(ctx.blockStatement);
|
|
15
|
+
const separators = rejectSeparators(getBlankLinesSeparator(ctx.blockStatement), blockStatement);
|
|
16
|
+
return rejectAndJoinSeps(separators, blockStatement);
|
|
17
|
+
}
|
|
18
|
+
blockStatement(ctx) {
|
|
61
19
|
return this.visitSingle(ctx);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
20
|
+
}
|
|
21
|
+
localVariableDeclarationStatement(ctx) {
|
|
22
|
+
const localVariableDeclaration = this.visit(ctx.localVariableDeclaration);
|
|
23
|
+
return rejectAndConcat([localVariableDeclaration, ctx.Semicolon[0]]);
|
|
24
|
+
}
|
|
25
|
+
localVariableDeclaration(ctx) {
|
|
26
|
+
const modifiers = sortModifiers(ctx.variableModifier);
|
|
27
|
+
const firstAnnotations = this.mapVisit(modifiers[0]);
|
|
28
|
+
const finalModifiers = this.mapVisit(modifiers[1]);
|
|
29
|
+
const localVariableType = this.visit(ctx.localVariableType);
|
|
30
|
+
const variableDeclaratorList = this.visit(ctx.variableDeclaratorList);
|
|
31
|
+
return rejectAndJoin(hardline, [
|
|
32
|
+
rejectAndJoin(hardline, firstAnnotations),
|
|
33
|
+
rejectAndJoin(" ", [
|
|
34
|
+
rejectAndJoin(" ", finalModifiers),
|
|
77
35
|
localVariableType,
|
|
78
36
|
variableDeclaratorList
|
|
79
37
|
])
|
|
80
38
|
]);
|
|
81
|
-
}
|
|
82
|
-
|
|
39
|
+
}
|
|
40
|
+
localVariableType(ctx) {
|
|
83
41
|
if (ctx.unannType) {
|
|
84
42
|
return this.visitSingle(ctx);
|
|
85
43
|
}
|
|
86
|
-
return
|
|
87
|
-
}
|
|
88
|
-
|
|
44
|
+
return printTokenWithComments(this.getSingle(ctx));
|
|
45
|
+
}
|
|
46
|
+
statement(ctx, params) {
|
|
89
47
|
// handling Labeled statements comments
|
|
90
48
|
if (ctx.labeledStatement !== undefined) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
49
|
+
const newLabelStatement = Object.assign({}, ctx.labeledStatement[0]);
|
|
50
|
+
const newColon = Object.assign({}, ctx.labeledStatement[0].children.Colon[0]);
|
|
51
|
+
const newStatement = Object.assign({}, ctx.labeledStatement[0].children.statement[0]);
|
|
52
|
+
const labeledStatementLeadingComments = [];
|
|
95
53
|
if (newColon.trailingComments !== undefined) {
|
|
96
|
-
labeledStatementLeadingComments.push
|
|
54
|
+
labeledStatementLeadingComments.push(...newColon.trailingComments);
|
|
97
55
|
delete newColon.trailingComments;
|
|
98
56
|
}
|
|
99
57
|
if (newStatement.leadingComments !== undefined) {
|
|
100
|
-
labeledStatementLeadingComments.push
|
|
58
|
+
labeledStatementLeadingComments.push(...newStatement.leadingComments);
|
|
101
59
|
delete newStatement.leadingComments;
|
|
102
60
|
}
|
|
103
61
|
if (labeledStatementLeadingComments.length !== 0) {
|
|
@@ -108,129 +66,128 @@ var BlocksAndStatementPrettierVisitor = /** @class */ (function (_super) {
|
|
|
108
66
|
return this.visit([newLabelStatement]);
|
|
109
67
|
}
|
|
110
68
|
return this.visitSingle(ctx, params);
|
|
111
|
-
}
|
|
112
|
-
|
|
69
|
+
}
|
|
70
|
+
statementWithoutTrailingSubstatement(ctx, params) {
|
|
113
71
|
return this.visitSingle(ctx, params);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
return
|
|
126
|
-
}
|
|
127
|
-
|
|
72
|
+
}
|
|
73
|
+
emptyStatement(ctx, params) {
|
|
74
|
+
return displaySemicolon(ctx.Semicolon[0], params);
|
|
75
|
+
}
|
|
76
|
+
labeledStatement(ctx) {
|
|
77
|
+
const identifier = ctx.Identifier[0];
|
|
78
|
+
const statement = this.visit(ctx.statement);
|
|
79
|
+
return rejectAndJoin(ctx.Colon[0], [identifier, statement]);
|
|
80
|
+
}
|
|
81
|
+
expressionStatement(ctx) {
|
|
82
|
+
const statementExpression = this.visit(ctx.statementExpression);
|
|
83
|
+
return rejectAndConcat([statementExpression, ctx.Semicolon[0]]);
|
|
84
|
+
}
|
|
85
|
+
statementExpression(ctx) {
|
|
128
86
|
return this.visitSingle(ctx);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
var
|
|
132
|
-
|
|
87
|
+
}
|
|
88
|
+
ifStatement(ctx) {
|
|
89
|
+
var _a;
|
|
90
|
+
const expression = this.visit(ctx.expression);
|
|
91
|
+
const ifStatement = this.visit(ctx.statement[0], {
|
|
133
92
|
allowEmptyStatement: true
|
|
134
93
|
});
|
|
135
|
-
|
|
136
|
-
|
|
94
|
+
const ifSeparator = isStatementEmptyStatement(ifStatement) ? "" : " ";
|
|
95
|
+
let elsePart = "";
|
|
137
96
|
if (ctx.Else !== undefined) {
|
|
138
|
-
|
|
97
|
+
const elseStatement = this.visit(ctx.statement[1], {
|
|
139
98
|
allowEmptyStatement: true
|
|
140
99
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
100
|
+
const elseSeparator = isStatementEmptyStatement(elseStatement) ? "" : " ";
|
|
101
|
+
const elseOnSameLine = hasTrailingLineComments(ctx.statement[0]) ||
|
|
102
|
+
hasLeadingLineComments(ctx.Else[0]) ||
|
|
103
|
+
!((_a = ctx.statement[0].children.statementWithoutTrailingSubstatement) === null || _a === void 0 ? void 0 : _a[0].children.block)
|
|
144
104
|
? hardline
|
|
145
105
|
: " ";
|
|
146
|
-
elsePart =
|
|
147
|
-
|
|
106
|
+
elsePart = rejectAndJoin(elseSeparator, [
|
|
107
|
+
concat([elseOnSameLine, ctx.Else[0]]),
|
|
148
108
|
elseStatement
|
|
149
109
|
]);
|
|
150
110
|
}
|
|
151
|
-
return
|
|
152
|
-
|
|
111
|
+
return rejectAndConcat([
|
|
112
|
+
rejectAndJoin(" ", [
|
|
153
113
|
ctx.If[0],
|
|
154
|
-
|
|
155
|
-
|
|
114
|
+
concat([
|
|
115
|
+
putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
156
116
|
ifSeparator
|
|
157
117
|
])
|
|
158
118
|
]),
|
|
159
119
|
ifStatement,
|
|
160
120
|
elsePart
|
|
161
121
|
]);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return
|
|
167
|
-
|
|
168
|
-
|
|
122
|
+
}
|
|
123
|
+
assertStatement(ctx) {
|
|
124
|
+
const expressions = this.mapVisit(ctx.expression);
|
|
125
|
+
const colon = ctx.Colon ? ctx.Colon[0] : ":";
|
|
126
|
+
return rejectAndConcat([
|
|
127
|
+
concat([ctx.Assert[0], " "]),
|
|
128
|
+
rejectAndJoin(concat([" ", colon, " "]), expressions),
|
|
169
129
|
ctx.Semicolon[0]
|
|
170
130
|
]);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
return
|
|
131
|
+
}
|
|
132
|
+
switchStatement(ctx) {
|
|
133
|
+
const expression = this.visit(ctx.expression);
|
|
134
|
+
const switchBlock = this.visit(ctx.switchBlock);
|
|
135
|
+
return rejectAndJoin(" ", [
|
|
176
136
|
ctx.Switch[0],
|
|
177
|
-
|
|
137
|
+
putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
178
138
|
switchBlock
|
|
179
139
|
]);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
140
|
+
}
|
|
141
|
+
switchBlock(ctx) {
|
|
142
|
+
const switchCases = ctx.switchBlockStatementGroup !== undefined
|
|
183
143
|
? this.mapVisit(ctx.switchBlockStatementGroup)
|
|
184
144
|
: this.mapVisit(ctx.switchRule);
|
|
185
|
-
return
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
var
|
|
189
|
-
|
|
190
|
-
|
|
145
|
+
return putIntoBraces(rejectAndJoin(hardline, switchCases), hardline, ctx.LCurly[0], ctx.RCurly[0]);
|
|
146
|
+
}
|
|
147
|
+
switchBlockStatementGroup(ctx) {
|
|
148
|
+
var _a, _b, _c;
|
|
149
|
+
const switchLabel = this.visit(ctx.switchLabel);
|
|
150
|
+
const blockStatements = this.visit(ctx.blockStatements);
|
|
151
|
+
const statements = (_a = ctx.blockStatements) === null || _a === void 0 ? void 0 : _a[0].children.blockStatement;
|
|
152
|
+
const hasSingleStatementBlock = (statements === null || statements === void 0 ? void 0 : statements.length) === 1 &&
|
|
153
|
+
((_c = (_b = statements[0].children.statement) === null || _b === void 0 ? void 0 : _b[0].children.statementWithoutTrailingSubstatement) === null || _c === void 0 ? void 0 : _c[0].children.block) !== undefined;
|
|
154
|
+
return concat([
|
|
191
155
|
switchLabel,
|
|
192
156
|
ctx.Colon[0],
|
|
193
|
-
|
|
157
|
+
hasSingleStatementBlock
|
|
158
|
+
? concat([" ", blockStatements])
|
|
159
|
+
: blockStatements && indent([hardline, blockStatements])
|
|
194
160
|
]);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
var
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
BlocksAndStatementPrettierVisitor.prototype.caseOrDefaultLabel = function (ctx) {
|
|
206
|
-
if (ctx.Case) {
|
|
207
|
-
var caseLabelElements = this.mapVisit(ctx.caseLabelElement);
|
|
208
|
-
var commas = ctx.Comma
|
|
209
|
-
? ctx.Comma.map(function (elt) {
|
|
210
|
-
return (0, prettier_builder_1.concat)([elt, line]);
|
|
211
|
-
})
|
|
212
|
-
: [];
|
|
213
|
-
return (0, prettier_builder_1.group)((0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndConcat)([
|
|
214
|
-
(0, prettier_builder_1.concat)([ctx.Case[0], " "]),
|
|
215
|
-
(0, printer_utils_1.rejectAndJoinSeps)(commas, caseLabelElements)
|
|
216
|
-
])));
|
|
217
|
-
}
|
|
218
|
-
return (0, prettier_builder_1.concat)([ctx.Default[0]]);
|
|
219
|
-
};
|
|
220
|
-
BlocksAndStatementPrettierVisitor.prototype.caseLabelElement = function (ctx) {
|
|
221
|
-
if (ctx.Default || ctx.Null) {
|
|
222
|
-
return this.getSingle(ctx);
|
|
161
|
+
}
|
|
162
|
+
switchLabel(ctx) {
|
|
163
|
+
var _a, _b, _c;
|
|
164
|
+
const Case = (_a = ctx.Case) === null || _a === void 0 ? void 0 : _a[0];
|
|
165
|
+
const commas = (_b = ctx.Comma) === null || _b === void 0 ? void 0 : _b.map(elt => concat([elt, line]));
|
|
166
|
+
if (ctx.caseConstant || ctx.Null) {
|
|
167
|
+
const caseConstants = ctx.Null
|
|
168
|
+
? [ctx.Null[0], (_c = ctx.Default) === null || _c === void 0 ? void 0 : _c[0]]
|
|
169
|
+
: this.mapVisit(ctx.caseConstant);
|
|
170
|
+
return group(indent(join(" ", [Case, rejectAndJoinSeps(commas, caseConstants)])));
|
|
223
171
|
}
|
|
224
172
|
else if (ctx.pattern) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
173
|
+
const patterns = this.mapVisit(ctx.pattern);
|
|
174
|
+
const guard = this.visit(ctx.guard);
|
|
175
|
+
const multiplePatterns = ctx.pattern.length > 1;
|
|
176
|
+
const separator = multiplePatterns ? line : " ";
|
|
177
|
+
const contents = join(separator, [
|
|
178
|
+
Case,
|
|
179
|
+
rejectAndJoinSeps(commas, patterns)
|
|
180
|
+
]);
|
|
181
|
+
return group(rejectAndJoin(separator, [
|
|
182
|
+
multiplePatterns ? indent(contents) : contents,
|
|
183
|
+
guard
|
|
184
|
+
]));
|
|
228
185
|
}
|
|
229
|
-
return
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
186
|
+
return printTokenWithComments(ctx.Default[0]);
|
|
187
|
+
}
|
|
188
|
+
switchRule(ctx) {
|
|
189
|
+
const switchLabel = this.visit(ctx.switchLabel);
|
|
190
|
+
let caseInstruction;
|
|
234
191
|
if (ctx.throwStatement !== undefined) {
|
|
235
192
|
caseInstruction = this.visit(ctx.throwStatement);
|
|
236
193
|
}
|
|
@@ -238,265 +195,241 @@ var BlocksAndStatementPrettierVisitor = /** @class */ (function (_super) {
|
|
|
238
195
|
caseInstruction = this.visit(ctx.block);
|
|
239
196
|
}
|
|
240
197
|
else {
|
|
241
|
-
caseInstruction =
|
|
198
|
+
caseInstruction = concat([this.visit(ctx.expression), ctx.Semicolon[0]]);
|
|
242
199
|
}
|
|
243
|
-
return
|
|
244
|
-
}
|
|
245
|
-
|
|
200
|
+
return concat([switchLabel, " ", ctx.Arrow[0], " ", caseInstruction]);
|
|
201
|
+
}
|
|
202
|
+
caseConstant(ctx) {
|
|
246
203
|
return this.visitSingle(ctx);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
204
|
+
}
|
|
205
|
+
whileStatement(ctx) {
|
|
206
|
+
const expression = this.visit(ctx.expression);
|
|
207
|
+
const statement = this.visit(ctx.statement[0], {
|
|
251
208
|
allowEmptyStatement: true
|
|
252
209
|
});
|
|
253
|
-
|
|
254
|
-
return
|
|
210
|
+
const statementSeparator = isStatementEmptyStatement(statement) ? "" : " ";
|
|
211
|
+
return rejectAndJoin(" ", [
|
|
255
212
|
ctx.While[0],
|
|
256
|
-
|
|
257
|
-
|
|
213
|
+
rejectAndJoin(statementSeparator, [
|
|
214
|
+
putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
258
215
|
statement
|
|
259
216
|
])
|
|
260
217
|
]);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
218
|
+
}
|
|
219
|
+
doStatement(ctx) {
|
|
220
|
+
const statement = this.visit(ctx.statement[0], {
|
|
264
221
|
allowEmptyStatement: true
|
|
265
222
|
});
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
return
|
|
269
|
-
|
|
223
|
+
const statementSeparator = isStatementEmptyStatement(statement) ? "" : " ";
|
|
224
|
+
const expression = this.visit(ctx.expression);
|
|
225
|
+
return rejectAndJoin(" ", [
|
|
226
|
+
rejectAndJoin(statementSeparator, [ctx.Do[0], statement]),
|
|
270
227
|
ctx.While[0],
|
|
271
|
-
|
|
272
|
-
|
|
228
|
+
rejectAndConcat([
|
|
229
|
+
putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
273
230
|
ctx.Semicolon[0]
|
|
274
231
|
])
|
|
275
232
|
]);
|
|
276
|
-
}
|
|
277
|
-
|
|
233
|
+
}
|
|
234
|
+
forStatement(ctx) {
|
|
278
235
|
return this.visitSingle(ctx);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
236
|
+
}
|
|
237
|
+
basicForStatement(ctx) {
|
|
238
|
+
const forInit = this.visit(ctx.forInit);
|
|
239
|
+
const expression = this.visit(ctx.expression);
|
|
240
|
+
const forUpdate = this.visit(ctx.forUpdate);
|
|
241
|
+
const statement = this.visit(ctx.statement[0], {
|
|
285
242
|
allowEmptyStatement: true
|
|
286
243
|
});
|
|
287
|
-
|
|
288
|
-
return
|
|
289
|
-
|
|
244
|
+
const statementSeparator = isStatementEmptyStatement(statement) ? "" : " ";
|
|
245
|
+
return rejectAndConcat([
|
|
246
|
+
rejectAndJoin(" ", [
|
|
290
247
|
ctx.For[0],
|
|
291
|
-
|
|
248
|
+
putIntoBraces(rejectAndConcat([
|
|
292
249
|
forInit,
|
|
293
|
-
|
|
294
|
-
|
|
250
|
+
rejectAndJoin(line, [ctx.Semicolon[0], expression]),
|
|
251
|
+
rejectAndJoin(line, [ctx.Semicolon[1], forUpdate])
|
|
295
252
|
]), softline, ctx.LBrace[0], ctx.RBrace[0])
|
|
296
253
|
]),
|
|
297
254
|
statementSeparator,
|
|
298
255
|
statement
|
|
299
256
|
]);
|
|
300
|
-
}
|
|
301
|
-
|
|
257
|
+
}
|
|
258
|
+
forInit(ctx) {
|
|
302
259
|
return this.visitSingle(ctx);
|
|
303
|
-
}
|
|
304
|
-
|
|
260
|
+
}
|
|
261
|
+
forUpdate(ctx) {
|
|
305
262
|
return this.visitSingle(ctx);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
? ctx.Comma.map(
|
|
311
|
-
return
|
|
263
|
+
}
|
|
264
|
+
statementExpressionList(ctx) {
|
|
265
|
+
const statementExpressions = this.mapVisit(ctx.statementExpression);
|
|
266
|
+
const commas = ctx.Comma
|
|
267
|
+
? ctx.Comma.map(elt => {
|
|
268
|
+
return concat([printTokenWithComments(elt), " "]);
|
|
312
269
|
})
|
|
313
270
|
: [];
|
|
314
|
-
return
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
271
|
+
return rejectAndJoinSeps(commas, statementExpressions);
|
|
272
|
+
}
|
|
273
|
+
enhancedForStatement(ctx) {
|
|
274
|
+
const variableModifiers = this.mapVisit(ctx.variableModifier);
|
|
275
|
+
const localVariableType = this.visit(ctx.localVariableType);
|
|
276
|
+
const variableDeclaratorId = this.visit(ctx.variableDeclaratorId);
|
|
277
|
+
const expression = this.visit(ctx.expression);
|
|
278
|
+
const statement = this.visit(ctx.statement[0], {
|
|
322
279
|
allowEmptyStatement: true
|
|
323
280
|
});
|
|
324
|
-
|
|
325
|
-
return
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
281
|
+
const statementSeparator = isStatementEmptyStatement(statement) ? "" : " ";
|
|
282
|
+
return rejectAndConcat([
|
|
283
|
+
rejectAndJoin(" ", [ctx.For[0], ctx.LBrace[0]]),
|
|
284
|
+
rejectAndJoin(" ", [
|
|
285
|
+
rejectAndJoin(" ", variableModifiers),
|
|
329
286
|
localVariableType,
|
|
330
287
|
variableDeclaratorId
|
|
331
288
|
]),
|
|
332
|
-
|
|
289
|
+
concat([" ", ctx.Colon[0], " "]),
|
|
333
290
|
expression,
|
|
334
|
-
|
|
291
|
+
concat([ctx.RBrace[0], statementSeparator]),
|
|
335
292
|
statement
|
|
336
293
|
]);
|
|
337
|
-
}
|
|
338
|
-
|
|
294
|
+
}
|
|
295
|
+
breakStatement(ctx) {
|
|
339
296
|
if (ctx.Identifier) {
|
|
340
|
-
|
|
341
|
-
return
|
|
342
|
-
|
|
297
|
+
const identifier = ctx.Identifier[0];
|
|
298
|
+
return rejectAndConcat([
|
|
299
|
+
concat([ctx.Break[0], " "]),
|
|
343
300
|
identifier,
|
|
344
301
|
ctx.Semicolon[0]
|
|
345
302
|
]);
|
|
346
303
|
}
|
|
347
|
-
return
|
|
348
|
-
}
|
|
349
|
-
|
|
304
|
+
return concat([ctx.Break[0], ctx.Semicolon[0]]);
|
|
305
|
+
}
|
|
306
|
+
continueStatement(ctx) {
|
|
350
307
|
if (ctx.Identifier) {
|
|
351
|
-
|
|
352
|
-
return
|
|
353
|
-
|
|
308
|
+
const identifier = ctx.Identifier[0];
|
|
309
|
+
return rejectAndConcat([
|
|
310
|
+
concat([ctx.Continue[0], " "]),
|
|
354
311
|
identifier,
|
|
355
312
|
ctx.Semicolon[0]
|
|
356
313
|
]);
|
|
357
314
|
}
|
|
358
|
-
return
|
|
359
|
-
}
|
|
360
|
-
|
|
315
|
+
return rejectAndConcat([ctx.Continue[0], ctx.Semicolon[0]]);
|
|
316
|
+
}
|
|
317
|
+
returnStatement(ctx) {
|
|
361
318
|
if (ctx.expression) {
|
|
362
|
-
|
|
319
|
+
const expression = this.visit(ctx.expression, {
|
|
363
320
|
addParenthesisToWrapStatement: true
|
|
364
321
|
});
|
|
365
|
-
return
|
|
366
|
-
|
|
322
|
+
return rejectAndConcat([
|
|
323
|
+
concat([ctx.Return[0], " "]),
|
|
367
324
|
expression,
|
|
368
325
|
ctx.Semicolon[0]
|
|
369
326
|
]);
|
|
370
327
|
}
|
|
371
|
-
return
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
return
|
|
376
|
-
|
|
328
|
+
return rejectAndConcat([ctx.Return[0], ctx.Semicolon[0]]);
|
|
329
|
+
}
|
|
330
|
+
throwStatement(ctx) {
|
|
331
|
+
const expression = this.visit(ctx.expression);
|
|
332
|
+
return rejectAndConcat([
|
|
333
|
+
concat([ctx.Throw[0], " "]),
|
|
377
334
|
expression,
|
|
378
335
|
ctx.Semicolon[0]
|
|
379
336
|
]);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
return
|
|
385
|
-
|
|
337
|
+
}
|
|
338
|
+
synchronizedStatement(ctx) {
|
|
339
|
+
const expression = this.visit(ctx.expression);
|
|
340
|
+
const block = this.visit(ctx.block);
|
|
341
|
+
return rejectAndConcat([
|
|
342
|
+
join(" ", [
|
|
386
343
|
ctx.Synchronized[0],
|
|
387
|
-
|
|
388
|
-
|
|
344
|
+
concat([
|
|
345
|
+
putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]),
|
|
389
346
|
" "
|
|
390
347
|
])
|
|
391
348
|
]),
|
|
392
349
|
block
|
|
393
350
|
]);
|
|
394
|
-
}
|
|
395
|
-
|
|
351
|
+
}
|
|
352
|
+
tryStatement(ctx) {
|
|
396
353
|
if (ctx.tryWithResourcesStatement) {
|
|
397
354
|
return this.visit(ctx.tryWithResourcesStatement);
|
|
398
355
|
}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
return
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
return
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
return
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
356
|
+
const block = this.visit(ctx.block);
|
|
357
|
+
const catches = this.visit(ctx.catches);
|
|
358
|
+
const finallyBlock = this.visit(ctx.finally);
|
|
359
|
+
return rejectAndJoin(" ", [ctx.Try[0], block, catches, finallyBlock]);
|
|
360
|
+
}
|
|
361
|
+
catches(ctx) {
|
|
362
|
+
const catchClauses = this.mapVisit(ctx.catchClause);
|
|
363
|
+
return rejectAndJoin(" ", catchClauses);
|
|
364
|
+
}
|
|
365
|
+
catchClause(ctx) {
|
|
366
|
+
const catchFormalParameter = this.visit(ctx.catchFormalParameter);
|
|
367
|
+
const block = this.visit(ctx.block);
|
|
368
|
+
return rejectAndConcat([
|
|
369
|
+
group(rejectAndConcat([
|
|
370
|
+
rejectAndJoin(" ", [ctx.Catch[0], ctx.LBrace[0]]),
|
|
371
|
+
indent(rejectAndConcat([softline, catchFormalParameter])),
|
|
415
372
|
softline,
|
|
416
|
-
|
|
373
|
+
concat([ctx.RBrace[0], " "])
|
|
417
374
|
])),
|
|
418
375
|
block
|
|
419
376
|
]);
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
return
|
|
426
|
-
|
|
377
|
+
}
|
|
378
|
+
catchFormalParameter(ctx) {
|
|
379
|
+
const variableModifiers = this.mapVisit(ctx.variableModifier);
|
|
380
|
+
const catchType = this.visit(ctx.catchType);
|
|
381
|
+
const variableDeclaratorId = this.visit(ctx.variableDeclaratorId);
|
|
382
|
+
return rejectAndJoin(" ", [
|
|
383
|
+
rejectAndJoin(" ", variableModifiers),
|
|
427
384
|
catchType,
|
|
428
385
|
variableDeclaratorId
|
|
429
386
|
]);
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
return
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
return
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
return
|
|
387
|
+
}
|
|
388
|
+
catchType(ctx) {
|
|
389
|
+
const unannClassType = this.visit(ctx.unannClassType);
|
|
390
|
+
const classTypes = this.mapVisit(ctx.classType);
|
|
391
|
+
const ors = ctx.Or ? ctx.Or.map(elt => concat([line, elt, " "])) : [];
|
|
392
|
+
return group(rejectAndJoinSeps(ors, [unannClassType, ...classTypes]));
|
|
393
|
+
}
|
|
394
|
+
finally(ctx) {
|
|
395
|
+
const block = this.visit(ctx.block);
|
|
396
|
+
return rejectAndJoin(" ", [ctx.Finally[0], block]);
|
|
397
|
+
}
|
|
398
|
+
tryWithResourcesStatement(ctx) {
|
|
399
|
+
const resourceSpecification = this.visit(ctx.resourceSpecification);
|
|
400
|
+
const block = this.visit(ctx.block);
|
|
401
|
+
const catches = this.visit(ctx.catches);
|
|
402
|
+
const finallyBlock = this.visit(ctx.finally);
|
|
403
|
+
return rejectAndJoin(" ", [
|
|
447
404
|
ctx.Try[0],
|
|
448
405
|
resourceSpecification,
|
|
449
406
|
block,
|
|
450
407
|
catches,
|
|
451
408
|
finallyBlock
|
|
452
409
|
]);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
return
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
? ctx.Semicolon.map(
|
|
463
|
-
return
|
|
410
|
+
}
|
|
411
|
+
resourceSpecification(ctx) {
|
|
412
|
+
const resourceList = this.visit(ctx.resourceList);
|
|
413
|
+
const optionalSemicolon = ctx.Semicolon ? ctx.Semicolon[0] : "";
|
|
414
|
+
return putIntoBraces(rejectAndConcat([resourceList, optionalSemicolon]), softline, ctx.LBrace[0], ctx.RBrace[0]);
|
|
415
|
+
}
|
|
416
|
+
resourceList(ctx) {
|
|
417
|
+
const resources = this.mapVisit(ctx.resource);
|
|
418
|
+
const semicolons = ctx.Semicolon
|
|
419
|
+
? ctx.Semicolon.map(elt => {
|
|
420
|
+
return concat([elt, line]);
|
|
464
421
|
})
|
|
465
422
|
: [""];
|
|
466
|
-
return
|
|
467
|
-
}
|
|
468
|
-
|
|
423
|
+
return rejectAndJoinSeps(semicolons, resources);
|
|
424
|
+
}
|
|
425
|
+
resource(ctx) {
|
|
469
426
|
return this.visitSingle(ctx);
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
return (0, printer_utils_1.rejectAndJoin)(" ", [
|
|
477
|
-
(0, printer_utils_1.rejectAndJoin)(" ", variableModifiers),
|
|
478
|
-
localVariableType,
|
|
479
|
-
identifier,
|
|
480
|
-
ctx.Equals[0],
|
|
481
|
-
expression
|
|
482
|
-
]);
|
|
483
|
-
};
|
|
484
|
-
BlocksAndStatementPrettierVisitor.prototype.yieldStatement = function (ctx) {
|
|
485
|
-
var expression = this.visit(ctx.expression);
|
|
486
|
-
return (0, prettier_builder_1.join)(" ", [ctx.Yield[0], (0, prettier_builder_1.concat)([expression, ctx.Semicolon[0]])]);
|
|
487
|
-
};
|
|
488
|
-
BlocksAndStatementPrettierVisitor.prototype.variableAccess = function (ctx) {
|
|
427
|
+
}
|
|
428
|
+
yieldStatement(ctx) {
|
|
429
|
+
const expression = this.visit(ctx.expression);
|
|
430
|
+
return join(" ", [ctx.Yield[0], concat([expression, ctx.Semicolon[0]])]);
|
|
431
|
+
}
|
|
432
|
+
variableAccess(ctx) {
|
|
489
433
|
return this.visitSingle(ctx);
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
return "isBasicForStatement";
|
|
493
|
-
};
|
|
494
|
-
BlocksAndStatementPrettierVisitor.prototype.isLocalVariableDeclaration = function () {
|
|
495
|
-
return "isLocalVariableDeclaration";
|
|
496
|
-
};
|
|
497
|
-
BlocksAndStatementPrettierVisitor.prototype.isClassicSwitchLabel = function () {
|
|
498
|
-
return "isClassicSwitchLabel";
|
|
499
|
-
};
|
|
500
|
-
return BlocksAndStatementPrettierVisitor;
|
|
501
|
-
}(base_cst_printer_1.BaseCstPrettierPrinter));
|
|
502
|
-
exports.BlocksAndStatementPrettierVisitor = BlocksAndStatementPrettierVisitor;
|
|
434
|
+
}
|
|
435
|
+
}
|