prettier 3.6.2 → 3.7.0
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/THIRD-PARTY-NOTICES.md +297 -82
- package/doc.js +599 -363
- package/doc.mjs +600 -367
- package/index.cjs +95 -77
- package/index.d.ts +8 -2
- package/index.mjs +5172 -5502
- package/internal/experimental-cli-worker.mjs +466 -259
- package/internal/experimental-cli.mjs +1148 -1967
- package/internal/legacy-cli.mjs +2063 -541
- package/package.json +2 -1
- package/plugins/acorn.js +13 -12
- package/plugins/acorn.mjs +13 -12
- package/plugins/angular.js +4 -2
- package/plugins/angular.mjs +4 -2
- package/plugins/babel.js +13 -13
- package/plugins/babel.mjs +13 -13
- package/plugins/estree.js +40 -32
- package/plugins/estree.mjs +40 -32
- package/plugins/flow.js +16 -15
- package/plugins/flow.mjs +16 -15
- package/plugins/glimmer.js +28 -20
- package/plugins/glimmer.mjs +30 -22
- package/plugins/graphql.js +15 -16
- package/plugins/graphql.mjs +15 -16
- package/plugins/html.js +23 -21
- package/plugins/html.mjs +23 -21
- package/plugins/markdown.js +53 -54
- package/plugins/markdown.mjs +52 -53
- package/plugins/meriyah.js +5 -4
- package/plugins/meriyah.mjs +5 -4
- package/plugins/postcss.js +41 -34
- package/plugins/postcss.mjs +41 -34
- package/plugins/typescript.js +16 -15
- package/plugins/typescript.mjs +16 -15
- package/plugins/yaml.js +90 -91
- package/plugins/yaml.mjs +90 -91
- package/standalone.js +29 -30
- package/standalone.mjs +29 -30
package/doc.js
CHANGED
|
@@ -47,22 +47,93 @@
|
|
|
47
47
|
utils: () => utils
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
//
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var
|
|
65
|
-
|
|
50
|
+
// scripts/build/shims/shared.js
|
|
51
|
+
var OPTIONAL_OBJECT = 1;
|
|
52
|
+
var createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => {
|
|
53
|
+
if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const implementation = getImplementation.call(object) ?? object[methodName];
|
|
57
|
+
return implementation.apply(object, arguments_);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// scripts/build/shims/method-at.js
|
|
61
|
+
function stringOrArrayAt(index) {
|
|
62
|
+
return this[index < 0 ? this.length + index : index];
|
|
63
|
+
}
|
|
64
|
+
var at = createMethodShim("at", function() {
|
|
65
|
+
if (Array.isArray(this) || typeof this === "string") {
|
|
66
|
+
return stringOrArrayAt;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
var method_at_default = at;
|
|
70
|
+
|
|
71
|
+
// src/utils/noop.js
|
|
72
|
+
var noop = () => {
|
|
73
|
+
};
|
|
74
|
+
var noop_default = noop;
|
|
75
|
+
|
|
76
|
+
// src/document/builders/types.js
|
|
77
|
+
var DOC_TYPE_STRING = (
|
|
78
|
+
/** @type {const} */
|
|
79
|
+
"string"
|
|
80
|
+
);
|
|
81
|
+
var DOC_TYPE_ARRAY = (
|
|
82
|
+
/** @type {const} */
|
|
83
|
+
"array"
|
|
84
|
+
);
|
|
85
|
+
var DOC_TYPE_CURSOR = (
|
|
86
|
+
/** @type {const} */
|
|
87
|
+
"cursor"
|
|
88
|
+
);
|
|
89
|
+
var DOC_TYPE_INDENT = (
|
|
90
|
+
/** @type {const} */
|
|
91
|
+
"indent"
|
|
92
|
+
);
|
|
93
|
+
var DOC_TYPE_ALIGN = (
|
|
94
|
+
/** @type {const} */
|
|
95
|
+
"align"
|
|
96
|
+
);
|
|
97
|
+
var DOC_TYPE_TRIM = (
|
|
98
|
+
/** @type {const} */
|
|
99
|
+
"trim"
|
|
100
|
+
);
|
|
101
|
+
var DOC_TYPE_GROUP = (
|
|
102
|
+
/** @type {const} */
|
|
103
|
+
"group"
|
|
104
|
+
);
|
|
105
|
+
var DOC_TYPE_FILL = (
|
|
106
|
+
/** @type {const} */
|
|
107
|
+
"fill"
|
|
108
|
+
);
|
|
109
|
+
var DOC_TYPE_IF_BREAK = (
|
|
110
|
+
/** @type {const} */
|
|
111
|
+
"if-break"
|
|
112
|
+
);
|
|
113
|
+
var DOC_TYPE_INDENT_IF_BREAK = (
|
|
114
|
+
/** @type {const} */
|
|
115
|
+
"indent-if-break"
|
|
116
|
+
);
|
|
117
|
+
var DOC_TYPE_LINE_SUFFIX = (
|
|
118
|
+
/** @type {const} */
|
|
119
|
+
"line-suffix"
|
|
120
|
+
);
|
|
121
|
+
var DOC_TYPE_LINE_SUFFIX_BOUNDARY = (
|
|
122
|
+
/** @type {const} */
|
|
123
|
+
"line-suffix-boundary"
|
|
124
|
+
);
|
|
125
|
+
var DOC_TYPE_LINE = (
|
|
126
|
+
/** @type {const} */
|
|
127
|
+
"line"
|
|
128
|
+
);
|
|
129
|
+
var DOC_TYPE_LABEL = (
|
|
130
|
+
/** @type {const} */
|
|
131
|
+
"label"
|
|
132
|
+
);
|
|
133
|
+
var DOC_TYPE_BREAK_PARENT = (
|
|
134
|
+
/** @type {const} */
|
|
135
|
+
"break-parent"
|
|
136
|
+
);
|
|
66
137
|
var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
|
|
67
138
|
DOC_TYPE_CURSOR,
|
|
68
139
|
DOC_TYPE_INDENT,
|
|
@@ -79,18 +150,6 @@
|
|
|
79
150
|
DOC_TYPE_BREAK_PARENT
|
|
80
151
|
]);
|
|
81
152
|
|
|
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
|
-
|
|
94
153
|
// node_modules/trim-newlines/index.js
|
|
95
154
|
function trimNewlinesEnd(string) {
|
|
96
155
|
let end = string.length;
|
|
@@ -100,7 +159,7 @@
|
|
|
100
159
|
return end < string.length ? string.slice(0, end) : string;
|
|
101
160
|
}
|
|
102
161
|
|
|
103
|
-
// src/document/
|
|
162
|
+
// src/document/utilities/get-doc-type.js
|
|
104
163
|
function getDocType(doc) {
|
|
105
164
|
if (typeof doc === "string") {
|
|
106
165
|
return DOC_TYPE_STRING;
|
|
@@ -118,7 +177,7 @@
|
|
|
118
177
|
}
|
|
119
178
|
var get_doc_type_default = getDocType;
|
|
120
179
|
|
|
121
|
-
// src/document/invalid-doc-error.js
|
|
180
|
+
// src/document/utilities/invalid-doc-error.js
|
|
122
181
|
var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
|
|
123
182
|
function getDocErrorMessage(doc) {
|
|
124
183
|
const type = doc === null ? "null" : typeof doc;
|
|
@@ -148,7 +207,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
148
207
|
};
|
|
149
208
|
var invalid_doc_error_default = InvalidDocError;
|
|
150
209
|
|
|
151
|
-
// src/document/
|
|
210
|
+
// src/document/utilities/traverse-doc.js
|
|
152
211
|
var traverseDocOnExitStackMarker = {};
|
|
153
212
|
function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
|
|
154
213
|
const docsStack = [doc];
|
|
@@ -165,7 +224,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
165
224
|
if (!docType) {
|
|
166
225
|
throw new invalid_doc_error_default(doc2);
|
|
167
226
|
}
|
|
168
|
-
if (
|
|
227
|
+
if (onEnter?.(doc2) === false) {
|
|
169
228
|
continue;
|
|
170
229
|
}
|
|
171
230
|
switch (docType) {
|
|
@@ -210,7 +269,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
210
269
|
}
|
|
211
270
|
var traverse_doc_default = traverseDoc;
|
|
212
271
|
|
|
213
|
-
// src/document/
|
|
272
|
+
// src/document/utilities/index.js
|
|
214
273
|
function mapDoc(doc, cb) {
|
|
215
274
|
if (typeof doc === "string") {
|
|
216
275
|
return cb(doc);
|
|
@@ -230,7 +289,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
230
289
|
case DOC_TYPE_ARRAY:
|
|
231
290
|
return cb(doc2.map(rec));
|
|
232
291
|
case DOC_TYPE_FILL:
|
|
233
|
-
return cb({
|
|
292
|
+
return cb({
|
|
293
|
+
...doc2,
|
|
294
|
+
parts: doc2.parts.map(rec)
|
|
295
|
+
});
|
|
234
296
|
case DOC_TYPE_IF_BREAK:
|
|
235
297
|
return cb({
|
|
236
298
|
...doc2,
|
|
@@ -238,21 +300,31 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
238
300
|
flatContents: rec(doc2.flatContents)
|
|
239
301
|
});
|
|
240
302
|
case DOC_TYPE_GROUP: {
|
|
241
|
-
let {
|
|
303
|
+
let {
|
|
304
|
+
expandedStates,
|
|
305
|
+
contents
|
|
306
|
+
} = doc2;
|
|
242
307
|
if (expandedStates) {
|
|
243
308
|
expandedStates = expandedStates.map(rec);
|
|
244
309
|
contents = expandedStates[0];
|
|
245
310
|
} else {
|
|
246
311
|
contents = rec(contents);
|
|
247
312
|
}
|
|
248
|
-
return cb({
|
|
313
|
+
return cb({
|
|
314
|
+
...doc2,
|
|
315
|
+
contents,
|
|
316
|
+
expandedStates
|
|
317
|
+
});
|
|
249
318
|
}
|
|
250
319
|
case DOC_TYPE_ALIGN:
|
|
251
320
|
case DOC_TYPE_INDENT:
|
|
252
321
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
253
322
|
case DOC_TYPE_LABEL:
|
|
254
323
|
case DOC_TYPE_LINE_SUFFIX:
|
|
255
|
-
return cb({
|
|
324
|
+
return cb({
|
|
325
|
+
...doc2,
|
|
326
|
+
contents: rec(doc2.contents)
|
|
327
|
+
});
|
|
256
328
|
case DOC_TYPE_STRING:
|
|
257
329
|
case DOC_TYPE_CURSOR:
|
|
258
330
|
case DOC_TYPE_TRIM:
|
|
@@ -297,9 +369,9 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
297
369
|
}
|
|
298
370
|
function breakParentGroup(groupStack) {
|
|
299
371
|
if (groupStack.length > 0) {
|
|
300
|
-
const parentGroup =
|
|
301
|
-
/*
|
|
302
|
-
|
|
372
|
+
const parentGroup = method_at_default(
|
|
373
|
+
/* OPTIONAL_OBJECT: false */
|
|
374
|
+
0,
|
|
303
375
|
groupStack,
|
|
304
376
|
-1
|
|
305
377
|
);
|
|
@@ -354,23 +426,23 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
354
426
|
}
|
|
355
427
|
function stripTrailingHardlineFromParts(parts) {
|
|
356
428
|
parts = [...parts];
|
|
357
|
-
while (parts.length >= 2 &&
|
|
358
|
-
/*
|
|
359
|
-
|
|
429
|
+
while (parts.length >= 2 && method_at_default(
|
|
430
|
+
/* OPTIONAL_OBJECT: false */
|
|
431
|
+
0,
|
|
360
432
|
parts,
|
|
361
433
|
-2
|
|
362
|
-
).type === DOC_TYPE_LINE &&
|
|
363
|
-
/*
|
|
364
|
-
|
|
434
|
+
).type === DOC_TYPE_LINE && method_at_default(
|
|
435
|
+
/* OPTIONAL_OBJECT: false */
|
|
436
|
+
0,
|
|
365
437
|
parts,
|
|
366
438
|
-1
|
|
367
439
|
).type === DOC_TYPE_BREAK_PARENT) {
|
|
368
440
|
parts.length -= 2;
|
|
369
441
|
}
|
|
370
442
|
if (parts.length > 0) {
|
|
371
|
-
const lastPart = stripTrailingHardlineFromDoc(
|
|
372
|
-
/*
|
|
373
|
-
|
|
443
|
+
const lastPart = stripTrailingHardlineFromDoc(method_at_default(
|
|
444
|
+
/* OPTIONAL_OBJECT: false */
|
|
445
|
+
0,
|
|
374
446
|
parts,
|
|
375
447
|
-1
|
|
376
448
|
));
|
|
@@ -386,7 +458,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
386
458
|
case DOC_TYPE_LINE_SUFFIX:
|
|
387
459
|
case DOC_TYPE_LABEL: {
|
|
388
460
|
const contents = stripTrailingHardlineFromDoc(doc.contents);
|
|
389
|
-
return {
|
|
461
|
+
return {
|
|
462
|
+
...doc,
|
|
463
|
+
contents
|
|
464
|
+
};
|
|
390
465
|
}
|
|
391
466
|
case DOC_TYPE_IF_BREAK:
|
|
392
467
|
return {
|
|
@@ -395,7 +470,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
395
470
|
flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
|
|
396
471
|
};
|
|
397
472
|
case DOC_TYPE_FILL:
|
|
398
|
-
return {
|
|
473
|
+
return {
|
|
474
|
+
...doc,
|
|
475
|
+
parts: stripTrailingHardlineFromParts(doc.parts)
|
|
476
|
+
};
|
|
399
477
|
case DOC_TYPE_ARRAY:
|
|
400
478
|
return stripTrailingHardlineFromParts(doc);
|
|
401
479
|
case DOC_TYPE_STRING:
|
|
@@ -450,9 +528,9 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
450
528
|
continue;
|
|
451
529
|
}
|
|
452
530
|
const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
|
|
453
|
-
if (typeof currentPart === "string" && typeof
|
|
454
|
-
/*
|
|
455
|
-
|
|
531
|
+
if (typeof currentPart === "string" && typeof method_at_default(
|
|
532
|
+
/* OPTIONAL_OBJECT: false */
|
|
533
|
+
0,
|
|
456
534
|
parts,
|
|
457
535
|
-1
|
|
458
536
|
) === "string") {
|
|
@@ -487,10 +565,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
487
565
|
return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
|
|
488
566
|
}
|
|
489
567
|
function replaceEndOfLine(doc, replacement = literalline) {
|
|
490
|
-
return mapDoc(
|
|
491
|
-
doc,
|
|
492
|
-
(currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc
|
|
493
|
-
);
|
|
568
|
+
return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
|
|
494
569
|
}
|
|
495
570
|
function canBreakFn(doc) {
|
|
496
571
|
if (doc.type === DOC_TYPE_LINE) {
|
|
@@ -501,39 +576,46 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
501
576
|
return findInDoc(doc, canBreakFn, false);
|
|
502
577
|
}
|
|
503
578
|
|
|
504
|
-
// src/document/
|
|
505
|
-
var
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
579
|
+
// src/document/utilities/assert-doc.js
|
|
580
|
+
var assertDoc = true ? noop_default : (
|
|
581
|
+
/**
|
|
582
|
+
@param {Doc} doc
|
|
583
|
+
*/
|
|
584
|
+
function(doc) {
|
|
585
|
+
traverse_doc_default(doc, (doc2) => {
|
|
586
|
+
if (typeof doc2 === "string" || checked.has(doc2)) {
|
|
587
|
+
return false;
|
|
588
|
+
}
|
|
513
589
|
checked.add(doc2);
|
|
514
|
-
}
|
|
515
|
-
});
|
|
516
|
-
};
|
|
517
|
-
var assertDocArray = true ? noop : function(docs, optional = false) {
|
|
518
|
-
if (optional && !docs) {
|
|
519
|
-
return;
|
|
520
|
-
}
|
|
521
|
-
if (!Array.isArray(docs)) {
|
|
522
|
-
throw new TypeError("Unexpected doc array.");
|
|
590
|
+
});
|
|
523
591
|
}
|
|
524
|
-
|
|
525
|
-
|
|
592
|
+
);
|
|
593
|
+
var assertDocArray = true ? noop_default : (
|
|
594
|
+
/**
|
|
595
|
+
@param {readonly Doc[]} docs
|
|
596
|
+
@param {boolean} [optional = false]
|
|
597
|
+
*/
|
|
598
|
+
function(docs, optional = false) {
|
|
599
|
+
if (optional && !docs) {
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
if (!Array.isArray(docs)) {
|
|
603
|
+
throw new TypeError("Unexpected doc array.");
|
|
604
|
+
}
|
|
605
|
+
for (const doc of docs) {
|
|
606
|
+
assertDoc(doc);
|
|
607
|
+
}
|
|
526
608
|
}
|
|
527
|
-
|
|
528
|
-
var assertDocFillParts = true ?
|
|
609
|
+
);
|
|
610
|
+
var assertDocFillParts = true ? noop_default : (
|
|
529
611
|
/**
|
|
530
|
-
|
|
531
|
-
|
|
612
|
+
@param {readonly Doc[]} parts
|
|
613
|
+
*/
|
|
532
614
|
function(parts) {
|
|
533
615
|
assertDocArray(parts);
|
|
534
|
-
if (parts.length > 1 && isEmptyDoc(
|
|
535
|
-
/*
|
|
536
|
-
|
|
616
|
+
if (parts.length > 1 && isEmptyDoc(method_at_default(
|
|
617
|
+
/* OPTIONAL_OBJECT: false */
|
|
618
|
+
0,
|
|
537
619
|
parts,
|
|
538
620
|
-1
|
|
539
621
|
))) {
|
|
@@ -542,37 +624,28 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
542
624
|
for (const [i, doc] of parts.entries()) {
|
|
543
625
|
if (i % 2 === 1 && !isValidSeparator(doc)) {
|
|
544
626
|
const type = get_doc_type_default(doc);
|
|
545
|
-
throw new Error(
|
|
546
|
-
`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`
|
|
547
|
-
);
|
|
627
|
+
throw new Error(`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`);
|
|
548
628
|
}
|
|
549
629
|
}
|
|
550
630
|
}
|
|
551
631
|
);
|
|
632
|
+
var assertAlignType = true ? noop_default : function(alignType) {
|
|
633
|
+
if (!(typeof alignType === "number" || typeof alignType === "string" || alignType?.type === "root")) {
|
|
634
|
+
throw new TypeError(`Invalid alignType '${alignType}'.`);
|
|
635
|
+
}
|
|
636
|
+
};
|
|
552
637
|
|
|
553
|
-
// src/document/builders.js
|
|
638
|
+
// src/document/builders/indent.js
|
|
554
639
|
function indent(contents) {
|
|
555
640
|
assertDoc(contents);
|
|
556
641
|
return { type: DOC_TYPE_INDENT, contents };
|
|
557
642
|
}
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
function group(contents, opts = {}) {
|
|
643
|
+
|
|
644
|
+
// src/document/builders/align.js
|
|
645
|
+
function align(alignType, contents) {
|
|
646
|
+
assertAlignType(alignType);
|
|
563
647
|
assertDoc(contents);
|
|
564
|
-
|
|
565
|
-
opts.expandedStates,
|
|
566
|
-
/* optional */
|
|
567
|
-
true
|
|
568
|
-
);
|
|
569
|
-
return {
|
|
570
|
-
type: DOC_TYPE_GROUP,
|
|
571
|
-
id: opts.id,
|
|
572
|
-
contents,
|
|
573
|
-
break: Boolean(opts.shouldBreak),
|
|
574
|
-
expandedStates: opts.expandedStates
|
|
575
|
-
};
|
|
648
|
+
return { type: DOC_TYPE_ALIGN, contents, n: alignType };
|
|
576
649
|
}
|
|
577
650
|
function dedentToRoot(contents) {
|
|
578
651
|
return align(Number.NEGATIVE_INFINITY, contents);
|
|
@@ -583,14 +656,53 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
583
656
|
function dedent(contents) {
|
|
584
657
|
return align(-1, contents);
|
|
585
658
|
}
|
|
586
|
-
function
|
|
587
|
-
|
|
659
|
+
function addAlignmentToDoc(doc, size, tabWidth) {
|
|
660
|
+
assertDoc(doc);
|
|
661
|
+
let aligned = doc;
|
|
662
|
+
if (size > 0) {
|
|
663
|
+
for (let level = 0; level < Math.floor(size / tabWidth); ++level) {
|
|
664
|
+
aligned = indent(aligned);
|
|
665
|
+
}
|
|
666
|
+
aligned = align(size % tabWidth, aligned);
|
|
667
|
+
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
668
|
+
}
|
|
669
|
+
return aligned;
|
|
588
670
|
}
|
|
671
|
+
|
|
672
|
+
// src/document/builders/break-parent.js
|
|
673
|
+
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
674
|
+
|
|
675
|
+
// src/document/builders/cursor.js
|
|
676
|
+
var cursor = { type: DOC_TYPE_CURSOR };
|
|
677
|
+
|
|
678
|
+
// src/document/builders/fill.js
|
|
589
679
|
function fill(parts) {
|
|
590
680
|
assertDocFillParts(parts);
|
|
591
681
|
return { type: DOC_TYPE_FILL, parts };
|
|
592
682
|
}
|
|
593
|
-
|
|
683
|
+
|
|
684
|
+
// src/document/builders/group.js
|
|
685
|
+
function group(contents, options = {}) {
|
|
686
|
+
assertDoc(contents);
|
|
687
|
+
assertDocArray(
|
|
688
|
+
options.expandedStates,
|
|
689
|
+
/* optional */
|
|
690
|
+
true
|
|
691
|
+
);
|
|
692
|
+
return {
|
|
693
|
+
type: DOC_TYPE_GROUP,
|
|
694
|
+
id: options.id,
|
|
695
|
+
contents,
|
|
696
|
+
break: Boolean(options.shouldBreak),
|
|
697
|
+
expandedStates: options.expandedStates
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
function conditionalGroup(states, options) {
|
|
701
|
+
return group(states[0], { ...options, expandedStates: states });
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
// src/document/builders/if-break.js
|
|
705
|
+
function ifBreak(breakContents, flatContents = "", options = {}) {
|
|
594
706
|
assertDoc(breakContents);
|
|
595
707
|
if (flatContents !== "") {
|
|
596
708
|
assertDoc(flatContents);
|
|
@@ -599,36 +711,22 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
599
711
|
type: DOC_TYPE_IF_BREAK,
|
|
600
712
|
breakContents,
|
|
601
713
|
flatContents,
|
|
602
|
-
groupId:
|
|
714
|
+
groupId: options.groupId
|
|
603
715
|
};
|
|
604
716
|
}
|
|
605
|
-
|
|
717
|
+
|
|
718
|
+
// src/document/builders/indent-if-break.js
|
|
719
|
+
function indentIfBreak(contents, options) {
|
|
606
720
|
assertDoc(contents);
|
|
607
721
|
return {
|
|
608
722
|
type: DOC_TYPE_INDENT_IF_BREAK,
|
|
609
723
|
contents,
|
|
610
|
-
groupId:
|
|
611
|
-
negate:
|
|
724
|
+
groupId: options.groupId,
|
|
725
|
+
negate: options.negate
|
|
612
726
|
};
|
|
613
727
|
}
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
617
|
-
}
|
|
618
|
-
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
619
|
-
var breakParent = { type: DOC_TYPE_BREAK_PARENT };
|
|
620
|
-
var trim = { type: DOC_TYPE_TRIM };
|
|
621
|
-
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
622
|
-
var literallineWithoutBreakParent = {
|
|
623
|
-
type: DOC_TYPE_LINE,
|
|
624
|
-
hard: true,
|
|
625
|
-
literal: true
|
|
626
|
-
};
|
|
627
|
-
var line = { type: DOC_TYPE_LINE };
|
|
628
|
-
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
629
|
-
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
630
|
-
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
631
|
-
var cursor = { type: DOC_TYPE_CURSOR };
|
|
728
|
+
|
|
729
|
+
// src/document/builders/join.js
|
|
632
730
|
function join(separator, docs) {
|
|
633
731
|
assertDoc(separator);
|
|
634
732
|
assertDocArray(docs);
|
|
@@ -641,37 +739,50 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
641
739
|
}
|
|
642
740
|
return parts;
|
|
643
741
|
}
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
let aligned = doc;
|
|
647
|
-
if (size > 0) {
|
|
648
|
-
for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
|
|
649
|
-
aligned = indent(aligned);
|
|
650
|
-
}
|
|
651
|
-
aligned = align(size % tabWidth, aligned);
|
|
652
|
-
aligned = align(Number.NEGATIVE_INFINITY, aligned);
|
|
653
|
-
}
|
|
654
|
-
return aligned;
|
|
655
|
-
}
|
|
742
|
+
|
|
743
|
+
// src/document/builders/label.js
|
|
656
744
|
function label(label2, contents) {
|
|
657
745
|
assertDoc(contents);
|
|
658
746
|
return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
|
|
659
747
|
}
|
|
660
748
|
|
|
661
|
-
//
|
|
662
|
-
var
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
749
|
+
// src/document/builders/line.js
|
|
750
|
+
var line = { type: DOC_TYPE_LINE };
|
|
751
|
+
var softline = { type: DOC_TYPE_LINE, soft: true };
|
|
752
|
+
var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
|
|
753
|
+
var hardline = [hardlineWithoutBreakParent, breakParent];
|
|
754
|
+
var literallineWithoutBreakParent = {
|
|
755
|
+
type: DOC_TYPE_LINE,
|
|
756
|
+
hard: true,
|
|
757
|
+
literal: true
|
|
758
|
+
};
|
|
759
|
+
var literalline = [literallineWithoutBreakParent, breakParent];
|
|
760
|
+
|
|
761
|
+
// src/document/builders/line-suffix.js
|
|
762
|
+
function lineSuffix(contents) {
|
|
763
|
+
assertDoc(contents);
|
|
764
|
+
return { type: DOC_TYPE_LINE_SUFFIX, contents };
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
// src/document/builders/line-suffix-boundary.js
|
|
768
|
+
var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
|
|
769
|
+
|
|
770
|
+
// src/document/builders/trim.js
|
|
771
|
+
var trim = { type: DOC_TYPE_TRIM };
|
|
772
|
+
|
|
773
|
+
// scripts/build/shims/method-replace-all.js
|
|
774
|
+
var stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) {
|
|
669
775
|
if (pattern.global) {
|
|
670
|
-
return
|
|
776
|
+
return this.replace(pattern, replacement);
|
|
671
777
|
}
|
|
672
|
-
return
|
|
778
|
+
return this.split(pattern).join(replacement);
|
|
673
779
|
};
|
|
674
|
-
var
|
|
780
|
+
var replaceAll = createMethodShim("replaceAll", function() {
|
|
781
|
+
if (typeof this === "string") {
|
|
782
|
+
return stringReplaceAll;
|
|
783
|
+
}
|
|
784
|
+
});
|
|
785
|
+
var method_replace_all_default = replaceAll;
|
|
675
786
|
|
|
676
787
|
// src/common/end-of-line.js
|
|
677
788
|
function convertEndOfLineToChars(value) {
|
|
@@ -687,7 +798,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
687
798
|
|
|
688
799
|
// node_modules/emoji-regex/index.mjs
|
|
689
800
|
var emoji_regex_default = () => {
|
|
690
|
-
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;
|
|
801
|
+
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-\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-\uDED8\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\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]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\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\uDD3C-\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-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\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\uDE70]|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\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;
|
|
691
802
|
};
|
|
692
803
|
|
|
693
804
|
// node_modules/get-east-asian-width/lookup.js
|
|
@@ -695,14 +806,15 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
695
806
|
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
696
807
|
}
|
|
697
808
|
function isWide(x) {
|
|
698
|
-
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
|
|
809
|
+
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 <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || 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 <= 128728 || 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 <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
699
810
|
}
|
|
700
811
|
|
|
701
|
-
//
|
|
702
|
-
var
|
|
812
|
+
// src/utils/narrow-emojis.evaluate.js
|
|
813
|
+
var narrow_emojis_evaluate_default = "\xA9\xAE\u203C\u2049\u2122\u2139\u2194\u2195\u2196\u2197\u2198\u2199\u21A9\u21AA\u2328\u23CF\u23F1\u23F2\u23F8\u23F9\u23FA\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600\u2601\u2602\u2603\u2604\u260E\u2611\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638\u2639\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694\u2695\u2696\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F1\u26F7\u26F8\u26F9\u2702\u2708\u2709\u270C\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05\u2B06\u2B07";
|
|
703
814
|
|
|
704
815
|
// src/utils/get-string-width.js
|
|
705
816
|
var notAsciiRegex = /[^\x20-\x7F]/u;
|
|
817
|
+
var narrowEmojisSet = new Set(narrow_emojis_evaluate_default);
|
|
706
818
|
function getStringWidth(text) {
|
|
707
819
|
if (!text) {
|
|
708
820
|
return 0;
|
|
@@ -710,7 +822,10 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
710
822
|
if (!notAsciiRegex.test(text)) {
|
|
711
823
|
return text.length;
|
|
712
824
|
}
|
|
713
|
-
text = text.replace(
|
|
825
|
+
text = text.replace(
|
|
826
|
+
emoji_regex_default(),
|
|
827
|
+
(match) => narrowEmojisSet.has(match) ? " " : " "
|
|
828
|
+
);
|
|
714
829
|
let width = 0;
|
|
715
830
|
for (const character of text) {
|
|
716
831
|
const codePoint = character.codePointAt(0);
|
|
@@ -720,48 +835,39 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
720
835
|
if (codePoint >= 768 && codePoint <= 879) {
|
|
721
836
|
continue;
|
|
722
837
|
}
|
|
723
|
-
|
|
838
|
+
if (codePoint >= 65024 && codePoint <= 65039) {
|
|
839
|
+
continue;
|
|
840
|
+
}
|
|
841
|
+
width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1;
|
|
724
842
|
}
|
|
725
843
|
return width;
|
|
726
844
|
}
|
|
727
845
|
var get_string_width_default = getStringWidth;
|
|
728
846
|
|
|
729
|
-
// src/document/printer.js
|
|
730
|
-
var
|
|
731
|
-
var
|
|
732
|
-
var
|
|
733
|
-
var
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
return indent2.root || rootIndent();
|
|
743
|
-
}
|
|
744
|
-
if (widthOrDoc < 0) {
|
|
745
|
-
return generateInd(indent2, { type: "dedent" }, options);
|
|
847
|
+
// src/document/printer/indent.js
|
|
848
|
+
var INDENT_COMMAND_TYPE_INDENT = 0;
|
|
849
|
+
var INDENT_COMMAND_TYPE_DEDENT = 1;
|
|
850
|
+
var INDENT_COMMAND_TYPE_WIDTH = 2;
|
|
851
|
+
var INDENT_COMMAND_TYPE_STRING = 3;
|
|
852
|
+
var INDENT_COMMAND_INDENT = { type: INDENT_COMMAND_TYPE_INDENT };
|
|
853
|
+
var INDENT_COMMAND_DEDENT = { type: INDENT_COMMAND_TYPE_DEDENT };
|
|
854
|
+
var ROOT_INDENT = {
|
|
855
|
+
value: "",
|
|
856
|
+
length: 0,
|
|
857
|
+
queue: [],
|
|
858
|
+
get root() {
|
|
859
|
+
return ROOT_INDENT;
|
|
746
860
|
}
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
if (widthOrDoc.type === "root") {
|
|
751
|
-
return { ...indent2, root: indent2 };
|
|
752
|
-
}
|
|
753
|
-
const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
|
|
754
|
-
return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);
|
|
755
|
-
}
|
|
756
|
-
function generateInd(ind, newPart, options) {
|
|
757
|
-
const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
|
|
861
|
+
};
|
|
862
|
+
function generateIndent(indent2, command, options) {
|
|
863
|
+
const queue = command.type === INDENT_COMMAND_TYPE_DEDENT ? indent2.queue.slice(0, -1) : [...indent2.queue, command];
|
|
758
864
|
let value = "";
|
|
759
865
|
let length = 0;
|
|
760
866
|
let lastTabs = 0;
|
|
761
867
|
let lastSpaces = 0;
|
|
762
|
-
for (const
|
|
763
|
-
switch (
|
|
764
|
-
case
|
|
868
|
+
for (const command2 of queue) {
|
|
869
|
+
switch (command2.type) {
|
|
870
|
+
case INDENT_COMMAND_TYPE_INDENT:
|
|
765
871
|
flush();
|
|
766
872
|
if (options.useTabs) {
|
|
767
873
|
addTabs(1);
|
|
@@ -769,21 +875,25 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
769
875
|
addSpaces(options.tabWidth);
|
|
770
876
|
}
|
|
771
877
|
break;
|
|
772
|
-
case
|
|
878
|
+
case INDENT_COMMAND_TYPE_STRING: {
|
|
879
|
+
const { string } = command2;
|
|
773
880
|
flush();
|
|
774
|
-
value +=
|
|
775
|
-
length +=
|
|
881
|
+
value += string;
|
|
882
|
+
length += string.length;
|
|
776
883
|
break;
|
|
777
|
-
|
|
884
|
+
}
|
|
885
|
+
case INDENT_COMMAND_TYPE_WIDTH: {
|
|
886
|
+
const { width } = command2;
|
|
778
887
|
lastTabs += 1;
|
|
779
|
-
lastSpaces +=
|
|
888
|
+
lastSpaces += width;
|
|
780
889
|
break;
|
|
890
|
+
}
|
|
781
891
|
default:
|
|
782
|
-
throw new Error(`Unexpected
|
|
892
|
+
throw new Error(`Unexpected indent comment '${command2.type}'.`);
|
|
783
893
|
}
|
|
784
894
|
}
|
|
785
895
|
flushSpaces();
|
|
786
|
-
return { ...
|
|
896
|
+
return { ...indent2, value, length, queue };
|
|
787
897
|
function addTabs(count) {
|
|
788
898
|
value += " ".repeat(count);
|
|
789
899
|
length += options.tabWidth * count;
|
|
@@ -816,65 +926,97 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
816
926
|
lastSpaces = 0;
|
|
817
927
|
}
|
|
818
928
|
}
|
|
819
|
-
function
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
trimCount++;
|
|
836
|
-
} else {
|
|
837
|
-
out[outIndex] = last.slice(0, charIndex + 1);
|
|
838
|
-
break outer;
|
|
839
|
-
}
|
|
929
|
+
function makeAlign(indent2, indentOptions, options) {
|
|
930
|
+
if (!indentOptions) {
|
|
931
|
+
return indent2;
|
|
932
|
+
}
|
|
933
|
+
if (indentOptions.type === "root") {
|
|
934
|
+
return { ...indent2, root: indent2 };
|
|
935
|
+
}
|
|
936
|
+
if (indentOptions === Number.NEGATIVE_INFINITY) {
|
|
937
|
+
return indent2.root;
|
|
938
|
+
}
|
|
939
|
+
let command;
|
|
940
|
+
if (typeof indentOptions === "number") {
|
|
941
|
+
if (indentOptions < 0) {
|
|
942
|
+
command = INDENT_COMMAND_DEDENT;
|
|
943
|
+
} else {
|
|
944
|
+
command = { type: INDENT_COMMAND_TYPE_WIDTH, width: indentOptions };
|
|
840
945
|
}
|
|
946
|
+
} else {
|
|
947
|
+
command = { type: INDENT_COMMAND_TYPE_STRING, string: indentOptions };
|
|
841
948
|
}
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
949
|
+
return generateIndent(indent2, command, options);
|
|
950
|
+
}
|
|
951
|
+
function makeIndent(indent2, options) {
|
|
952
|
+
return generateIndent(indent2, INDENT_COMMAND_INDENT, options);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
// src/document/printer/trim-indentation.js
|
|
956
|
+
function getTrailingIndentionLength(text) {
|
|
957
|
+
let length = 0;
|
|
958
|
+
for (let index = text.length - 1; index >= 0; index--) {
|
|
959
|
+
const character = text[index];
|
|
960
|
+
if (character === " " || character === " ") {
|
|
961
|
+
length++;
|
|
962
|
+
} else {
|
|
963
|
+
break;
|
|
846
964
|
}
|
|
847
965
|
}
|
|
848
|
-
return
|
|
966
|
+
return length;
|
|
849
967
|
}
|
|
850
|
-
function
|
|
851
|
-
|
|
968
|
+
function trimIndentation(text) {
|
|
969
|
+
const length = getTrailingIndentionLength(text);
|
|
970
|
+
const trimmed = length === 0 ? text : text.slice(0, text.length - length);
|
|
971
|
+
return { text: trimmed, count: length };
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
// src/document/printer/printer.js
|
|
975
|
+
var MODE_BREAK = Symbol("MODE_BREAK");
|
|
976
|
+
var MODE_FLAT = Symbol("MODE_FLAT");
|
|
977
|
+
var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
978
|
+
function fits(next, restCommands, remainingWidth, hasLineSuffix, groupModeMap, mustBeFlat) {
|
|
979
|
+
if (remainingWidth === Number.POSITIVE_INFINITY) {
|
|
852
980
|
return true;
|
|
853
981
|
}
|
|
854
|
-
let
|
|
855
|
-
|
|
856
|
-
const
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
982
|
+
let restCommandsIndex = restCommands.length;
|
|
983
|
+
let hasPendingSpace = false;
|
|
984
|
+
const commands = [next];
|
|
985
|
+
let output = "";
|
|
986
|
+
while (remainingWidth >= 0) {
|
|
987
|
+
if (commands.length === 0) {
|
|
988
|
+
if (restCommandsIndex === 0) {
|
|
860
989
|
return true;
|
|
861
990
|
}
|
|
862
|
-
|
|
991
|
+
commands.push(restCommands[--restCommandsIndex]);
|
|
863
992
|
continue;
|
|
864
993
|
}
|
|
865
|
-
const {
|
|
994
|
+
const {
|
|
995
|
+
mode,
|
|
996
|
+
doc
|
|
997
|
+
} = commands.pop();
|
|
866
998
|
const docType = get_doc_type_default(doc);
|
|
867
999
|
switch (docType) {
|
|
868
1000
|
case DOC_TYPE_STRING:
|
|
869
|
-
|
|
870
|
-
|
|
1001
|
+
if (doc) {
|
|
1002
|
+
if (hasPendingSpace) {
|
|
1003
|
+
output += " ";
|
|
1004
|
+
remainingWidth -= 1;
|
|
1005
|
+
hasPendingSpace = false;
|
|
1006
|
+
}
|
|
1007
|
+
output += doc;
|
|
1008
|
+
remainingWidth -= get_string_width_default(doc);
|
|
1009
|
+
}
|
|
871
1010
|
break;
|
|
872
1011
|
case DOC_TYPE_ARRAY:
|
|
873
1012
|
case DOC_TYPE_FILL: {
|
|
874
1013
|
const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
|
|
875
1014
|
const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
876
|
-
for (let
|
|
877
|
-
|
|
1015
|
+
for (let index = parts.length - 1; index >= end; index--) {
|
|
1016
|
+
commands.push({
|
|
1017
|
+
mode,
|
|
1018
|
+
doc: parts[index]
|
|
1019
|
+
});
|
|
878
1020
|
}
|
|
879
1021
|
break;
|
|
880
1022
|
}
|
|
@@ -882,30 +1024,45 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
882
1024
|
case DOC_TYPE_ALIGN:
|
|
883
1025
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
884
1026
|
case DOC_TYPE_LABEL:
|
|
885
|
-
|
|
1027
|
+
commands.push({
|
|
1028
|
+
mode,
|
|
1029
|
+
doc: doc.contents
|
|
1030
|
+
});
|
|
886
1031
|
break;
|
|
887
|
-
case DOC_TYPE_TRIM:
|
|
888
|
-
|
|
1032
|
+
case DOC_TYPE_TRIM: {
|
|
1033
|
+
const {
|
|
1034
|
+
text,
|
|
1035
|
+
count
|
|
1036
|
+
} = trimIndentation(output);
|
|
1037
|
+
output = text;
|
|
1038
|
+
remainingWidth += count;
|
|
889
1039
|
break;
|
|
1040
|
+
}
|
|
890
1041
|
case DOC_TYPE_GROUP: {
|
|
891
1042
|
if (mustBeFlat && doc.break) {
|
|
892
1043
|
return false;
|
|
893
1044
|
}
|
|
894
1045
|
const groupMode = doc.break ? MODE_BREAK : mode;
|
|
895
|
-
const contents = doc.expandedStates && groupMode === MODE_BREAK ?
|
|
896
|
-
/*
|
|
897
|
-
|
|
1046
|
+
const contents = doc.expandedStates && groupMode === MODE_BREAK ? method_at_default(
|
|
1047
|
+
/* OPTIONAL_OBJECT: false */
|
|
1048
|
+
0,
|
|
898
1049
|
doc.expandedStates,
|
|
899
1050
|
-1
|
|
900
1051
|
) : doc.contents;
|
|
901
|
-
|
|
1052
|
+
commands.push({
|
|
1053
|
+
mode: groupMode,
|
|
1054
|
+
doc: contents
|
|
1055
|
+
});
|
|
902
1056
|
break;
|
|
903
1057
|
}
|
|
904
1058
|
case DOC_TYPE_IF_BREAK: {
|
|
905
1059
|
const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
|
|
906
1060
|
const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
|
|
907
1061
|
if (contents) {
|
|
908
|
-
|
|
1062
|
+
commands.push({
|
|
1063
|
+
mode,
|
|
1064
|
+
doc: contents
|
|
1065
|
+
});
|
|
909
1066
|
}
|
|
910
1067
|
break;
|
|
911
1068
|
}
|
|
@@ -914,8 +1071,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
914
1071
|
return true;
|
|
915
1072
|
}
|
|
916
1073
|
if (!doc.soft) {
|
|
917
|
-
|
|
918
|
-
width--;
|
|
1074
|
+
hasPendingSpace = true;
|
|
919
1075
|
}
|
|
920
1076
|
break;
|
|
921
1077
|
case DOC_TYPE_LINE_SUFFIX:
|
|
@@ -931,64 +1087,84 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
931
1087
|
return false;
|
|
932
1088
|
}
|
|
933
1089
|
function printDocToString(doc, options) {
|
|
934
|
-
const groupModeMap =
|
|
1090
|
+
const groupModeMap = /* @__PURE__ */ Object.create(null);
|
|
935
1091
|
const width = options.printWidth;
|
|
936
1092
|
const newLine = convertEndOfLineToChars(options.endOfLine);
|
|
937
|
-
let
|
|
938
|
-
const
|
|
939
|
-
|
|
1093
|
+
let position = 0;
|
|
1094
|
+
const commands = [{
|
|
1095
|
+
indent: ROOT_INDENT,
|
|
1096
|
+
mode: MODE_BREAK,
|
|
1097
|
+
doc
|
|
1098
|
+
}];
|
|
1099
|
+
let out = [];
|
|
940
1100
|
let shouldRemeasure = false;
|
|
941
1101
|
const lineSuffix2 = [];
|
|
942
|
-
|
|
1102
|
+
const cursorPositions = [];
|
|
943
1103
|
propagateBreaks(doc);
|
|
944
|
-
while (
|
|
945
|
-
const {
|
|
1104
|
+
while (commands.length > 0) {
|
|
1105
|
+
const {
|
|
1106
|
+
indent: indent2,
|
|
1107
|
+
mode,
|
|
1108
|
+
doc: doc2
|
|
1109
|
+
} = commands.pop();
|
|
946
1110
|
switch (get_doc_type_default(doc2)) {
|
|
947
1111
|
case DOC_TYPE_STRING: {
|
|
948
|
-
const
|
|
949
|
-
/*
|
|
950
|
-
|
|
1112
|
+
const formatted2 = newLine !== "\n" ? method_replace_all_default(
|
|
1113
|
+
/* OPTIONAL_OBJECT: false */
|
|
1114
|
+
0,
|
|
951
1115
|
doc2,
|
|
952
1116
|
"\n",
|
|
953
1117
|
newLine
|
|
954
1118
|
) : doc2;
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
1119
|
+
if (formatted2) {
|
|
1120
|
+
out.push(formatted2);
|
|
1121
|
+
if (commands.length > 0) {
|
|
1122
|
+
position += get_string_width_default(formatted2);
|
|
1123
|
+
}
|
|
958
1124
|
}
|
|
959
1125
|
break;
|
|
960
1126
|
}
|
|
961
1127
|
case DOC_TYPE_ARRAY:
|
|
962
|
-
for (let
|
|
963
|
-
|
|
1128
|
+
for (let index = doc2.length - 1; index >= 0; index--) {
|
|
1129
|
+
commands.push({
|
|
1130
|
+
indent: indent2,
|
|
1131
|
+
mode,
|
|
1132
|
+
doc: doc2[index]
|
|
1133
|
+
});
|
|
964
1134
|
}
|
|
965
1135
|
break;
|
|
966
|
-
case DOC_TYPE_CURSOR:
|
|
967
|
-
if (
|
|
1136
|
+
case DOC_TYPE_CURSOR: {
|
|
1137
|
+
if (cursorPositions.length >= 2) {
|
|
968
1138
|
throw new Error("There are too many 'cursor' in doc.");
|
|
969
1139
|
}
|
|
970
|
-
out.
|
|
971
|
-
|
|
1140
|
+
const text = out.join("");
|
|
1141
|
+
out = [text];
|
|
1142
|
+
cursorPositions.push(text.length - 1);
|
|
972
1143
|
break;
|
|
1144
|
+
}
|
|
973
1145
|
case DOC_TYPE_INDENT:
|
|
974
|
-
|
|
1146
|
+
commands.push({
|
|
1147
|
+
indent: makeIndent(indent2, options),
|
|
1148
|
+
mode,
|
|
1149
|
+
doc: doc2.contents
|
|
1150
|
+
});
|
|
975
1151
|
break;
|
|
976
1152
|
case DOC_TYPE_ALIGN:
|
|
977
|
-
|
|
978
|
-
|
|
1153
|
+
commands.push({
|
|
1154
|
+
indent: makeAlign(indent2, doc2.n, options),
|
|
979
1155
|
mode,
|
|
980
1156
|
doc: doc2.contents
|
|
981
1157
|
});
|
|
982
1158
|
break;
|
|
983
1159
|
case DOC_TYPE_TRIM:
|
|
984
|
-
|
|
1160
|
+
trim2();
|
|
985
1161
|
break;
|
|
986
1162
|
case DOC_TYPE_GROUP:
|
|
987
1163
|
switch (mode) {
|
|
988
1164
|
case MODE_FLAT:
|
|
989
1165
|
if (!shouldRemeasure) {
|
|
990
|
-
|
|
991
|
-
|
|
1166
|
+
commands.push({
|
|
1167
|
+
indent: indent2,
|
|
992
1168
|
mode: doc2.break ? MODE_BREAK : MODE_FLAT,
|
|
993
1169
|
doc: doc2.contents
|
|
994
1170
|
});
|
|
@@ -997,49 +1173,69 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
997
1173
|
// fallthrough
|
|
998
1174
|
case MODE_BREAK: {
|
|
999
1175
|
shouldRemeasure = false;
|
|
1000
|
-
const next = {
|
|
1001
|
-
|
|
1176
|
+
const next = {
|
|
1177
|
+
indent: indent2,
|
|
1178
|
+
mode: MODE_FLAT,
|
|
1179
|
+
doc: doc2.contents
|
|
1180
|
+
};
|
|
1181
|
+
const remainingWidth = width - position;
|
|
1002
1182
|
const hasLineSuffix = lineSuffix2.length > 0;
|
|
1003
|
-
if (!doc2.break && fits(next,
|
|
1004
|
-
|
|
1183
|
+
if (!doc2.break && fits(next, commands, remainingWidth, hasLineSuffix, groupModeMap)) {
|
|
1184
|
+
commands.push(next);
|
|
1005
1185
|
} else {
|
|
1006
1186
|
if (doc2.expandedStates) {
|
|
1007
|
-
const mostExpanded =
|
|
1008
|
-
/*
|
|
1009
|
-
|
|
1187
|
+
const mostExpanded = method_at_default(
|
|
1188
|
+
/* OPTIONAL_OBJECT: false */
|
|
1189
|
+
0,
|
|
1010
1190
|
doc2.expandedStates,
|
|
1011
1191
|
-1
|
|
1012
1192
|
);
|
|
1013
1193
|
if (doc2.break) {
|
|
1014
|
-
|
|
1194
|
+
commands.push({
|
|
1195
|
+
indent: indent2,
|
|
1196
|
+
mode: MODE_BREAK,
|
|
1197
|
+
doc: mostExpanded
|
|
1198
|
+
});
|
|
1015
1199
|
break;
|
|
1016
1200
|
} else {
|
|
1017
|
-
for (let
|
|
1018
|
-
if (
|
|
1019
|
-
|
|
1201
|
+
for (let index = 1; index < doc2.expandedStates.length + 1; index++) {
|
|
1202
|
+
if (index >= doc2.expandedStates.length) {
|
|
1203
|
+
commands.push({
|
|
1204
|
+
indent: indent2,
|
|
1205
|
+
mode: MODE_BREAK,
|
|
1206
|
+
doc: mostExpanded
|
|
1207
|
+
});
|
|
1020
1208
|
break;
|
|
1021
1209
|
} else {
|
|
1022
|
-
const state = doc2.expandedStates[
|
|
1023
|
-
const cmd = {
|
|
1024
|
-
|
|
1025
|
-
|
|
1210
|
+
const state = doc2.expandedStates[index];
|
|
1211
|
+
const cmd = {
|
|
1212
|
+
indent: indent2,
|
|
1213
|
+
mode: MODE_FLAT,
|
|
1214
|
+
doc: state
|
|
1215
|
+
};
|
|
1216
|
+
if (fits(cmd, commands, remainingWidth, hasLineSuffix, groupModeMap)) {
|
|
1217
|
+
commands.push(cmd);
|
|
1026
1218
|
break;
|
|
1027
1219
|
}
|
|
1028
1220
|
}
|
|
1029
1221
|
}
|
|
1030
1222
|
}
|
|
1031
1223
|
} else {
|
|
1032
|
-
|
|
1224
|
+
commands.push({
|
|
1225
|
+
indent: indent2,
|
|
1226
|
+
mode: MODE_BREAK,
|
|
1227
|
+
doc: doc2.contents
|
|
1228
|
+
});
|
|
1033
1229
|
}
|
|
1034
1230
|
}
|
|
1035
1231
|
break;
|
|
1036
1232
|
}
|
|
1037
1233
|
}
|
|
1038
1234
|
if (doc2.id) {
|
|
1039
|
-
groupModeMap[doc2.id] =
|
|
1040
|
-
/*
|
|
1041
|
-
|
|
1042
|
-
|
|
1235
|
+
groupModeMap[doc2.id] = method_at_default(
|
|
1236
|
+
/* OPTIONAL_OBJECT: false */
|
|
1237
|
+
0,
|
|
1238
|
+
commands,
|
|
1043
1239
|
-1
|
|
1044
1240
|
).mode;
|
|
1045
1241
|
}
|
|
@@ -1065,68 +1261,76 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1065
1261
|
// * Neither content item fits on the line without breaking
|
|
1066
1262
|
// -> output the first content item and the whitespace with "break".
|
|
1067
1263
|
case DOC_TYPE_FILL: {
|
|
1068
|
-
const
|
|
1264
|
+
const remainingWidth = width - position;
|
|
1069
1265
|
const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
1070
|
-
const {
|
|
1266
|
+
const {
|
|
1267
|
+
parts
|
|
1268
|
+
} = doc2;
|
|
1071
1269
|
const length = parts.length - offset;
|
|
1072
1270
|
if (length === 0) {
|
|
1073
1271
|
break;
|
|
1074
1272
|
}
|
|
1075
1273
|
const content = parts[offset + 0];
|
|
1076
1274
|
const whitespace = parts[offset + 1];
|
|
1077
|
-
const
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1275
|
+
const contentFlatCommand = {
|
|
1276
|
+
indent: indent2,
|
|
1277
|
+
mode: MODE_FLAT,
|
|
1278
|
+
doc: content
|
|
1279
|
+
};
|
|
1280
|
+
const contentBreakCommand = {
|
|
1281
|
+
indent: indent2,
|
|
1282
|
+
mode: MODE_BREAK,
|
|
1283
|
+
doc: content
|
|
1284
|
+
};
|
|
1285
|
+
const contentFits = fits(contentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true);
|
|
1087
1286
|
if (length === 1) {
|
|
1088
1287
|
if (contentFits) {
|
|
1089
|
-
|
|
1288
|
+
commands.push(contentFlatCommand);
|
|
1090
1289
|
} else {
|
|
1091
|
-
|
|
1290
|
+
commands.push(contentBreakCommand);
|
|
1092
1291
|
}
|
|
1093
1292
|
break;
|
|
1094
1293
|
}
|
|
1095
|
-
const
|
|
1096
|
-
|
|
1294
|
+
const whitespaceFlatCommand = {
|
|
1295
|
+
indent: indent2,
|
|
1296
|
+
mode: MODE_FLAT,
|
|
1297
|
+
doc: whitespace
|
|
1298
|
+
};
|
|
1299
|
+
const whitespaceBreakCommand = {
|
|
1300
|
+
indent: indent2,
|
|
1301
|
+
mode: MODE_BREAK,
|
|
1302
|
+
doc: whitespace
|
|
1303
|
+
};
|
|
1097
1304
|
if (length === 2) {
|
|
1098
1305
|
if (contentFits) {
|
|
1099
|
-
|
|
1306
|
+
commands.push(whitespaceFlatCommand, contentFlatCommand);
|
|
1100
1307
|
} else {
|
|
1101
|
-
|
|
1308
|
+
commands.push(whitespaceBreakCommand, contentBreakCommand);
|
|
1102
1309
|
}
|
|
1103
1310
|
break;
|
|
1104
1311
|
}
|
|
1105
1312
|
const secondContent = parts[offset + 2];
|
|
1106
|
-
const
|
|
1107
|
-
|
|
1313
|
+
const remainingCommand = {
|
|
1314
|
+
indent: indent2,
|
|
1108
1315
|
mode,
|
|
1109
|
-
doc: {
|
|
1316
|
+
doc: {
|
|
1317
|
+
...doc2,
|
|
1318
|
+
[DOC_FILL_PRINTED_LENGTH]: offset + 2
|
|
1319
|
+
}
|
|
1110
1320
|
};
|
|
1111
|
-
const
|
|
1112
|
-
|
|
1321
|
+
const firstAndSecondContentFlatCommand = {
|
|
1322
|
+
indent: indent2,
|
|
1113
1323
|
mode: MODE_FLAT,
|
|
1114
1324
|
doc: [content, whitespace, secondContent]
|
|
1115
1325
|
};
|
|
1116
|
-
const firstAndSecondContentFits = fits(
|
|
1117
|
-
|
|
1118
|
-
[],
|
|
1119
|
-
rem,
|
|
1120
|
-
lineSuffix2.length > 0,
|
|
1121
|
-
groupModeMap,
|
|
1122
|
-
true
|
|
1123
|
-
);
|
|
1326
|
+
const firstAndSecondContentFits = fits(firstAndSecondContentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true);
|
|
1327
|
+
commands.push(remainingCommand);
|
|
1124
1328
|
if (firstAndSecondContentFits) {
|
|
1125
|
-
|
|
1329
|
+
commands.push(whitespaceFlatCommand, contentFlatCommand);
|
|
1126
1330
|
} else if (contentFits) {
|
|
1127
|
-
|
|
1331
|
+
commands.push(whitespaceBreakCommand, contentFlatCommand);
|
|
1128
1332
|
} else {
|
|
1129
|
-
|
|
1333
|
+
commands.push(whitespaceBreakCommand, contentBreakCommand);
|
|
1130
1334
|
}
|
|
1131
1335
|
break;
|
|
1132
1336
|
}
|
|
@@ -1136,23 +1340,39 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1136
1340
|
if (groupMode === MODE_BREAK) {
|
|
1137
1341
|
const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
|
|
1138
1342
|
if (breakContents) {
|
|
1139
|
-
|
|
1343
|
+
commands.push({
|
|
1344
|
+
indent: indent2,
|
|
1345
|
+
mode,
|
|
1346
|
+
doc: breakContents
|
|
1347
|
+
});
|
|
1140
1348
|
}
|
|
1141
1349
|
}
|
|
1142
1350
|
if (groupMode === MODE_FLAT) {
|
|
1143
1351
|
const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
|
|
1144
1352
|
if (flatContents) {
|
|
1145
|
-
|
|
1353
|
+
commands.push({
|
|
1354
|
+
indent: indent2,
|
|
1355
|
+
mode,
|
|
1356
|
+
doc: flatContents
|
|
1357
|
+
});
|
|
1146
1358
|
}
|
|
1147
1359
|
}
|
|
1148
1360
|
break;
|
|
1149
1361
|
}
|
|
1150
1362
|
case DOC_TYPE_LINE_SUFFIX:
|
|
1151
|
-
lineSuffix2.push({
|
|
1363
|
+
lineSuffix2.push({
|
|
1364
|
+
indent: indent2,
|
|
1365
|
+
mode,
|
|
1366
|
+
doc: doc2.contents
|
|
1367
|
+
});
|
|
1152
1368
|
break;
|
|
1153
1369
|
case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
|
|
1154
1370
|
if (lineSuffix2.length > 0) {
|
|
1155
|
-
|
|
1371
|
+
commands.push({
|
|
1372
|
+
indent: indent2,
|
|
1373
|
+
mode,
|
|
1374
|
+
doc: hardlineWithoutBreakParent
|
|
1375
|
+
});
|
|
1156
1376
|
}
|
|
1157
1377
|
break;
|
|
1158
1378
|
case DOC_TYPE_LINE:
|
|
@@ -1161,7 +1381,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1161
1381
|
if (!doc2.hard) {
|
|
1162
1382
|
if (!doc2.soft) {
|
|
1163
1383
|
out.push(" ");
|
|
1164
|
-
|
|
1384
|
+
position += 1;
|
|
1165
1385
|
}
|
|
1166
1386
|
break;
|
|
1167
1387
|
} else {
|
|
@@ -1170,60 +1390,76 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1170
1390
|
// fallthrough
|
|
1171
1391
|
case MODE_BREAK:
|
|
1172
1392
|
if (lineSuffix2.length > 0) {
|
|
1173
|
-
|
|
1393
|
+
commands.push({
|
|
1394
|
+
indent: indent2,
|
|
1395
|
+
mode,
|
|
1396
|
+
doc: doc2
|
|
1397
|
+
}, ...lineSuffix2.reverse());
|
|
1174
1398
|
lineSuffix2.length = 0;
|
|
1175
1399
|
break;
|
|
1176
1400
|
}
|
|
1177
1401
|
if (doc2.literal) {
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1402
|
+
out.push(newLine);
|
|
1403
|
+
position = 0;
|
|
1404
|
+
if (indent2.root) {
|
|
1405
|
+
if (indent2.root.value) {
|
|
1406
|
+
out.push(indent2.root.value);
|
|
1407
|
+
}
|
|
1408
|
+
position = indent2.root.length;
|
|
1184
1409
|
}
|
|
1185
1410
|
} else {
|
|
1186
|
-
|
|
1187
|
-
out.push(newLine +
|
|
1188
|
-
|
|
1411
|
+
trim2();
|
|
1412
|
+
out.push(newLine + indent2.value);
|
|
1413
|
+
position = indent2.length;
|
|
1189
1414
|
}
|
|
1190
1415
|
break;
|
|
1191
1416
|
}
|
|
1192
1417
|
break;
|
|
1193
1418
|
case DOC_TYPE_LABEL:
|
|
1194
|
-
|
|
1419
|
+
commands.push({
|
|
1420
|
+
indent: indent2,
|
|
1421
|
+
mode,
|
|
1422
|
+
doc: doc2.contents
|
|
1423
|
+
});
|
|
1195
1424
|
break;
|
|
1196
1425
|
case DOC_TYPE_BREAK_PARENT:
|
|
1197
1426
|
break;
|
|
1198
1427
|
default:
|
|
1199
1428
|
throw new invalid_doc_error_default(doc2);
|
|
1200
1429
|
}
|
|
1201
|
-
if (
|
|
1202
|
-
|
|
1430
|
+
if (commands.length === 0 && lineSuffix2.length > 0) {
|
|
1431
|
+
commands.push(...lineSuffix2.reverse());
|
|
1203
1432
|
lineSuffix2.length = 0;
|
|
1204
1433
|
}
|
|
1205
1434
|
}
|
|
1206
|
-
const
|
|
1207
|
-
if (
|
|
1208
|
-
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1209
|
-
CURSOR_PLACEHOLDER,
|
|
1210
|
-
cursorPlaceholderIndex + 1
|
|
1211
|
-
);
|
|
1212
|
-
if (otherCursorPlaceholderIndex === -1) {
|
|
1213
|
-
return {
|
|
1214
|
-
formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("")
|
|
1215
|
-
};
|
|
1216
|
-
}
|
|
1217
|
-
const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
|
|
1218
|
-
const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
|
|
1219
|
-
const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
|
|
1435
|
+
const formatted = out.join("");
|
|
1436
|
+
if (cursorPositions.length !== 2) {
|
|
1220
1437
|
return {
|
|
1221
|
-
formatted
|
|
1222
|
-
cursorNodeStart: beforeCursor.length,
|
|
1223
|
-
cursorNodeText: aroundCursor
|
|
1438
|
+
formatted
|
|
1224
1439
|
};
|
|
1225
1440
|
}
|
|
1226
|
-
|
|
1441
|
+
const cursorNodeStart = cursorPositions[0] + 1;
|
|
1442
|
+
return {
|
|
1443
|
+
formatted,
|
|
1444
|
+
cursorNodeStart,
|
|
1445
|
+
cursorNodeText: formatted.slice(cursorNodeStart, method_at_default(
|
|
1446
|
+
/* OPTIONAL_OBJECT: false */
|
|
1447
|
+
0,
|
|
1448
|
+
cursorPositions,
|
|
1449
|
+
-1
|
|
1450
|
+
) + 1)
|
|
1451
|
+
};
|
|
1452
|
+
function trim2() {
|
|
1453
|
+
const {
|
|
1454
|
+
text,
|
|
1455
|
+
count
|
|
1456
|
+
} = trimIndentation(out.join(""));
|
|
1457
|
+
out = [text];
|
|
1458
|
+
position -= count;
|
|
1459
|
+
for (let index = 0; index < cursorPositions.length; index++) {
|
|
1460
|
+
cursorPositions[index] = Math.min(cursorPositions[index], text.length - 1);
|
|
1461
|
+
}
|
|
1462
|
+
}
|
|
1227
1463
|
}
|
|
1228
1464
|
|
|
1229
1465
|
// src/document/public.js
|