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.js
CHANGED
|
@@ -79,6 +79,18 @@
|
|
|
79
79
|
DOC_TYPE_BREAK_PARENT
|
|
80
80
|
]);
|
|
81
81
|
|
|
82
|
+
// scripts/build/shims/at.js
|
|
83
|
+
var at = (isOptionalObject, object, index) => {
|
|
84
|
+
if (isOptionalObject && (object === void 0 || object === null)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (Array.isArray(object) || typeof object === "string") {
|
|
88
|
+
return object[index < 0 ? object.length + index : index];
|
|
89
|
+
}
|
|
90
|
+
return object.at(index);
|
|
91
|
+
};
|
|
92
|
+
var at_default = at;
|
|
93
|
+
|
|
82
94
|
// src/document/utils/get-doc-type.js
|
|
83
95
|
function getDocType(doc) {
|
|
84
96
|
if (typeof doc === "string") {
|
|
@@ -189,219 +201,6 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
189
201
|
}
|
|
190
202
|
var traverse_doc_default = traverseDoc;
|
|
191
203
|
|
|
192
|
-
// src/document/utils/assert-doc.js
|
|
193
|
-
var noop = () => {
|
|
194
|
-
};
|
|
195
|
-
var assertDoc = true ? noop : function(doc) {
|
|
196
|
-
traverse_doc_default(doc, (doc2) => {
|
|
197
|
-
if (checked.has(doc2)) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
if (typeof doc2 !== "string") {
|
|
201
|
-
checked.add(doc2);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
var assertDocArray = true ? noop : function(docs, optional = false) {
|
|
206
|
-
if (optional && !docs) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
if (!Array.isArray(docs)) {
|
|
210
|
-
throw new TypeError("Unexpected doc array.");
|
|
211
|
-
}
|
|
212
|
-
for (const doc of docs) {
|
|
213
|
-
assertDoc(doc);
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
// src/document/builders.js
|
|
218
|
-
function indent(contents) {
|
|
219
|
-
assertDoc(contents);
|
|
220
|
-
return { type: DOC_TYPE_INDENT, contents };
|
|
221
|
-
}
|
|
222
|
-
function align(widthOrString, contents) {
|
|
223
|
-
assertDoc(contents);
|
|
224
|
-
return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
|
|
225
|
-
}
|
|
226
|
-
function group(contents, opts = {}) {
|
|
227
|
-
assertDoc(contents);
|
|
228
|
-
assertDocArray(
|
|
229
|
-
opts.expandedStates,
|
|
230
|
-
/* optional */
|
|
231
|
-
true
|
|
232
|
-
);
|
|
233
|
-
return {
|
|
234
|
-
type: DOC_TYPE_GROUP,
|
|
235
|
-
id: opts.id,
|
|
236
|
-
contents,
|
|
237
|
-
break: Boolean(opts.shouldBreak),
|
|
238
|
-
expandedStates: opts.expandedStates
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
function dedentToRoot(contents) {
|
|
242
|
-
return align(Number.NEGATIVE_INFINITY, contents);
|
|
243
|
-
}
|
|
244
|
-
function markAsRoot(contents) {
|
|
245
|
-
return align({ type: "root" }, contents);
|
|
246
|
-
}
|
|
247
|
-
function dedent(contents) {
|
|
248
|
-
return align(-1, contents);
|
|
249
|
-
}
|
|
250
|
-
function conditionalGroup(states, opts) {
|
|
251
|
-
return group(states[0], { ...opts, expandedStates: states });
|
|
252
|
-
}
|
|
253
|
-
function fill(parts) {
|
|
254
|
-
assertDocArray(parts);
|
|
255
|
-
return { type: DOC_TYPE_FILL, parts };
|
|
256
|
-
}
|
|
257
|
-
function ifBreak(breakContents, flatContents = "", opts = {}) {
|
|
258
|
-
assertDoc(breakContents);
|
|
259
|
-
if (flatContents !== "") {
|
|
260
|
-
assertDoc(flatContents);
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
type: DOC_TYPE_IF_BREAK,
|
|
264
|
-
breakContents,
|
|
265
|
-
flatContents,
|
|
266
|
-
groupId: opts.groupId
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
function indentIfBreak(contents, opts) {
|
|
270
|
-
assertDoc(contents);
|
|
271
|
-
return {
|
|
272
|
-
type: DOC_TYPE_INDENT_IF_BREAK,
|
|
273
|
-
contents,
|
|
274
|
-
groupId: opts.groupId,
|
|
275
|
-
negate: opts.negate
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
function lineSuffix(contents) {
|
|
279
|
-
assertDoc(contents);
|
|
280
|
-
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
281
|
-
}
|
|
282
|
-
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
283
|
-
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
284
|
-
var trim = { type: DOC_TYPE_TRIM };
|
|
285
|
-
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
286
|
-
var literallineWithoutBreakParent = {
|
|
287
|
-
type: DOC_TYPE_LINE,
|
|
288
|
-
hard: true,
|
|
289
|
-
literal: true
|
|
290
|
-
};
|
|
291
|
-
var line = { type: DOC_TYPE_LINE };
|
|
292
|
-
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
293
|
-
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
294
|
-
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
295
|
-
var cursor = { type: DOC_TYPE_CURSOR };
|
|
296
|
-
function join(separator, docs) {
|
|
297
|
-
assertDoc(separator);
|
|
298
|
-
assertDocArray(docs);
|
|
299
|
-
const parts = [];
|
|
300
|
-
for (let i = 0; i < docs.length; i++) {
|
|
301
|
-
if (i !== 0) {
|
|
302
|
-
parts.push(separator);
|
|
303
|
-
}
|
|
304
|
-
parts.push(docs[i]);
|
|
305
|
-
}
|
|
306
|
-
return parts;
|
|
307
|
-
}
|
|
308
|
-
function addAlignmentToDoc(doc, size, tabWidth) {
|
|
309
|
-
assertDoc(doc);
|
|
310
|
-
let aligned = doc;
|
|
311
|
-
if (size > 0) {
|
|
312
|
-
for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
|
|
313
|
-
aligned = indent(aligned);
|
|
314
|
-
}
|
|
315
|
-
aligned = align(size % tabWidth, aligned);
|
|
316
|
-
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
317
|
-
}
|
|
318
|
-
return aligned;
|
|
319
|
-
}
|
|
320
|
-
function label(label2, contents) {
|
|
321
|
-
assertDoc(contents);
|
|
322
|
-
return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// scripts/build/shims/at.js
|
|
326
|
-
var at = (isOptionalObject, object, index) => {
|
|
327
|
-
if (isOptionalObject && (object === void 0 || object === null)) {
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
if (Array.isArray(object) || typeof object === "string") {
|
|
331
|
-
return object[index < 0 ? object.length + index : index];
|
|
332
|
-
}
|
|
333
|
-
return object.at(index);
|
|
334
|
-
};
|
|
335
|
-
var at_default = at;
|
|
336
|
-
|
|
337
|
-
// scripts/build/shims/string-replace-all.js
|
|
338
|
-
var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
|
|
339
|
-
if (isOptionalObject && (original === void 0 || original === null)) {
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
if (original.replaceAll) {
|
|
343
|
-
return original.replaceAll(pattern, replacement);
|
|
344
|
-
}
|
|
345
|
-
if (pattern.global) {
|
|
346
|
-
return original.replace(pattern, replacement);
|
|
347
|
-
}
|
|
348
|
-
return original.split(pattern).join(replacement);
|
|
349
|
-
};
|
|
350
|
-
var string_replace_all_default = stringReplaceAll;
|
|
351
|
-
|
|
352
|
-
// src/common/end-of-line.js
|
|
353
|
-
function convertEndOfLineToChars(value) {
|
|
354
|
-
switch (value) {
|
|
355
|
-
case "cr":
|
|
356
|
-
return "\r";
|
|
357
|
-
case "crlf":
|
|
358
|
-
return "\r\n";
|
|
359
|
-
default:
|
|
360
|
-
return "\n";
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// node_modules/emoji-regex/index.mjs
|
|
365
|
-
var emoji_regex_default = () => {
|
|
366
|
-
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;
|
|
367
|
-
};
|
|
368
|
-
|
|
369
|
-
// node_modules/get-east-asian-width/lookup.js
|
|
370
|
-
function isFullWidth(x) {
|
|
371
|
-
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
372
|
-
}
|
|
373
|
-
function isWide(x) {
|
|
374
|
-
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;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
// node_modules/get-east-asian-width/index.js
|
|
378
|
-
var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
|
|
379
|
-
|
|
380
|
-
// src/utils/get-string-width.js
|
|
381
|
-
var notAsciiRegex = /[^\x20-\x7F]/u;
|
|
382
|
-
function getStringWidth(text) {
|
|
383
|
-
if (!text) {
|
|
384
|
-
return 0;
|
|
385
|
-
}
|
|
386
|
-
if (!notAsciiRegex.test(text)) {
|
|
387
|
-
return text.length;
|
|
388
|
-
}
|
|
389
|
-
text = text.replace(emoji_regex_default(), " ");
|
|
390
|
-
let width = 0;
|
|
391
|
-
for (const character of text) {
|
|
392
|
-
const codePoint = character.codePointAt(0);
|
|
393
|
-
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
394
|
-
continue;
|
|
395
|
-
}
|
|
396
|
-
if (codePoint >= 768 && codePoint <= 879) {
|
|
397
|
-
continue;
|
|
398
|
-
}
|
|
399
|
-
width += _isNarrowWidth(codePoint) ? 1 : 2;
|
|
400
|
-
}
|
|
401
|
-
return width;
|
|
402
|
-
}
|
|
403
|
-
var get_string_width_default = getStringWidth;
|
|
404
|
-
|
|
405
204
|
// src/document/utils.js
|
|
406
205
|
function mapDoc(doc, cb) {
|
|
407
206
|
if (typeof doc === "string") {
|
|
@@ -422,10 +221,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
422
221
|
case DOC_TYPE_ARRAY:
|
|
423
222
|
return cb(doc2.map(rec));
|
|
424
223
|
case DOC_TYPE_FILL:
|
|
425
|
-
return cb({
|
|
426
|
-
...doc2,
|
|
427
|
-
parts: doc2.parts.map(rec)
|
|
428
|
-
});
|
|
224
|
+
return cb({ ...doc2, parts: doc2.parts.map(rec) });
|
|
429
225
|
case DOC_TYPE_IF_BREAK:
|
|
430
226
|
return cb({
|
|
431
227
|
...doc2,
|
|
@@ -433,31 +229,21 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
433
229
|
flatContents: rec(doc2.flatContents)
|
|
434
230
|
});
|
|
435
231
|
case DOC_TYPE_GROUP: {
|
|
436
|
-
let {
|
|
437
|
-
expandedStates,
|
|
438
|
-
contents
|
|
439
|
-
} = doc2;
|
|
232
|
+
let { expandedStates, contents } = doc2;
|
|
440
233
|
if (expandedStates) {
|
|
441
234
|
expandedStates = expandedStates.map(rec);
|
|
442
235
|
contents = expandedStates[0];
|
|
443
236
|
} else {
|
|
444
237
|
contents = rec(contents);
|
|
445
238
|
}
|
|
446
|
-
return cb({
|
|
447
|
-
...doc2,
|
|
448
|
-
contents,
|
|
449
|
-
expandedStates
|
|
450
|
-
});
|
|
239
|
+
return cb({ ...doc2, contents, expandedStates });
|
|
451
240
|
}
|
|
452
241
|
case DOC_TYPE_ALIGN:
|
|
453
242
|
case DOC_TYPE_INDENT:
|
|
454
243
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
455
244
|
case DOC_TYPE_LABEL:
|
|
456
245
|
case DOC_TYPE_LINE_SUFFIX:
|
|
457
|
-
return cb({
|
|
458
|
-
...doc2,
|
|
459
|
-
contents: rec(doc2.contents)
|
|
460
|
-
});
|
|
246
|
+
return cb({ ...doc2, contents: rec(doc2.contents) });
|
|
461
247
|
case DOC_TYPE_STRING:
|
|
462
248
|
case DOC_TYPE_CURSOR:
|
|
463
249
|
case DOC_TYPE_TRIM:
|
|
@@ -591,10 +377,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
591
377
|
case DOC_TYPE_LINE_SUFFIX:
|
|
592
378
|
case DOC_TYPE_LABEL: {
|
|
593
379
|
const contents = stripTrailingHardlineFromDoc(doc.contents);
|
|
594
|
-
return {
|
|
595
|
-
...doc,
|
|
596
|
-
contents
|
|
597
|
-
};
|
|
380
|
+
return { ...doc, contents };
|
|
598
381
|
}
|
|
599
382
|
case DOC_TYPE_IF_BREAK:
|
|
600
383
|
return {
|
|
@@ -603,10 +386,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
603
386
|
flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
|
|
604
387
|
};
|
|
605
388
|
case DOC_TYPE_FILL:
|
|
606
|
-
return {
|
|
607
|
-
...doc,
|
|
608
|
-
parts: stripTrailingHardlineFromParts(doc.parts)
|
|
609
|
-
};
|
|
389
|
+
return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };
|
|
610
390
|
case DOC_TYPE_ARRAY:
|
|
611
391
|
return stripTrailingHardlineFromParts(doc);
|
|
612
392
|
case DOC_TYPE_STRING:
|
|
@@ -698,7 +478,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
698
478
|
return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
|
|
699
479
|
}
|
|
700
480
|
function replaceEndOfLine(doc, replacement = literalline) {
|
|
701
|
-
return mapDoc(
|
|
481
|
+
return mapDoc(
|
|
482
|
+
doc,
|
|
483
|
+
(currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc
|
|
484
|
+
);
|
|
702
485
|
}
|
|
703
486
|
function canBreakFn(doc) {
|
|
704
487
|
if (doc.type === DOC_TYPE_LINE) {
|
|
@@ -709,46 +492,257 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
709
492
|
return findInDoc(doc, canBreakFn, false);
|
|
710
493
|
}
|
|
711
494
|
|
|
495
|
+
// src/document/utils/assert-doc.js
|
|
496
|
+
var noop = () => {
|
|
497
|
+
};
|
|
498
|
+
var assertDoc = true ? noop : function(doc) {
|
|
499
|
+
traverse_doc_default(doc, (doc2) => {
|
|
500
|
+
if (checked.has(doc2)) {
|
|
501
|
+
return false;
|
|
502
|
+
}
|
|
503
|
+
if (typeof doc2 !== "string") {
|
|
504
|
+
checked.add(doc2);
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
};
|
|
508
|
+
var assertDocArray = true ? noop : function(docs, optional = false) {
|
|
509
|
+
if (optional && !docs) {
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
if (!Array.isArray(docs)) {
|
|
513
|
+
throw new TypeError("Unexpected doc array.");
|
|
514
|
+
}
|
|
515
|
+
for (const doc of docs) {
|
|
516
|
+
assertDoc(doc);
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
var assertDocFillParts = true ? noop : (
|
|
520
|
+
/**
|
|
521
|
+
* @param {Doc[]} parts
|
|
522
|
+
*/
|
|
523
|
+
function(parts) {
|
|
524
|
+
assertDocArray(parts);
|
|
525
|
+
if (parts.length > 1 && isEmptyDoc(at_default(
|
|
526
|
+
/* isOptionalObject */
|
|
527
|
+
false,
|
|
528
|
+
parts,
|
|
529
|
+
-1
|
|
530
|
+
))) {
|
|
531
|
+
parts = parts.slice(0, -1);
|
|
532
|
+
}
|
|
533
|
+
for (const [i, doc] of parts.entries()) {
|
|
534
|
+
if (i % 2 === 1 && !isValidSeparator(doc)) {
|
|
535
|
+
const type = get_doc_type_default(doc);
|
|
536
|
+
throw new Error(
|
|
537
|
+
`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`
|
|
538
|
+
);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
);
|
|
543
|
+
|
|
544
|
+
// src/document/builders.js
|
|
545
|
+
function indent(contents) {
|
|
546
|
+
assertDoc(contents);
|
|
547
|
+
return { type: DOC_TYPE_INDENT, contents };
|
|
548
|
+
}
|
|
549
|
+
function align(widthOrString, contents) {
|
|
550
|
+
assertDoc(contents);
|
|
551
|
+
return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
|
|
552
|
+
}
|
|
553
|
+
function group(contents, opts = {}) {
|
|
554
|
+
assertDoc(contents);
|
|
555
|
+
assertDocArray(
|
|
556
|
+
opts.expandedStates,
|
|
557
|
+
/* optional */
|
|
558
|
+
true
|
|
559
|
+
);
|
|
560
|
+
return {
|
|
561
|
+
type: DOC_TYPE_GROUP,
|
|
562
|
+
id: opts.id,
|
|
563
|
+
contents,
|
|
564
|
+
break: Boolean(opts.shouldBreak),
|
|
565
|
+
expandedStates: opts.expandedStates
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
function dedentToRoot(contents) {
|
|
569
|
+
return align(Number.NEGATIVE_INFINITY, contents);
|
|
570
|
+
}
|
|
571
|
+
function markAsRoot(contents) {
|
|
572
|
+
return align({ type: "root" }, contents);
|
|
573
|
+
}
|
|
574
|
+
function dedent(contents) {
|
|
575
|
+
return align(-1, contents);
|
|
576
|
+
}
|
|
577
|
+
function conditionalGroup(states, opts) {
|
|
578
|
+
return group(states[0], { ...opts, expandedStates: states });
|
|
579
|
+
}
|
|
580
|
+
function fill(parts) {
|
|
581
|
+
assertDocFillParts(parts);
|
|
582
|
+
return { type: DOC_TYPE_FILL, parts };
|
|
583
|
+
}
|
|
584
|
+
function ifBreak(breakContents, flatContents = "", opts = {}) {
|
|
585
|
+
assertDoc(breakContents);
|
|
586
|
+
if (flatContents !== "") {
|
|
587
|
+
assertDoc(flatContents);
|
|
588
|
+
}
|
|
589
|
+
return {
|
|
590
|
+
type: DOC_TYPE_IF_BREAK,
|
|
591
|
+
breakContents,
|
|
592
|
+
flatContents,
|
|
593
|
+
groupId: opts.groupId
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
function indentIfBreak(contents, opts) {
|
|
597
|
+
assertDoc(contents);
|
|
598
|
+
return {
|
|
599
|
+
type: DOC_TYPE_INDENT_IF_BREAK,
|
|
600
|
+
contents,
|
|
601
|
+
groupId: opts.groupId,
|
|
602
|
+
negate: opts.negate
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
function lineSuffix(contents) {
|
|
606
|
+
assertDoc(contents);
|
|
607
|
+
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
608
|
+
}
|
|
609
|
+
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
610
|
+
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
611
|
+
var trim = { type: DOC_TYPE_TRIM };
|
|
612
|
+
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
613
|
+
var literallineWithoutBreakParent = {
|
|
614
|
+
type: DOC_TYPE_LINE,
|
|
615
|
+
hard: true,
|
|
616
|
+
literal: true
|
|
617
|
+
};
|
|
618
|
+
var line = { type: DOC_TYPE_LINE };
|
|
619
|
+
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
620
|
+
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
621
|
+
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
622
|
+
var cursor = { type: DOC_TYPE_CURSOR };
|
|
623
|
+
function join(separator, docs) {
|
|
624
|
+
assertDoc(separator);
|
|
625
|
+
assertDocArray(docs);
|
|
626
|
+
const parts = [];
|
|
627
|
+
for (let i = 0; i < docs.length; i++) {
|
|
628
|
+
if (i !== 0) {
|
|
629
|
+
parts.push(separator);
|
|
630
|
+
}
|
|
631
|
+
parts.push(docs[i]);
|
|
632
|
+
}
|
|
633
|
+
return parts;
|
|
634
|
+
}
|
|
635
|
+
function addAlignmentToDoc(doc, size, tabWidth) {
|
|
636
|
+
assertDoc(doc);
|
|
637
|
+
let aligned = doc;
|
|
638
|
+
if (size > 0) {
|
|
639
|
+
for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
|
|
640
|
+
aligned = indent(aligned);
|
|
641
|
+
}
|
|
642
|
+
aligned = align(size % tabWidth, aligned);
|
|
643
|
+
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
644
|
+
}
|
|
645
|
+
return aligned;
|
|
646
|
+
}
|
|
647
|
+
function label(label2, contents) {
|
|
648
|
+
assertDoc(contents);
|
|
649
|
+
return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
// scripts/build/shims/string-replace-all.js
|
|
653
|
+
var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
|
|
654
|
+
if (isOptionalObject && (original === void 0 || original === null)) {
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
657
|
+
if (original.replaceAll) {
|
|
658
|
+
return original.replaceAll(pattern, replacement);
|
|
659
|
+
}
|
|
660
|
+
if (pattern.global) {
|
|
661
|
+
return original.replace(pattern, replacement);
|
|
662
|
+
}
|
|
663
|
+
return original.split(pattern).join(replacement);
|
|
664
|
+
};
|
|
665
|
+
var string_replace_all_default = stringReplaceAll;
|
|
666
|
+
|
|
667
|
+
// src/common/end-of-line.js
|
|
668
|
+
function convertEndOfLineToChars(value) {
|
|
669
|
+
switch (value) {
|
|
670
|
+
case "cr":
|
|
671
|
+
return "\r";
|
|
672
|
+
case "crlf":
|
|
673
|
+
return "\r\n";
|
|
674
|
+
default:
|
|
675
|
+
return "\n";
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
// node_modules/emoji-regex/index.mjs
|
|
680
|
+
var emoji_regex_default = () => {
|
|
681
|
+
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;
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
// node_modules/get-east-asian-width/lookup.js
|
|
685
|
+
function isFullWidth(x) {
|
|
686
|
+
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
687
|
+
}
|
|
688
|
+
function isWide(x) {
|
|
689
|
+
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;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
// node_modules/get-east-asian-width/index.js
|
|
693
|
+
var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
|
|
694
|
+
|
|
695
|
+
// src/utils/get-string-width.js
|
|
696
|
+
var notAsciiRegex = /[^\x20-\x7F]/u;
|
|
697
|
+
function getStringWidth(text) {
|
|
698
|
+
if (!text) {
|
|
699
|
+
return 0;
|
|
700
|
+
}
|
|
701
|
+
if (!notAsciiRegex.test(text)) {
|
|
702
|
+
return text.length;
|
|
703
|
+
}
|
|
704
|
+
text = text.replace(emoji_regex_default(), " ");
|
|
705
|
+
let width = 0;
|
|
706
|
+
for (const character of text) {
|
|
707
|
+
const codePoint = character.codePointAt(0);
|
|
708
|
+
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
709
|
+
continue;
|
|
710
|
+
}
|
|
711
|
+
if (codePoint >= 768 && codePoint <= 879) {
|
|
712
|
+
continue;
|
|
713
|
+
}
|
|
714
|
+
width += _isNarrowWidth(codePoint) ? 1 : 2;
|
|
715
|
+
}
|
|
716
|
+
return width;
|
|
717
|
+
}
|
|
718
|
+
var get_string_width_default = getStringWidth;
|
|
719
|
+
|
|
712
720
|
// src/document/printer.js
|
|
713
721
|
var MODE_BREAK = Symbol("MODE_BREAK");
|
|
714
722
|
var MODE_FLAT = Symbol("MODE_FLAT");
|
|
715
723
|
var CURSOR_PLACEHOLDER = Symbol("cursor");
|
|
716
724
|
var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
717
725
|
function rootIndent() {
|
|
718
|
-
return {
|
|
719
|
-
value: "",
|
|
720
|
-
length: 0,
|
|
721
|
-
queue: []
|
|
722
|
-
};
|
|
726
|
+
return { value: "", length: 0, queue: [] };
|
|
723
727
|
}
|
|
724
728
|
function makeIndent(ind, options) {
|
|
725
|
-
return generateInd(ind, {
|
|
726
|
-
type: "indent"
|
|
727
|
-
}, options);
|
|
729
|
+
return generateInd(ind, { type: "indent" }, options);
|
|
728
730
|
}
|
|
729
731
|
function makeAlign(indent2, widthOrDoc, options) {
|
|
730
732
|
if (widthOrDoc === Number.NEGATIVE_INFINITY) {
|
|
731
733
|
return indent2.root || rootIndent();
|
|
732
734
|
}
|
|
733
735
|
if (widthOrDoc < 0) {
|
|
734
|
-
return generateInd(indent2, {
|
|
735
|
-
type: "dedent"
|
|
736
|
-
}, options);
|
|
736
|
+
return generateInd(indent2, { type: "dedent" }, options);
|
|
737
737
|
}
|
|
738
738
|
if (!widthOrDoc) {
|
|
739
739
|
return indent2;
|
|
740
740
|
}
|
|
741
741
|
if (widthOrDoc.type === "root") {
|
|
742
|
-
return {
|
|
743
|
-
...indent2,
|
|
744
|
-
root: indent2
|
|
745
|
-
};
|
|
742
|
+
return { ...indent2, root: indent2 };
|
|
746
743
|
}
|
|
747
744
|
const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
|
|
748
|
-
return generateInd(indent2, {
|
|
749
|
-
type: alignType,
|
|
750
|
-
n: widthOrDoc
|
|
751
|
-
}, options);
|
|
745
|
+
return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);
|
|
752
746
|
}
|
|
753
747
|
function generateInd(ind, newPart, options) {
|
|
754
748
|
const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
|
|
@@ -780,12 +774,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
780
774
|
}
|
|
781
775
|
}
|
|
782
776
|
flushSpaces();
|
|
783
|
-
return {
|
|
784
|
-
...ind,
|
|
785
|
-
value,
|
|
786
|
-
length,
|
|
787
|
-
queue
|
|
788
|
-
};
|
|
777
|
+
return { ...ind, value, length, queue };
|
|
789
778
|
function addTabs(count) {
|
|
790
779
|
value += " ".repeat(count);
|
|
791
780
|
length += options.tabWidth * count;
|
|
@@ -864,10 +853,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
864
853
|
cmds.push(restCommands[--restIdx]);
|
|
865
854
|
continue;
|
|
866
855
|
}
|
|
867
|
-
const {
|
|
868
|
-
mode,
|
|
869
|
-
doc
|
|
870
|
-
} = cmds.pop();
|
|
856
|
+
const { mode, doc } = cmds.pop();
|
|
871
857
|
const docType = get_doc_type_default(doc);
|
|
872
858
|
switch (docType) {
|
|
873
859
|
case DOC_TYPE_STRING:
|
|
@@ -877,11 +863,9 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
877
863
|
case DOC_TYPE_ARRAY:
|
|
878
864
|
case DOC_TYPE_FILL: {
|
|
879
865
|
const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
doc: parts[i]
|
|
884
|
-
});
|
|
866
|
+
const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
867
|
+
for (let i = parts.length - 1; i >= end; i--) {
|
|
868
|
+
cmds.push({ mode, doc: parts[i] });
|
|
885
869
|
}
|
|
886
870
|
break;
|
|
887
871
|
}
|
|
@@ -889,10 +873,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
889
873
|
case DOC_TYPE_ALIGN:
|
|
890
874
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
891
875
|
case DOC_TYPE_LABEL:
|
|
892
|
-
cmds.push({
|
|
893
|
-
mode,
|
|
894
|
-
doc: doc.contents
|
|
895
|
-
});
|
|
876
|
+
cmds.push({ mode, doc: doc.contents });
|
|
896
877
|
break;
|
|
897
878
|
case DOC_TYPE_TRIM:
|
|
898
879
|
width += trim2(out);
|
|
@@ -908,20 +889,14 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
908
889
|
doc.expandedStates,
|
|
909
890
|
-1
|
|
910
891
|
) : doc.contents;
|
|
911
|
-
cmds.push({
|
|
912
|
-
mode: groupMode,
|
|
913
|
-
doc: contents
|
|
914
|
-
});
|
|
892
|
+
cmds.push({ mode: groupMode, doc: contents });
|
|
915
893
|
break;
|
|
916
894
|
}
|
|
917
895
|
case DOC_TYPE_IF_BREAK: {
|
|
918
896
|
const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
|
|
919
897
|
const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
|
|
920
898
|
if (contents) {
|
|
921
|
-
cmds.push({
|
|
922
|
-
mode,
|
|
923
|
-
doc: contents
|
|
924
|
-
});
|
|
899
|
+
cmds.push({ mode, doc: contents });
|
|
925
900
|
}
|
|
926
901
|
break;
|
|
927
902
|
}
|
|
@@ -951,22 +926,14 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
951
926
|
const width = options.printWidth;
|
|
952
927
|
const newLine = convertEndOfLineToChars(options.endOfLine);
|
|
953
928
|
let pos = 0;
|
|
954
|
-
const cmds = [{
|
|
955
|
-
ind: rootIndent(),
|
|
956
|
-
mode: MODE_BREAK,
|
|
957
|
-
doc
|
|
958
|
-
}];
|
|
929
|
+
const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];
|
|
959
930
|
const out = [];
|
|
960
931
|
let shouldRemeasure = false;
|
|
961
932
|
const lineSuffix2 = [];
|
|
962
933
|
let printedCursorCount = 0;
|
|
963
934
|
propagateBreaks(doc);
|
|
964
935
|
while (cmds.length > 0) {
|
|
965
|
-
const {
|
|
966
|
-
ind,
|
|
967
|
-
mode,
|
|
968
|
-
doc: doc2
|
|
969
|
-
} = cmds.pop();
|
|
936
|
+
const { ind, mode, doc: doc2 } = cmds.pop();
|
|
970
937
|
switch (get_doc_type_default(doc2)) {
|
|
971
938
|
case DOC_TYPE_STRING: {
|
|
972
939
|
const formatted = newLine !== "\n" ? string_replace_all_default(
|
|
@@ -984,11 +951,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
984
951
|
}
|
|
985
952
|
case DOC_TYPE_ARRAY:
|
|
986
953
|
for (let i = doc2.length - 1; i >= 0; i--) {
|
|
987
|
-
cmds.push({
|
|
988
|
-
ind,
|
|
989
|
-
mode,
|
|
990
|
-
doc: doc2[i]
|
|
991
|
-
});
|
|
954
|
+
cmds.push({ ind, mode, doc: doc2[i] });
|
|
992
955
|
}
|
|
993
956
|
break;
|
|
994
957
|
case DOC_TYPE_CURSOR:
|
|
@@ -999,11 +962,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
999
962
|
printedCursorCount++;
|
|
1000
963
|
break;
|
|
1001
964
|
case DOC_TYPE_INDENT:
|
|
1002
|
-
cmds.push({
|
|
1003
|
-
ind: makeIndent(ind, options),
|
|
1004
|
-
mode,
|
|
1005
|
-
doc: doc2.contents
|
|
1006
|
-
});
|
|
965
|
+
cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });
|
|
1007
966
|
break;
|
|
1008
967
|
case DOC_TYPE_ALIGN:
|
|
1009
968
|
cmds.push({
|
|
@@ -1026,13 +985,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1026
985
|
});
|
|
1027
986
|
break;
|
|
1028
987
|
}
|
|
988
|
+
// fallthrough
|
|
1029
989
|
case MODE_BREAK: {
|
|
1030
990
|
shouldRemeasure = false;
|
|
1031
|
-
const next = {
|
|
1032
|
-
ind,
|
|
1033
|
-
mode: MODE_FLAT,
|
|
1034
|
-
doc: doc2.contents
|
|
1035
|
-
};
|
|
991
|
+
const next = { ind, mode: MODE_FLAT, doc: doc2.contents };
|
|
1036
992
|
const rem = width - pos;
|
|
1037
993
|
const hasLineSuffix = lineSuffix2.length > 0;
|
|
1038
994
|
if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
@@ -1046,28 +1002,16 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1046
1002
|
-1
|
|
1047
1003
|
);
|
|
1048
1004
|
if (doc2.break) {
|
|
1049
|
-
cmds.push({
|
|
1050
|
-
ind,
|
|
1051
|
-
mode: MODE_BREAK,
|
|
1052
|
-
doc: mostExpanded
|
|
1053
|
-
});
|
|
1005
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1054
1006
|
break;
|
|
1055
1007
|
} else {
|
|
1056
1008
|
for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
|
|
1057
1009
|
if (i >= doc2.expandedStates.length) {
|
|
1058
|
-
cmds.push({
|
|
1059
|
-
ind,
|
|
1060
|
-
mode: MODE_BREAK,
|
|
1061
|
-
doc: mostExpanded
|
|
1062
|
-
});
|
|
1010
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1063
1011
|
break;
|
|
1064
1012
|
} else {
|
|
1065
1013
|
const state = doc2.expandedStates[i];
|
|
1066
|
-
const cmd = {
|
|
1067
|
-
ind,
|
|
1068
|
-
mode: MODE_FLAT,
|
|
1069
|
-
doc: state
|
|
1070
|
-
};
|
|
1014
|
+
const cmd = { ind, mode: MODE_FLAT, doc: state };
|
|
1071
1015
|
if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
1072
1016
|
cmds.push(cmd);
|
|
1073
1017
|
break;
|
|
@@ -1076,11 +1020,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1076
1020
|
}
|
|
1077
1021
|
}
|
|
1078
1022
|
} else {
|
|
1079
|
-
cmds.push({
|
|
1080
|
-
ind,
|
|
1081
|
-
mode: MODE_BREAK,
|
|
1082
|
-
doc: doc2.contents
|
|
1083
|
-
});
|
|
1023
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });
|
|
1084
1024
|
}
|
|
1085
1025
|
}
|
|
1086
1026
|
break;
|
|
@@ -1095,29 +1035,46 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1095
1035
|
).mode;
|
|
1096
1036
|
}
|
|
1097
1037
|
break;
|
|
1038
|
+
// Fills each line with as much code as possible before moving to a new
|
|
1039
|
+
// line with the same indentation.
|
|
1040
|
+
//
|
|
1041
|
+
// Expects doc.parts to be an array of alternating content and
|
|
1042
|
+
// whitespace. The whitespace contains the linebreaks.
|
|
1043
|
+
//
|
|
1044
|
+
// For example:
|
|
1045
|
+
// ["I", line, "love", line, "monkeys"]
|
|
1046
|
+
// or
|
|
1047
|
+
// [{ type: group, ... }, softline, { type: group, ... }]
|
|
1048
|
+
//
|
|
1049
|
+
// It uses this parts structure to handle three main layout cases:
|
|
1050
|
+
// * The first two content items fit on the same line without
|
|
1051
|
+
// breaking
|
|
1052
|
+
// -> output the first content item and the whitespace "flat".
|
|
1053
|
+
// * Only the first content item fits on the line without breaking
|
|
1054
|
+
// -> output the first content item "flat" and the whitespace with
|
|
1055
|
+
// "break".
|
|
1056
|
+
// * Neither content item fits on the line without breaking
|
|
1057
|
+
// -> output the first content item and the whitespace with "break".
|
|
1098
1058
|
case DOC_TYPE_FILL: {
|
|
1099
1059
|
const rem = width - pos;
|
|
1100
1060
|
const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
1101
|
-
const {
|
|
1102
|
-
parts
|
|
1103
|
-
} = doc2;
|
|
1061
|
+
const { parts } = doc2;
|
|
1104
1062
|
const length = parts.length - offset;
|
|
1105
1063
|
if (length === 0) {
|
|
1106
1064
|
break;
|
|
1107
1065
|
}
|
|
1108
1066
|
const content = parts[offset + 0];
|
|
1109
1067
|
const whitespace = parts[offset + 1];
|
|
1110
|
-
const contentFlatCmd = {
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
|
|
1068
|
+
const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };
|
|
1069
|
+
const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };
|
|
1070
|
+
const contentFits = fits(
|
|
1071
|
+
contentFlatCmd,
|
|
1072
|
+
[],
|
|
1073
|
+
rem,
|
|
1074
|
+
lineSuffix2.length > 0,
|
|
1075
|
+
groupModeMap,
|
|
1076
|
+
true
|
|
1077
|
+
);
|
|
1121
1078
|
if (length === 1) {
|
|
1122
1079
|
if (contentFits) {
|
|
1123
1080
|
cmds.push(contentFlatCmd);
|
|
@@ -1126,16 +1083,8 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1126
1083
|
}
|
|
1127
1084
|
break;
|
|
1128
1085
|
}
|
|
1129
|
-
const whitespaceFlatCmd = {
|
|
1130
|
-
|
|
1131
|
-
mode: MODE_FLAT,
|
|
1132
|
-
doc: whitespace
|
|
1133
|
-
};
|
|
1134
|
-
const whitespaceBreakCmd = {
|
|
1135
|
-
ind,
|
|
1136
|
-
mode: MODE_BREAK,
|
|
1137
|
-
doc: whitespace
|
|
1138
|
-
};
|
|
1086
|
+
const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };
|
|
1087
|
+
const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };
|
|
1139
1088
|
if (length === 2) {
|
|
1140
1089
|
if (contentFits) {
|
|
1141
1090
|
cmds.push(whitespaceFlatCmd, contentFlatCmd);
|
|
@@ -1148,17 +1097,21 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1148
1097
|
const remainingCmd = {
|
|
1149
1098
|
ind,
|
|
1150
1099
|
mode,
|
|
1151
|
-
doc: {
|
|
1152
|
-
...doc2,
|
|
1153
|
-
[DOC_FILL_PRINTED_LENGTH]: offset + 2
|
|
1154
|
-
}
|
|
1100
|
+
doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }
|
|
1155
1101
|
};
|
|
1156
1102
|
const firstAndSecondContentFlatCmd = {
|
|
1157
1103
|
ind,
|
|
1158
1104
|
mode: MODE_FLAT,
|
|
1159
1105
|
doc: [content, whitespace, secondContent]
|
|
1160
1106
|
};
|
|
1161
|
-
const firstAndSecondContentFits = fits(
|
|
1107
|
+
const firstAndSecondContentFits = fits(
|
|
1108
|
+
firstAndSecondContentFlatCmd,
|
|
1109
|
+
[],
|
|
1110
|
+
rem,
|
|
1111
|
+
lineSuffix2.length > 0,
|
|
1112
|
+
groupModeMap,
|
|
1113
|
+
true
|
|
1114
|
+
);
|
|
1162
1115
|
if (firstAndSecondContentFits) {
|
|
1163
1116
|
cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
|
|
1164
1117
|
} else if (contentFits) {
|
|
@@ -1174,39 +1127,23 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1174
1127
|
if (groupMode === MODE_BREAK) {
|
|
1175
1128
|
const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
|
|
1176
1129
|
if (breakContents) {
|
|
1177
|
-
cmds.push({
|
|
1178
|
-
ind,
|
|
1179
|
-
mode,
|
|
1180
|
-
doc: breakContents
|
|
1181
|
-
});
|
|
1130
|
+
cmds.push({ ind, mode, doc: breakContents });
|
|
1182
1131
|
}
|
|
1183
1132
|
}
|
|
1184
1133
|
if (groupMode === MODE_FLAT) {
|
|
1185
1134
|
const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
|
|
1186
1135
|
if (flatContents) {
|
|
1187
|
-
cmds.push({
|
|
1188
|
-
ind,
|
|
1189
|
-
mode,
|
|
1190
|
-
doc: flatContents
|
|
1191
|
-
});
|
|
1136
|
+
cmds.push({ ind, mode, doc: flatContents });
|
|
1192
1137
|
}
|
|
1193
1138
|
}
|
|
1194
1139
|
break;
|
|
1195
1140
|
}
|
|
1196
1141
|
case DOC_TYPE_LINE_SUFFIX:
|
|
1197
|
-
lineSuffix2.push({
|
|
1198
|
-
ind,
|
|
1199
|
-
mode,
|
|
1200
|
-
doc: doc2.contents
|
|
1201
|
-
});
|
|
1142
|
+
lineSuffix2.push({ ind, mode, doc: doc2.contents });
|
|
1202
1143
|
break;
|
|
1203
1144
|
case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
|
|
1204
1145
|
if (lineSuffix2.length > 0) {
|
|
1205
|
-
cmds.push({
|
|
1206
|
-
ind,
|
|
1207
|
-
mode,
|
|
1208
|
-
doc: hardlineWithoutBreakParent
|
|
1209
|
-
});
|
|
1146
|
+
cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });
|
|
1210
1147
|
}
|
|
1211
1148
|
break;
|
|
1212
1149
|
case DOC_TYPE_LINE:
|
|
@@ -1221,13 +1158,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1221
1158
|
} else {
|
|
1222
1159
|
shouldRemeasure = true;
|
|
1223
1160
|
}
|
|
1161
|
+
// fallthrough
|
|
1224
1162
|
case MODE_BREAK:
|
|
1225
1163
|
if (lineSuffix2.length > 0) {
|
|
1226
|
-
cmds.push({
|
|
1227
|
-
ind,
|
|
1228
|
-
mode,
|
|
1229
|
-
doc: doc2
|
|
1230
|
-
}, ...lineSuffix2.reverse());
|
|
1164
|
+
cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());
|
|
1231
1165
|
lineSuffix2.length = 0;
|
|
1232
1166
|
break;
|
|
1233
1167
|
}
|
|
@@ -1248,11 +1182,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1248
1182
|
}
|
|
1249
1183
|
break;
|
|
1250
1184
|
case DOC_TYPE_LABEL:
|
|
1251
|
-
cmds.push({
|
|
1252
|
-
ind,
|
|
1253
|
-
mode,
|
|
1254
|
-
doc: doc2.contents
|
|
1255
|
-
});
|
|
1185
|
+
cmds.push({ ind, mode, doc: doc2.contents });
|
|
1256
1186
|
break;
|
|
1257
1187
|
case DOC_TYPE_BREAK_PARENT:
|
|
1258
1188
|
break;
|
|
@@ -1266,7 +1196,15 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1266
1196
|
}
|
|
1267
1197
|
const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
|
|
1268
1198
|
if (cursorPlaceholderIndex !== -1) {
|
|
1269
|
-
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1199
|
+
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1200
|
+
CURSOR_PLACEHOLDER,
|
|
1201
|
+
cursorPlaceholderIndex + 1
|
|
1202
|
+
);
|
|
1203
|
+
if (otherCursorPlaceholderIndex === -1) {
|
|
1204
|
+
return {
|
|
1205
|
+
formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("")
|
|
1206
|
+
};
|
|
1207
|
+
}
|
|
1270
1208
|
const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
|
|
1271
1209
|
const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
|
|
1272
1210
|
const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
|
|
@@ -1276,9 +1214,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1276
1214
|
cursorNodeText: aroundCursor
|
|
1277
1215
|
};
|
|
1278
1216
|
}
|
|
1279
|
-
return {
|
|
1280
|
-
formatted: out.join("")
|
|
1281
|
-
};
|
|
1217
|
+
return { formatted: out.join("") };
|
|
1282
1218
|
}
|
|
1283
1219
|
|
|
1284
1220
|
// src/document/public.js
|