@openrewrite/rewrite 8.69.0-20251207-220615 → 8.69.0-20251208-071356
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/javascript/autodetect.d.ts +45 -0
- package/dist/javascript/autodetect.d.ts.map +1 -0
- package/dist/javascript/autodetect.js +303 -0
- package/dist/javascript/autodetect.js.map +1 -0
- package/dist/javascript/format.d.ts +13 -2
- package/dist/javascript/format.d.ts.map +1 -1
- package/dist/javascript/format.js +100 -21
- package/dist/javascript/format.js.map +1 -1
- package/dist/javascript/index.d.ts +1 -0
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +1 -0
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/recipes/auto-format.d.ts +25 -13
- package/dist/javascript/recipes/auto-format.d.ts.map +1 -1
- package/dist/javascript/recipes/auto-format.js +38 -13
- package/dist/javascript/recipes/auto-format.js.map +1 -1
- package/dist/javascript/style.d.ts +9 -0
- package/dist/javascript/style.d.ts.map +1 -1
- package/dist/javascript/style.js +30 -0
- package/dist/javascript/style.js.map +1 -1
- package/dist/run.d.ts +6 -5
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +36 -37
- package/dist/run.js.map +1 -1
- package/dist/test/rewrite-test.d.ts +17 -0
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +1 -0
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/javascript/autodetect.ts +302 -0
- package/src/javascript/format.ts +97 -28
- package/src/javascript/index.ts +1 -0
- package/src/javascript/recipes/auto-format.ts +49 -14
- package/src/javascript/style.ts +32 -0
- package/src/run.ts +20 -20
- package/src/test/rewrite-test.ts +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NamedStyles, Style } from "../style";
|
|
2
|
+
import { SourceFile } from "../tree";
|
|
3
|
+
import { JS } from "./tree";
|
|
4
|
+
import { SpacesStyle, TabsAndIndentsStyle, WrappingAndBracesStyle } from "./style";
|
|
5
|
+
/**
|
|
6
|
+
* Auto-detected styles for JavaScript/TypeScript code.
|
|
7
|
+
* Focuses on key formatting variations where projects differ:
|
|
8
|
+
* - Tabs vs spaces
|
|
9
|
+
* - Indent size (2, 4, etc.)
|
|
10
|
+
* - Spaces within ES6 import/export braces
|
|
11
|
+
*/
|
|
12
|
+
export declare class Autodetect implements NamedStyles {
|
|
13
|
+
readonly kind: "org.openrewrite.marker.NamedStyles";
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly name = "org.openrewrite.javascript.Autodetect";
|
|
16
|
+
readonly displayName = "Auto-detected";
|
|
17
|
+
readonly description = "Automatically detect styles from a repository's existing code.";
|
|
18
|
+
readonly tags: string[];
|
|
19
|
+
readonly styles: Style[];
|
|
20
|
+
constructor(id: string, styles: Style[]);
|
|
21
|
+
static detector(): Detector;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Collects formatting statistics from source files and builds auto-detected styles.
|
|
25
|
+
*/
|
|
26
|
+
export declare class Detector {
|
|
27
|
+
private readonly tabsAndIndentsStats;
|
|
28
|
+
private readonly spacesStats;
|
|
29
|
+
/**
|
|
30
|
+
* Sample a source file to collect formatting statistics.
|
|
31
|
+
*/
|
|
32
|
+
sample(sourceFile: SourceFile): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Sample a JavaScript/TypeScript compilation unit.
|
|
35
|
+
*/
|
|
36
|
+
sampleJavaScript(cu: JS.CompilationUnit): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Build the auto-detected styles from collected statistics.
|
|
39
|
+
*/
|
|
40
|
+
build(): Autodetect;
|
|
41
|
+
getTabsAndIndentsStyle(): TabsAndIndentsStyle;
|
|
42
|
+
getSpacesStyle(): SpacesStyle;
|
|
43
|
+
getWrappingAndBracesStyle(): WrappingAndBracesStyle;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=autodetect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autodetect.d.ts","sourceRoot":"","sources":["../../src/javascript/autodetect.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,WAAW,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAG1B,OAAO,EAEH,WAAW,EAEX,mBAAmB,EACnB,sBAAsB,EAEzB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC1C,QAAQ,CAAC,IAAI,EAAG,oCAAoC,CAAU;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,2CAA2C;IACxD,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,WAAW,oEAAoE;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAM;IAC7B,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEb,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;IAKvC,MAAM,CAAC,QAAQ,IAAI,QAAQ;CAG9B;AAED;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,KAAK,IAAI,UAAU;IAQnB,sBAAsB,IAAI,mBAAmB;IAI7C,cAAc,IAAI,WAAW;IAI7B,yBAAyB,IAAI,sBAAsB;CAStD"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2025 the original author or authors.
|
|
4
|
+
* <p>
|
|
5
|
+
* Licensed under the Moderne Source Available License (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
* <p>
|
|
9
|
+
* https://docs.moderne.io/licensing/moderne-source-available-license
|
|
10
|
+
* <p>
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.Detector = exports.Autodetect = void 0;
|
|
28
|
+
const uuid_1 = require("../uuid");
|
|
29
|
+
const tree_1 = require("./tree");
|
|
30
|
+
const visitor_1 = require("./visitor");
|
|
31
|
+
const style_1 = require("./style");
|
|
32
|
+
/**
|
|
33
|
+
* Auto-detected styles for JavaScript/TypeScript code.
|
|
34
|
+
* Focuses on key formatting variations where projects differ:
|
|
35
|
+
* - Tabs vs spaces
|
|
36
|
+
* - Indent size (2, 4, etc.)
|
|
37
|
+
* - Spaces within ES6 import/export braces
|
|
38
|
+
*/
|
|
39
|
+
class Autodetect {
|
|
40
|
+
constructor(id, styles) {
|
|
41
|
+
this.kind = "org.openrewrite.marker.NamedStyles";
|
|
42
|
+
this.name = "org.openrewrite.javascript.Autodetect";
|
|
43
|
+
this.displayName = "Auto-detected";
|
|
44
|
+
this.description = "Automatically detect styles from a repository's existing code.";
|
|
45
|
+
this.tags = [];
|
|
46
|
+
this.id = id;
|
|
47
|
+
this.styles = styles;
|
|
48
|
+
}
|
|
49
|
+
static detector() {
|
|
50
|
+
return new Detector();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.Autodetect = Autodetect;
|
|
54
|
+
/**
|
|
55
|
+
* Collects formatting statistics from source files and builds auto-detected styles.
|
|
56
|
+
*/
|
|
57
|
+
class Detector {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.tabsAndIndentsStats = new TabsAndIndentsStatistics();
|
|
60
|
+
this.spacesStats = new SpacesStatistics();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sample a source file to collect formatting statistics.
|
|
64
|
+
*/
|
|
65
|
+
sample(sourceFile) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
if (sourceFile.kind === tree_1.JS.Kind.CompilationUnit) {
|
|
68
|
+
yield this.sampleJavaScript(sourceFile);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Sample a JavaScript/TypeScript compilation unit.
|
|
74
|
+
*/
|
|
75
|
+
sampleJavaScript(cu) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield new FindIndentVisitor(this.tabsAndIndentsStats).visit(cu, {});
|
|
78
|
+
yield new FindSpacesVisitor(this.spacesStats).visit(cu, {});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Build the auto-detected styles from collected statistics.
|
|
83
|
+
*/
|
|
84
|
+
build() {
|
|
85
|
+
return new Autodetect((0, uuid_1.randomId)(), [
|
|
86
|
+
this.tabsAndIndentsStats.getTabsAndIndentsStyle(),
|
|
87
|
+
this.spacesStats.getSpacesStyle(),
|
|
88
|
+
this.getWrappingAndBracesStyle(),
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
getTabsAndIndentsStyle() {
|
|
92
|
+
return this.tabsAndIndentsStats.getTabsAndIndentsStyle();
|
|
93
|
+
}
|
|
94
|
+
getSpacesStyle() {
|
|
95
|
+
return this.spacesStats.getSpacesStyle();
|
|
96
|
+
}
|
|
97
|
+
getWrappingAndBracesStyle() {
|
|
98
|
+
return {
|
|
99
|
+
kind: style_1.StyleKind.WrappingAndBracesStyle,
|
|
100
|
+
ifStatement: {
|
|
101
|
+
kind: style_1.WrappingAndBracesStyleDetailKind.WrappingAndBracesStyleIfStatement,
|
|
102
|
+
elseOnNewLine: false
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.Detector = Detector;
|
|
108
|
+
// ============================================================================
|
|
109
|
+
// Statistics Classes
|
|
110
|
+
// ============================================================================
|
|
111
|
+
/**
|
|
112
|
+
* Tracks indentation patterns to detect tabs vs spaces and indent size.
|
|
113
|
+
*/
|
|
114
|
+
class TabsAndIndentsStatistics {
|
|
115
|
+
constructor() {
|
|
116
|
+
this.totalSpaceIndents = 0;
|
|
117
|
+
this.totalTabIndents = 0;
|
|
118
|
+
// Track all observed indent sizes to compute GCD
|
|
119
|
+
this.observedIndents = [];
|
|
120
|
+
}
|
|
121
|
+
recordSpaceIndent(spaceCount) {
|
|
122
|
+
this.totalSpaceIndents++;
|
|
123
|
+
if (spaceCount > 0) {
|
|
124
|
+
this.observedIndents.push(spaceCount);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
recordTabIndent() {
|
|
128
|
+
this.totalTabIndents++;
|
|
129
|
+
}
|
|
130
|
+
getTabsAndIndentsStyle() {
|
|
131
|
+
// Determine if using tabs or spaces
|
|
132
|
+
const useTabs = this.totalTabIndents > this.totalSpaceIndents;
|
|
133
|
+
// Find indent size by computing GCD of all observed indents
|
|
134
|
+
// This correctly handles 2-space files where we see 2, 4, 6, 8... (all multiples of 2)
|
|
135
|
+
let detectedIndentSize = 4; // Default
|
|
136
|
+
if (this.observedIndents.length > 0) {
|
|
137
|
+
// Compute GCD of all observed indents
|
|
138
|
+
let gcd = this.observedIndents[0];
|
|
139
|
+
for (let i = 1; i < this.observedIndents.length; i++) {
|
|
140
|
+
gcd = this.computeGcd(gcd, this.observedIndents[i]);
|
|
141
|
+
if (gcd === 1)
|
|
142
|
+
break; // Can't get smaller than 1
|
|
143
|
+
}
|
|
144
|
+
// Only use common indent sizes (2, 4, 8)
|
|
145
|
+
if (gcd === 2 || gcd === 4 || gcd === 8) {
|
|
146
|
+
detectedIndentSize = gcd;
|
|
147
|
+
}
|
|
148
|
+
else if (gcd > 0 && gcd % 4 === 0) {
|
|
149
|
+
detectedIndentSize = 4;
|
|
150
|
+
}
|
|
151
|
+
else if (gcd > 0 && gcd % 2 === 0) {
|
|
152
|
+
detectedIndentSize = 2;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
kind: style_1.StyleKind.TabsAndIndentsStyle,
|
|
157
|
+
useTabCharacter: useTabs,
|
|
158
|
+
tabSize: 4,
|
|
159
|
+
indentSize: detectedIndentSize,
|
|
160
|
+
continuationIndent: detectedIndentSize * 2,
|
|
161
|
+
keepIndentsOnEmptyLines: false,
|
|
162
|
+
indentChainedMethods: true,
|
|
163
|
+
indentAllChainedCallsInAGroup: false
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
computeGcd(a, b) {
|
|
167
|
+
while (b !== 0) {
|
|
168
|
+
const temp = b;
|
|
169
|
+
b = a % b;
|
|
170
|
+
a = temp;
|
|
171
|
+
}
|
|
172
|
+
return a;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Tracks spacing patterns around ES6 import/export braces.
|
|
177
|
+
*/
|
|
178
|
+
class SpacesStatistics {
|
|
179
|
+
constructor() {
|
|
180
|
+
// Track spaces within ES6 import/export braces: { a } vs {a}
|
|
181
|
+
this.es6ImportExportBracesWithSpace = 0;
|
|
182
|
+
this.es6ImportExportBracesWithoutSpace = 0;
|
|
183
|
+
}
|
|
184
|
+
getSpacesStyle() {
|
|
185
|
+
// Use TypeScript defaults as base since most modern JS/TS projects use similar conventions
|
|
186
|
+
// TypeScript defaults include afterTypeReferenceColon: true which is commonly expected
|
|
187
|
+
const defaults = style_1.IntelliJ.TypeScript.spaces();
|
|
188
|
+
return Object.assign(Object.assign({}, defaults), { within: Object.assign(Object.assign({}, defaults.within), { es6ImportExportBraces: this.es6ImportExportBracesWithSpace > this.es6ImportExportBracesWithoutSpace }) });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// ============================================================================
|
|
192
|
+
// Visitor Classes for Collecting Statistics
|
|
193
|
+
// ============================================================================
|
|
194
|
+
/**
|
|
195
|
+
* Detects indentation patterns by examining block contents.
|
|
196
|
+
*/
|
|
197
|
+
class FindIndentVisitor extends visitor_1.JavaScriptVisitor {
|
|
198
|
+
constructor(stats) {
|
|
199
|
+
super();
|
|
200
|
+
this.stats = stats;
|
|
201
|
+
}
|
|
202
|
+
visitBlock(block, p) {
|
|
203
|
+
const _super = Object.create(null, {
|
|
204
|
+
visitBlock: { get: () => super.visitBlock }
|
|
205
|
+
});
|
|
206
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
207
|
+
var _a;
|
|
208
|
+
// Check indentation of statements in the block
|
|
209
|
+
for (const stmt of block.statements) {
|
|
210
|
+
const whitespace = (_a = stmt.element.prefix) === null || _a === void 0 ? void 0 : _a.whitespace;
|
|
211
|
+
if (whitespace) {
|
|
212
|
+
this.analyzeIndent(whitespace);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return _super.visitBlock.call(this, block, p);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
analyzeIndent(whitespace) {
|
|
219
|
+
const newlineIndex = whitespace.lastIndexOf('\n');
|
|
220
|
+
if (newlineIndex < 0)
|
|
221
|
+
return;
|
|
222
|
+
const indent = whitespace.substring(newlineIndex + 1);
|
|
223
|
+
if (indent.length === 0)
|
|
224
|
+
return;
|
|
225
|
+
// Check first character to determine type
|
|
226
|
+
if (indent[0] === '\t') {
|
|
227
|
+
this.stats.recordTabIndent();
|
|
228
|
+
}
|
|
229
|
+
else if (indent[0] === ' ') {
|
|
230
|
+
// Count consecutive spaces
|
|
231
|
+
let spaceCount = 0;
|
|
232
|
+
for (const char of indent) {
|
|
233
|
+
if (char === ' ')
|
|
234
|
+
spaceCount++;
|
|
235
|
+
else
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
if (spaceCount > 0) {
|
|
239
|
+
this.stats.recordSpaceIndent(spaceCount);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Detects spacing patterns in imports and exports.
|
|
246
|
+
*/
|
|
247
|
+
class FindSpacesVisitor extends visitor_1.JavaScriptVisitor {
|
|
248
|
+
constructor(stats) {
|
|
249
|
+
super();
|
|
250
|
+
this.stats = stats;
|
|
251
|
+
}
|
|
252
|
+
visitImportDeclaration(import_, p) {
|
|
253
|
+
const _super = Object.create(null, {
|
|
254
|
+
visitImportDeclaration: { get: () => super.visitImportDeclaration }
|
|
255
|
+
});
|
|
256
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
257
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
258
|
+
// Check ES6 import braces spacing: import { a } from 'x' vs import {a} from 'x'
|
|
259
|
+
if (((_b = (_a = import_.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) === null || _b === void 0 ? void 0 : _b.kind) === tree_1.JS.Kind.NamedImports) {
|
|
260
|
+
const namedImports = import_.importClause.namedBindings;
|
|
261
|
+
if (namedImports.elements.elements.length > 0) {
|
|
262
|
+
const firstElement = namedImports.elements.elements[0];
|
|
263
|
+
const hasSpaceAfterOpenBrace = (_e = (_d = (_c = firstElement.element.prefix) === null || _c === void 0 ? void 0 : _c.whitespace) === null || _d === void 0 ? void 0 : _d.includes(' ')) !== null && _e !== void 0 ? _e : false;
|
|
264
|
+
const lastElement = namedImports.elements.elements[namedImports.elements.elements.length - 1];
|
|
265
|
+
const hasSpaceBeforeCloseBrace = (_h = (_g = (_f = lastElement.after) === null || _f === void 0 ? void 0 : _f.whitespace) === null || _g === void 0 ? void 0 : _g.includes(' ')) !== null && _h !== void 0 ? _h : false;
|
|
266
|
+
if (hasSpaceAfterOpenBrace || hasSpaceBeforeCloseBrace) {
|
|
267
|
+
this.stats.es6ImportExportBracesWithSpace++;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
this.stats.es6ImportExportBracesWithoutSpace++;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return _super.visitImportDeclaration.call(this, import_, p);
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
visitExportDeclaration(export_, p) {
|
|
278
|
+
const _super = Object.create(null, {
|
|
279
|
+
visitExportDeclaration: { get: () => super.visitExportDeclaration }
|
|
280
|
+
});
|
|
281
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
283
|
+
// Check ES6 export braces spacing
|
|
284
|
+
if (((_a = export_.exportClause) === null || _a === void 0 ? void 0 : _a.kind) === tree_1.JS.Kind.NamedExports) {
|
|
285
|
+
const namedExports = export_.exportClause;
|
|
286
|
+
if (namedExports.elements.elements.length > 0) {
|
|
287
|
+
const firstElement = namedExports.elements.elements[0];
|
|
288
|
+
const hasSpaceAfterOpenBrace = (_d = (_c = (_b = firstElement.element.prefix) === null || _b === void 0 ? void 0 : _b.whitespace) === null || _c === void 0 ? void 0 : _c.includes(' ')) !== null && _d !== void 0 ? _d : false;
|
|
289
|
+
const lastElement = namedExports.elements.elements[namedExports.elements.elements.length - 1];
|
|
290
|
+
const hasSpaceBeforeCloseBrace = (_g = (_f = (_e = lastElement.after) === null || _e === void 0 ? void 0 : _e.whitespace) === null || _f === void 0 ? void 0 : _f.includes(' ')) !== null && _g !== void 0 ? _g : false;
|
|
291
|
+
if (hasSpaceAfterOpenBrace || hasSpaceBeforeCloseBrace) {
|
|
292
|
+
this.stats.es6ImportExportBracesWithSpace++;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
this.stats.es6ImportExportBracesWithoutSpace++;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return _super.visitExportDeclaration.call(this, export_, p);
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=autodetect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autodetect.js","sourceRoot":"","sources":["../../src/javascript/autodetect.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,22 @@ import { JavaScriptVisitor } from "./visitor";
|
|
|
3
3
|
import { J, Statement } from "../java";
|
|
4
4
|
import { Cursor, Tree } from "../tree";
|
|
5
5
|
import { BlankLinesStyle, SpacesStyle, WrappingAndBracesStyle } from "./style";
|
|
6
|
+
import { NamedStyles } from "../style";
|
|
6
7
|
export { TabsAndIndentsVisitor } from "./tabs-and-indents-visitor";
|
|
7
8
|
export declare const maybeAutoFormat: <J2 extends J, P>(before: J2, after: J2, p: P, stopAfter?: J, parent?: Cursor) => Promise<J2>;
|
|
8
|
-
export declare const autoFormat: <J2 extends J, P>(j: J2, p: P, stopAfter?: J, parent?: Cursor) => Promise<J2>;
|
|
9
|
+
export declare const autoFormat: <J2 extends J, P>(j: J2, p: P, stopAfter?: J, parent?: Cursor, styles?: NamedStyles[]) => Promise<J2>;
|
|
10
|
+
/**
|
|
11
|
+
* Formats JavaScript/TypeScript code using a comprehensive set of formatting rules.
|
|
12
|
+
*
|
|
13
|
+
* Style resolution order (first match wins):
|
|
14
|
+
* 1. Styles passed to the constructor
|
|
15
|
+
* 2. Styles from source file markers (NamedStyles)
|
|
16
|
+
* 3. IntelliJ defaults
|
|
17
|
+
*/
|
|
9
18
|
export declare class AutoformatVisitor<P> extends JavaScriptVisitor<P> {
|
|
10
19
|
private stopAfter?;
|
|
11
|
-
|
|
20
|
+
private readonly styles?;
|
|
21
|
+
constructor(stopAfter?: Tree | undefined, styles?: NamedStyles[]);
|
|
12
22
|
visit<R extends J>(tree: Tree, p: P, cursor?: Cursor): Promise<R | undefined>;
|
|
13
23
|
}
|
|
14
24
|
export declare class NormalizeWhitespaceVisitor<P> extends JavaScriptVisitor<P> {
|
|
@@ -43,6 +53,7 @@ export declare class SpacesVisitor<P> extends JavaScriptVisitor<P> {
|
|
|
43
53
|
protected visitTry(try_: J.Try, p: P): Promise<J | undefined>;
|
|
44
54
|
protected visitTypeDeclaration(typeDeclaration: JS.TypeDeclaration, p: P): Promise<J | undefined>;
|
|
45
55
|
protected visitTypeInfo(typeInfo: JS.TypeInfo, p: P): Promise<J | undefined>;
|
|
56
|
+
protected visitTypeLiteral(typeLiteral: JS.TypeLiteral, p: P): Promise<J | undefined>;
|
|
46
57
|
protected visitUnary(unary: J.Unary, p: P): Promise<J | undefined>;
|
|
47
58
|
protected visitVariable(variable: J.VariableDeclarations.NamedVariable, p: P): Promise<J | undefined>;
|
|
48
59
|
protected visitWhileLoop(whileLoop: J.WhileLoop, p: P): Promise<J | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/javascript/format.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,EAAE,EAAC,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAU,CAAC,EAAyC,SAAS,EAAC,MAAM,SAAS,CAAC;AAErF,OAAO,EAAC,MAAM,EAAW,IAAI,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/javascript/format.ts"],"names":[],"mappings":"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"}
|