prettier 4.0.0-alpha.10 → 4.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -4381
- package/README.md +7 -8
- package/THIRD-PARTY-NOTICES.md +4416 -0
- package/bin/prettier.cjs +4 -0
- package/doc.d.ts +11 -0
- package/doc.js +329 -393
- package/doc.mjs +329 -393
- package/index.cjs +10 -2
- package/index.d.ts +13 -3
- package/index.mjs +2320 -1964
- package/internal/cli.mjs +2268 -1295
- package/package.json +3 -2
- package/plugins/acorn.js +10 -10
- package/plugins/acorn.mjs +10 -10
- package/plugins/angular.js +2 -1
- package/plugins/angular.mjs +2 -1
- package/plugins/babel.js +11 -11
- package/plugins/babel.mjs +11 -11
- package/plugins/estree.js +28 -28
- package/plugins/estree.mjs +28 -28
- package/plugins/flow.js +15 -15
- package/plugins/flow.mjs +15 -15
- package/plugins/glimmer.js +23 -23
- package/plugins/glimmer.mjs +23 -23
- package/plugins/graphql.js +16 -16
- package/plugins/graphql.mjs +16 -16
- package/plugins/html.js +17 -17
- package/plugins/html.mjs +17 -17
- package/plugins/markdown.js +44 -43
- package/plugins/markdown.mjs +44 -43
- package/plugins/meriyah.js +4 -4
- package/plugins/meriyah.mjs +4 -4
- package/plugins/postcss.js +33 -31
- package/plugins/postcss.mjs +33 -31
- package/plugins/typescript.js +14 -14
- package/plugins/typescript.mjs +14 -14
- package/plugins/yaml.js +66 -66
- package/plugins/yaml.mjs +66 -66
- package/standalone.d.ts +1 -1
- package/standalone.js +32 -28
- package/standalone.mjs +33 -29
package/doc.mjs
CHANGED
|
@@ -44,6 +44,18 @@ var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
|
|
|
44
44
|
DOC_TYPE_BREAK_PARENT
|
|
45
45
|
]);
|
|
46
46
|
|
|
47
|
+
// scripts/build/shims/at.js
|
|
48
|
+
var at = (isOptionalObject, object, index) => {
|
|
49
|
+
if (isOptionalObject && (object === void 0 || object === null)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(object) || typeof object === "string") {
|
|
53
|
+
return object[index < 0 ? object.length + index : index];
|
|
54
|
+
}
|
|
55
|
+
return object.at(index);
|
|
56
|
+
};
|
|
57
|
+
var at_default = at;
|
|
58
|
+
|
|
47
59
|
// src/document/utils/get-doc-type.js
|
|
48
60
|
function getDocType(doc) {
|
|
49
61
|
if (typeof doc === "string") {
|
|
@@ -154,219 +166,6 @@ function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
|
|
|
154
166
|
}
|
|
155
167
|
var traverse_doc_default = traverseDoc;
|
|
156
168
|
|
|
157
|
-
// src/document/utils/assert-doc.js
|
|
158
|
-
var noop = () => {
|
|
159
|
-
};
|
|
160
|
-
var assertDoc = true ? noop : function(doc) {
|
|
161
|
-
traverse_doc_default(doc, (doc2) => {
|
|
162
|
-
if (checked.has(doc2)) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
if (typeof doc2 !== "string") {
|
|
166
|
-
checked.add(doc2);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
};
|
|
170
|
-
var assertDocArray = true ? noop : function(docs, optional = false) {
|
|
171
|
-
if (optional && !docs) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
if (!Array.isArray(docs)) {
|
|
175
|
-
throw new TypeError("Unexpected doc array.");
|
|
176
|
-
}
|
|
177
|
-
for (const doc of docs) {
|
|
178
|
-
assertDoc(doc);
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
// src/document/builders.js
|
|
183
|
-
function indent(contents) {
|
|
184
|
-
assertDoc(contents);
|
|
185
|
-
return { type: DOC_TYPE_INDENT, contents };
|
|
186
|
-
}
|
|
187
|
-
function align(widthOrString, contents) {
|
|
188
|
-
assertDoc(contents);
|
|
189
|
-
return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
|
|
190
|
-
}
|
|
191
|
-
function group(contents, opts = {}) {
|
|
192
|
-
assertDoc(contents);
|
|
193
|
-
assertDocArray(
|
|
194
|
-
opts.expandedStates,
|
|
195
|
-
/* optional */
|
|
196
|
-
true
|
|
197
|
-
);
|
|
198
|
-
return {
|
|
199
|
-
type: DOC_TYPE_GROUP,
|
|
200
|
-
id: opts.id,
|
|
201
|
-
contents,
|
|
202
|
-
break: Boolean(opts.shouldBreak),
|
|
203
|
-
expandedStates: opts.expandedStates
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
function dedentToRoot(contents) {
|
|
207
|
-
return align(Number.NEGATIVE_INFINITY, contents);
|
|
208
|
-
}
|
|
209
|
-
function markAsRoot(contents) {
|
|
210
|
-
return align({ type: "root" }, contents);
|
|
211
|
-
}
|
|
212
|
-
function dedent(contents) {
|
|
213
|
-
return align(-1, contents);
|
|
214
|
-
}
|
|
215
|
-
function conditionalGroup(states, opts) {
|
|
216
|
-
return group(states[0], { ...opts, expandedStates: states });
|
|
217
|
-
}
|
|
218
|
-
function fill(parts) {
|
|
219
|
-
assertDocArray(parts);
|
|
220
|
-
return { type: DOC_TYPE_FILL, parts };
|
|
221
|
-
}
|
|
222
|
-
function ifBreak(breakContents, flatContents = "", opts = {}) {
|
|
223
|
-
assertDoc(breakContents);
|
|
224
|
-
if (flatContents !== "") {
|
|
225
|
-
assertDoc(flatContents);
|
|
226
|
-
}
|
|
227
|
-
return {
|
|
228
|
-
type: DOC_TYPE_IF_BREAK,
|
|
229
|
-
breakContents,
|
|
230
|
-
flatContents,
|
|
231
|
-
groupId: opts.groupId
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
function indentIfBreak(contents, opts) {
|
|
235
|
-
assertDoc(contents);
|
|
236
|
-
return {
|
|
237
|
-
type: DOC_TYPE_INDENT_IF_BREAK,
|
|
238
|
-
contents,
|
|
239
|
-
groupId: opts.groupId,
|
|
240
|
-
negate: opts.negate
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
function lineSuffix(contents) {
|
|
244
|
-
assertDoc(contents);
|
|
245
|
-
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
246
|
-
}
|
|
247
|
-
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
248
|
-
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
249
|
-
var trim = { type: DOC_TYPE_TRIM };
|
|
250
|
-
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
251
|
-
var literallineWithoutBreakParent = {
|
|
252
|
-
type: DOC_TYPE_LINE,
|
|
253
|
-
hard: true,
|
|
254
|
-
literal: true
|
|
255
|
-
};
|
|
256
|
-
var line = { type: DOC_TYPE_LINE };
|
|
257
|
-
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
258
|
-
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
259
|
-
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
260
|
-
var cursor = { type: DOC_TYPE_CURSOR };
|
|
261
|
-
function join(separator, docs) {
|
|
262
|
-
assertDoc(separator);
|
|
263
|
-
assertDocArray(docs);
|
|
264
|
-
const parts = [];
|
|
265
|
-
for (let i = 0; i < docs.length; i++) {
|
|
266
|
-
if (i !== 0) {
|
|
267
|
-
parts.push(separator);
|
|
268
|
-
}
|
|
269
|
-
parts.push(docs[i]);
|
|
270
|
-
}
|
|
271
|
-
return parts;
|
|
272
|
-
}
|
|
273
|
-
function addAlignmentToDoc(doc, size, tabWidth) {
|
|
274
|
-
assertDoc(doc);
|
|
275
|
-
let aligned = doc;
|
|
276
|
-
if (size > 0) {
|
|
277
|
-
for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
|
|
278
|
-
aligned = indent(aligned);
|
|
279
|
-
}
|
|
280
|
-
aligned = align(size % tabWidth, aligned);
|
|
281
|
-
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
282
|
-
}
|
|
283
|
-
return aligned;
|
|
284
|
-
}
|
|
285
|
-
function label(label2, contents) {
|
|
286
|
-
assertDoc(contents);
|
|
287
|
-
return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// scripts/build/shims/at.js
|
|
291
|
-
var at = (isOptionalObject, object, index) => {
|
|
292
|
-
if (isOptionalObject && (object === void 0 || object === null)) {
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
if (Array.isArray(object) || typeof object === "string") {
|
|
296
|
-
return object[index < 0 ? object.length + index : index];
|
|
297
|
-
}
|
|
298
|
-
return object.at(index);
|
|
299
|
-
};
|
|
300
|
-
var at_default = at;
|
|
301
|
-
|
|
302
|
-
// scripts/build/shims/string-replace-all.js
|
|
303
|
-
var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
|
|
304
|
-
if (isOptionalObject && (original === void 0 || original === null)) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
if (original.replaceAll) {
|
|
308
|
-
return original.replaceAll(pattern, replacement);
|
|
309
|
-
}
|
|
310
|
-
if (pattern.global) {
|
|
311
|
-
return original.replace(pattern, replacement);
|
|
312
|
-
}
|
|
313
|
-
return original.split(pattern).join(replacement);
|
|
314
|
-
};
|
|
315
|
-
var string_replace_all_default = stringReplaceAll;
|
|
316
|
-
|
|
317
|
-
// src/common/end-of-line.js
|
|
318
|
-
function convertEndOfLineToChars(value) {
|
|
319
|
-
switch (value) {
|
|
320
|
-
case "cr":
|
|
321
|
-
return "\r";
|
|
322
|
-
case "crlf":
|
|
323
|
-
return "\r\n";
|
|
324
|
-
default:
|
|
325
|
-
return "\n";
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
// node_modules/emoji-regex/index.mjs
|
|
330
|
-
var emoji_regex_default = () => {
|
|
331
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
332
|
-
};
|
|
333
|
-
|
|
334
|
-
// node_modules/get-east-asian-width/lookup.js
|
|
335
|
-
function isFullWidth(x) {
|
|
336
|
-
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
337
|
-
}
|
|
338
|
-
function isWide(x) {
|
|
339
|
-
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 19968 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101632 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129672 || x >= 129680 && x <= 129725 || x >= 129727 && x <= 129733 || x >= 129742 && x <= 129755 || x >= 129760 && x <= 129768 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
// node_modules/get-east-asian-width/index.js
|
|
343
|
-
var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
|
|
344
|
-
|
|
345
|
-
// src/utils/get-string-width.js
|
|
346
|
-
var notAsciiRegex = /[^\x20-\x7F]/u;
|
|
347
|
-
function getStringWidth(text) {
|
|
348
|
-
if (!text) {
|
|
349
|
-
return 0;
|
|
350
|
-
}
|
|
351
|
-
if (!notAsciiRegex.test(text)) {
|
|
352
|
-
return text.length;
|
|
353
|
-
}
|
|
354
|
-
text = text.replace(emoji_regex_default(), " ");
|
|
355
|
-
let width = 0;
|
|
356
|
-
for (const character of text) {
|
|
357
|
-
const codePoint = character.codePointAt(0);
|
|
358
|
-
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
359
|
-
continue;
|
|
360
|
-
}
|
|
361
|
-
if (codePoint >= 768 && codePoint <= 879) {
|
|
362
|
-
continue;
|
|
363
|
-
}
|
|
364
|
-
width += _isNarrowWidth(codePoint) ? 1 : 2;
|
|
365
|
-
}
|
|
366
|
-
return width;
|
|
367
|
-
}
|
|
368
|
-
var get_string_width_default = getStringWidth;
|
|
369
|
-
|
|
370
169
|
// src/document/utils.js
|
|
371
170
|
function mapDoc(doc, cb) {
|
|
372
171
|
if (typeof doc === "string") {
|
|
@@ -387,10 +186,7 @@ function mapDoc(doc, cb) {
|
|
|
387
186
|
case DOC_TYPE_ARRAY:
|
|
388
187
|
return cb(doc2.map(rec));
|
|
389
188
|
case DOC_TYPE_FILL:
|
|
390
|
-
return cb({
|
|
391
|
-
...doc2,
|
|
392
|
-
parts: doc2.parts.map(rec)
|
|
393
|
-
});
|
|
189
|
+
return cb({ ...doc2, parts: doc2.parts.map(rec) });
|
|
394
190
|
case DOC_TYPE_IF_BREAK:
|
|
395
191
|
return cb({
|
|
396
192
|
...doc2,
|
|
@@ -398,31 +194,21 @@ function mapDoc(doc, cb) {
|
|
|
398
194
|
flatContents: rec(doc2.flatContents)
|
|
399
195
|
});
|
|
400
196
|
case DOC_TYPE_GROUP: {
|
|
401
|
-
let {
|
|
402
|
-
expandedStates,
|
|
403
|
-
contents
|
|
404
|
-
} = doc2;
|
|
197
|
+
let { expandedStates, contents } = doc2;
|
|
405
198
|
if (expandedStates) {
|
|
406
199
|
expandedStates = expandedStates.map(rec);
|
|
407
200
|
contents = expandedStates[0];
|
|
408
201
|
} else {
|
|
409
202
|
contents = rec(contents);
|
|
410
203
|
}
|
|
411
|
-
return cb({
|
|
412
|
-
...doc2,
|
|
413
|
-
contents,
|
|
414
|
-
expandedStates
|
|
415
|
-
});
|
|
204
|
+
return cb({ ...doc2, contents, expandedStates });
|
|
416
205
|
}
|
|
417
206
|
case DOC_TYPE_ALIGN:
|
|
418
207
|
case DOC_TYPE_INDENT:
|
|
419
208
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
420
209
|
case DOC_TYPE_LABEL:
|
|
421
210
|
case DOC_TYPE_LINE_SUFFIX:
|
|
422
|
-
return cb({
|
|
423
|
-
...doc2,
|
|
424
|
-
contents: rec(doc2.contents)
|
|
425
|
-
});
|
|
211
|
+
return cb({ ...doc2, contents: rec(doc2.contents) });
|
|
426
212
|
case DOC_TYPE_STRING:
|
|
427
213
|
case DOC_TYPE_CURSOR:
|
|
428
214
|
case DOC_TYPE_TRIM:
|
|
@@ -556,10 +342,7 @@ function stripTrailingHardlineFromDoc(doc) {
|
|
|
556
342
|
case DOC_TYPE_LINE_SUFFIX:
|
|
557
343
|
case DOC_TYPE_LABEL: {
|
|
558
344
|
const contents = stripTrailingHardlineFromDoc(doc.contents);
|
|
559
|
-
return {
|
|
560
|
-
...doc,
|
|
561
|
-
contents
|
|
562
|
-
};
|
|
345
|
+
return { ...doc, contents };
|
|
563
346
|
}
|
|
564
347
|
case DOC_TYPE_IF_BREAK:
|
|
565
348
|
return {
|
|
@@ -568,10 +351,7 @@ function stripTrailingHardlineFromDoc(doc) {
|
|
|
568
351
|
flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
|
|
569
352
|
};
|
|
570
353
|
case DOC_TYPE_FILL:
|
|
571
|
-
return {
|
|
572
|
-
...doc,
|
|
573
|
-
parts: stripTrailingHardlineFromParts(doc.parts)
|
|
574
|
-
};
|
|
354
|
+
return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };
|
|
575
355
|
case DOC_TYPE_ARRAY:
|
|
576
356
|
return stripTrailingHardlineFromParts(doc);
|
|
577
357
|
case DOC_TYPE_STRING:
|
|
@@ -663,7 +443,10 @@ function cleanDoc(doc) {
|
|
|
663
443
|
return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
|
|
664
444
|
}
|
|
665
445
|
function replaceEndOfLine(doc, replacement = literalline) {
|
|
666
|
-
return mapDoc(
|
|
446
|
+
return mapDoc(
|
|
447
|
+
doc,
|
|
448
|
+
(currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc
|
|
449
|
+
);
|
|
667
450
|
}
|
|
668
451
|
function canBreakFn(doc) {
|
|
669
452
|
if (doc.type === DOC_TYPE_LINE) {
|
|
@@ -674,46 +457,257 @@ function canBreak(doc) {
|
|
|
674
457
|
return findInDoc(doc, canBreakFn, false);
|
|
675
458
|
}
|
|
676
459
|
|
|
460
|
+
// src/document/utils/assert-doc.js
|
|
461
|
+
var noop = () => {
|
|
462
|
+
};
|
|
463
|
+
var assertDoc = true ? noop : function(doc) {
|
|
464
|
+
traverse_doc_default(doc, (doc2) => {
|
|
465
|
+
if (checked.has(doc2)) {
|
|
466
|
+
return false;
|
|
467
|
+
}
|
|
468
|
+
if (typeof doc2 !== "string") {
|
|
469
|
+
checked.add(doc2);
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
};
|
|
473
|
+
var assertDocArray = true ? noop : function(docs, optional = false) {
|
|
474
|
+
if (optional && !docs) {
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
if (!Array.isArray(docs)) {
|
|
478
|
+
throw new TypeError("Unexpected doc array.");
|
|
479
|
+
}
|
|
480
|
+
for (const doc of docs) {
|
|
481
|
+
assertDoc(doc);
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
var assertDocFillParts = true ? noop : (
|
|
485
|
+
/**
|
|
486
|
+
* @param {Doc[]} parts
|
|
487
|
+
*/
|
|
488
|
+
function(parts) {
|
|
489
|
+
assertDocArray(parts);
|
|
490
|
+
if (parts.length > 1 && isEmptyDoc(at_default(
|
|
491
|
+
/* isOptionalObject */
|
|
492
|
+
false,
|
|
493
|
+
parts,
|
|
494
|
+
-1
|
|
495
|
+
))) {
|
|
496
|
+
parts = parts.slice(0, -1);
|
|
497
|
+
}
|
|
498
|
+
for (const [i, doc] of parts.entries()) {
|
|
499
|
+
if (i % 2 === 1 && !isValidSeparator(doc)) {
|
|
500
|
+
const type = get_doc_type_default(doc);
|
|
501
|
+
throw new Error(
|
|
502
|
+
`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`
|
|
503
|
+
);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
);
|
|
508
|
+
|
|
509
|
+
// src/document/builders.js
|
|
510
|
+
function indent(contents) {
|
|
511
|
+
assertDoc(contents);
|
|
512
|
+
return { type: DOC_TYPE_INDENT, contents };
|
|
513
|
+
}
|
|
514
|
+
function align(widthOrString, contents) {
|
|
515
|
+
assertDoc(contents);
|
|
516
|
+
return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
|
|
517
|
+
}
|
|
518
|
+
function group(contents, opts = {}) {
|
|
519
|
+
assertDoc(contents);
|
|
520
|
+
assertDocArray(
|
|
521
|
+
opts.expandedStates,
|
|
522
|
+
/* optional */
|
|
523
|
+
true
|
|
524
|
+
);
|
|
525
|
+
return {
|
|
526
|
+
type: DOC_TYPE_GROUP,
|
|
527
|
+
id: opts.id,
|
|
528
|
+
contents,
|
|
529
|
+
break: Boolean(opts.shouldBreak),
|
|
530
|
+
expandedStates: opts.expandedStates
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
function dedentToRoot(contents) {
|
|
534
|
+
return align(Number.NEGATIVE_INFINITY, contents);
|
|
535
|
+
}
|
|
536
|
+
function markAsRoot(contents) {
|
|
537
|
+
return align({ type: "root" }, contents);
|
|
538
|
+
}
|
|
539
|
+
function dedent(contents) {
|
|
540
|
+
return align(-1, contents);
|
|
541
|
+
}
|
|
542
|
+
function conditionalGroup(states, opts) {
|
|
543
|
+
return group(states[0], { ...opts, expandedStates: states });
|
|
544
|
+
}
|
|
545
|
+
function fill(parts) {
|
|
546
|
+
assertDocFillParts(parts);
|
|
547
|
+
return { type: DOC_TYPE_FILL, parts };
|
|
548
|
+
}
|
|
549
|
+
function ifBreak(breakContents, flatContents = "", opts = {}) {
|
|
550
|
+
assertDoc(breakContents);
|
|
551
|
+
if (flatContents !== "") {
|
|
552
|
+
assertDoc(flatContents);
|
|
553
|
+
}
|
|
554
|
+
return {
|
|
555
|
+
type: DOC_TYPE_IF_BREAK,
|
|
556
|
+
breakContents,
|
|
557
|
+
flatContents,
|
|
558
|
+
groupId: opts.groupId
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
function indentIfBreak(contents, opts) {
|
|
562
|
+
assertDoc(contents);
|
|
563
|
+
return {
|
|
564
|
+
type: DOC_TYPE_INDENT_IF_BREAK,
|
|
565
|
+
contents,
|
|
566
|
+
groupId: opts.groupId,
|
|
567
|
+
negate: opts.negate
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
function lineSuffix(contents) {
|
|
571
|
+
assertDoc(contents);
|
|
572
|
+
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
573
|
+
}
|
|
574
|
+
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
575
|
+
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
576
|
+
var trim = { type: DOC_TYPE_TRIM };
|
|
577
|
+
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
578
|
+
var literallineWithoutBreakParent = {
|
|
579
|
+
type: DOC_TYPE_LINE,
|
|
580
|
+
hard: true,
|
|
581
|
+
literal: true
|
|
582
|
+
};
|
|
583
|
+
var line = { type: DOC_TYPE_LINE };
|
|
584
|
+
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
585
|
+
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
586
|
+
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
587
|
+
var cursor = { type: DOC_TYPE_CURSOR };
|
|
588
|
+
function join(separator, docs) {
|
|
589
|
+
assertDoc(separator);
|
|
590
|
+
assertDocArray(docs);
|
|
591
|
+
const parts = [];
|
|
592
|
+
for (let i = 0; i < docs.length; i++) {
|
|
593
|
+
if (i !== 0) {
|
|
594
|
+
parts.push(separator);
|
|
595
|
+
}
|
|
596
|
+
parts.push(docs[i]);
|
|
597
|
+
}
|
|
598
|
+
return parts;
|
|
599
|
+
}
|
|
600
|
+
function addAlignmentToDoc(doc, size, tabWidth) {
|
|
601
|
+
assertDoc(doc);
|
|
602
|
+
let aligned = doc;
|
|
603
|
+
if (size > 0) {
|
|
604
|
+
for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
|
|
605
|
+
aligned = indent(aligned);
|
|
606
|
+
}
|
|
607
|
+
aligned = align(size % tabWidth, aligned);
|
|
608
|
+
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
609
|
+
}
|
|
610
|
+
return aligned;
|
|
611
|
+
}
|
|
612
|
+
function label(label2, contents) {
|
|
613
|
+
assertDoc(contents);
|
|
614
|
+
return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// scripts/build/shims/string-replace-all.js
|
|
618
|
+
var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
|
|
619
|
+
if (isOptionalObject && (original === void 0 || original === null)) {
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
622
|
+
if (original.replaceAll) {
|
|
623
|
+
return original.replaceAll(pattern, replacement);
|
|
624
|
+
}
|
|
625
|
+
if (pattern.global) {
|
|
626
|
+
return original.replace(pattern, replacement);
|
|
627
|
+
}
|
|
628
|
+
return original.split(pattern).join(replacement);
|
|
629
|
+
};
|
|
630
|
+
var string_replace_all_default = stringReplaceAll;
|
|
631
|
+
|
|
632
|
+
// src/common/end-of-line.js
|
|
633
|
+
function convertEndOfLineToChars(value) {
|
|
634
|
+
switch (value) {
|
|
635
|
+
case "cr":
|
|
636
|
+
return "\r";
|
|
637
|
+
case "crlf":
|
|
638
|
+
return "\r\n";
|
|
639
|
+
default:
|
|
640
|
+
return "\n";
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
// node_modules/emoji-regex/index.mjs
|
|
645
|
+
var emoji_regex_default = () => {
|
|
646
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
647
|
+
};
|
|
648
|
+
|
|
649
|
+
// node_modules/get-east-asian-width/lookup.js
|
|
650
|
+
function isFullWidth(x) {
|
|
651
|
+
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
652
|
+
}
|
|
653
|
+
function isWide(x) {
|
|
654
|
+
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
// node_modules/get-east-asian-width/index.js
|
|
658
|
+
var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
|
|
659
|
+
|
|
660
|
+
// src/utils/get-string-width.js
|
|
661
|
+
var notAsciiRegex = /[^\x20-\x7F]/u;
|
|
662
|
+
function getStringWidth(text) {
|
|
663
|
+
if (!text) {
|
|
664
|
+
return 0;
|
|
665
|
+
}
|
|
666
|
+
if (!notAsciiRegex.test(text)) {
|
|
667
|
+
return text.length;
|
|
668
|
+
}
|
|
669
|
+
text = text.replace(emoji_regex_default(), " ");
|
|
670
|
+
let width = 0;
|
|
671
|
+
for (const character of text) {
|
|
672
|
+
const codePoint = character.codePointAt(0);
|
|
673
|
+
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
674
|
+
continue;
|
|
675
|
+
}
|
|
676
|
+
if (codePoint >= 768 && codePoint <= 879) {
|
|
677
|
+
continue;
|
|
678
|
+
}
|
|
679
|
+
width += _isNarrowWidth(codePoint) ? 1 : 2;
|
|
680
|
+
}
|
|
681
|
+
return width;
|
|
682
|
+
}
|
|
683
|
+
var get_string_width_default = getStringWidth;
|
|
684
|
+
|
|
677
685
|
// src/document/printer.js
|
|
678
686
|
var MODE_BREAK = Symbol("MODE_BREAK");
|
|
679
687
|
var MODE_FLAT = Symbol("MODE_FLAT");
|
|
680
688
|
var CURSOR_PLACEHOLDER = Symbol("cursor");
|
|
681
689
|
var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
682
690
|
function rootIndent() {
|
|
683
|
-
return {
|
|
684
|
-
value: "",
|
|
685
|
-
length: 0,
|
|
686
|
-
queue: []
|
|
687
|
-
};
|
|
691
|
+
return { value: "", length: 0, queue: [] };
|
|
688
692
|
}
|
|
689
693
|
function makeIndent(ind, options) {
|
|
690
|
-
return generateInd(ind, {
|
|
691
|
-
type: "indent"
|
|
692
|
-
}, options);
|
|
694
|
+
return generateInd(ind, { type: "indent" }, options);
|
|
693
695
|
}
|
|
694
696
|
function makeAlign(indent2, widthOrDoc, options) {
|
|
695
697
|
if (widthOrDoc === Number.NEGATIVE_INFINITY) {
|
|
696
698
|
return indent2.root || rootIndent();
|
|
697
699
|
}
|
|
698
700
|
if (widthOrDoc < 0) {
|
|
699
|
-
return generateInd(indent2, {
|
|
700
|
-
type: "dedent"
|
|
701
|
-
}, options);
|
|
701
|
+
return generateInd(indent2, { type: "dedent" }, options);
|
|
702
702
|
}
|
|
703
703
|
if (!widthOrDoc) {
|
|
704
704
|
return indent2;
|
|
705
705
|
}
|
|
706
706
|
if (widthOrDoc.type === "root") {
|
|
707
|
-
return {
|
|
708
|
-
...indent2,
|
|
709
|
-
root: indent2
|
|
710
|
-
};
|
|
707
|
+
return { ...indent2, root: indent2 };
|
|
711
708
|
}
|
|
712
709
|
const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
|
|
713
|
-
return generateInd(indent2, {
|
|
714
|
-
type: alignType,
|
|
715
|
-
n: widthOrDoc
|
|
716
|
-
}, options);
|
|
710
|
+
return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);
|
|
717
711
|
}
|
|
718
712
|
function generateInd(ind, newPart, options) {
|
|
719
713
|
const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
|
|
@@ -745,12 +739,7 @@ function generateInd(ind, newPart, options) {
|
|
|
745
739
|
}
|
|
746
740
|
}
|
|
747
741
|
flushSpaces();
|
|
748
|
-
return {
|
|
749
|
-
...ind,
|
|
750
|
-
value,
|
|
751
|
-
length,
|
|
752
|
-
queue
|
|
753
|
-
};
|
|
742
|
+
return { ...ind, value, length, queue };
|
|
754
743
|
function addTabs(count) {
|
|
755
744
|
value += " ".repeat(count);
|
|
756
745
|
length += options.tabWidth * count;
|
|
@@ -829,10 +818,7 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
829
818
|
cmds.push(restCommands[--restIdx]);
|
|
830
819
|
continue;
|
|
831
820
|
}
|
|
832
|
-
const {
|
|
833
|
-
mode,
|
|
834
|
-
doc
|
|
835
|
-
} = cmds.pop();
|
|
821
|
+
const { mode, doc } = cmds.pop();
|
|
836
822
|
const docType = get_doc_type_default(doc);
|
|
837
823
|
switch (docType) {
|
|
838
824
|
case DOC_TYPE_STRING:
|
|
@@ -842,11 +828,9 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
842
828
|
case DOC_TYPE_ARRAY:
|
|
843
829
|
case DOC_TYPE_FILL: {
|
|
844
830
|
const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
doc: parts[i]
|
|
849
|
-
});
|
|
831
|
+
const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
832
|
+
for (let i = parts.length - 1; i >= end; i--) {
|
|
833
|
+
cmds.push({ mode, doc: parts[i] });
|
|
850
834
|
}
|
|
851
835
|
break;
|
|
852
836
|
}
|
|
@@ -854,10 +838,7 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
854
838
|
case DOC_TYPE_ALIGN:
|
|
855
839
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
856
840
|
case DOC_TYPE_LABEL:
|
|
857
|
-
cmds.push({
|
|
858
|
-
mode,
|
|
859
|
-
doc: doc.contents
|
|
860
|
-
});
|
|
841
|
+
cmds.push({ mode, doc: doc.contents });
|
|
861
842
|
break;
|
|
862
843
|
case DOC_TYPE_TRIM:
|
|
863
844
|
width += trim2(out);
|
|
@@ -873,20 +854,14 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
873
854
|
doc.expandedStates,
|
|
874
855
|
-1
|
|
875
856
|
) : doc.contents;
|
|
876
|
-
cmds.push({
|
|
877
|
-
mode: groupMode,
|
|
878
|
-
doc: contents
|
|
879
|
-
});
|
|
857
|
+
cmds.push({ mode: groupMode, doc: contents });
|
|
880
858
|
break;
|
|
881
859
|
}
|
|
882
860
|
case DOC_TYPE_IF_BREAK: {
|
|
883
861
|
const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
|
|
884
862
|
const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
|
|
885
863
|
if (contents) {
|
|
886
|
-
cmds.push({
|
|
887
|
-
mode,
|
|
888
|
-
doc: contents
|
|
889
|
-
});
|
|
864
|
+
cmds.push({ mode, doc: contents });
|
|
890
865
|
}
|
|
891
866
|
break;
|
|
892
867
|
}
|
|
@@ -916,22 +891,14 @@ function printDocToString(doc, options) {
|
|
|
916
891
|
const width = options.printWidth;
|
|
917
892
|
const newLine = convertEndOfLineToChars(options.endOfLine);
|
|
918
893
|
let pos = 0;
|
|
919
|
-
const cmds = [{
|
|
920
|
-
ind: rootIndent(),
|
|
921
|
-
mode: MODE_BREAK,
|
|
922
|
-
doc
|
|
923
|
-
}];
|
|
894
|
+
const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];
|
|
924
895
|
const out = [];
|
|
925
896
|
let shouldRemeasure = false;
|
|
926
897
|
const lineSuffix2 = [];
|
|
927
898
|
let printedCursorCount = 0;
|
|
928
899
|
propagateBreaks(doc);
|
|
929
900
|
while (cmds.length > 0) {
|
|
930
|
-
const {
|
|
931
|
-
ind,
|
|
932
|
-
mode,
|
|
933
|
-
doc: doc2
|
|
934
|
-
} = cmds.pop();
|
|
901
|
+
const { ind, mode, doc: doc2 } = cmds.pop();
|
|
935
902
|
switch (get_doc_type_default(doc2)) {
|
|
936
903
|
case DOC_TYPE_STRING: {
|
|
937
904
|
const formatted = newLine !== "\n" ? string_replace_all_default(
|
|
@@ -949,11 +916,7 @@ function printDocToString(doc, options) {
|
|
|
949
916
|
}
|
|
950
917
|
case DOC_TYPE_ARRAY:
|
|
951
918
|
for (let i = doc2.length - 1; i >= 0; i--) {
|
|
952
|
-
cmds.push({
|
|
953
|
-
ind,
|
|
954
|
-
mode,
|
|
955
|
-
doc: doc2[i]
|
|
956
|
-
});
|
|
919
|
+
cmds.push({ ind, mode, doc: doc2[i] });
|
|
957
920
|
}
|
|
958
921
|
break;
|
|
959
922
|
case DOC_TYPE_CURSOR:
|
|
@@ -964,11 +927,7 @@ function printDocToString(doc, options) {
|
|
|
964
927
|
printedCursorCount++;
|
|
965
928
|
break;
|
|
966
929
|
case DOC_TYPE_INDENT:
|
|
967
|
-
cmds.push({
|
|
968
|
-
ind: makeIndent(ind, options),
|
|
969
|
-
mode,
|
|
970
|
-
doc: doc2.contents
|
|
971
|
-
});
|
|
930
|
+
cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });
|
|
972
931
|
break;
|
|
973
932
|
case DOC_TYPE_ALIGN:
|
|
974
933
|
cmds.push({
|
|
@@ -991,13 +950,10 @@ function printDocToString(doc, options) {
|
|
|
991
950
|
});
|
|
992
951
|
break;
|
|
993
952
|
}
|
|
953
|
+
// fallthrough
|
|
994
954
|
case MODE_BREAK: {
|
|
995
955
|
shouldRemeasure = false;
|
|
996
|
-
const next = {
|
|
997
|
-
ind,
|
|
998
|
-
mode: MODE_FLAT,
|
|
999
|
-
doc: doc2.contents
|
|
1000
|
-
};
|
|
956
|
+
const next = { ind, mode: MODE_FLAT, doc: doc2.contents };
|
|
1001
957
|
const rem = width - pos;
|
|
1002
958
|
const hasLineSuffix = lineSuffix2.length > 0;
|
|
1003
959
|
if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
@@ -1011,28 +967,16 @@ function printDocToString(doc, options) {
|
|
|
1011
967
|
-1
|
|
1012
968
|
);
|
|
1013
969
|
if (doc2.break) {
|
|
1014
|
-
cmds.push({
|
|
1015
|
-
ind,
|
|
1016
|
-
mode: MODE_BREAK,
|
|
1017
|
-
doc: mostExpanded
|
|
1018
|
-
});
|
|
970
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1019
971
|
break;
|
|
1020
972
|
} else {
|
|
1021
973
|
for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
|
|
1022
974
|
if (i >= doc2.expandedStates.length) {
|
|
1023
|
-
cmds.push({
|
|
1024
|
-
ind,
|
|
1025
|
-
mode: MODE_BREAK,
|
|
1026
|
-
doc: mostExpanded
|
|
1027
|
-
});
|
|
975
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1028
976
|
break;
|
|
1029
977
|
} else {
|
|
1030
978
|
const state = doc2.expandedStates[i];
|
|
1031
|
-
const cmd = {
|
|
1032
|
-
ind,
|
|
1033
|
-
mode: MODE_FLAT,
|
|
1034
|
-
doc: state
|
|
1035
|
-
};
|
|
979
|
+
const cmd = { ind, mode: MODE_FLAT, doc: state };
|
|
1036
980
|
if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
1037
981
|
cmds.push(cmd);
|
|
1038
982
|
break;
|
|
@@ -1041,11 +985,7 @@ function printDocToString(doc, options) {
|
|
|
1041
985
|
}
|
|
1042
986
|
}
|
|
1043
987
|
} else {
|
|
1044
|
-
cmds.push({
|
|
1045
|
-
ind,
|
|
1046
|
-
mode: MODE_BREAK,
|
|
1047
|
-
doc: doc2.contents
|
|
1048
|
-
});
|
|
988
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });
|
|
1049
989
|
}
|
|
1050
990
|
}
|
|
1051
991
|
break;
|
|
@@ -1060,29 +1000,46 @@ function printDocToString(doc, options) {
|
|
|
1060
1000
|
).mode;
|
|
1061
1001
|
}
|
|
1062
1002
|
break;
|
|
1003
|
+
// Fills each line with as much code as possible before moving to a new
|
|
1004
|
+
// line with the same indentation.
|
|
1005
|
+
//
|
|
1006
|
+
// Expects doc.parts to be an array of alternating content and
|
|
1007
|
+
// whitespace. The whitespace contains the linebreaks.
|
|
1008
|
+
//
|
|
1009
|
+
// For example:
|
|
1010
|
+
// ["I", line, "love", line, "monkeys"]
|
|
1011
|
+
// or
|
|
1012
|
+
// [{ type: group, ... }, softline, { type: group, ... }]
|
|
1013
|
+
//
|
|
1014
|
+
// It uses this parts structure to handle three main layout cases:
|
|
1015
|
+
// * The first two content items fit on the same line without
|
|
1016
|
+
// breaking
|
|
1017
|
+
// -> output the first content item and the whitespace "flat".
|
|
1018
|
+
// * Only the first content item fits on the line without breaking
|
|
1019
|
+
// -> output the first content item "flat" and the whitespace with
|
|
1020
|
+
// "break".
|
|
1021
|
+
// * Neither content item fits on the line without breaking
|
|
1022
|
+
// -> output the first content item and the whitespace with "break".
|
|
1063
1023
|
case DOC_TYPE_FILL: {
|
|
1064
1024
|
const rem = width - pos;
|
|
1065
1025
|
const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
1066
|
-
const {
|
|
1067
|
-
parts
|
|
1068
|
-
} = doc2;
|
|
1026
|
+
const { parts } = doc2;
|
|
1069
1027
|
const length = parts.length - offset;
|
|
1070
1028
|
if (length === 0) {
|
|
1071
1029
|
break;
|
|
1072
1030
|
}
|
|
1073
1031
|
const content = parts[offset + 0];
|
|
1074
1032
|
const whitespace = parts[offset + 1];
|
|
1075
|
-
const contentFlatCmd = {
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
|
|
1033
|
+
const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };
|
|
1034
|
+
const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };
|
|
1035
|
+
const contentFits = fits(
|
|
1036
|
+
contentFlatCmd,
|
|
1037
|
+
[],
|
|
1038
|
+
rem,
|
|
1039
|
+
lineSuffix2.length > 0,
|
|
1040
|
+
groupModeMap,
|
|
1041
|
+
true
|
|
1042
|
+
);
|
|
1086
1043
|
if (length === 1) {
|
|
1087
1044
|
if (contentFits) {
|
|
1088
1045
|
cmds.push(contentFlatCmd);
|
|
@@ -1091,16 +1048,8 @@ function printDocToString(doc, options) {
|
|
|
1091
1048
|
}
|
|
1092
1049
|
break;
|
|
1093
1050
|
}
|
|
1094
|
-
const whitespaceFlatCmd = {
|
|
1095
|
-
|
|
1096
|
-
mode: MODE_FLAT,
|
|
1097
|
-
doc: whitespace
|
|
1098
|
-
};
|
|
1099
|
-
const whitespaceBreakCmd = {
|
|
1100
|
-
ind,
|
|
1101
|
-
mode: MODE_BREAK,
|
|
1102
|
-
doc: whitespace
|
|
1103
|
-
};
|
|
1051
|
+
const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };
|
|
1052
|
+
const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };
|
|
1104
1053
|
if (length === 2) {
|
|
1105
1054
|
if (contentFits) {
|
|
1106
1055
|
cmds.push(whitespaceFlatCmd, contentFlatCmd);
|
|
@@ -1113,17 +1062,21 @@ function printDocToString(doc, options) {
|
|
|
1113
1062
|
const remainingCmd = {
|
|
1114
1063
|
ind,
|
|
1115
1064
|
mode,
|
|
1116
|
-
doc: {
|
|
1117
|
-
...doc2,
|
|
1118
|
-
[DOC_FILL_PRINTED_LENGTH]: offset + 2
|
|
1119
|
-
}
|
|
1065
|
+
doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }
|
|
1120
1066
|
};
|
|
1121
1067
|
const firstAndSecondContentFlatCmd = {
|
|
1122
1068
|
ind,
|
|
1123
1069
|
mode: MODE_FLAT,
|
|
1124
1070
|
doc: [content, whitespace, secondContent]
|
|
1125
1071
|
};
|
|
1126
|
-
const firstAndSecondContentFits = fits(
|
|
1072
|
+
const firstAndSecondContentFits = fits(
|
|
1073
|
+
firstAndSecondContentFlatCmd,
|
|
1074
|
+
[],
|
|
1075
|
+
rem,
|
|
1076
|
+
lineSuffix2.length > 0,
|
|
1077
|
+
groupModeMap,
|
|
1078
|
+
true
|
|
1079
|
+
);
|
|
1127
1080
|
if (firstAndSecondContentFits) {
|
|
1128
1081
|
cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
|
|
1129
1082
|
} else if (contentFits) {
|
|
@@ -1139,39 +1092,23 @@ function printDocToString(doc, options) {
|
|
|
1139
1092
|
if (groupMode === MODE_BREAK) {
|
|
1140
1093
|
const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
|
|
1141
1094
|
if (breakContents) {
|
|
1142
|
-
cmds.push({
|
|
1143
|
-
ind,
|
|
1144
|
-
mode,
|
|
1145
|
-
doc: breakContents
|
|
1146
|
-
});
|
|
1095
|
+
cmds.push({ ind, mode, doc: breakContents });
|
|
1147
1096
|
}
|
|
1148
1097
|
}
|
|
1149
1098
|
if (groupMode === MODE_FLAT) {
|
|
1150
1099
|
const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
|
|
1151
1100
|
if (flatContents) {
|
|
1152
|
-
cmds.push({
|
|
1153
|
-
ind,
|
|
1154
|
-
mode,
|
|
1155
|
-
doc: flatContents
|
|
1156
|
-
});
|
|
1101
|
+
cmds.push({ ind, mode, doc: flatContents });
|
|
1157
1102
|
}
|
|
1158
1103
|
}
|
|
1159
1104
|
break;
|
|
1160
1105
|
}
|
|
1161
1106
|
case DOC_TYPE_LINE_SUFFIX:
|
|
1162
|
-
lineSuffix2.push({
|
|
1163
|
-
ind,
|
|
1164
|
-
mode,
|
|
1165
|
-
doc: doc2.contents
|
|
1166
|
-
});
|
|
1107
|
+
lineSuffix2.push({ ind, mode, doc: doc2.contents });
|
|
1167
1108
|
break;
|
|
1168
1109
|
case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
|
|
1169
1110
|
if (lineSuffix2.length > 0) {
|
|
1170
|
-
cmds.push({
|
|
1171
|
-
ind,
|
|
1172
|
-
mode,
|
|
1173
|
-
doc: hardlineWithoutBreakParent
|
|
1174
|
-
});
|
|
1111
|
+
cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });
|
|
1175
1112
|
}
|
|
1176
1113
|
break;
|
|
1177
1114
|
case DOC_TYPE_LINE:
|
|
@@ -1186,13 +1123,10 @@ function printDocToString(doc, options) {
|
|
|
1186
1123
|
} else {
|
|
1187
1124
|
shouldRemeasure = true;
|
|
1188
1125
|
}
|
|
1126
|
+
// fallthrough
|
|
1189
1127
|
case MODE_BREAK:
|
|
1190
1128
|
if (lineSuffix2.length > 0) {
|
|
1191
|
-
cmds.push({
|
|
1192
|
-
ind,
|
|
1193
|
-
mode,
|
|
1194
|
-
doc: doc2
|
|
1195
|
-
}, ...lineSuffix2.reverse());
|
|
1129
|
+
cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());
|
|
1196
1130
|
lineSuffix2.length = 0;
|
|
1197
1131
|
break;
|
|
1198
1132
|
}
|
|
@@ -1213,11 +1147,7 @@ function printDocToString(doc, options) {
|
|
|
1213
1147
|
}
|
|
1214
1148
|
break;
|
|
1215
1149
|
case DOC_TYPE_LABEL:
|
|
1216
|
-
cmds.push({
|
|
1217
|
-
ind,
|
|
1218
|
-
mode,
|
|
1219
|
-
doc: doc2.contents
|
|
1220
|
-
});
|
|
1150
|
+
cmds.push({ ind, mode, doc: doc2.contents });
|
|
1221
1151
|
break;
|
|
1222
1152
|
case DOC_TYPE_BREAK_PARENT:
|
|
1223
1153
|
break;
|
|
@@ -1231,7 +1161,15 @@ function printDocToString(doc, options) {
|
|
|
1231
1161
|
}
|
|
1232
1162
|
const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
|
|
1233
1163
|
if (cursorPlaceholderIndex !== -1) {
|
|
1234
|
-
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1164
|
+
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1165
|
+
CURSOR_PLACEHOLDER,
|
|
1166
|
+
cursorPlaceholderIndex + 1
|
|
1167
|
+
);
|
|
1168
|
+
if (otherCursorPlaceholderIndex === -1) {
|
|
1169
|
+
return {
|
|
1170
|
+
formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("")
|
|
1171
|
+
};
|
|
1172
|
+
}
|
|
1235
1173
|
const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
|
|
1236
1174
|
const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
|
|
1237
1175
|
const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
|
|
@@ -1241,9 +1179,7 @@ function printDocToString(doc, options) {
|
|
|
1241
1179
|
cursorNodeText: aroundCursor
|
|
1242
1180
|
};
|
|
1243
1181
|
}
|
|
1244
|
-
return {
|
|
1245
|
-
formatted: out.join("")
|
|
1246
|
-
};
|
|
1182
|
+
return { formatted: out.join("") };
|
|
1247
1183
|
}
|
|
1248
1184
|
|
|
1249
1185
|
// src/document/public.js
|