prettier 3.3.3 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +94 -93
- package/bin/prettier.cjs +4 -0
- package/doc.d.ts +11 -0
- package/doc.js +101 -184
- package/doc.mjs +101 -184
- package/index.cjs +29 -3
- package/index.d.ts +5 -0
- package/index.mjs +3506 -4240
- package/internal/cli.mjs +342 -331
- package/package.json +3 -2
- package/plugins/acorn.js +10 -10
- package/plugins/acorn.mjs +10 -10
- package/plugins/angular.js +2 -1
- package/plugins/angular.mjs +2 -1
- package/plugins/babel.js +11 -11
- package/plugins/babel.mjs +11 -11
- package/plugins/estree.js +28 -28
- package/plugins/estree.mjs +28 -28
- package/plugins/flow.js +15 -15
- package/plugins/flow.mjs +15 -15
- package/plugins/glimmer.js +23 -23
- package/plugins/glimmer.mjs +23 -23
- package/plugins/html.js +16 -16
- package/plugins/html.mjs +16 -16
- package/plugins/markdown.js +43 -42
- package/plugins/markdown.mjs +43 -42
- package/plugins/meriyah.js +4 -4
- package/plugins/meriyah.mjs +4 -4
- package/plugins/postcss.js +33 -31
- package/plugins/postcss.mjs +33 -31
- package/plugins/typescript.js +14 -14
- package/plugins/typescript.mjs +14 -14
- package/plugins/yaml.js +17 -17
- package/plugins/yaml.mjs +17 -17
- package/standalone.js +33 -29
- package/standalone.mjs +33 -29
package/doc.mjs
CHANGED
|
@@ -328,7 +328,7 @@ function convertEndOfLineToChars(value) {
|
|
|
328
328
|
|
|
329
329
|
// node_modules/emoji-regex/index.mjs
|
|
330
330
|
var emoji_regex_default = () => {
|
|
331
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\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;
|
|
331
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
332
332
|
};
|
|
333
333
|
|
|
334
334
|
// node_modules/get-east-asian-width/lookup.js
|
|
@@ -336,7 +336,7 @@ function isFullWidth(x) {
|
|
|
336
336
|
return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
|
|
337
337
|
}
|
|
338
338
|
function isWide(x) {
|
|
339
|
-
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <=
|
|
339
|
+
return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
// node_modules/get-east-asian-width/index.js
|
|
@@ -387,10 +387,7 @@ function mapDoc(doc, cb) {
|
|
|
387
387
|
case DOC_TYPE_ARRAY:
|
|
388
388
|
return cb(doc2.map(rec));
|
|
389
389
|
case DOC_TYPE_FILL:
|
|
390
|
-
return cb({
|
|
391
|
-
...doc2,
|
|
392
|
-
parts: doc2.parts.map(rec)
|
|
393
|
-
});
|
|
390
|
+
return cb({ ...doc2, parts: doc2.parts.map(rec) });
|
|
394
391
|
case DOC_TYPE_IF_BREAK:
|
|
395
392
|
return cb({
|
|
396
393
|
...doc2,
|
|
@@ -398,31 +395,21 @@ function mapDoc(doc, cb) {
|
|
|
398
395
|
flatContents: rec(doc2.flatContents)
|
|
399
396
|
});
|
|
400
397
|
case DOC_TYPE_GROUP: {
|
|
401
|
-
let {
|
|
402
|
-
expandedStates,
|
|
403
|
-
contents
|
|
404
|
-
} = doc2;
|
|
398
|
+
let { expandedStates, contents } = doc2;
|
|
405
399
|
if (expandedStates) {
|
|
406
400
|
expandedStates = expandedStates.map(rec);
|
|
407
401
|
contents = expandedStates[0];
|
|
408
402
|
} else {
|
|
409
403
|
contents = rec(contents);
|
|
410
404
|
}
|
|
411
|
-
return cb({
|
|
412
|
-
...doc2,
|
|
413
|
-
contents,
|
|
414
|
-
expandedStates
|
|
415
|
-
});
|
|
405
|
+
return cb({ ...doc2, contents, expandedStates });
|
|
416
406
|
}
|
|
417
407
|
case DOC_TYPE_ALIGN:
|
|
418
408
|
case DOC_TYPE_INDENT:
|
|
419
409
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
420
410
|
case DOC_TYPE_LABEL:
|
|
421
411
|
case DOC_TYPE_LINE_SUFFIX:
|
|
422
|
-
return cb({
|
|
423
|
-
...doc2,
|
|
424
|
-
contents: rec(doc2.contents)
|
|
425
|
-
});
|
|
412
|
+
return cb({ ...doc2, contents: rec(doc2.contents) });
|
|
426
413
|
case DOC_TYPE_STRING:
|
|
427
414
|
case DOC_TYPE_CURSOR:
|
|
428
415
|
case DOC_TYPE_TRIM:
|
|
@@ -556,10 +543,7 @@ function stripTrailingHardlineFromDoc(doc) {
|
|
|
556
543
|
case DOC_TYPE_LINE_SUFFIX:
|
|
557
544
|
case DOC_TYPE_LABEL: {
|
|
558
545
|
const contents = stripTrailingHardlineFromDoc(doc.contents);
|
|
559
|
-
return {
|
|
560
|
-
...doc,
|
|
561
|
-
contents
|
|
562
|
-
};
|
|
546
|
+
return { ...doc, contents };
|
|
563
547
|
}
|
|
564
548
|
case DOC_TYPE_IF_BREAK:
|
|
565
549
|
return {
|
|
@@ -568,10 +552,7 @@ function stripTrailingHardlineFromDoc(doc) {
|
|
|
568
552
|
flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
|
|
569
553
|
};
|
|
570
554
|
case DOC_TYPE_FILL:
|
|
571
|
-
return {
|
|
572
|
-
...doc,
|
|
573
|
-
parts: stripTrailingHardlineFromParts(doc.parts)
|
|
574
|
-
};
|
|
555
|
+
return { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };
|
|
575
556
|
case DOC_TYPE_ARRAY:
|
|
576
557
|
return stripTrailingHardlineFromParts(doc);
|
|
577
558
|
case DOC_TYPE_STRING:
|
|
@@ -663,7 +644,10 @@ function cleanDoc(doc) {
|
|
|
663
644
|
return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
|
|
664
645
|
}
|
|
665
646
|
function replaceEndOfLine(doc, replacement = literalline) {
|
|
666
|
-
return mapDoc(
|
|
647
|
+
return mapDoc(
|
|
648
|
+
doc,
|
|
649
|
+
(currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc
|
|
650
|
+
);
|
|
667
651
|
}
|
|
668
652
|
function canBreakFn(doc) {
|
|
669
653
|
if (doc.type === DOC_TYPE_LINE) {
|
|
@@ -678,41 +662,28 @@ function canBreak(doc) {
|
|
|
678
662
|
var MODE_BREAK = Symbol("MODE_BREAK");
|
|
679
663
|
var MODE_FLAT = Symbol("MODE_FLAT");
|
|
680
664
|
var CURSOR_PLACEHOLDER = Symbol("cursor");
|
|
665
|
+
var DOC_FILL_PRINTED_LENGTH = Symbol("DOC_FILL_PRINTED_LENGTH");
|
|
681
666
|
function rootIndent() {
|
|
682
|
-
return {
|
|
683
|
-
value: "",
|
|
684
|
-
length: 0,
|
|
685
|
-
queue: []
|
|
686
|
-
};
|
|
667
|
+
return { value: "", length: 0, queue: [] };
|
|
687
668
|
}
|
|
688
669
|
function makeIndent(ind, options) {
|
|
689
|
-
return generateInd(ind, {
|
|
690
|
-
type: "indent"
|
|
691
|
-
}, options);
|
|
670
|
+
return generateInd(ind, { type: "indent" }, options);
|
|
692
671
|
}
|
|
693
672
|
function makeAlign(indent2, widthOrDoc, options) {
|
|
694
673
|
if (widthOrDoc === Number.NEGATIVE_INFINITY) {
|
|
695
674
|
return indent2.root || rootIndent();
|
|
696
675
|
}
|
|
697
676
|
if (widthOrDoc < 0) {
|
|
698
|
-
return generateInd(indent2, {
|
|
699
|
-
type: "dedent"
|
|
700
|
-
}, options);
|
|
677
|
+
return generateInd(indent2, { type: "dedent" }, options);
|
|
701
678
|
}
|
|
702
679
|
if (!widthOrDoc) {
|
|
703
680
|
return indent2;
|
|
704
681
|
}
|
|
705
682
|
if (widthOrDoc.type === "root") {
|
|
706
|
-
return {
|
|
707
|
-
...indent2,
|
|
708
|
-
root: indent2
|
|
709
|
-
};
|
|
683
|
+
return { ...indent2, root: indent2 };
|
|
710
684
|
}
|
|
711
685
|
const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
|
|
712
|
-
return generateInd(indent2, {
|
|
713
|
-
type: alignType,
|
|
714
|
-
n: widthOrDoc
|
|
715
|
-
}, options);
|
|
686
|
+
return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);
|
|
716
687
|
}
|
|
717
688
|
function generateInd(ind, newPart, options) {
|
|
718
689
|
const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
|
|
@@ -744,12 +715,7 @@ function generateInd(ind, newPart, options) {
|
|
|
744
715
|
}
|
|
745
716
|
}
|
|
746
717
|
flushSpaces();
|
|
747
|
-
return {
|
|
748
|
-
...ind,
|
|
749
|
-
value,
|
|
750
|
-
length,
|
|
751
|
-
queue
|
|
752
|
-
};
|
|
718
|
+
return { ...ind, value, length, queue };
|
|
753
719
|
function addTabs(count) {
|
|
754
720
|
value += " ".repeat(count);
|
|
755
721
|
length += options.tabWidth * count;
|
|
@@ -828,10 +794,7 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
828
794
|
cmds.push(restCommands[--restIdx]);
|
|
829
795
|
continue;
|
|
830
796
|
}
|
|
831
|
-
const {
|
|
832
|
-
mode,
|
|
833
|
-
doc
|
|
834
|
-
} = cmds.pop();
|
|
797
|
+
const { mode, doc } = cmds.pop();
|
|
835
798
|
const docType = get_doc_type_default(doc);
|
|
836
799
|
switch (docType) {
|
|
837
800
|
case DOC_TYPE_STRING:
|
|
@@ -842,10 +805,7 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
842
805
|
case DOC_TYPE_FILL: {
|
|
843
806
|
const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
|
|
844
807
|
for (let i = parts.length - 1; i >= 0; i--) {
|
|
845
|
-
cmds.push({
|
|
846
|
-
mode,
|
|
847
|
-
doc: parts[i]
|
|
848
|
-
});
|
|
808
|
+
cmds.push({ mode, doc: parts[i] });
|
|
849
809
|
}
|
|
850
810
|
break;
|
|
851
811
|
}
|
|
@@ -853,10 +813,7 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
853
813
|
case DOC_TYPE_ALIGN:
|
|
854
814
|
case DOC_TYPE_INDENT_IF_BREAK:
|
|
855
815
|
case DOC_TYPE_LABEL:
|
|
856
|
-
cmds.push({
|
|
857
|
-
mode,
|
|
858
|
-
doc: doc.contents
|
|
859
|
-
});
|
|
816
|
+
cmds.push({ mode, doc: doc.contents });
|
|
860
817
|
break;
|
|
861
818
|
case DOC_TYPE_TRIM:
|
|
862
819
|
width += trim2(out);
|
|
@@ -872,20 +829,14 @@ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat
|
|
|
872
829
|
doc.expandedStates,
|
|
873
830
|
-1
|
|
874
831
|
) : doc.contents;
|
|
875
|
-
cmds.push({
|
|
876
|
-
mode: groupMode,
|
|
877
|
-
doc: contents
|
|
878
|
-
});
|
|
832
|
+
cmds.push({ mode: groupMode, doc: contents });
|
|
879
833
|
break;
|
|
880
834
|
}
|
|
881
835
|
case DOC_TYPE_IF_BREAK: {
|
|
882
836
|
const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
|
|
883
837
|
const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
|
|
884
838
|
if (contents) {
|
|
885
|
-
cmds.push({
|
|
886
|
-
mode,
|
|
887
|
-
doc: contents
|
|
888
|
-
});
|
|
839
|
+
cmds.push({ mode, doc: contents });
|
|
889
840
|
}
|
|
890
841
|
break;
|
|
891
842
|
}
|
|
@@ -915,22 +866,14 @@ function printDocToString(doc, options) {
|
|
|
915
866
|
const width = options.printWidth;
|
|
916
867
|
const newLine = convertEndOfLineToChars(options.endOfLine);
|
|
917
868
|
let pos = 0;
|
|
918
|
-
const cmds = [{
|
|
919
|
-
ind: rootIndent(),
|
|
920
|
-
mode: MODE_BREAK,
|
|
921
|
-
doc
|
|
922
|
-
}];
|
|
869
|
+
const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];
|
|
923
870
|
const out = [];
|
|
924
871
|
let shouldRemeasure = false;
|
|
925
872
|
const lineSuffix2 = [];
|
|
926
873
|
let printedCursorCount = 0;
|
|
927
874
|
propagateBreaks(doc);
|
|
928
875
|
while (cmds.length > 0) {
|
|
929
|
-
const {
|
|
930
|
-
ind,
|
|
931
|
-
mode,
|
|
932
|
-
doc: doc2
|
|
933
|
-
} = cmds.pop();
|
|
876
|
+
const { ind, mode, doc: doc2 } = cmds.pop();
|
|
934
877
|
switch (get_doc_type_default(doc2)) {
|
|
935
878
|
case DOC_TYPE_STRING: {
|
|
936
879
|
const formatted = newLine !== "\n" ? string_replace_all_default(
|
|
@@ -948,11 +891,7 @@ function printDocToString(doc, options) {
|
|
|
948
891
|
}
|
|
949
892
|
case DOC_TYPE_ARRAY:
|
|
950
893
|
for (let i = doc2.length - 1; i >= 0; i--) {
|
|
951
|
-
cmds.push({
|
|
952
|
-
ind,
|
|
953
|
-
mode,
|
|
954
|
-
doc: doc2[i]
|
|
955
|
-
});
|
|
894
|
+
cmds.push({ ind, mode, doc: doc2[i] });
|
|
956
895
|
}
|
|
957
896
|
break;
|
|
958
897
|
case DOC_TYPE_CURSOR:
|
|
@@ -963,11 +902,7 @@ function printDocToString(doc, options) {
|
|
|
963
902
|
printedCursorCount++;
|
|
964
903
|
break;
|
|
965
904
|
case DOC_TYPE_INDENT:
|
|
966
|
-
cmds.push({
|
|
967
|
-
ind: makeIndent(ind, options),
|
|
968
|
-
mode,
|
|
969
|
-
doc: doc2.contents
|
|
970
|
-
});
|
|
905
|
+
cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });
|
|
971
906
|
break;
|
|
972
907
|
case DOC_TYPE_ALIGN:
|
|
973
908
|
cmds.push({
|
|
@@ -990,13 +925,10 @@ function printDocToString(doc, options) {
|
|
|
990
925
|
});
|
|
991
926
|
break;
|
|
992
927
|
}
|
|
928
|
+
// fallthrough
|
|
993
929
|
case MODE_BREAK: {
|
|
994
930
|
shouldRemeasure = false;
|
|
995
|
-
const next = {
|
|
996
|
-
ind,
|
|
997
|
-
mode: MODE_FLAT,
|
|
998
|
-
doc: doc2.contents
|
|
999
|
-
};
|
|
931
|
+
const next = { ind, mode: MODE_FLAT, doc: doc2.contents };
|
|
1000
932
|
const rem = width - pos;
|
|
1001
933
|
const hasLineSuffix = lineSuffix2.length > 0;
|
|
1002
934
|
if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
@@ -1010,28 +942,16 @@ function printDocToString(doc, options) {
|
|
|
1010
942
|
-1
|
|
1011
943
|
);
|
|
1012
944
|
if (doc2.break) {
|
|
1013
|
-
cmds.push({
|
|
1014
|
-
ind,
|
|
1015
|
-
mode: MODE_BREAK,
|
|
1016
|
-
doc: mostExpanded
|
|
1017
|
-
});
|
|
945
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1018
946
|
break;
|
|
1019
947
|
} else {
|
|
1020
948
|
for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
|
|
1021
949
|
if (i >= doc2.expandedStates.length) {
|
|
1022
|
-
cmds.push({
|
|
1023
|
-
ind,
|
|
1024
|
-
mode: MODE_BREAK,
|
|
1025
|
-
doc: mostExpanded
|
|
1026
|
-
});
|
|
950
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });
|
|
1027
951
|
break;
|
|
1028
952
|
} else {
|
|
1029
953
|
const state = doc2.expandedStates[i];
|
|
1030
|
-
const cmd = {
|
|
1031
|
-
ind,
|
|
1032
|
-
mode: MODE_FLAT,
|
|
1033
|
-
doc: state
|
|
1034
|
-
};
|
|
954
|
+
const cmd = { ind, mode: MODE_FLAT, doc: state };
|
|
1035
955
|
if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
|
|
1036
956
|
cmds.push(cmd);
|
|
1037
957
|
break;
|
|
@@ -1040,11 +960,7 @@ function printDocToString(doc, options) {
|
|
|
1040
960
|
}
|
|
1041
961
|
}
|
|
1042
962
|
} else {
|
|
1043
|
-
cmds.push({
|
|
1044
|
-
ind,
|
|
1045
|
-
mode: MODE_BREAK,
|
|
1046
|
-
doc: doc2.contents
|
|
1047
|
-
});
|
|
963
|
+
cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });
|
|
1048
964
|
}
|
|
1049
965
|
}
|
|
1050
966
|
break;
|
|
@@ -1059,27 +975,47 @@ function printDocToString(doc, options) {
|
|
|
1059
975
|
).mode;
|
|
1060
976
|
}
|
|
1061
977
|
break;
|
|
978
|
+
// Fills each line with as much code as possible before moving to a new
|
|
979
|
+
// line with the same indentation.
|
|
980
|
+
//
|
|
981
|
+
// Expects doc.parts to be an array of alternating content and
|
|
982
|
+
// whitespace. The whitespace contains the linebreaks.
|
|
983
|
+
//
|
|
984
|
+
// For example:
|
|
985
|
+
// ["I", line, "love", line, "monkeys"]
|
|
986
|
+
// or
|
|
987
|
+
// [{ type: group, ... }, softline, { type: group, ... }]
|
|
988
|
+
//
|
|
989
|
+
// It uses this parts structure to handle three main layout cases:
|
|
990
|
+
// * The first two content items fit on the same line without
|
|
991
|
+
// breaking
|
|
992
|
+
// -> output the first content item and the whitespace "flat".
|
|
993
|
+
// * Only the first content item fits on the line without breaking
|
|
994
|
+
// -> output the first content item "flat" and the whitespace with
|
|
995
|
+
// "break".
|
|
996
|
+
// * Neither content item fits on the line without breaking
|
|
997
|
+
// -> output the first content item and the whitespace with "break".
|
|
1062
998
|
case DOC_TYPE_FILL: {
|
|
1063
999
|
const rem = width - pos;
|
|
1064
|
-
const
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
if (
|
|
1000
|
+
const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;
|
|
1001
|
+
const { parts } = doc2;
|
|
1002
|
+
const length = parts.length - offset;
|
|
1003
|
+
if (length === 0) {
|
|
1068
1004
|
break;
|
|
1069
1005
|
}
|
|
1070
|
-
const
|
|
1071
|
-
const
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
if (
|
|
1006
|
+
const content = parts[offset + 0];
|
|
1007
|
+
const whitespace = parts[offset + 1];
|
|
1008
|
+
const contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };
|
|
1009
|
+
const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };
|
|
1010
|
+
const contentFits = fits(
|
|
1011
|
+
contentFlatCmd,
|
|
1012
|
+
[],
|
|
1013
|
+
rem,
|
|
1014
|
+
lineSuffix2.length > 0,
|
|
1015
|
+
groupModeMap,
|
|
1016
|
+
true
|
|
1017
|
+
);
|
|
1018
|
+
if (length === 1) {
|
|
1083
1019
|
if (contentFits) {
|
|
1084
1020
|
cmds.push(contentFlatCmd);
|
|
1085
1021
|
} else {
|
|
@@ -1087,17 +1023,9 @@ function printDocToString(doc, options) {
|
|
|
1087
1023
|
}
|
|
1088
1024
|
break;
|
|
1089
1025
|
}
|
|
1090
|
-
const whitespaceFlatCmd = {
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
doc: whitespace
|
|
1094
|
-
};
|
|
1095
|
-
const whitespaceBreakCmd = {
|
|
1096
|
-
ind,
|
|
1097
|
-
mode: MODE_BREAK,
|
|
1098
|
-
doc: whitespace
|
|
1099
|
-
};
|
|
1100
|
-
if (parts.length === 2) {
|
|
1026
|
+
const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };
|
|
1027
|
+
const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };
|
|
1028
|
+
if (length === 2) {
|
|
1101
1029
|
if (contentFits) {
|
|
1102
1030
|
cmds.push(whitespaceFlatCmd, contentFlatCmd);
|
|
1103
1031
|
} else {
|
|
@@ -1105,19 +1033,25 @@ function printDocToString(doc, options) {
|
|
|
1105
1033
|
}
|
|
1106
1034
|
break;
|
|
1107
1035
|
}
|
|
1108
|
-
parts
|
|
1036
|
+
const secondContent = parts[offset + 2];
|
|
1109
1037
|
const remainingCmd = {
|
|
1110
1038
|
ind,
|
|
1111
1039
|
mode,
|
|
1112
|
-
doc:
|
|
1040
|
+
doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }
|
|
1113
1041
|
};
|
|
1114
|
-
const secondContent = parts[0];
|
|
1115
1042
|
const firstAndSecondContentFlatCmd = {
|
|
1116
1043
|
ind,
|
|
1117
1044
|
mode: MODE_FLAT,
|
|
1118
1045
|
doc: [content, whitespace, secondContent]
|
|
1119
1046
|
};
|
|
1120
|
-
const firstAndSecondContentFits = fits(
|
|
1047
|
+
const firstAndSecondContentFits = fits(
|
|
1048
|
+
firstAndSecondContentFlatCmd,
|
|
1049
|
+
[],
|
|
1050
|
+
rem,
|
|
1051
|
+
lineSuffix2.length > 0,
|
|
1052
|
+
groupModeMap,
|
|
1053
|
+
true
|
|
1054
|
+
);
|
|
1121
1055
|
if (firstAndSecondContentFits) {
|
|
1122
1056
|
cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
|
|
1123
1057
|
} else if (contentFits) {
|
|
@@ -1133,39 +1067,23 @@ function printDocToString(doc, options) {
|
|
|
1133
1067
|
if (groupMode === MODE_BREAK) {
|
|
1134
1068
|
const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
|
|
1135
1069
|
if (breakContents) {
|
|
1136
|
-
cmds.push({
|
|
1137
|
-
ind,
|
|
1138
|
-
mode,
|
|
1139
|
-
doc: breakContents
|
|
1140
|
-
});
|
|
1070
|
+
cmds.push({ ind, mode, doc: breakContents });
|
|
1141
1071
|
}
|
|
1142
1072
|
}
|
|
1143
1073
|
if (groupMode === MODE_FLAT) {
|
|
1144
1074
|
const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
|
|
1145
1075
|
if (flatContents) {
|
|
1146
|
-
cmds.push({
|
|
1147
|
-
ind,
|
|
1148
|
-
mode,
|
|
1149
|
-
doc: flatContents
|
|
1150
|
-
});
|
|
1076
|
+
cmds.push({ ind, mode, doc: flatContents });
|
|
1151
1077
|
}
|
|
1152
1078
|
}
|
|
1153
1079
|
break;
|
|
1154
1080
|
}
|
|
1155
1081
|
case DOC_TYPE_LINE_SUFFIX:
|
|
1156
|
-
lineSuffix2.push({
|
|
1157
|
-
ind,
|
|
1158
|
-
mode,
|
|
1159
|
-
doc: doc2.contents
|
|
1160
|
-
});
|
|
1082
|
+
lineSuffix2.push({ ind, mode, doc: doc2.contents });
|
|
1161
1083
|
break;
|
|
1162
1084
|
case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
|
|
1163
1085
|
if (lineSuffix2.length > 0) {
|
|
1164
|
-
cmds.push({
|
|
1165
|
-
ind,
|
|
1166
|
-
mode,
|
|
1167
|
-
doc: hardlineWithoutBreakParent
|
|
1168
|
-
});
|
|
1086
|
+
cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });
|
|
1169
1087
|
}
|
|
1170
1088
|
break;
|
|
1171
1089
|
case DOC_TYPE_LINE:
|
|
@@ -1180,13 +1098,10 @@ function printDocToString(doc, options) {
|
|
|
1180
1098
|
} else {
|
|
1181
1099
|
shouldRemeasure = true;
|
|
1182
1100
|
}
|
|
1101
|
+
// fallthrough
|
|
1183
1102
|
case MODE_BREAK:
|
|
1184
1103
|
if (lineSuffix2.length > 0) {
|
|
1185
|
-
cmds.push({
|
|
1186
|
-
ind,
|
|
1187
|
-
mode,
|
|
1188
|
-
doc: doc2
|
|
1189
|
-
}, ...lineSuffix2.reverse());
|
|
1104
|
+
cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());
|
|
1190
1105
|
lineSuffix2.length = 0;
|
|
1191
1106
|
break;
|
|
1192
1107
|
}
|
|
@@ -1207,11 +1122,7 @@ function printDocToString(doc, options) {
|
|
|
1207
1122
|
}
|
|
1208
1123
|
break;
|
|
1209
1124
|
case DOC_TYPE_LABEL:
|
|
1210
|
-
cmds.push({
|
|
1211
|
-
ind,
|
|
1212
|
-
mode,
|
|
1213
|
-
doc: doc2.contents
|
|
1214
|
-
});
|
|
1125
|
+
cmds.push({ ind, mode, doc: doc2.contents });
|
|
1215
1126
|
break;
|
|
1216
1127
|
case DOC_TYPE_BREAK_PARENT:
|
|
1217
1128
|
break;
|
|
@@ -1225,7 +1136,15 @@ function printDocToString(doc, options) {
|
|
|
1225
1136
|
}
|
|
1226
1137
|
const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
|
|
1227
1138
|
if (cursorPlaceholderIndex !== -1) {
|
|
1228
|
-
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1139
|
+
const otherCursorPlaceholderIndex = out.indexOf(
|
|
1140
|
+
CURSOR_PLACEHOLDER,
|
|
1141
|
+
cursorPlaceholderIndex + 1
|
|
1142
|
+
);
|
|
1143
|
+
if (otherCursorPlaceholderIndex === -1) {
|
|
1144
|
+
return {
|
|
1145
|
+
formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join("")
|
|
1146
|
+
};
|
|
1147
|
+
}
|
|
1229
1148
|
const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
|
|
1230
1149
|
const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
|
|
1231
1150
|
const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
|
|
@@ -1235,9 +1154,7 @@ function printDocToString(doc, options) {
|
|
|
1235
1154
|
cursorNodeText: aroundCursor
|
|
1236
1155
|
};
|
|
1237
1156
|
}
|
|
1238
|
-
return {
|
|
1239
|
-
formatted: out.join("")
|
|
1240
|
-
};
|
|
1157
|
+
return { formatted: out.join("") };
|
|
1241
1158
|
}
|
|
1242
1159
|
|
|
1243
1160
|
// src/document/public.js
|