@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.
- package/dist/java/type.d.ts +5 -0
- package/dist/java/type.d.ts.map +1 -1
- package/dist/java/type.js +12 -0
- package/dist/java/type.js.map +1 -1
- package/dist/javascript/assertions.d.ts.map +1 -1
- package/dist/javascript/assertions.js +9 -0
- package/dist/javascript/assertions.js.map +1 -1
- package/dist/javascript/comparator.d.ts.map +1 -1
- package/dist/javascript/comparator.js +5 -9
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/{format.d.ts → format/format.d.ts} +15 -33
- package/dist/javascript/format/format.d.ts.map +1 -0
- package/dist/javascript/{format.js → format/format.js} +56 -313
- package/dist/javascript/format/format.js.map +1 -0
- package/dist/javascript/format/index.d.ts +3 -0
- package/dist/javascript/format/index.d.ts.map +1 -0
- package/dist/javascript/format/index.js +38 -0
- package/dist/javascript/format/index.js.map +1 -0
- package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts +28 -0
- package/dist/javascript/format/minimum-viable-spacing-visitor.d.ts.map +1 -0
- package/dist/javascript/format/minimum-viable-spacing-visitor.js +308 -0
- package/dist/javascript/format/minimum-viable-spacing-visitor.js.map +1 -0
- package/dist/javascript/format/normalize-whitespace-visitor.d.ts +14 -0
- package/dist/javascript/format/normalize-whitespace-visitor.d.ts.map +1 -0
- package/dist/javascript/format/normalize-whitespace-visitor.js +65 -0
- package/dist/javascript/format/normalize-whitespace-visitor.js.map +1 -0
- package/dist/javascript/format/prettier-config-loader.d.ts +92 -0
- package/dist/javascript/format/prettier-config-loader.d.ts.map +1 -0
- package/dist/javascript/format/prettier-config-loader.js +419 -0
- package/dist/javascript/format/prettier-config-loader.js.map +1 -0
- package/dist/javascript/format/prettier-format.d.ts +111 -0
- package/dist/javascript/format/prettier-format.d.ts.map +1 -0
- package/dist/javascript/format/prettier-format.js +496 -0
- package/dist/javascript/format/prettier-format.js.map +1 -0
- package/dist/javascript/{tabs-and-indents-visitor.d.ts → format/tabs-and-indents-visitor.d.ts} +4 -4
- package/dist/javascript/format/tabs-and-indents-visitor.d.ts.map +1 -0
- package/dist/javascript/{tabs-and-indents-visitor.js → format/tabs-and-indents-visitor.js} +7 -7
- package/dist/javascript/format/tabs-and-indents-visitor.js.map +1 -0
- package/dist/javascript/format/whitespace-reconciler.d.ts +106 -0
- package/dist/javascript/format/whitespace-reconciler.d.ts.map +1 -0
- package/dist/javascript/format/whitespace-reconciler.js +291 -0
- package/dist/javascript/format/whitespace-reconciler.js.map +1 -0
- package/dist/javascript/markers.d.ts.map +1 -1
- package/dist/javascript/markers.js +21 -0
- package/dist/javascript/markers.js.map +1 -1
- package/dist/javascript/parser.d.ts +15 -3
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +107 -24
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/recipes/auto-format.d.ts +3 -0
- package/dist/javascript/recipes/auto-format.d.ts.map +1 -1
- package/dist/javascript/recipes/auto-format.js +22 -1
- package/dist/javascript/recipes/auto-format.js.map +1 -1
- package/dist/javascript/style.d.ts +52 -1
- package/dist/javascript/style.d.ts.map +1 -1
- package/dist/javascript/style.js +43 -2
- package/dist/javascript/style.js.map +1 -1
- package/dist/test/rewrite-test.d.ts +3 -4
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +6 -18
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/yaml/assertions.d.ts +4 -0
- package/dist/yaml/assertions.d.ts.map +1 -0
- package/dist/yaml/assertions.js +31 -0
- package/dist/yaml/assertions.js.map +1 -0
- package/dist/yaml/index.d.ts +2 -1
- package/dist/yaml/index.d.ts.map +1 -1
- package/dist/yaml/index.js +2 -1
- package/dist/yaml/index.js.map +1 -1
- package/package.json +5 -4
- package/src/java/type.ts +12 -0
- package/src/javascript/assertions.ts +9 -0
- package/src/javascript/comparator.ts +6 -11
- package/src/javascript/{format.ts → format/format.ts} +59 -267
- package/src/javascript/format/index.ts +21 -0
- package/src/javascript/format/minimum-viable-spacing-visitor.ts +256 -0
- package/src/javascript/format/normalize-whitespace-visitor.ts +42 -0
- package/src/javascript/format/prettier-config-loader.ts +422 -0
- package/src/javascript/format/prettier-format.ts +622 -0
- package/src/javascript/{tabs-and-indents-visitor.ts → format/tabs-and-indents-visitor.ts} +8 -8
- package/src/javascript/format/whitespace-reconciler.ts +345 -0
- package/src/javascript/markers.ts +19 -0
- package/src/javascript/parser.ts +107 -20
- package/src/javascript/recipes/auto-format.ts +28 -1
- package/src/javascript/style.ts +41 -2
- package/src/test/rewrite-test.ts +6 -18
- package/src/yaml/assertions.ts +28 -0
- package/src/yaml/index.ts +2 -1
- package/dist/javascript/format.d.ts.map +0 -1
- package/dist/javascript/format.js.map +0 -1
- package/dist/javascript/tabs-and-indents-visitor.d.ts.map +0 -1
- 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":";;;;;;;;;;;AAsHA,wCA8DC;AA8RD,sDAgCC;AAUD,4CAmCC;AAkBD,0DA4DC;AA7mBD;;;;;;;;;;;;;;GAcG;AACH,kCAA2B;AAC3B,qCAAwC;AAExC,uCAAyC;AACzC,sCAA2C;AAC3C,mEAA6D;AAC7D,iCAA8B;AAC9B,qCAAoC;AACpC,oCAAkD;AAElD,2CAAyC;AACzC,iFAA0E;AAC1E,qFAA6E;AAC7E,qEAA6D;AAE7D;;;;;;;GAOG;AACH,SAAe,sBAAsB,CAAC,OAAgB;;QAClD,IAAI,OAAO,EAAE,CAAC;YACV,wDAAwD;YACxD,OAAO,MAAM,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,uBAAuB;QACvB,iEAAiE;QACjE,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;CAAA;AAqDD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAsB,cAAc;yDAChC,UAA8B,EAC9B,UAAiC,EAAE,EACnC,SAAa;QAEb,qDAAqD;QACrD,IAAI,QAAmC,CAAC;QAExC,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,KAAK,CACX,qGAAqG,CAAC,EAAE,CAC3G,CAAC;QACN,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG,MAAM,oBAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE5D,gDAAgD;QAChD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,sEAAsE;QACtE,iFAAiF;QACjF,sEAAsE;QACtE,MAAM,eAAe,mBACjB,MAAM,EACN,QAAQ,EAAE,UAAU,CAAC,UAAU,IAC5B,OAAO,CACb,CAAC;QACF,8DAA8D;QAC9D,OAAO,eAAe,CAAC,eAAe,CAAC;QAEvC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAE/E,+EAA+E;QAC/E,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,yBAAgB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC;YACjD,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,IAAI,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YAC1F,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,kEAAkE;QAClE,2EAA2E;QAC3E,wEAAwE;QACxE,iEAAiE;QACjE,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,4CAAoB,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,YAAkC,CAAC;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnF,sFAAsF;QACtF,yFAAyF;QACzF,OAAO,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAA4B,CAAC,CAAC,CAAC,WAAW,CAAC;IAClF,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,4BAA4B,GAA2B;IACzD,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;CAClB,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,iBAAiB;AACrC,CAAC;AAsBD;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,MAAc,EAAE,MAAW;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;IAC/D,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,eAA+C,CAAC;IAEpD,gEAAgE;IAChE,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,CAAM,EAAW,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACrF,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,CAAC,MAAW,EAAE,KAAU,EAA2B,EAAE;QAC3E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAE5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC1B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBACzC,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/B,4CAA4C;QAC5C,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,eAAe,GAAG,MAA4B,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,eAAe,GAAG,QAA8B,CAAC;IACrD,CAAC;IAED,kEAAkE;IAClE,qEAAqE;IACrE,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,YAAY,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,MAAe;IAC1C,OAAO;QACH,IAAI,EAAE,QAAC,CAAC,IAAI,CAAC,UAAU;QACvB,EAAE,EAAE,IAAA,eAAQ,GAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,EAAE,EAAE,IAAA,eAAQ,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChF,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,SAAS;KACvB,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,mBAAmB,CAAC,EAAsB,EAAE,IAAmB,EAAE,MAAW;IACjF,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAuB,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAS,EAAE,IAAmB,EAAE,SAAiB,EAAE,MAAW;IAC7E,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,kFAAkF;QAClF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,uDAAuD;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjG,MAAM,UAAU,GAAG,KAAmC,CAAC;QACvD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAElC,kCAAkC;QAClC,+EAA+E;QAC/E,6EAA6E;QAC7E,sCAAsC;QACtC,MAAM,gBAAgB,GAA+B,EAAE,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;gBAClB,kDAAkD;gBAClD,0DAA0D;gBAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpD,MAAM,WAAW,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;gBAC1D,gBAAgB,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,QAAC,CAAC,IAAI,CAAC,WAAW;oBACxB,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;oBAC1B,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO;iBACL,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACJ,oEAAoE;gBACpE,MAAM,iBAAiB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAChF,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,iCAAiC;QAEjC,OAAO,IAAA,eAAO,EAAC,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE;YAChC,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAA,eAAO,EAAC,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,GAAG,WAAW,CAAC;YAC1D,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAElE,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,IAAA,eAAO,EAAC,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAS,EAAE,IAAmB;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,2DAA2D;YAC3D,sDAAsD;YACtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC;YAC7F,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,KAAK,CAAC;QACpB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAsB,qBAAqB;yDACvC,MAAS,EACT,MAAc,EACd,UAAiC,EAAE,EACnC,SAAa;QAEb,qEAAqE;QACrE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5E,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,4FAA4F;QAC5F,kFAAkF;QAClF,oEAAoE;QACpE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvD,mDAAmD;QACnD,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAElE,4DAA4D;QAC5D,MAAM,eAAe,GAAG,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,+EAA+E;QAC/E,MAAM,UAAU,GAAG,IAAI,4CAAoB,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAW,EAAE,eAAoB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjG,OAAO,UAAe,CAAC;IAC3B,CAAC;CAAA;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC5B,IAAU,EACV,MAAe,EACf,MAA8B;;IAE9B,+BAA+B;IAC/B,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,IAAI,KAAK,iBAAS,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAsC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,IAAI,UAA0C,CAAC;IAE/C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,UAAU,GAAG,IAA0B,CAAC;IAC5C,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAChB,kDAAkD;QAClD,IAAI,OAAO,GAAuB,MAAM,CAAC;QACzC,OAAO,OAAO,EAAE,CAAC;YACb,IAAI,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,MAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAClD,UAAU,GAAG,OAAO,CAAC,KAA2B,CAAC;gBACjD,MAAM;YACV,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,IAAA,oBAAU,EAAC,UAAU,EAAE,iBAAS,CAAC,aAAa,CAA8B,CAAC;AACxF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAsB,uBAAuB,CACzC,IAAO,EACP,aAA4B,EAC5B,CAAI,EACJ,MAAe,EACf,SAAgB;;QAEhB,wCAAwC;QACxC,MAAM,iBAAiB,GAAG;YACtB,IAAI,yDAA0B,CAAC,SAAS,CAAC;YACzC,IAAI,4DAA2B,CAAC,SAAS,CAAC;SAC7C,CAAC;QAEF,IAAI,CAAC,GAAkB,IAAI,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACtC,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QAED,0DAA0D;QAC1D,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,6BAA6B;QAC7B,sGAAsG;QACtG,MAAM,YAAY,mCACX,aAAa,CAAC,MAA+B,KAChD,eAAe,EAAE,aAAa,CAAC,eAAe,GACjD,CAAC;QAEF,IAAI,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,mDAAmD;gBACnD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,CAAkC,EAAE,YAAY,EAAE,SAA0B,CAAC,CAAC;gBACrH,OAAO,SAAyB,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,sFAAsF;gBACtF,OAAO,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;gBAC9G,OAAO,CAAC,CAAC;YACb,CAAC;YAED,mDAAmD;YACnD,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,SAA0B,CAAC,CAAC;YACnG,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,SAAc,CAAC;YAC1B,CAAC;YAED,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;YACzG,OAAO,CAAC,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC,uEAAuE,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;CAAA"}
|
package/dist/javascript/{tabs-and-indents-visitor.d.ts → format/tabs-and-indents-visitor.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { JavaScriptVisitor } from "
|
|
2
|
-
import { J } from "
|
|
3
|
-
import { Cursor, Tree } from "
|
|
4
|
-
import { TabsAndIndentsStyle } from "
|
|
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("
|
|
29
|
-
const visitor_1 = require("
|
|
30
|
-
const java_1 = require("
|
|
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("
|
|
33
|
-
const util_1 = require("
|
|
34
|
-
const visitor_2 = require("
|
|
35
|
-
const markers_1 = require("
|
|
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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"}
|