prettier 3.8.4 → 3.9.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 +2233 -279
- package/bin/prettier.cjs +5 -1
- package/doc.js +206 -142
- package/doc.mjs +206 -142
- package/index.cjs +103 -33
- package/index.d.ts +9 -2
- package/index.mjs +8056 -7776
- package/internal/experimental-cli-worker.mjs +22 -107
- package/internal/experimental-cli.mjs +3747 -3965
- package/internal/legacy-cli.mjs +488 -120
- package/package.json +11 -7
- package/plugins/acorn.js +11 -10
- package/plugins/acorn.mjs +11 -10
- package/plugins/angular.js +5 -4
- package/plugins/angular.mjs +5 -4
- package/plugins/babel.js +14 -13
- package/plugins/babel.mjs +14 -13
- package/plugins/estree.js +36 -36
- package/plugins/estree.mjs +36 -36
- package/plugins/flow.js +6 -19
- package/plugins/flow.mjs +6 -19
- package/plugins/glimmer.js +17 -17
- package/plugins/glimmer.mjs +15 -15
- package/plugins/graphql.js +14 -25
- package/plugins/graphql.mjs +14 -25
- package/plugins/html.js +18 -18
- package/plugins/html.mjs +18 -18
- package/plugins/markdown.js +63 -55
- package/plugins/markdown.mjs +63 -55
- package/plugins/meriyah.js +5 -4
- package/plugins/meriyah.mjs +5 -4
- package/plugins/postcss.js +40 -39
- package/plugins/postcss.mjs +40 -39
- package/plugins/typescript.js +16 -15
- package/plugins/typescript.mjs +16 -15
- package/plugins/yaml.js +136 -154
- package/plugins/yaml.mjs +149 -154
- package/standalone.js +28 -28
- package/standalone.mjs +28 -28
package/bin/prettier.cjs
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __commonJS = function(cb, mod) {
|
|
5
5
|
return function __require() {
|
|
6
|
-
|
|
6
|
+
try {
|
|
7
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
8
|
+
} catch (e) {
|
|
9
|
+
throw mod = 0, e;
|
|
10
|
+
}
|
|
7
11
|
};
|
|
8
12
|
};
|
|
9
13
|
|
package/doc.js
CHANGED
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
function stringOrArrayAt(index) {
|
|
62
62
|
return this[index < 0 ? this.length + index : index];
|
|
63
63
|
}
|
|
64
|
-
var at = createMethodShim("at", function() {
|
|
64
|
+
var at = /* @__PURE__ */ createMethodShim("at", function() {
|
|
65
65
|
if (Array.isArray(this) || typeof this === "string") {
|
|
66
66
|
return stringOrArrayAt;
|
|
67
67
|
}
|
|
@@ -159,6 +159,15 @@
|
|
|
159
159
|
return end < string.length ? string.slice(0, end) : string;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
+
// src/utilities/get-or-insert.js
|
|
163
|
+
function getOrInsertComputed(map, key, callback) {
|
|
164
|
+
if (!map.has(key)) {
|
|
165
|
+
const value = callback(key);
|
|
166
|
+
map.set(key, value);
|
|
167
|
+
}
|
|
168
|
+
return map.get(key);
|
|
169
|
+
}
|
|
170
|
+
|
|
162
171
|
// src/document/utilities/get-doc-type.js
|
|
163
172
|
function getDocType(doc) {
|
|
164
173
|
if (typeof doc === "string") {
|
|
@@ -277,12 +286,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
277
286
|
const mapped = /* @__PURE__ */ new Map();
|
|
278
287
|
return rec(doc);
|
|
279
288
|
function rec(doc2) {
|
|
280
|
-
|
|
281
|
-
return mapped.get(doc2);
|
|
282
|
-
}
|
|
283
|
-
const result = process2(doc2);
|
|
284
|
-
mapped.set(doc2, result);
|
|
285
|
-
return result;
|
|
289
|
+
return getOrInsertComputed(mapped, doc2, process2);
|
|
286
290
|
}
|
|
287
291
|
function process2(doc2) {
|
|
288
292
|
switch (get_doc_type_default(doc2)) {
|
|
@@ -495,11 +499,18 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
495
499
|
}
|
|
496
500
|
function cleanDocFn(doc) {
|
|
497
501
|
switch (get_doc_type_default(doc)) {
|
|
498
|
-
case DOC_TYPE_FILL:
|
|
499
|
-
|
|
502
|
+
case DOC_TYPE_FILL: {
|
|
503
|
+
const {
|
|
504
|
+
parts
|
|
505
|
+
} = doc;
|
|
506
|
+
if (parts.every((part) => part === "")) {
|
|
500
507
|
return "";
|
|
501
508
|
}
|
|
509
|
+
if (parts.length === 1) {
|
|
510
|
+
return parts[0];
|
|
511
|
+
}
|
|
502
512
|
break;
|
|
513
|
+
}
|
|
503
514
|
case DOC_TYPE_GROUP:
|
|
504
515
|
if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {
|
|
505
516
|
return "";
|
|
@@ -777,7 +788,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
777
788
|
}
|
|
778
789
|
return this.split(pattern).join(replacement);
|
|
779
790
|
};
|
|
780
|
-
var replaceAll = createMethodShim("replaceAll", function() {
|
|
791
|
+
var replaceAll = /* @__PURE__ */ createMethodShim("replaceAll", function() {
|
|
781
792
|
if (typeof this === "string") {
|
|
782
793
|
return stringReplaceAll;
|
|
783
794
|
}
|
|
@@ -800,20 +811,73 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
800
811
|
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;
|
|
801
812
|
};
|
|
802
813
|
|
|
814
|
+
// node_modules/get-east-asian-width/lookup-data.js
|
|
815
|
+
var fullwidthMinimalCodePoint = 12288;
|
|
816
|
+
var fullwidthMaximumCodePoint = 65510;
|
|
817
|
+
var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
|
|
818
|
+
var wideMinimalCodePoint = 4352;
|
|
819
|
+
var wideMaximumCodePoint = 262141;
|
|
820
|
+
var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
|
|
821
|
+
|
|
822
|
+
// node_modules/get-east-asian-width/utilities.js
|
|
823
|
+
var isInRange = (ranges, codePoint) => {
|
|
824
|
+
let low = 0;
|
|
825
|
+
let high = Math.floor(ranges.length / 2) - 1;
|
|
826
|
+
while (low <= high) {
|
|
827
|
+
const mid = Math.floor((low + high) / 2);
|
|
828
|
+
const i = mid * 2;
|
|
829
|
+
if (codePoint < ranges[i]) {
|
|
830
|
+
high = mid - 1;
|
|
831
|
+
} else if (codePoint > ranges[i + 1]) {
|
|
832
|
+
low = mid + 1;
|
|
833
|
+
} else {
|
|
834
|
+
return true;
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
return false;
|
|
838
|
+
};
|
|
839
|
+
|
|
803
840
|
// node_modules/get-east-asian-width/lookup.js
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
841
|
+
var commonCjkCodePoint = 19968;
|
|
842
|
+
var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
|
|
843
|
+
function findWideFastPathRange(ranges) {
|
|
844
|
+
let fastPathStart = ranges[0];
|
|
845
|
+
let fastPathEnd = ranges[1];
|
|
846
|
+
for (let index = 0; index < ranges.length; index += 2) {
|
|
847
|
+
const start = ranges[index];
|
|
848
|
+
const end = ranges[index + 1];
|
|
849
|
+
if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
|
|
850
|
+
return [start, end];
|
|
851
|
+
}
|
|
852
|
+
if (end - start > fastPathEnd - fastPathStart) {
|
|
853
|
+
fastPathStart = start;
|
|
854
|
+
fastPathEnd = end;
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
return [fastPathStart, fastPathEnd];
|
|
809
858
|
}
|
|
859
|
+
var isFullWidth = (codePoint) => {
|
|
860
|
+
if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
|
|
861
|
+
return false;
|
|
862
|
+
}
|
|
863
|
+
return isInRange(fullwidthRanges, codePoint);
|
|
864
|
+
};
|
|
865
|
+
var isWide = (codePoint) => {
|
|
866
|
+
if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
|
|
867
|
+
return true;
|
|
868
|
+
}
|
|
869
|
+
if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
|
|
870
|
+
return false;
|
|
871
|
+
}
|
|
872
|
+
return isInRange(wideRanges, codePoint);
|
|
873
|
+
};
|
|
810
874
|
|
|
811
|
-
//
|
|
812
|
-
var
|
|
875
|
+
// node_modules/narrow-emojis/index.js
|
|
876
|
+
var narrowEmojiRegexp = /^(?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u2764\u27A1\u2934\u2935\u2B05-\u2B07]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF3\uDFF5\uDFF7]|\uD83D[\uDC3F\uDC41\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])$/;
|
|
877
|
+
var isNarrowEmojiCharacter = (character) => narrowEmojiRegexp.test(character);
|
|
813
878
|
|
|
814
879
|
// src/utilities/get-string-width.js
|
|
815
|
-
var notAsciiRegex = /[^\x20-\x7F]
|
|
816
|
-
var narrowEmojisSet = new Set(narrow_emojis_evaluate_default);
|
|
880
|
+
var notAsciiRegex = /[^\x20-\x7F]/;
|
|
817
881
|
function getStringWidth(text) {
|
|
818
882
|
if (!text) {
|
|
819
883
|
return 0;
|
|
@@ -821,11 +885,11 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
821
885
|
if (!notAsciiRegex.test(text)) {
|
|
822
886
|
return text.length;
|
|
823
887
|
}
|
|
824
|
-
text = text.replace(
|
|
825
|
-
emoji_regex_default(),
|
|
826
|
-
(match) => narrowEmojisSet.has(match) ? " " : " "
|
|
827
|
-
);
|
|
828
888
|
let width = 0;
|
|
889
|
+
text = text.replace(emoji_regex_default(), (character) => {
|
|
890
|
+
width += isNarrowEmojiCharacter(character) ? 1 : 2;
|
|
891
|
+
return "";
|
|
892
|
+
});
|
|
829
893
|
for (const character of text) {
|
|
830
894
|
const codePoint = character.codePointAt(0);
|
|
831
895
|
if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
|
|
@@ -970,10 +1034,62 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
970
1034
|
return { text: trimmed, count: length };
|
|
971
1035
|
}
|
|
972
1036
|
|
|
1037
|
+
// src/document/printer/print-result.js
|
|
1038
|
+
var printResult = class {
|
|
1039
|
+
/** @type {string[]} */
|
|
1040
|
+
#settledTexts = [];
|
|
1041
|
+
#unsettledText = "";
|
|
1042
|
+
#settledTextLength = 0;
|
|
1043
|
+
/** @type {number[]} */
|
|
1044
|
+
#settledPositions = [];
|
|
1045
|
+
/** @type {number[]} */
|
|
1046
|
+
#unsettledPositions = [];
|
|
1047
|
+
#settle() {
|
|
1048
|
+
const text = this.#unsettledText;
|
|
1049
|
+
if (text !== "") {
|
|
1050
|
+
this.#settledTexts.push(text);
|
|
1051
|
+
this.#settledTextLength += text.length;
|
|
1052
|
+
this.#unsettledText = "";
|
|
1053
|
+
}
|
|
1054
|
+
for (const position of this.#unsettledPositions) {
|
|
1055
|
+
this.#settledPositions.push(Math.min(position, this.#settledTextLength));
|
|
1056
|
+
}
|
|
1057
|
+
this.#unsettledPositions.length = 0;
|
|
1058
|
+
}
|
|
1059
|
+
markPosition() {
|
|
1060
|
+
if (this.#settledPositions.length + this.#unsettledPositions.length >= 2) {
|
|
1061
|
+
throw new Error("There are too many 'cursor' in doc.");
|
|
1062
|
+
}
|
|
1063
|
+
this.#unsettledPositions.push(
|
|
1064
|
+
this.#settledTextLength + this.#unsettledText.length
|
|
1065
|
+
);
|
|
1066
|
+
}
|
|
1067
|
+
/**
|
|
1068
|
+
@param {string} text
|
|
1069
|
+
*/
|
|
1070
|
+
write(text) {
|
|
1071
|
+
this.#unsettledText += text;
|
|
1072
|
+
}
|
|
1073
|
+
trim() {
|
|
1074
|
+
const { text: trimmed, count } = trimIndentation(this.#unsettledText);
|
|
1075
|
+
this.#unsettledText = trimmed;
|
|
1076
|
+
this.#settle();
|
|
1077
|
+
return count;
|
|
1078
|
+
}
|
|
1079
|
+
finish() {
|
|
1080
|
+
this.#settle();
|
|
1081
|
+
return {
|
|
1082
|
+
text: this.#settledTexts.join(""),
|
|
1083
|
+
positions: this.#settledPositions
|
|
1084
|
+
};
|
|
1085
|
+
}
|
|
1086
|
+
};
|
|
1087
|
+
var print_result_default = printResult;
|
|
1088
|
+
|
|
973
1089
|
// src/document/printer/printer.js
|
|
974
|
-
var MODE_BREAK = Symbol("MODE_BREAK");
|
|
975
|
-
var MODE_FLAT = Symbol("MODE_FLAT");
|
|
976
|
-
var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
1090
|
+
var MODE_BREAK = /* @__PURE__ */ Symbol("MODE_BREAK");
|
|
1091
|
+
var MODE_FLAT = /* @__PURE__ */ Symbol("MODE_FLAT");
|
|
1092
|
+
var DOC_FILL_PRINTED_LENGTH = /* @__PURE__ */ Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
977
1093
|
function fits(next, restCommands, remainingWidth, hasLineSuffix, groupModeMap, mustBeFlat) {
|
|
978
1094
|
if (remainingWidth === Number.POSITIVE_INFINITY) {
|
|
979
1095
|
return true;
|
|
@@ -1095,13 +1211,9 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1095
1211
|
mode: MODE_BREAK,
|
|
1096
1212
|
doc
|
|
1097
1213
|
}];
|
|
1098
|
-
let output = "";
|
|
1099
1214
|
let shouldRemeasure = false;
|
|
1100
1215
|
const lineSuffix2 = [];
|
|
1101
|
-
const
|
|
1102
|
-
const settledOutput = [];
|
|
1103
|
-
const settledCursorPositions = [];
|
|
1104
|
-
let settledTextLength = 0;
|
|
1216
|
+
const result = new print_result_default();
|
|
1105
1217
|
propagateBreaks(doc);
|
|
1106
1218
|
while (commands.length > 0) {
|
|
1107
1219
|
const {
|
|
@@ -1119,7 +1231,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1119
1231
|
newLine
|
|
1120
1232
|
) : doc2;
|
|
1121
1233
|
if (formatted2) {
|
|
1122
|
-
|
|
1234
|
+
result.write(formatted2);
|
|
1123
1235
|
if (commands.length > 0) {
|
|
1124
1236
|
position += get_string_width_default(formatted2);
|
|
1125
1237
|
}
|
|
@@ -1136,10 +1248,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1136
1248
|
}
|
|
1137
1249
|
break;
|
|
1138
1250
|
case DOC_TYPE_CURSOR:
|
|
1139
|
-
|
|
1140
|
-
throw new Error("There are too many 'cursor' in doc.");
|
|
1141
|
-
}
|
|
1142
|
-
cursorPositions.push(settledTextLength + output.length);
|
|
1251
|
+
result.markPosition();
|
|
1143
1252
|
break;
|
|
1144
1253
|
case DOC_TYPE_INDENT:
|
|
1145
1254
|
commands.push({
|
|
@@ -1156,89 +1265,64 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1156
1265
|
});
|
|
1157
1266
|
break;
|
|
1158
1267
|
case DOC_TYPE_TRIM:
|
|
1159
|
-
|
|
1268
|
+
position -= result.trim();
|
|
1160
1269
|
break;
|
|
1161
|
-
case DOC_TYPE_GROUP:
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
commands.push({
|
|
1166
|
-
indent: indent2,
|
|
1167
|
-
mode: doc2.break ? MODE_BREAK : MODE_FLAT,
|
|
1168
|
-
doc: doc2.contents
|
|
1169
|
-
});
|
|
1170
|
-
break;
|
|
1171
|
-
}
|
|
1172
|
-
// fallthrough
|
|
1173
|
-
case MODE_BREAK: {
|
|
1174
|
-
shouldRemeasure = false;
|
|
1175
|
-
const next = {
|
|
1270
|
+
case DOC_TYPE_GROUP: {
|
|
1271
|
+
const command = (function printGroup() {
|
|
1272
|
+
if (mode === MODE_FLAT && !shouldRemeasure) {
|
|
1273
|
+
return {
|
|
1176
1274
|
indent: indent2,
|
|
1177
|
-
mode: MODE_FLAT,
|
|
1275
|
+
mode: doc2.break ? MODE_BREAK : MODE_FLAT,
|
|
1178
1276
|
doc: doc2.contents
|
|
1179
1277
|
};
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
} else {
|
|
1209
|
-
const state = doc2.expandedStates[index];
|
|
1210
|
-
const cmd = {
|
|
1211
|
-
indent: indent2,
|
|
1212
|
-
mode: MODE_FLAT,
|
|
1213
|
-
doc: state
|
|
1214
|
-
};
|
|
1215
|
-
if (fits(cmd, commands, remainingWidth, hasLineSuffix, groupModeMap)) {
|
|
1216
|
-
commands.push(cmd);
|
|
1217
|
-
break;
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
}
|
|
1222
|
-
} else {
|
|
1223
|
-
commands.push({
|
|
1224
|
-
indent: indent2,
|
|
1225
|
-
mode: MODE_BREAK,
|
|
1226
|
-
doc: doc2.contents
|
|
1227
|
-
});
|
|
1278
|
+
}
|
|
1279
|
+
shouldRemeasure = false;
|
|
1280
|
+
const remainingWidth = width - position;
|
|
1281
|
+
const hasLineSuffix = lineSuffix2.length > 0;
|
|
1282
|
+
const flatCommand = {
|
|
1283
|
+
indent: indent2,
|
|
1284
|
+
mode: MODE_FLAT,
|
|
1285
|
+
doc: doc2.contents
|
|
1286
|
+
};
|
|
1287
|
+
if (!doc2.break && fits(flatCommand, commands, remainingWidth, hasLineSuffix, groupModeMap)) {
|
|
1288
|
+
return flatCommand;
|
|
1289
|
+
}
|
|
1290
|
+
if (!doc2.expandedStates) {
|
|
1291
|
+
return {
|
|
1292
|
+
indent: indent2,
|
|
1293
|
+
mode: MODE_BREAK,
|
|
1294
|
+
doc: doc2.contents
|
|
1295
|
+
};
|
|
1296
|
+
}
|
|
1297
|
+
if (!doc2.break) {
|
|
1298
|
+
for (let index = 1; index < doc2.expandedStates.length - 1; index++) {
|
|
1299
|
+
const flatCommand2 = {
|
|
1300
|
+
indent: indent2,
|
|
1301
|
+
mode: MODE_FLAT,
|
|
1302
|
+
doc: doc2.expandedStates[index]
|
|
1303
|
+
};
|
|
1304
|
+
if (fits(flatCommand2, commands, remainingWidth, hasLineSuffix, groupModeMap)) {
|
|
1305
|
+
return flatCommand2;
|
|
1228
1306
|
}
|
|
1229
1307
|
}
|
|
1230
|
-
break;
|
|
1231
1308
|
}
|
|
1232
|
-
|
|
1309
|
+
return {
|
|
1310
|
+
indent: indent2,
|
|
1311
|
+
mode: MODE_BREAK,
|
|
1312
|
+
doc: method_at_default(
|
|
1313
|
+
/* OPTIONAL_OBJECT: false */
|
|
1314
|
+
0,
|
|
1315
|
+
doc2.expandedStates,
|
|
1316
|
+
-1
|
|
1317
|
+
)
|
|
1318
|
+
};
|
|
1319
|
+
})();
|
|
1320
|
+
commands.push(command);
|
|
1233
1321
|
if (doc2.id) {
|
|
1234
|
-
groupModeMap[doc2.id] =
|
|
1235
|
-
/* OPTIONAL_OBJECT: false */
|
|
1236
|
-
0,
|
|
1237
|
-
commands,
|
|
1238
|
-
-1
|
|
1239
|
-
).mode;
|
|
1322
|
+
groupModeMap[doc2.id] = command.mode;
|
|
1240
1323
|
}
|
|
1241
1324
|
break;
|
|
1325
|
+
}
|
|
1242
1326
|
// Fills each line with as much code as possible before moving to a new
|
|
1243
1327
|
// line with the same indentation.
|
|
1244
1328
|
//
|
|
@@ -1379,13 +1463,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1379
1463
|
case MODE_FLAT:
|
|
1380
1464
|
if (!doc2.hard) {
|
|
1381
1465
|
if (!doc2.soft) {
|
|
1382
|
-
|
|
1466
|
+
result.write(" ");
|
|
1383
1467
|
position += 1;
|
|
1384
1468
|
}
|
|
1385
1469
|
break;
|
|
1386
|
-
} else {
|
|
1387
|
-
shouldRemeasure = true;
|
|
1388
1470
|
}
|
|
1471
|
+
shouldRemeasure = true;
|
|
1389
1472
|
// fallthrough
|
|
1390
1473
|
case MODE_BREAK:
|
|
1391
1474
|
if (lineSuffix2.length > 0) {
|
|
@@ -1398,17 +1481,17 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1398
1481
|
break;
|
|
1399
1482
|
}
|
|
1400
1483
|
if (doc2.literal) {
|
|
1401
|
-
|
|
1484
|
+
result.write(newLine);
|
|
1402
1485
|
position = 0;
|
|
1403
1486
|
if (indent2.root) {
|
|
1404
1487
|
if (indent2.root.value) {
|
|
1405
|
-
|
|
1488
|
+
result.write(indent2.root.value);
|
|
1406
1489
|
}
|
|
1407
1490
|
position = indent2.root.length;
|
|
1408
1491
|
}
|
|
1409
1492
|
} else {
|
|
1410
|
-
|
|
1411
|
-
|
|
1493
|
+
result.trim();
|
|
1494
|
+
result.write(newLine + indent2.value);
|
|
1412
1495
|
position = indent2.length;
|
|
1413
1496
|
}
|
|
1414
1497
|
break;
|
|
@@ -1431,40 +1514,21 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
|
|
|
1431
1514
|
lineSuffix2.length = 0;
|
|
1432
1515
|
}
|
|
1433
1516
|
}
|
|
1434
|
-
const
|
|
1435
|
-
|
|
1436
|
-
|
|
1517
|
+
const {
|
|
1518
|
+
text: formatted,
|
|
1519
|
+
positions: cursorPositions
|
|
1520
|
+
} = result.finish();
|
|
1521
|
+
if (cursorPositions.length !== 2) {
|
|
1437
1522
|
return {
|
|
1438
1523
|
formatted
|
|
1439
1524
|
};
|
|
1440
1525
|
}
|
|
1441
|
-
const cursorNodeStart =
|
|
1526
|
+
const [cursorNodeStart, cursorNodeEnd] = cursorPositions;
|
|
1442
1527
|
return {
|
|
1443
1528
|
formatted,
|
|
1444
1529
|
cursorNodeStart,
|
|
1445
|
-
cursorNodeText: formatted.slice(cursorNodeStart,
|
|
1446
|
-
/* OPTIONAL_OBJECT: false */
|
|
1447
|
-
0,
|
|
1448
|
-
finalCursorPositions,
|
|
1449
|
-
-1
|
|
1450
|
-
))
|
|
1530
|
+
cursorNodeText: formatted.slice(cursorNodeStart, cursorNodeEnd)
|
|
1451
1531
|
};
|
|
1452
|
-
function trim2() {
|
|
1453
|
-
const {
|
|
1454
|
-
text: trimmed,
|
|
1455
|
-
count
|
|
1456
|
-
} = trimIndentation(output);
|
|
1457
|
-
if (trimmed) {
|
|
1458
|
-
settledOutput.push(trimmed);
|
|
1459
|
-
settledTextLength += trimmed.length;
|
|
1460
|
-
}
|
|
1461
|
-
output = "";
|
|
1462
|
-
position -= count;
|
|
1463
|
-
if (cursorPositions.length > 0) {
|
|
1464
|
-
settledCursorPositions.push(...cursorPositions.map((position2) => Math.min(position2, settledTextLength)));
|
|
1465
|
-
cursorPositions.length = 0;
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1468
1532
|
}
|
|
1469
1533
|
|
|
1470
1534
|
// src/document/public.js
|