prettier-plugin-java 2.6.4 → 2.6.6

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 CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- Copyright 2018-2024 the original author or authors from the JHipster project
2
+ Copyright 2018-2025 the original author or authors from the JHipster project
3
3
 
4
4
  Apache License
5
5
  Version 2.0, January 2004
package/dist/index.js CHANGED
@@ -6,8 +6,8 @@ const languages = [
6
6
  name: "Java",
7
7
  parsers: ["java"],
8
8
  group: "Java",
9
- tmScope: "text.html.vue",
10
- aceMode: "html",
9
+ tmScope: "text.html.vue", // FIXME
10
+ aceMode: "html", // FIXME
11
11
  codemirrorMode: "clike",
12
12
  codemirrorMimeType: "text/x-java",
13
13
  extensions: [".java"],
@@ -76,7 +76,7 @@ export class BlocksAndStatementPrettierVisitor extends BaseCstPrettierPrinter {
76
76
  labeledStatement(ctx) {
77
77
  const identifier = ctx.Identifier[0];
78
78
  const statement = this.visit(ctx.statement);
79
- return rejectAndJoin(ctx.Colon[0], [identifier, statement]);
79
+ return concat([identifier, ctx.Colon[0], " ", statement]);
80
80
  }
81
81
  expressionStatement(ctx) {
82
82
  const statementExpression = this.visit(ctx.statementExpression);
@@ -706,4 +706,7 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter {
706
706
  isDims() {
707
707
  return "isDims";
708
708
  }
709
+ isFollowingVariableDeclarator() {
710
+ return "isFollowingVariableDeclarator";
711
+ }
709
712
  }
@@ -65,12 +65,12 @@ function moveOperatorLeadingCommentsToNextExpression(ctx) {
65
65
  }
66
66
  function moveExpressionTrailingCommentsToNextOperator(ctx) {
67
67
  const binaryOperators = ctx.BinaryOperator;
68
- let binaryOperatorIndex = 1;
68
+ let binaryOperatorIndex = 0;
69
69
  if (binaryOperators === null || binaryOperators === void 0 ? void 0 : binaryOperators.length) {
70
70
  ctx.unaryExpression.forEach(unaryExpression => {
71
71
  var _a;
72
72
  if (hasTrailingComments(unaryExpression)) {
73
- while (binaryOperatorIndex < binaryOperators.length &&
73
+ while (binaryOperatorIndex < binaryOperators.length - 1 &&
74
74
  unaryExpression.location.endOffset &&
75
75
  binaryOperators[binaryOperatorIndex].startOffset <
76
76
  unaryExpression.location.endOffset) {
@@ -5,8 +5,8 @@ import { isAnnotationCstNode } from "../types/utils.js";
5
5
  import { printArgumentListWithBraces } from "../utils/index.js";
6
6
  import { printTokenWithComments } from "./comments/format-comments.js";
7
7
  import { handleCommentsBinaryExpression, handleCommentsParameters } from "./comments/handle-comments.js";
8
- import { concat, dedent, group, indent } from "./prettier-builder.js";
9
- import { binary, findDeepElementInPartsArray, isExplicitLambdaParameter, isUniqueMethodInvocation, putIntoBraces, rejectAndConcat, rejectAndJoin, rejectAndJoinSeps, sortAnnotationIdentifier, sortNodes, sortTokens } from "./printer-utils.js";
8
+ import { concat, dedent, group, indent, indentIfBreak } from "./prettier-builder.js";
9
+ import { binary, findDeepElementInPartsArray, getOperators, isExplicitLambdaParameter, isUniqueMethodInvocation, putIntoBraces, rejectAndConcat, rejectAndJoin, rejectAndJoinSeps, sortAnnotationIdentifier, sortNodes, sortTokens } from "./printer-utils.js";
10
10
  const { breakParent, conditionalGroup, ifBreak, label, line, lineSuffixBoundary, softline } = builders;
11
11
  const { removeLines, willBreak } = utils;
12
12
  export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
@@ -125,6 +125,7 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
125
125
  return binaryExpression;
126
126
  }
127
127
  binaryExpression(ctx, params) {
128
+ var _a, _b, _c, _d;
128
129
  handleCommentsBinaryExpression(ctx);
129
130
  const sortedNodes = sortNodes([
130
131
  ctx.pattern,
@@ -132,15 +133,38 @@ export class ExpressionsPrettierVisitor extends BaseCstPrettierPrinter {
132
133
  ctx.expression,
133
134
  ctx.unaryExpression
134
135
  ]);
135
- const nodes = this.mapVisit(sortedNodes, sortedNodes.length === 1 ? params : undefined);
136
- const tokens = sortTokens([
137
- ctx.Instanceof,
138
- ctx.AssignmentOperator,
139
- ctx.Less,
140
- ctx.Greater,
141
- ctx.BinaryOperator
142
- ]);
136
+ const tokens = sortTokens(getOperators(ctx));
143
137
  const hasTokens = tokens.length > 0;
138
+ const nodeParams = sortedNodes.length === 1 ? params : undefined;
139
+ const nodes = [];
140
+ for (let i = 0; i < sortedNodes.length; i++) {
141
+ const node = this.visit(sortedNodes[i], nodeParams);
142
+ const isAssignment = ((_b = (_a = tokens[i]) === null || _a === void 0 ? void 0 : _a.tokenType.CATEGORIES) === null || _b === void 0 ? void 0 : _b.find(({ name }) => name === "AssignmentOperator")) !== undefined;
143
+ if (!isAssignment) {
144
+ nodes.push(node);
145
+ continue;
146
+ }
147
+ const [equals] = tokens.splice(i, 1);
148
+ const expression = sortedNodes[++i];
149
+ const nextNode = this.visit(expression);
150
+ const conditionalExpression = (_c = expression.children.conditionalExpression) === null || _c === void 0 ? void 0 : _c[0].children;
151
+ const binaryExpression = (_d = conditionalExpression === null || conditionalExpression === void 0 ? void 0 : conditionalExpression.binaryExpression) === null || _d === void 0 ? void 0 : _d[0].children;
152
+ const breakAfterOperator = (conditionalExpression === null || conditionalExpression === void 0 ? void 0 : conditionalExpression.QuestionMark) === undefined &&
153
+ binaryExpression !== undefined &&
154
+ getOperators(binaryExpression).length > 0;
155
+ if (breakAfterOperator) {
156
+ nodes.push(concat([node, " ", equals, group(indent([line, nextNode]))]));
157
+ continue;
158
+ }
159
+ const groupId = Symbol("assignment");
160
+ nodes.push(concat([
161
+ node,
162
+ " ",
163
+ equals,
164
+ indent(group(line, { id: groupId })),
165
+ indentIfBreak(nextNode, { groupId })
166
+ ]));
167
+ }
144
168
  const content = binary(nodes, tokens, true);
145
169
  return hasTokens && (params === null || params === void 0 ? void 0 : params.addParenthesisToWrapStatement)
146
170
  ? group(concat([
@@ -8,7 +8,7 @@ import { isCstNode } from "../types/utils.js";
8
8
  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
- import { concat, group, ifBreak, indentIfBreak, join } from "./prettier-builder.js";
11
+ import { concat, group, ifBreak, join } from "./prettier-builder.js";
12
12
  const { indent, hardline, line, lineSuffixBoundary, softline } = builders;
13
13
  const orderedModifiers = [
14
14
  "Public",
@@ -456,14 +456,16 @@ export function binary(nodes, tokens, isRoot = false) {
456
456
  }
457
457
  }
458
458
  level.push(nodes.shift());
459
- const lineGroupId = Symbol("line");
460
- return group(levelOperator === "="
461
- ? [
462
- level[0],
463
- indent(group(line, { id: lineGroupId })),
464
- indentIfBreak(level[1], { groupId: lineGroupId })
465
- ]
466
- : join(line, level));
459
+ return group(join(line, level));
460
+ }
461
+ export function getOperators(ctx) {
462
+ return [
463
+ ctx.AssignmentOperator,
464
+ ctx.BinaryOperator,
465
+ ctx.Greater,
466
+ ctx.Instanceof,
467
+ ctx.Less
468
+ ].filter(token => token !== undefined);
467
469
  }
468
470
  function getOperator(tokens) {
469
471
  if (!tokens.length) {
@@ -0,0 +1,25 @@
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=
@@ -0,0 +1,18 @@
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
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from "prettier";
2
+
3
+ declare const plugin: Plugin;
4
+ export default plugin;
package/package.json CHANGED
@@ -1,19 +1,24 @@
1
1
  {
2
2
  "name": "prettier-plugin-java",
3
- "version": "2.6.4",
3
+ "version": "2.6.6",
4
4
  "description": "Prettier Java Plugin",
5
5
  "type": "module",
6
- "exports": "./dist/index.js",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
7
12
  "files": [
8
- "dist"
13
+ "dist",
14
+ "index.d.ts"
9
15
  ],
10
16
  "homepage": "https://jhipster.github.io/prettier-java/",
11
17
  "repository": "https://github.com/jhipster/prettier-java",
12
18
  "license": "Apache-2.0",
13
19
  "dependencies": {
14
- "java-parser": "2.3.2",
15
- "lodash": "4.17.21",
16
- "prettier": "3.2.5"
20
+ "java-parser": "2.3.3",
21
+ "lodash": "4.17.21"
17
22
  },
18
23
  "scripts": {
19
24
  "test": "yarn run test:unit && yarn run test:e2e-core",
@@ -28,15 +33,18 @@
28
33
  },
29
34
  "devDependencies": {
30
35
  "@chevrotain/types": "11.0.3",
31
- "@types/chai": "4.3.4",
32
- "@types/fs-extra": "9.0.13",
33
- "@types/jest": "29.2.3",
34
- "@types/klaw-sync": "6.0.1",
35
- "@types/lodash": "4.14.190",
36
- "@types/node": "18.11.9",
37
- "@types/sinon": "10.0.13",
38
- "ts-node": "10.9.1",
39
- "typescript": "4.9.3"
36
+ "@types/chai": "5.0.1",
37
+ "@types/fs-extra": "11.0.4",
38
+ "@types/jest": "29.5.14",
39
+ "@types/klaw-sync": "6.0.5",
40
+ "@types/lodash": "4.17.13",
41
+ "@types/node": "18.19.64",
42
+ "@types/sinon": "17.0.3",
43
+ "ts-node": "10.9.2",
44
+ "typescript": "5.6.3"
45
+ },
46
+ "peerDependencies": {
47
+ "prettier": "^3.0.0"
40
48
  },
41
- "gitHead": "d18871d1ec1cc2c4b841d13d4e3e432dc7133d8b"
49
+ "gitHead": "b80f28061b45d46df03c441ff3af3d68e84b3c23"
42
50
  }