@openrewrite/rewrite 8.69.0 → 8.69.1

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.
Files changed (93) hide show
  1. package/dist/java/type.d.ts +5 -0
  2. package/dist/java/type.d.ts.map +1 -1
  3. package/dist/java/type.js +12 -0
  4. package/dist/java/type.js.map +1 -1
  5. package/dist/javascript/assertions.d.ts.map +1 -1
  6. package/dist/javascript/assertions.js +9 -0
  7. package/dist/javascript/assertions.js.map +1 -1
  8. package/dist/javascript/comparator.d.ts.map +1 -1
  9. package/dist/javascript/comparator.js +5 -9
  10. package/dist/javascript/comparator.js.map +1 -1
  11. package/dist/javascript/{format.d.ts → format/format.d.ts} +15 -33
  12. package/dist/javascript/format/format.d.ts.map +1 -0
  13. package/dist/javascript/{format.js → format/format.js} +56 -313
  14. package/dist/javascript/format/format.js.map +1 -0
  15. package/dist/javascript/format/index.d.ts +3 -0
  16. package/dist/javascript/format/index.d.ts.map +1 -0
  17. package/dist/javascript/format/index.js +38 -0
  18. package/dist/javascript/format/index.js.map +1 -0
  19. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts +28 -0
  20. package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts.map +1 -0
  21. package/dist/javascript/format/minimum-viable-spacing-visitor.js +308 -0
  22. package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -0
  23. package/dist/javascript/format/normalize-whitespace-visitor.d.ts +14 -0
  24. package/dist/javascript/format/normalize-whitespace-visitor.d.ts.map +1 -0
  25. package/dist/javascript/format/normalize-whitespace-visitor.js +65 -0
  26. package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -0
  27. package/dist/javascript/format/prettier-config-loader.d.ts +92 -0
  28. package/dist/javascript/format/prettier-config-loader.d.ts.map +1 -0
  29. package/dist/javascript/format/prettier-config-loader.js +419 -0
  30. package/dist/javascript/format/prettier-config-loader.js.map +1 -0
  31. package/dist/javascript/format/prettier-format.d.ts +111 -0
  32. package/dist/javascript/format/prettier-format.d.ts.map +1 -0
  33. package/dist/javascript/format/prettier-format.js +496 -0
  34. package/dist/javascript/format/prettier-format.js.map +1 -0
  35. package/dist/javascript/{tabs-and-indents-visitor.d.ts → format/tabs-and-indents-visitor.d.ts} +4 -4
  36. package/dist/javascript/format/tabs-and-indents-visitor.d.ts.map +1 -0
  37. package/dist/javascript/{tabs-and-indents-visitor.js → format/tabs-and-indents-visitor.js} +7 -7
  38. package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -0
  39. package/dist/javascript/format/whitespace-reconciler.d.ts +106 -0
  40. package/dist/javascript/format/whitespace-reconciler.d.ts.map +1 -0
  41. package/dist/javascript/format/whitespace-reconciler.js +291 -0
  42. package/dist/javascript/format/whitespace-reconciler.js.map +1 -0
  43. package/dist/javascript/markers.d.ts.map +1 -1
  44. package/dist/javascript/markers.js +21 -0
  45. package/dist/javascript/markers.js.map +1 -1
  46. package/dist/javascript/parser.d.ts +15 -3
  47. package/dist/javascript/parser.d.ts.map +1 -1
  48. package/dist/javascript/parser.js +107 -24
  49. package/dist/javascript/parser.js.map +1 -1
  50. package/dist/javascript/recipes/auto-format.d.ts +3 -0
  51. package/dist/javascript/recipes/auto-format.d.ts.map +1 -1
  52. package/dist/javascript/recipes/auto-format.js +22 -1
  53. package/dist/javascript/recipes/auto-format.js.map +1 -1
  54. package/dist/javascript/style.d.ts +52 -1
  55. package/dist/javascript/style.d.ts.map +1 -1
  56. package/dist/javascript/style.js +43 -2
  57. package/dist/javascript/style.js.map +1 -1
  58. package/dist/test/rewrite-test.d.ts +3 -4
  59. package/dist/test/rewrite-test.d.ts.map +1 -1
  60. package/dist/test/rewrite-test.js +6 -18
  61. package/dist/test/rewrite-test.js.map +1 -1
  62. package/dist/version.txt +1 -1
  63. package/dist/yaml/assertions.d.ts +4 -0
  64. package/dist/yaml/assertions.d.ts.map +1 -0
  65. package/dist/yaml/assertions.js +31 -0
  66. package/dist/yaml/assertions.js.map +1 -0
  67. package/dist/yaml/index.d.ts +2 -1
  68. package/dist/yaml/index.d.ts.map +1 -1
  69. package/dist/yaml/index.js +2 -1
  70. package/dist/yaml/index.js.map +1 -1
  71. package/package.json +5 -4
  72. package/src/java/type.ts +12 -0
  73. package/src/javascript/assertions.ts +9 -0
  74. package/src/javascript/comparator.ts +6 -11
  75. package/src/javascript/{format.ts → format/format.ts} +59 -267
  76. package/src/javascript/format/index.ts +21 -0
  77. package/src/javascript/format/minimum-viable-spacing-visitor.ts +256 -0
  78. package/src/javascript/format/normalize-whitespace-visitor.ts +42 -0
  79. package/src/javascript/format/prettier-config-loader.ts +422 -0
  80. package/src/javascript/format/prettier-format.ts +622 -0
  81. package/src/javascript/{tabs-and-indents-visitor.ts → format/tabs-and-indents-visitor.ts} +8 -8
  82. package/src/javascript/format/whitespace-reconciler.ts +345 -0
  83. package/src/javascript/markers.ts +19 -0
  84. package/src/javascript/parser.ts +107 -20
  85. package/src/javascript/recipes/auto-format.ts +28 -1
  86. package/src/javascript/style.ts +41 -2
  87. package/src/test/rewrite-test.ts +6 -18
  88. package/src/yaml/assertions.ts +28 -0
  89. package/src/yaml/index.ts +2 -1
  90. package/dist/javascript/format.d.ts.map +0 -1
  91. package/dist/javascript/format.js.map +0 -1
  92. package/dist/javascript/tabs-and-indents-visitor.d.ts.map +0 -1
  93. package/dist/javascript/tabs-and-indents-visitor.js.map +0 -1
