Skip to content

Commit 8f7637c

Browse files
committed
refactor: leverage Prettier's AstPath and comment attachment
1 parent 361120c commit 8f7637c

File tree

78 files changed

+4420
-5918
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+4420
-5918
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"lerna": "8.1.9",
4242
"lint-staged": "15.2.10",
4343
"mocha": "10.8.2",
44-
"prettier": "3.4.2",
44+
"prettier": "^3.0.0",
4545
"sinon": "19.0.2"
4646
}
4747
}

packages/java-parser/api.d.ts

Lines changed: 265 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {
1+
import type {
22
CstNode as ChevrotainCstNode,
33
IToken as ChevrotainIToken,
44
CstNodeLocation,
@@ -7,15 +7,10 @@ import {
77

88
export interface CstNode extends ChevrotainCstNode {
99
children: CstChildrenDictionary;
10-
leadingComments?: IToken[];
11-
trailingComments?: IToken[];
12-
ignore?: boolean;
13-
location: CstNodeLocation;
10+
location: Required<CstNodeLocation>;
1411
}
1512

1613
export interface IToken extends ChevrotainIToken {
17-
leadingComments?: IToken[];
18-
trailingComments?: IToken[];
1914
startOffset: number;
2015
startLine: number;
2116
startColumn: number;
@@ -24,7 +19,246 @@ export interface IToken extends ChevrotainIToken {
2419
endColumn: number;
2520
}
2621

27-
export type CstElement = IToken | CstNode;
22+
export type CstElement =
23+
| IToken
24+
| AdditionalBoundCstNode
25+
| AmbiguousNameCstNode
26+
| AnnotationCstNode
27+
| AnnotationInterfaceBodyCstNode
28+
| AnnotationInterfaceDeclarationCstNode
29+
| AnnotationInterfaceElementDeclarationCstNode
30+
| AnnotationInterfaceElementModifierCstNode
31+
| AnnotationInterfaceMemberDeclarationCstNode
32+
| ArgumentListCstNode
33+
| ArrayAccessSuffixCstNode
34+
| ArrayCreationExpressionCstNode
35+
| ArrayCreationExpressionWithoutInitializerSuffixCstNode
36+
| ArrayCreationWithInitializerSuffixCstNode
37+
| ArrayInitializerCstNode
38+
| AssertStatementCstNode
39+
| BasicForStatementCstNode
40+
| BinaryExpressionCstNode
41+
| BlockCstNode
42+
| BlockStatementCstNode
43+
| BlockStatementsCstNode
44+
| BooleanLiteralCstNode
45+
| BreakStatementCstNode
46+
| CaseConstantCstNode
47+
| CasePatternCstNode
48+
| CastExpressionCstNode
49+
| CatchClauseCstNode
50+
| CatchesCstNode
51+
| CatchFormalParameterCstNode
52+
| CatchTypeCstNode
53+
| ClassBodyCstNode
54+
| ClassBodyDeclarationCstNode
55+
| ClassDeclarationCstNode
56+
| ClassExtendsCstNode
57+
| ClassImplementsCstNode
58+
| ClassLiteralSuffixCstNode
59+
| ClassMemberDeclarationCstNode
60+
| ClassModifierCstNode
61+
| ClassOrInterfaceTypeCstNode
62+
| ClassOrInterfaceTypeToInstantiateCstNode
63+
| ClassPermitsCstNode
64+
| ClassTypeCstNode
65+
| CompactConstructorDeclarationCstNode
66+
| CompilationUnitCstNode
67+
| ComponentPatternCstNode
68+
| ComponentPatternListCstNode
69+
| ConciseLambdaParameterCstNode
70+
| ConciseLambdaParameterListCstNode
71+
| ConditionalExpressionCstNode
72+
| ConstantDeclarationCstNode
73+
| ConstantModifierCstNode
74+
| ConstructorBodyCstNode
75+
| ConstructorDeclarationCstNode
76+
| ConstructorDeclaratorCstNode
77+
| ConstructorModifierCstNode
78+
| ContinueStatementCstNode
79+
| DefaultValueCstNode
80+
| DiamondCstNode
81+
| DimExprCstNode
82+
| DimExprsCstNode
83+
| DimsCstNode
84+
| DoStatementCstNode
85+
| ElementValueArrayInitializerCstNode
86+
| ElementValueCstNode
87+
| ElementValueListCstNode
88+
| ElementValuePairCstNode
89+
| ElementValuePairListCstNode
90+
| EmbeddedExpressionCstNode
91+
| EmptyStatementCstNode
92+
| EnhancedForStatementCstNode
93+
| EnumBodyCstNode
94+
| EnumBodyDeclarationsCstNode
95+
| EnumConstantCstNode
96+
| EnumConstantListCstNode
97+
| EnumConstantModifierCstNode
98+
| EnumDeclarationCstNode
99+
| ExceptionTypeCstNode
100+
| ExceptionTypeListCstNode
101+
| ExplicitConstructorInvocationCstNode
102+
| ExportsModuleDirectiveCstNode
103+
| ExpressionCstNode
104+
| ExpressionNameCstNode
105+
| ExpressionStatementCstNode
106+
| FieldDeclarationCstNode
107+
| FieldModifierCstNode
108+
| FinallyCstNode
109+
| FloatingPointLiteralCstNode
110+
| FloatingPointTypeCstNode
111+
| ForInitCstNode
112+
| FormalParameterCstNode
113+
| FormalParameterListCstNode
114+
| ForStatementCstNode
115+
| ForUpdateCstNode
116+
| FqnOrRefTypeCstNode
117+
| FqnOrRefTypePartCommonCstNode
118+
| FqnOrRefTypePartFirstCstNode
119+
| FqnOrRefTypePartRestCstNode
120+
| GuardCstNode
121+
| IfStatementCstNode
122+
| ImportDeclarationCstNode
123+
| InstanceInitializerCstNode
124+
| IntegerLiteralCstNode
125+
| IntegralTypeCstNode
126+
| InterfaceBodyCstNode
127+
| InterfaceDeclarationCstNode
128+
| InterfaceExtendsCstNode
129+
| InterfaceMemberDeclarationCstNode
130+
| InterfaceMethodDeclarationCstNode
131+
| InterfaceMethodModifierCstNode
132+
| InterfaceModifierCstNode
133+
| InterfacePermitsCstNode
134+
| InterfaceTypeCstNode
135+
| InterfaceTypeListCstNode
136+
| LabeledStatementCstNode
137+
| LambdaBodyCstNode
138+
| LambdaExpressionCstNode
139+
| LambdaParameterListCstNode
140+
| LambdaParametersCstNode
141+
| LambdaParametersWithBracesCstNode
142+
| LambdaParameterTypeCstNode
143+
| LiteralCstNode
144+
| LocalVariableDeclarationCstNode
145+
| LocalVariableDeclarationStatementCstNode
146+
| LocalVariableTypeCstNode
147+
| MatchAllPatternCstNode
148+
| MethodBodyCstNode
149+
| MethodDeclarationCstNode
150+
| MethodDeclaratorCstNode
151+
| MethodHeaderCstNode
152+
| MethodInvocationSuffixCstNode
153+
| MethodModifierCstNode
154+
| MethodNameCstNode
155+
| MethodReferenceSuffixCstNode
156+
| ModularCompilationUnitCstNode
157+
| ModuleDeclarationCstNode
158+
| ModuleDirectiveCstNode
159+
| ModuleNameCstNode
160+
| NewExpressionCstNode
161+
| NormalClassDeclarationCstNode
162+
| NormalInterfaceDeclarationCstNode
163+
| NormalLambdaParameterCstNode
164+
| NormalLambdaParameterListCstNode
165+
| NumericTypeCstNode
166+
| OpensModuleDirectiveCstNode
167+
| OrdinaryCompilationUnitCstNode
168+
| PackageDeclarationCstNode
169+
| PackageModifierCstNode
170+
| PackageNameCstNode
171+
| PackageOrTypeNameCstNode
172+
| ParenthesisExpressionCstNode
173+
| PatternCstNode
174+
| PrimaryCstNode
175+
| PrimaryPrefixCstNode
176+
| PrimarySuffixCstNode
177+
| PrimitiveCastExpressionCstNode
178+
| PrimitiveTypeCstNode
179+
| ProvidesModuleDirectiveCstNode
180+
| QualifiedExplicitConstructorInvocationCstNode
181+
| ReceiverParameterCstNode
182+
| RecordBodyCstNode
183+
| RecordBodyDeclarationCstNode
184+
| RecordComponentCstNode
185+
| RecordComponentListCstNode
186+
| RecordComponentModifierCstNode
187+
| RecordDeclarationCstNode
188+
| RecordHeaderCstNode
189+
| RecordPatternCstNode
190+
| ReferenceTypeCastExpressionCstNode
191+
| ReferenceTypeCstNode
192+
| RegularLambdaParameterCstNode
193+
| RequiresModifierCstNode
194+
| RequiresModuleDirectiveCstNode
195+
| ResourceCstNode
196+
| ResourceListCstNode
197+
| ResourceSpecificationCstNode
198+
| ResultCstNode
199+
| ReturnStatementCstNode
200+
| ShiftOperatorCstNode
201+
| SimpleTypeNameCstNode
202+
| StatementCstNode
203+
| StatementExpressionCstNode
204+
| StatementExpressionListCstNode
205+
| StatementWithoutTrailingSubstatementCstNode
206+
| StaticInitializerCstNode
207+
| StringTemplateCstNode
208+
| SwitchBlockCstNode
209+
| SwitchBlockStatementGroupCstNode
210+
| SwitchLabelCstNode
211+
| SwitchRuleCstNode
212+
| SwitchStatementCstNode
213+
| SynchronizedStatementCstNode
214+
| TemplateArgumentCstNode
215+
| TemplateCstNode
216+
| TextBlockTemplateCstNode
217+
| ThrowsCstNode
218+
| ThrowStatementCstNode
219+
| TryStatementCstNode
220+
| TryWithResourcesStatementCstNode
221+
| TypeArgumentCstNode
222+
| TypeArgumentListCstNode
223+
| TypeArgumentsCstNode
224+
| TypeArgumentsOrDiamondCstNode
225+
| TypeBoundCstNode
226+
| TypeDeclarationCstNode
227+
| TypeIdentifierCstNode
228+
| TypeNameCstNode
229+
| TypeParameterCstNode
230+
| TypeParameterListCstNode
231+
| TypeParameterModifierCstNode
232+
| TypeParametersCstNode
233+
| TypePatternCstNode
234+
| TypeVariableCstNode
235+
| UnannClassOrInterfaceTypeCstNode
236+
| UnannClassTypeCstNode
237+
| UnannInterfaceTypeCstNode
238+
| UnannPrimitiveTypeCstNode
239+
| UnannPrimitiveTypeWithOptionalDimsSuffixCstNode
240+
| UnannReferenceTypeCstNode
241+
| UnannTypeCstNode
242+
| UnannTypeVariableCstNode
243+
| UnaryExpressionCstNode
244+
| UnaryExpressionNotPlusMinusCstNode
245+
| UnqualifiedClassInstanceCreationExpressionCstNode
246+
| UnqualifiedExplicitConstructorInvocationCstNode
247+
| UsesModuleDirectiveCstNode
248+
| VariableAccessCstNode
249+
| VariableArityParameterCstNode
250+
| VariableArityRecordComponentCstNode
251+
| VariableDeclaratorCstNode
252+
| VariableDeclaratorIdCstNode
253+
| VariableDeclaratorListCstNode
254+
| VariableInitializerCstNode
255+
| VariableInitializerListCstNode
256+
| VariableModifierCstNode
257+
| VariableParaRegularParameterCstNode
258+
| WhileStatementCstNode
259+
| WildcardBoundsCstNode
260+
| WildcardCstNode
261+
| YieldStatementCstNode;
28262

29263
export declare type CstChildrenDictionary = {
30264
[identifier: string]: CstElement[];
@@ -38,7 +272,10 @@ export function lexAndParse(
38272
cst: CstNode;
39273
};
40274

41-
export function parse(text: string, startProduction?: string): CstNode;
275+
export function parse(
276+
text: string,
277+
startProduction?: string
278+
): CstNode & { comments?: IToken[] };
42279

43280
export const BaseJavaCstVisitor: JavaCstVisitorConstructor<any, any>;
44281
export const BaseJavaCstVisitorWithDefaults: JavaCstVisitorWithDefaultsConstructor<
@@ -57,6 +294,7 @@ export abstract class JavaCstVisitor<IN, OUT> implements ICstVisitor<IN, OUT> {
57294
integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT;
58295
floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT;
59296
booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT;
297+
shiftOperator(cts: ShiftOperatorCtx, param?: IN): OUT;
60298
primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT;
61299
numericType(ctx: NumericTypeCtx, param?: IN): OUT;
62300
integralType(ctx: IntegralTypeCtx, param?: IN): OUT;
@@ -300,7 +538,7 @@ export abstract class JavaCstVisitor<IN, OUT> implements ICstVisitor<IN, OUT> {
300538
param?: IN
301539
): OUT;
302540
normalLambdaParameterList(ctx: NormalLambdaParameterListCtx, param?: IN): OUT;
303-
normalLambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT;
541+
normalLambdaParameter(ctx: NormalLambdaParameterCtx, param?: IN): OUT;
304542
regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT;
305543
lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT;
306544
conciseLambdaParameter(ctx: ConciseLambdaParameterCtx, param?: IN): OUT;
@@ -385,6 +623,7 @@ export abstract class JavaCstVisitorWithDefaults<IN, OUT>
385623
integerLiteral(ctx: IntegerLiteralCtx, param?: IN): OUT;
386624
floatingPointLiteral(ctx: FloatingPointLiteralCtx, param?: IN): OUT;
387625
booleanLiteral(ctx: BooleanLiteralCtx, param?: IN): OUT;
626+
shiftOperator(cts: ShiftOperatorCtx, param?: IN): OUT;
388627
primitiveType(ctx: PrimitiveTypeCtx, param?: IN): OUT;
389628
numericType(ctx: NumericTypeCtx, param?: IN): OUT;
390629
integralType(ctx: IntegralTypeCtx, param?: IN): OUT;
@@ -628,7 +867,7 @@ export abstract class JavaCstVisitorWithDefaults<IN, OUT>
628867
param?: IN
629868
): OUT;
630869
normalLambdaParameterList(ctx: NormalLambdaParameterListCtx, param?: IN): OUT;
631-
normalLambdaParameter(ctx: LambdaParameterCtx, param?: IN): OUT;
870+
normalLambdaParameter(ctx: NormalLambdaParameterCtx, param?: IN): OUT;
632871
regularLambdaParameter(ctx: RegularLambdaParameterCtx, param?: IN): OUT;
633872
lambdaParameterType(ctx: LambdaParameterTypeCtx, param?: IN): OUT;
634873
conciseLambdaParameter(ctx: ConciseLambdaParameterCtx, param?: IN): OUT;
@@ -755,6 +994,16 @@ export type BooleanLiteralCtx = {
755994
False?: IToken[];
756995
};
757996

997+
export interface ShiftOperatorCstNode extends CstNode {
998+
name: "shiftOperator";
999+
children: ShiftOperatorCtx;
1000+
}
1001+
1002+
export type ShiftOperatorCtx = {
1003+
Less?: IToken[];
1004+
Greater?: IToken[];
1005+
};
1006+
7581007
export interface PrimitiveTypeCstNode extends CstNode {
7591008
name: "primitiveType";
7601009
children: PrimitiveTypeCtx;
@@ -1801,17 +2050,16 @@ export interface CompilationUnitCstNode extends CstNode {
18012050

18022051
export type AbstractOrdinaryCompilationUnitCtx = {
18032052
ordinaryCompilationUnit: OrdinaryCompilationUnitCstNode[];
1804-
EOF: IToken[];
18052053
};
18062054

18072055
export type AbstractModularCompilationUnitCtx = {
18082056
modularCompilationUnit: OrdinaryCompilationUnitCstNode[];
1809-
EOF: IToken[];
18102057
};
18112058

18122059
export type CompilationUnitCtx =
18132060
| AbstractOrdinaryCompilationUnitCtx
1814-
| AbstractModularCompilationUnitCtx;
2061+
| AbstractModularCompilationUnitCtx
2062+
| { EOF: IToken[] };
18152063

18162064
export interface OrdinaryCompilationUnitCstNode extends CstNode {
18172065
name: "ordinaryCompilationUnit";
@@ -2894,10 +3142,10 @@ export type NormalLambdaParameterListCtx = {
28943142

28953143
export interface NormalLambdaParameterCstNode extends CstNode {
28963144
name: "normalLambdaParameter";
2897-
children: LambdaParameterCtx;
3145+
children: NormalLambdaParameterCtx;
28983146
}
28993147

2900-
export type LambdaParameterCtx = {
3148+
export type NormalLambdaParameterCtx = {
29013149
regularLambdaParameter?: RegularLambdaParameterCstNode[];
29023150
variableArityParameter?: VariableArityParameterCstNode[];
29033151
};
@@ -2967,8 +3215,7 @@ export type BinaryExpressionCtx = {
29673215
referenceType?: ReferenceTypeCstNode[];
29683216
AssignmentOperator?: IToken[];
29693217
expression?: ExpressionCstNode[];
2970-
Less?: IToken[];
2971-
Greater?: IToken[];
3218+
shiftOperator?: ShiftOperatorCstNode[];
29723219
BinaryOperator?: IToken[];
29733220
};
29743221

0 commit comments

Comments
 (0)