prettier-plugin-java 2.5.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 +13 -17
- 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 +281 -326
- package/dist/printers/classes.js +449 -496
- 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 +377 -391
- 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/LICENSE
CHANGED
package/dist/base-cst-printer.js
CHANGED
|
@@ -1,60 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.BaseCstPrettierPrinter = void 0;
|
|
19
|
-
var java_parser_1 = require("java-parser");
|
|
20
|
-
var format_comments_1 = require("./printers/comments/format-comments");
|
|
21
|
-
var BaseCstPrettierPrinter = /** @class */ (function (_super) {
|
|
22
|
-
__extends(BaseCstPrettierPrinter, _super);
|
|
23
|
-
function BaseCstPrettierPrinter() {
|
|
24
|
-
var _this = _super.call(this) || this;
|
|
25
|
-
_this.mapVisit = function (elements, params) {
|
|
1
|
+
import { BaseJavaCstVisitor } from "java-parser";
|
|
2
|
+
import { printNodeWithComments } from "./printers/comments/format-comments.js";
|
|
3
|
+
export class BaseCstPrettierPrinter extends BaseJavaCstVisitor {
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
this.mapVisit = (elements, params) => {
|
|
26
7
|
if (elements === undefined) {
|
|
27
8
|
// TODO: can optimize this by returning an immutable empty array singleton.
|
|
28
9
|
return [];
|
|
29
10
|
}
|
|
30
|
-
return elements.map(
|
|
11
|
+
return elements.map(element => this.visit(element, params));
|
|
31
12
|
};
|
|
32
|
-
|
|
33
|
-
|
|
13
|
+
this.getSingle = (ctx) => {
|
|
14
|
+
const ctxKeys = Object.keys(ctx);
|
|
34
15
|
if (ctxKeys.length !== 1) {
|
|
35
|
-
throw Error(
|
|
16
|
+
throw Error(`Expecting single key CST ctx but found: <${ctxKeys.length}> keys`);
|
|
36
17
|
}
|
|
37
|
-
|
|
38
|
-
|
|
18
|
+
const singleElementKey = ctxKeys[0];
|
|
19
|
+
const singleElementValues = ctx[singleElementKey];
|
|
39
20
|
if ((singleElementValues === null || singleElementValues === void 0 ? void 0 : singleElementValues.length) !== 1) {
|
|
40
|
-
throw Error(
|
|
21
|
+
throw Error(`Expecting single item in CST ctx key but found: <${singleElementValues === null || singleElementValues === void 0 ? void 0 : singleElementValues.length}> items`);
|
|
41
22
|
}
|
|
42
23
|
return singleElementValues[0];
|
|
43
24
|
};
|
|
44
25
|
// @ts-ignore
|
|
45
|
-
|
|
46
|
-
|
|
26
|
+
this.orgVisit = this.visit;
|
|
27
|
+
this.visit = function (ctx, inParam) {
|
|
47
28
|
if (ctx === undefined) {
|
|
48
29
|
// empty Doc
|
|
49
30
|
return "";
|
|
50
31
|
}
|
|
51
|
-
|
|
32
|
+
const node = Array.isArray(ctx) ? ctx[0] : ctx;
|
|
52
33
|
if (node.ignore) {
|
|
53
34
|
try {
|
|
54
|
-
|
|
35
|
+
const startOffset = node.leadingComments !== undefined
|
|
55
36
|
? node.leadingComments[0].startOffset
|
|
56
37
|
: node.location.startOffset;
|
|
57
|
-
|
|
38
|
+
const endOffset = (node.trailingComments !== undefined
|
|
58
39
|
? node.trailingComments[node.trailingComments.length - 1].endOffset
|
|
59
40
|
: node.location.endOffset);
|
|
60
41
|
return this.prettierOptions.originalText.substring(startOffset, endOffset + 1);
|
|
@@ -64,14 +45,11 @@ var BaseCstPrettierPrinter = /** @class */ (function (_super) {
|
|
|
64
45
|
"\nThere might be a problem with prettier-ignore, please report an issue on https://github.com/jhipster/prettier-java/issues");
|
|
65
46
|
}
|
|
66
47
|
}
|
|
67
|
-
return
|
|
48
|
+
return printNodeWithComments(node, this.orgVisit.call(this, node, inParam));
|
|
68
49
|
};
|
|
69
|
-
|
|
70
|
-
|
|
50
|
+
this.visitSingle = function (ctx, params) {
|
|
51
|
+
const singleElement = this.getSingle(ctx);
|
|
71
52
|
return this.visit(singleElement, params);
|
|
72
53
|
};
|
|
73
|
-
return _this;
|
|
74
54
|
}
|
|
75
|
-
|
|
76
|
-
}(java_parser_1.BaseJavaCstVisitor));
|
|
77
|
-
exports.BaseCstPrettierPrinter = BaseCstPrettierPrinter;
|
|
55
|
+
}
|
package/dist/cst-printer.js
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var names_1 = require("./printers/names");
|
|
12
|
-
var types_values_and_variables_1 = require("./printers/types-values-and-variables");
|
|
13
|
-
var packages_and_modules_1 = require("./printers/packages-and-modules");
|
|
1
|
+
import { BaseCstPrettierPrinter } from "./base-cst-printer.js";
|
|
2
|
+
import { ArraysPrettierVisitor } from "./printers/arrays.js";
|
|
3
|
+
import { BlocksAndStatementPrettierVisitor } from "./printers/blocks-and-statements.js";
|
|
4
|
+
import { ClassesPrettierVisitor } from "./printers/classes.js";
|
|
5
|
+
import { ExpressionsPrettierVisitor } from "./printers/expressions.js";
|
|
6
|
+
import { InterfacesPrettierVisitor } from "./printers/interfaces.js";
|
|
7
|
+
import { LexicalStructurePrettierVisitor } from "./printers/lexical-structure.js";
|
|
8
|
+
import { NamesPrettierVisitor } from "./printers/names.js";
|
|
9
|
+
import { TypesValuesAndVariablesPrettierVisitor } from "./printers/types-values-and-variables.js";
|
|
10
|
+
import { PackagesAndModulesPrettierVisitor } from "./printers/packages-and-modules.js";
|
|
14
11
|
// Mixins for the win
|
|
15
|
-
mixInMethods(
|
|
16
|
-
function mixInMethods() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
classesToMix.forEach(function (from) {
|
|
22
|
-
var fromMethodsNames = Object.getOwnPropertyNames(from.prototype);
|
|
23
|
-
var fromPureMethodsName = fromMethodsNames.filter(function (methodName) { return methodName !== "constructor"; });
|
|
24
|
-
fromPureMethodsName.forEach(function (methodName) {
|
|
12
|
+
mixInMethods(ArraysPrettierVisitor, BlocksAndStatementPrettierVisitor, ClassesPrettierVisitor, ExpressionsPrettierVisitor, InterfacesPrettierVisitor, LexicalStructurePrettierVisitor, NamesPrettierVisitor, TypesValuesAndVariablesPrettierVisitor, PackagesAndModulesPrettierVisitor);
|
|
13
|
+
function mixInMethods(...classesToMix) {
|
|
14
|
+
classesToMix.forEach(from => {
|
|
15
|
+
const fromMethodsNames = Object.getOwnPropertyNames(from.prototype);
|
|
16
|
+
const fromPureMethodsName = fromMethodsNames.filter(methodName => methodName !== "constructor");
|
|
17
|
+
fromPureMethodsName.forEach(methodName => {
|
|
25
18
|
// @ts-ignore
|
|
26
|
-
|
|
19
|
+
BaseCstPrettierPrinter.prototype[methodName] = from.prototype[methodName];
|
|
27
20
|
});
|
|
28
21
|
});
|
|
29
22
|
}
|
|
30
|
-
|
|
23
|
+
const prettyPrinter = new BaseCstPrettierPrinter();
|
|
31
24
|
// TODO: do we need the "path" and "print" arguments passed by prettier
|
|
32
25
|
// see https://github.com/prettier/prettier/issues/5747
|
|
33
|
-
function createPrettierDoc(cstNode, options) {
|
|
26
|
+
export function createPrettierDoc(cstNode, options) {
|
|
34
27
|
prettyPrinter.prettierOptions = options;
|
|
35
28
|
return prettyPrinter.visit(cstNode);
|
|
36
29
|
}
|
|
37
|
-
exports.createPrettierDoc = createPrettierDoc;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var languages = [
|
|
1
|
+
import parse from "./parser.js";
|
|
2
|
+
import print from "./printer.js";
|
|
3
|
+
import options from "./options.js";
|
|
4
|
+
const languages = [
|
|
6
5
|
{
|
|
7
6
|
name: "Java",
|
|
8
7
|
parsers: ["java"],
|
|
@@ -25,20 +24,20 @@ function locEnd( /* node */) {
|
|
|
25
24
|
function hasPragma(text) {
|
|
26
25
|
return /^\/\*\*[\n][\t\s]+\*\s@(prettier|format)[\n][\t\s]+\*\//.test(text);
|
|
27
26
|
}
|
|
28
|
-
|
|
27
|
+
const parsers = {
|
|
29
28
|
java: {
|
|
30
|
-
parse
|
|
29
|
+
parse,
|
|
31
30
|
astFormat: "java",
|
|
32
|
-
locStart
|
|
33
|
-
locEnd
|
|
34
|
-
hasPragma
|
|
31
|
+
locStart,
|
|
32
|
+
locEnd,
|
|
33
|
+
hasPragma
|
|
35
34
|
}
|
|
36
35
|
};
|
|
37
36
|
function canAttachComment(node) {
|
|
38
37
|
return node.ast_type && node.ast_type !== "comment";
|
|
39
38
|
}
|
|
40
39
|
function printComment(commentPath) {
|
|
41
|
-
|
|
40
|
+
const comment = commentPath.getValue();
|
|
42
41
|
switch (comment.ast_type) {
|
|
43
42
|
case "comment":
|
|
44
43
|
return comment.value;
|
|
@@ -50,18 +49,18 @@ function clean(ast, newObj) {
|
|
|
50
49
|
delete newObj.lineno;
|
|
51
50
|
delete newObj.col_offset;
|
|
52
51
|
}
|
|
53
|
-
|
|
52
|
+
const printers = {
|
|
54
53
|
java: {
|
|
55
|
-
print
|
|
54
|
+
print,
|
|
56
55
|
// hasPrettierIgnore,
|
|
57
|
-
printComment
|
|
58
|
-
canAttachComment
|
|
56
|
+
printComment,
|
|
57
|
+
canAttachComment,
|
|
59
58
|
massageAstNode: clean
|
|
60
59
|
}
|
|
61
60
|
};
|
|
62
|
-
|
|
63
|
-
languages
|
|
64
|
-
printers
|
|
65
|
-
parsers
|
|
66
|
-
options
|
|
61
|
+
export default {
|
|
62
|
+
languages,
|
|
63
|
+
printers,
|
|
64
|
+
parsers,
|
|
65
|
+
options
|
|
67
66
|
};
|
package/dist/options.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
module.exports = {
|
|
1
|
+
export default {
|
|
3
2
|
entrypoint: {
|
|
4
3
|
type: "choice",
|
|
5
4
|
category: "Global",
|
|
@@ -53,9 +52,6 @@ module.exports = {
|
|
|
53
52
|
{ value: "resource" },
|
|
54
53
|
{ value: "yieldStatement" },
|
|
55
54
|
{ value: "variableAccess" },
|
|
56
|
-
{ value: "isBasicForStatement" },
|
|
57
|
-
{ value: "isLocalVariableDeclaration" },
|
|
58
|
-
{ value: "isClassicSwitchLabel" },
|
|
59
55
|
{ value: "classDeclaration" },
|
|
60
56
|
{ value: "normalClassDeclaration" },
|
|
61
57
|
{ value: "classModifier" },
|
|
@@ -122,10 +118,7 @@ module.exports = {
|
|
|
122
118
|
{ value: "recordBody" },
|
|
123
119
|
{ value: "recordBodyDeclaration" },
|
|
124
120
|
{ value: "compactConstructorDeclaration" },
|
|
125
|
-
{ value: "isClassDeclaration" },
|
|
126
|
-
{ value: "identifyClassBodyDeclarationType" },
|
|
127
121
|
{ value: "isDims" },
|
|
128
|
-
{ value: "isCompactConstructorDeclaration" },
|
|
129
122
|
{ value: "expression" },
|
|
130
123
|
{ value: "lambdaExpression" },
|
|
131
124
|
{ value: "lambdaParameters" },
|
|
@@ -167,6 +160,11 @@ module.exports = {
|
|
|
167
160
|
{ value: "classLiteralSuffix" },
|
|
168
161
|
{ value: "arrayAccessSuffix" },
|
|
169
162
|
{ value: "methodReferenceSuffix" },
|
|
163
|
+
{ value: "templateArgument" },
|
|
164
|
+
{ value: "template" },
|
|
165
|
+
{ value: "stringTemplate" },
|
|
166
|
+
{ value: "textBlockTemplate" },
|
|
167
|
+
{ value: "embeddedExpression" },
|
|
170
168
|
{ value: "pattern" },
|
|
171
169
|
{ value: "typePattern" },
|
|
172
170
|
{ value: "recordPattern" },
|
|
@@ -174,11 +172,6 @@ module.exports = {
|
|
|
174
172
|
{ value: "componentPattern" },
|
|
175
173
|
{ value: "unnamedPattern" },
|
|
176
174
|
{ value: "guard" },
|
|
177
|
-
{ value: "identifyNewExpressionType" },
|
|
178
|
-
{ value: "isLambdaExpression" },
|
|
179
|
-
{ value: "isCastExpression" },
|
|
180
|
-
{ value: "isPrimitiveCastExpression" },
|
|
181
|
-
{ value: "isReferenceTypeCastExpression" },
|
|
182
175
|
{ value: "isRefTypeInMethodRef" },
|
|
183
176
|
{ value: "interfaceDeclaration" },
|
|
184
177
|
{ value: "normalInterfaceDeclaration" },
|
|
@@ -203,9 +196,6 @@ module.exports = {
|
|
|
203
196
|
{ value: "elementValue" },
|
|
204
197
|
{ value: "elementValueArrayInitializer" },
|
|
205
198
|
{ value: "elementValueList" },
|
|
206
|
-
{ value: "identifyInterfaceBodyDeclarationType" },
|
|
207
|
-
{ value: "identifyAnnotationBodyDeclarationType" },
|
|
208
|
-
{ value: "isSimpleElementValueAnnotation" },
|
|
209
199
|
{ value: "literal" },
|
|
210
200
|
{ value: "integerLiteral" },
|
|
211
201
|
{ value: "floatingPointLiteral" },
|
|
@@ -232,7 +222,6 @@ module.exports = {
|
|
|
232
222
|
{ value: "usesModuleDirective" },
|
|
233
223
|
{ value: "providesModuleDirective" },
|
|
234
224
|
{ value: "requiresModifier" },
|
|
235
|
-
{ value: "isModuleCompilationUnit" },
|
|
236
225
|
{ value: "primitiveType" },
|
|
237
226
|
{ value: "numericType" },
|
|
238
227
|
{ value: "integralType" },
|
|
@@ -254,5 +243,12 @@ module.exports = {
|
|
|
254
243
|
{ value: "wildcardBounds" }
|
|
255
244
|
],
|
|
256
245
|
description: "Prettify from the entrypoint, allowing to use prettier on snippet."
|
|
246
|
+
},
|
|
247
|
+
trailingComma: {
|
|
248
|
+
type: "choice",
|
|
249
|
+
category: "Java",
|
|
250
|
+
default: "all",
|
|
251
|
+
choices: ["all", "none"],
|
|
252
|
+
description: "Print trailing commas wherever possible when multi-line."
|
|
257
253
|
}
|
|
258
254
|
};
|
package/dist/parser.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function parse(text, parsers, opts) {
|
|
1
|
+
import javaParser from "java-parser";
|
|
2
|
+
export default function parse(text, parsers, opts) {
|
|
4
3
|
return javaParser.parse(text, opts.entrypoint);
|
|
5
4
|
}
|
|
6
|
-
module.exports = parse;
|
package/dist/printer.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
var createPrettierDoc = require("./cst-printer").createPrettierDoc;
|
|
1
|
+
import { createPrettierDoc } from "./cst-printer.js";
|
|
3
2
|
// eslint-disable-next-line no-unused-vars
|
|
4
|
-
function genericPrint(path, options, print) {
|
|
5
|
-
|
|
3
|
+
export default function genericPrint(path, options, print) {
|
|
4
|
+
const node = path.getValue();
|
|
6
5
|
return createPrettierDoc(node, options);
|
|
7
6
|
}
|
|
8
|
-
module.exports = genericPrint;
|
package/dist/printers/arrays.js
CHANGED
|
@@ -1,49 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.ArraysPrettierVisitor = void 0;
|
|
19
|
-
var printer_utils_1 = require("./printer-utils");
|
|
20
|
-
var doc_1 = require("prettier/doc");
|
|
21
|
-
var base_cst_printer_1 = require("../base-cst-printer");
|
|
22
|
-
var line = doc_1.builders.line;
|
|
23
|
-
var ArraysPrettierVisitor = /** @class */ (function (_super) {
|
|
24
|
-
__extends(ArraysPrettierVisitor, _super);
|
|
25
|
-
function ArraysPrettierVisitor() {
|
|
26
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
27
|
-
}
|
|
28
|
-
ArraysPrettierVisitor.prototype.arrayInitializer = function (ctx) {
|
|
29
|
-
var optionalVariableInitializerList = this.visit(ctx.variableInitializerList);
|
|
30
|
-
return (0, printer_utils_1.printArrayList)({
|
|
1
|
+
import { printArrayList, rejectAndConcat, rejectAndJoinSeps } from "./printer-utils.js";
|
|
2
|
+
import { builders } from "prettier/doc";
|
|
3
|
+
import { BaseCstPrettierPrinter } from "../base-cst-printer.js";
|
|
4
|
+
const { line } = builders;
|
|
5
|
+
export class ArraysPrettierVisitor extends BaseCstPrettierPrinter {
|
|
6
|
+
arrayInitializer(ctx) {
|
|
7
|
+
const optionalVariableInitializerList = this.visit(ctx.variableInitializerList);
|
|
8
|
+
return printArrayList({
|
|
31
9
|
list: optionalVariableInitializerList,
|
|
32
10
|
extraComma: ctx.Comma,
|
|
33
11
|
LCurly: ctx.LCurly[0],
|
|
34
12
|
RCurly: ctx.RCurly[0],
|
|
35
13
|
trailingComma: this.prettierOptions.trailingComma
|
|
36
14
|
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
? ctx.Comma.map(
|
|
42
|
-
return
|
|
15
|
+
}
|
|
16
|
+
variableInitializerList(ctx) {
|
|
17
|
+
const variableInitializers = this.mapVisit(ctx.variableInitializer);
|
|
18
|
+
const commas = ctx.Comma
|
|
19
|
+
? ctx.Comma.map(comma => {
|
|
20
|
+
return rejectAndConcat([comma, line]);
|
|
43
21
|
})
|
|
44
22
|
: [];
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
}(base_cst_printer_1.BaseCstPrettierPrinter));
|
|
49
|
-
exports.ArraysPrettierVisitor = ArraysPrettierVisitor;
|
|
23
|
+
return rejectAndJoinSeps(commas, variableInitializers);
|
|
24
|
+
}
|
|
25
|
+
}
|