@@ -0,0 +1,496 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.prettierFormat = prettierFormat;
13
+ exports.prettierFormatSubtree = prettierFormatSubtree;
14
+ exports.getPrettierStyle = getPrettierStyle;
15
+ exports.applyPrettierFormatting = applyPrettierFormatting;
16
+ /*
17
+ * Copyright 2025 the original author or authors.
18
+ * <p>
19
+ * Licensed under the Moderne Source Available License (the "License");
20
+ * you may not use this file except in compliance with the License.
21
+ * You may obtain a copy of the License at
22
+ * <p>
23
+ * https://docs.moderne.io/licensing/moderne-source-available-license
24
+ * <p>
25
+ * Unless required by applicable law or agreed to in writing, software
26
+ * distributed under the License is distributed on an "AS IS" BASIS,
27
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ * See the License for the specific language governing permissions and
29
+ * limitations under the License.
30
+ */
31
+ const tree_1 = require("../tree");
32
+ const java_1 = require("../../java");
33
+ const print_1 = require("../../print");
34
+ const parser_1 = require("../parser");
35
+ const whitespace_reconciler_1 = require("./whitespace-reconciler");
36
+ const immer_1 = require("immer");
37
+ const uuid_1 = require("../../uuid");
38
+ const style_1 = require("../style");
39
+ const markers_1 = require("../../markers");
40
+ const normalize_whitespace_visitor_1 = require("./normalize-whitespace-visitor");
41
+ const minimum_viable_spacing_visitor_1 = require("./minimum-viable-spacing-visitor");
42
+ const prettier_config_loader_1 = require("./prettier-config-loader");
43
+ /**
44
+ * Loads Prettier for formatting.
45
+ *
46
+ * We use the main Prettier module (not standalone) because:
47
+ * 1. It automatically handles parser resolution
48
+ * 2. Works better with CommonJS (avoids ESM issues in Jest)
49
+ * 3. Simpler - no need to manually load plugins
50
+ */
51
+ function loadPrettierFormatting(version) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ if (version) {
54
+ // Ensure the version is installed and get it from cache
55
+ return yield (0, prettier_config_loader_1.loadPrettierVersion)(version);
56
+ }
57
+ // Use bundled Prettier
58
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
59
+ return require('prettier');
60
+ });
61
+ }
62
+ /**
63
+ * Formats a JavaScript/TypeScript AST using Prettier.
64
+ *
65
+ * This function:
66
+ * 1. Prints the AST to a string
67
+ * 2. Formats the string using Prettier
68
+ * 3. Parses the formatted string back to an AST (without type attribution for performance)
69
+ * 4. Reconciles the whitespace from the formatted AST back into the original AST
70
+ *
71
+ * The result preserves the original AST's structure, types, and markers while
72
+ * applying Prettier's formatting rules for whitespace.
73
+ *
74
+ * @param sourceFile The source file to format
75
+ * @param options Prettier formatting options
76
+ * @param stopAfter Optional node to stop formatting after. Once this node is exited,
77
+ * no more whitespace changes are applied to subsequent nodes.
78
+ * @returns The formatted source file with reconciled whitespace
79
+ */
80
+ function prettierFormat(sourceFile_1) {
81
+ return __awaiter(this, arguments, void 0, function* (sourceFile, options = {}, stopAfter) {
82
+ // Load Prettier - either specific version or bundled
83
+ let prettier;
84
+ try {
85
+ prettier = yield loadPrettierFormatting(options.prettierVersion);
86
+ }
87
+ catch (e) {
88
+ console.error('Failed to load Prettier:', e);
89
+ throw new Error(`Prettier is not installed or failed to load. Please install it with: npm install prettier. Error: ${e}`);
90
+ }
91
+ // Step 1: Print the AST to string
92
+ const originalSource = yield print_1.TreePrinters.print(sourceFile);
93
+ // Step 2: Determine parser based on source path
94
+ const parser = getParserForPath(sourceFile.sourcePath);
95
+ // Step 3: Format with Prettier
96
+ // Using the main Prettier module - parsers are resolved automatically
97
+ // Only set parser and filepath - pass through all other options without defaults
98
+ // This lets Prettier use its own defaults for any unspecified options
99
+ const prettierOptions = Object.assign({ parser, filepath: sourceFile.sourcePath }, options);
100
+ // Remove our internal option that Prettier doesn't understand
101
+ delete prettierOptions.prettierVersion;
102
+ const formattedSource = yield prettier.format(originalSource, prettierOptions);
103
+ // Step 4: Parse the formatted string using parseOnly() for maximum performance
104
+ // (bypasses TypeScript's type checker entirely)
105
+ const formattedParser = new parser_1.JavaScriptParser();
106
+ const formattedAst = yield formattedParser.parseOnly({
107
+ sourcePath: sourceFile.sourcePath,
108
+ text: formattedSource
109
+ });
110
+ if (!formattedAst) {
111
+ console.warn('Prettier formatting: Failed to parse formatted output, returning original');
112
+ return sourceFile;
113
+ }
114
+ // Step 5: Reconcile whitespace from formatted AST to original AST
115
+ // Note: For subtree formatting with pruned trees, the structure may differ
116
+ // (e.g., Prettier removes empty placeholder statements). In such cases,
117
+ // we return the formatted AST directly and let the caller handle
118
+ // subtree-level reconciliation.
119
+ const reconciler = new whitespace_reconciler_1.WhitespaceReconciler();
120
+ const formattedCu = formattedAst;
121
+ const result = reconciler.reconcile(sourceFile, formattedCu, undefined, stopAfter);
122
+ // If reconciliation succeeded, return the reconciled original with updated whitespace
123
+ // If it failed (structure mismatch), return the formatted AST for subtree reconciliation
124
+ return reconciler.isCompatible() ? result : formattedCu;
125
+ });
126
+ }
127
+ /**
128
+ * Maps file extensions to Prettier parser names.
129
+ */
130
+ const PRETTIER_PARSER_BY_EXTENSION = {
131
+ '.ts': 'typescript',
132
+ '.tsx': 'typescript',
133
+ '.js': 'babel',
134
+ '.jsx': 'babel',
135
+ '.mjs': 'babel',
136
+ '.cjs': 'babel',
137
+ };
138
+ /**
139
+ * Determines the Prettier parser to use based on file extension.
140
+ */
141
+ function getParserForPath(filePath) {
142
+ const lower = filePath.toLowerCase();
143
+ for (const [ext, parser] of Object.entries(PRETTIER_PARSER_BY_EXTENSION)) {
144
+ if (lower.endsWith(ext)) {
145
+ return parser;
146
+ }
147
+ }
148
+ return 'babel'; // Default parser
149
+ }
150
+ /**
151
+ * Extracts the path from a CompilationUnit to a target node using the cursor.
152
+ * Returns the path segments in order from root to target.
153
+ *
154
+ * @param cursor The cursor, which may not include the target (e.g., when passing cursor.parent)
155
+ * @param target The target node we're looking for
156
+ */
157
+ function extractPathFromCursor(cursor, target) {
158
+ const pathNodes = cursor.asArray().reverse(); // root to target
159
+ const segments = [];
160
+ let compilationUnit;
161
+ // Helper to check if two nodes are the same (by identity or ID)
162
+ const isSameNode = (a, b) => {
163
+ if (a === b)
164
+ return true;
165
+ if (a && b && typeof a === 'object' && typeof b === 'object' && 'id' in a && 'id' in b) {
166
+ return a.id === b.id;
167
+ }
168
+ return false;
169
+ };
170
+ // Helper to find a child in a parent and return the segment
171
+ const findChildInParent = (parent, child) => {
172
+ if (!parent || typeof parent !== 'object')
173
+ return undefined;
174
+ for (const key of Object.keys(parent)) {
175
+ const value = parent[key];
176
+ if (value == null)
177
+ continue;
178
+ if (Array.isArray(value)) {
179
+ for (let idx = 0; idx < value.length; idx++) {
180
+ const item = value[idx];
181
+ if (isSameNode(item, child)) {
182
+ return { property: key, index: idx };
183
+ }
184
+ }
185
+ }
186
+ else if (isSameNode(value, child)) {
187
+ return { property: key };
188
+ }
189
+ }
190
+ return undefined;
191
+ };
192
+ for (let i = 0; i < pathNodes.length - 1; i++) {
193
+ const parent = pathNodes[i];
194
+ const child = pathNodes[i + 1];
195
+ // Check if this node is the CompilationUnit
196
+ if ((parent === null || parent === void 0 ? void 0 : parent.kind) === tree_1.JS.Kind.CompilationUnit) {
197
+ compilationUnit = parent;
198
+ }
199
+ const segment = findChildInParent(parent, child);
200
+ if (segment) {
201
+ segments.push(segment);
202
+ }
203
+ }
204
+ // Check the last node for CompilationUnit
205
+ const lastNode = pathNodes[pathNodes.length - 1];
206
+ if ((lastNode === null || lastNode === void 0 ? void 0 : lastNode.kind) === tree_1.JS.Kind.CompilationUnit) {
207
+ compilationUnit = lastNode;
208
+ }
209
+ // If the cursor doesn't include the target, add the final segment
210
+ // This handles the case when autoFormat is called with cursor.parent
211
+ if (lastNode && !isSameNode(lastNode, target)) {
212
+ const finalSegment = findChildInParent(lastNode, target);
213
+ if (finalSegment) {
214
+ segments.push(finalSegment);
215
+ }
216
+ }
217
+ return { compilationUnit, path: segments };
218
+ }
219
+ /**
220
+ * Creates a "null" identifier placeholder for use in pruned trees.
221
+ * Using "null" instead of an empty statement ensures Prettier sees similar
222
+ * line lengths and doesn't collapse multi-line code to single-line.
223
+ */
224
+ function createNullPlaceholder(prefix) {
225
+ return {
226
+ kind: java_1.J.Kind.Identifier,
227
+ id: (0, uuid_1.randomId)(),
228
+ markers: { kind: "org.openrewrite.marker.Markers", id: (0, uuid_1.randomId)(), markers: [] },
229
+ prefix: prefix,
230
+ annotations: [],
231
+ simpleName: "null",
232
+ type: undefined,
233
+ fieldType: undefined
234
+ };
235
+ }
236
+ /**
237
+ * Prunes a compilation unit for efficient Prettier formatting of a subtree,
238
+ * and substitutes the (potentially modified) target at the path location.
239
+ *
240
+ * For J.Block#statements along the path to the target:
241
+ * - Prior siblings are replaced with "null" identifier placeholders (to maintain line length)
242
+ * - Following siblings are omitted entirely
243
+ *
244
+ * This optimization reduces the amount of code Prettier needs to process
245
+ * while maintaining approximate line positions so Prettier doesn't collapse
246
+ * multi-line code.
247
+ *
248
+ * @param cu The compilation unit to prune
249
+ * @param path The path from root to the target subtree
250
+ * @param target The (potentially modified) target to substitute at the path location
251
+ * @returns A pruned copy of the compilation unit with the target substituted
252
+ */
253
+ function pruneTreeForSubtree(cu, path, target) {
254
+ return pruneNode(cu, path, 0, target);
255
+ }
256
+ /**
257
+ * Recursively prunes a node, following the path, pruning J.Block#statements,
258
+ * and substituting the target at the final location.
259
+ */
260
+ function pruneNode(node, path, pathIndex, target) {
261
+ if (pathIndex >= path.length) {
262
+ // Reached the target location - substitute with the (potentially modified) target
263
+ return target;
264
+ }
265
+ const segment = path[pathIndex];
266
+ const value = node[segment.property];
267
+ if (value == null) {
268
+ return node;
269
+ }
270
+ // Handle J.Block#statements specially - prune siblings
271
+ if (node.kind === java_1.J.Kind.Block && segment.property === 'statements' && segment.index !== undefined) {
272
+ const statements = value;
273
+ const targetIndex = segment.index;
274
+ // Create pruned statements array:
275
+ // - Prior siblings: replace with "null" placeholders (to maintain line length)
276
+ // - Target: recurse into it (following the path through RightPadded.element)
277
+ // - Following siblings: omit entirely
278
+ const prunedStatements = [];
279
+ for (let i = 0; i <= targetIndex; i++) {
280
+ if (i < targetIndex) {
281
+ // Prior sibling - replace with "null" placeholder
282
+ // Preserve the original prefix to maintain line positions
283
+ const originalPrefix = statements[i].element.prefix;
284
+ const placeholder = createNullPlaceholder(originalPrefix);
285
+ prunedStatements.push({
286
+ kind: java_1.J.Kind.RightPadded,
287
+ element: placeholder,
288
+ after: statements[i].after,
289
+ markers: statements[i].markers
290
+ });
291
+ }
292
+ else {
293
+ // Target - recurse into the RightPadded (path will handle .element)
294
+ const prunedRightPadded = pruneNode(statements[i], path, pathIndex + 1, target);
295
+ prunedStatements.push(prunedRightPadded);
296
+ }
297
+ }
298
+ // Following siblings are omitted
299
+ return (0, immer_1.produce)(node, (draft) => {
300
+ draft.statements = prunedStatements;
301
+ });
302
+ }
303
+ // For other properties, just recurse without pruning
304
+ if (Array.isArray(value) && segment.index !== undefined) {
305
+ const childNode = value[segment.index];
306
+ const prunedChild = pruneNode(childNode, path, pathIndex + 1, target);
307
+ if (prunedChild !== childNode) {
308
+ return (0, immer_1.produce)(node, (draft) => {
309
+ draft[segment.property][segment.index] = prunedChild;
310
+ });
311
+ }
312
+ }
313
+ else if (!Array.isArray(value)) {
314
+ const prunedChild = pruneNode(value, path, pathIndex + 1, target);
315
+ if (prunedChild !== value) {
316
+ return (0, immer_1.produce)(node, (draft) => {
317
+ draft[segment.property] = prunedChild;
318
+ });
319
+ }
320
+ }
321
+ return node;
322
+ }
323
+ /**
324
+ * Finds a node in a tree by following a path of segments.
325
+ * Used to locate the target node in the formatted tree.
326
+ *
327
+ * For block statements, the target is always at the last index since
328
+ * following siblings are omitted during pruning.
329
+ */
330
+ function findByPath(tree, path) {
331
+ let current = tree;
332
+ for (const segment of path) {
333
+ if (current == null)
334
+ return undefined;
335
+ const value = current[segment.property];
336
+ if (value == null)
337
+ return undefined;
338
+ if (Array.isArray(value) && segment.index !== undefined) {
339
+ // For block statements, target is always at the last index
340
+ // since following siblings are omitted during pruning
341
+ const isBlockStatements = current.kind === java_1.J.Kind.Block && segment.property === 'statements';
342
+ const index = isBlockStatements ? value.length - 1 : segment.index;
343
+ const item = value[index];
344
+ if (item == null)
345
+ return undefined;
346
+ current = item;
347
+ }
348
+ else {
349
+ current = value;
350
+ }
351
+ }
352
+ return current;
353
+ }
354
+ /**
355
+ * Formats a subtree of a JavaScript/TypeScript AST using Prettier.
356
+ *
357
+ * This function is optimized for formatting a small part of a larger tree:
358
+ * 1. Extracts the path from compilation unit to target
359
+ * 2. Prunes the tree (replaces siblings with placeholders)
360
+ * 3. Formats the pruned tree with Prettier
361
+ * 4. Finds the target in the formatted tree
362
+ * 5. Reconciles only the target subtree's whitespace
363
+ *
364
+ * @param target The subtree to format
365
+ * @param cursor The cursor pointing to or near the target
366
+ * @param options Prettier formatting options
367
+ * @param stopAfter Optional node to stop formatting after
368
+ * @returns The formatted subtree, or undefined if formatting failed
369
+ */
370
+ function prettierFormatSubtree(target_1, cursor_1) {
371
+ return __awaiter(this, arguments, void 0, function* (target, cursor, options = {}, stopAfter) {
372
+ // Extract the path and compilation unit in a single cursor traversal
373
+ const { compilationUnit: cu, path } = extractPathFromCursor(cursor, target);
374
+ if (!cu) {
375
+ return undefined;
376
+ }
377
+ // Prune the tree for efficient formatting and substitute the (potentially modified) target.
378
+ // This ensures that if the visitor modified the target before calling autoFormat,
379
+ // we format the modified content, not the original from the cursor.
380
+ const prunedCu = pruneTreeForSubtree(cu, path, target);
381
+ // Format the pruned compilation unit with Prettier
382
+ const formattedPrunedCu = yield prettierFormat(prunedCu, options);
383
+ // Find the target node in the formatted tree using the path
384
+ const formattedTarget = findByPath(formattedPrunedCu, path);
385
+ if (!formattedTarget) {
386
+ return undefined;
387
+ }
388
+ // Reconcile only the target subtree, optionally stopping after a specific node
389
+ const reconciler = new whitespace_reconciler_1.WhitespaceReconciler();
390
+ const reconciled = reconciler.reconcile(target, formattedTarget, undefined, stopAfter);
391
+ return reconciled;
392
+ });
393
+ }
394
+ /**
395
+ * Gets the PrettierStyle from the styles array or source file markers.
396
+ *
397
+ * @param tree The tree being formatted
398
+ * @param cursor Optional cursor for walking up to find source file
399
+ * @param styles Optional styles array to check first
400
+ * @returns PrettierStyle if found, undefined otherwise
401
+ */
402
+ function getPrettierStyle(tree, cursor, styles) {
403
+ var _a;
404
+ // First check the styles array
405
+ if (styles) {
406
+ const fromStyles = styles.find(s => s.kind === style_1.StyleKind.PrettierStyle);
407
+ if (fromStyles) {
408
+ return fromStyles;
409
+ }
410
+ }
411
+ // Then check for PrettierStyle marker on source file
412
+ let sourceFile;
413
+ if (tree.kind === tree_1.JS.Kind.CompilationUnit) {
414
+ sourceFile = tree;
415
+ }
416
+ else if (cursor) {
417
+ // Walk up the cursor to find the compilation unit
418
+ let current = cursor;
419
+ while (current) {
420
+ if (((_a = current.value) === null || _a === void 0 ? void 0 : _a.kind) === tree_1.JS.Kind.CompilationUnit) {
421
+ sourceFile = current.value;
422
+ break;
423
+ }
424
+ current = current.parent;
425
+ }
426
+ }
427
+ if (!sourceFile) {
428
+ return undefined;
429
+ }
430
+ return (0, markers_1.findMarker)(sourceFile, style_1.StyleKind.PrettierStyle);
431
+ }
432
+ /**
433
+ * Applies Prettier formatting to a tree.
434
+ *
435
+ * Configuration is resolved from the PrettierStyle marker on the source file.
436
+ *
437
+ * For compilation units, formats and reconciles the entire tree.
438
+ * For subtrees, uses prettierFormatSubtree which prunes the tree for efficiency,
439
+ * formats the pruned tree, and reconciles only the target subtree.
440
+ *
441
+ * @param tree The tree to format
442
+ * @param prettierStyle The PrettierStyle containing config
443
+ * @param p The visitor parameter
444
+ * @param cursor Optional cursor for subtree formatting
445
+ * @param stopAfter Optional tree to stop after
446
+ * @returns The formatted tree
447
+ */
448
+ function applyPrettierFormatting(tree, prettierStyle, p, cursor, stopAfter) {
449
+ return __awaiter(this, void 0, void 0, function* () {
450
+ // Run only the essential visitors first
451
+ const essentialVisitors = [
452
+ new normalize_whitespace_visitor_1.NormalizeWhitespaceVisitor(stopAfter),
453
+ new minimum_viable_spacing_visitor_1.MinimumViableSpacingVisitor(stopAfter),
454
+ ];
455
+ let t = tree;
456
+ for (const visitor of essentialVisitors) {
457
+ t = yield visitor.visit(t, p, cursor);
458
+ if (t === undefined) {
459
+ return undefined;
460
+ }
461
+ }
462
+ // If file is in .prettierignore, skip formatting entirely
463
+ if (prettierStyle.ignored) {
464
+ return t;
465
+ }
466
+ // Build options for Prettier
467
+ // Pass through the entire resolved config - let Prettier use its own defaults for unspecified options
468
+ const prettierOpts = Object.assign(Object.assign({}, prettierStyle.config), { prettierVersion: prettierStyle.prettierVersion });
469
+ try {
470
+ if (t.kind === tree_1.JS.Kind.CompilationUnit) {
471
+ // Format and reconcile the entire compilation unit
472
+ const formatted = yield prettierFormat(t, prettierOpts, stopAfter);
473
+ return formatted;
474
+ }
475
+ if (!cursor) {
476
+ // No cursor provided - can't use subtree formatting, return with essential formatting
477
+ console.warn('Prettier formatting: No cursor provided for subtree, returning with essential formatting only');
478
+ return t;
479
+ }
480
+ // Use prettierFormatSubtree for subtree formatting
481
+ const formatted = yield prettierFormatSubtree(t, cursor, prettierOpts, stopAfter);
482
+ if (formatted) {
483
+ return formatted;
484
+ }
485
+ // Subtree formatting failed, return with essential formatting applied
486
+ console.warn('Prettier formatting: Subtree formatting failed, returning with essential formatting only');
487
+ return t;
488
+ }
489
+ catch (e) {
490
+ // If Prettier fails, return tree with essential formatting applied
491
+ console.warn('Prettier formatting failed, returning with essential formatting only:', e);
492
+ return t;
493
+ }
494
+ });
495
+ }
496
+ //# sourceMappingURL=prettier-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier-format.js","sourceRoot":"","sources":["../../../src/javascript/format/prettier-format.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { JavaScriptVisitor } from "./visitor";
2
- import { J } from "../java";
3
- import { Cursor, Tree } from "../tree";
4
- import { TabsAndIndentsStyle } from "./style";
1
+ import { JavaScriptVisitor } from "../visitor";
2
+ import { J } from "../../java";
3
+ import { Cursor, Tree } from "../../tree";
4
+ import { TabsAndIndentsStyle } from "../style";
5
5
  export declare class TabsAndIndentsVisitor<P> extends JavaScriptVisitor<P> {
6
6
  private readonly tabsAndIndentsStyle;
7
7
  private stopAfter?;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-and-indents-visitor.d.ts","sourceRoot":"","sources":["../../../src/javascript/format/tabs-and-indents-visitor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAGH,CAAC,EAOJ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,MAAM,EAAmB,IAAI,EAAC,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAC;AAK7C,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAIlD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAAuB,OAAO,CAAC,SAAS,CAAC;IAHzF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAEb,mBAAmB,EAAE,mBAAmB,EAAU,SAAS,CAAC,EAAE,IAAI,YAAA;IAM/F,OAAO,CAAC,YAAY;cAOJ,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKhE,OAAO,CAAC,0BAA0B;IA+ElC,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,2BAA2B;IAsBpB,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkEhE,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,uBAAuB;IAyD/B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,iBAAiB;IAUZ,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAuBlG,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,kBAAkB;IAmBb,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC1E,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA2BvC,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,mBAAmB;IAoBd,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,EAC/C,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EACvB,CAAC,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAyBxC,OAAO,CAAC,mBAAmB;IAkD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBjB,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAanF,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,aAAa;CAMxB"}
@@ -25,14 +25,14 @@ exports.TabsAndIndentsVisitor = void 0;
25
25
  * See the License for the specific language governing permissions and
26
26
  * limitations under the License.
27
27
  */
28
- const tree_1 = require("./tree");
29
- const visitor_1 = require("./visitor");
30
- const java_1 = require("../java");
28
+ const tree_1 = require("../tree");
29
+ const visitor_1 = require("../visitor");
30
+ const java_1 = require("../../java");
31
31
  const immer_1 = require("immer");
32
- const tree_2 = require("../tree");
33
- const util_1 = require("../util");
34
- const visitor_2 = require("../visitor");
35
- const markers_1 = require("../markers");
32
+ const tree_2 = require("../../tree");
33
+ const util_1 = require("../../util");
34
+ const visitor_2 = require("../../visitor");
35
+ const markers_1 = require("../../markers");
36
36
  class TabsAndIndentsVisitor extends visitor_1.JavaScriptVisitor {
37
37
  constructor(tabsAndIndentsStyle, stopAfter) {
38
38
  super();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-and-indents-visitor.js","sourceRoot":"","sources":["../../../src/javascript/format/tabs-and-indents-visitor.ts"],"names":[],"mappings":"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"}