@inkandswitch/patchwork-pkg-base 0.0.17 → 0.0.18

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.
Files changed (383) hide show
  1. package/init.js +0 -1
  2. package/modules.json +1 -11
  3. package/package.json +1 -1
  4. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js +0 -8860
  5. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js.map +0 -7
  6. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css +0 -371
  7. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css.map +0 -7
  8. package/packages/account-picker/dist/chunk-5WRI5ZAA.js +0 -31
  9. package/packages/account-picker/dist/chunk-5WRI5ZAA.js.map +0 -7
  10. package/packages/account-picker/dist/tool.css +0 -371
  11. package/packages/account-picker/dist/tool.css.map +0 -7
  12. package/packages/account-picker/dist/tool.js +0 -19
  13. package/packages/account-picker/dist/tool.js.map +0 -7
  14. package/packages/account-picker/package.json +0 -39
  15. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js +0 -490
  16. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js.map +0 -7
  17. package/packages/codemirror-base/dist/lib/codemirror.js +0 -7
  18. package/packages/codemirror-base/dist/lib/codemirror.js.map +0 -7
  19. package/packages/codemirror-base/dist/main.js +0 -17
  20. package/packages/codemirror-base/dist/main.js.map +0 -7
  21. package/packages/codemirror-base/dist/tool.js +0 -1799
  22. package/packages/codemirror-base/dist/tool.js.map +0 -7
  23. package/packages/codemirror-base/package.json +0 -55
  24. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js +0 -142
  25. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js.map +0 -7
  26. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js +0 -58
  27. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js.map +0 -7
  28. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js +0 -144
  29. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js.map +0 -7
  30. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js +0 -351
  31. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js.map +0 -7
  32. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js +0 -55
  33. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js.map +0 -7
  34. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js +0 -1062
  35. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js.map +0 -7
  36. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js +0 -1111
  37. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js.map +0 -7
  38. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js +0 -1424
  39. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js.map +0 -7
  40. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js +0 -133
  41. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js.map +0 -7
  42. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js +0 -998
  43. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js.map +0 -7
  44. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js +0 -4930
  45. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js.map +0 -7
  46. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js +0 -1779
  47. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js.map +0 -7
  48. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js +0 -697
  49. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js.map +0 -7
  50. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js +0 -2528
  51. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js.map +0 -7
  52. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js +0 -808
  53. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js.map +0 -7
  54. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js +0 -851
  55. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js.map +0 -7
  56. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js +0 -73
  57. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js.map +0 -7
  58. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js +0 -131
  59. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js.map +0 -7
  60. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js +0 -310
  61. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js.map +0 -7
  62. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js +0 -132
  63. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js.map +0 -7
  64. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js +0 -400
  65. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js.map +0 -7
  66. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js +0 -1795
  67. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js.map +0 -7
  68. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js +0 -123
  69. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js.map +0 -7
  70. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js +0 -187
  71. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js.map +0 -7
  72. package/packages/codemirror-markdown/dist/datatype.js +0 -48
  73. package/packages/codemirror-markdown/dist/datatype.js.map +0 -7
  74. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js +0 -27
  75. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js.map +0 -7
  76. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js +0 -98
  77. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js.map +0 -7
  78. package/packages/codemirror-markdown/dist/dist-2H653DKD.js +0 -170
  79. package/packages/codemirror-markdown/dist/dist-2H653DKD.js.map +0 -7
  80. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js +0 -140
  81. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js.map +0 -7
  82. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js +0 -75
  83. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js.map +0 -7
  84. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js +0 -15
  85. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js.map +0 -7
  86. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js +0 -340
  87. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js.map +0 -7
  88. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js +0 -20
  89. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js.map +0 -7
  90. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js +0 -318
  91. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js.map +0 -7
  92. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js +0 -100
  93. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js.map +0 -7
  94. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js +0 -381
  95. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js.map +0 -7
  96. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js +0 -193
  97. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js.map +0 -7
  98. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js +0 -32
  99. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js.map +0 -7
  100. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js +0 -27
  101. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js.map +0 -7
  102. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js +0 -416
  103. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js.map +0 -7
  104. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js +0 -423
  105. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js.map +0 -7
  106. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js +0 -786
  107. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js.map +0 -7
  108. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js +0 -451
  109. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js.map +0 -7
  110. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js +0 -748
  111. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js.map +0 -7
  112. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js +0 -360
  113. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js.map +0 -7
  114. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js +0 -115
  115. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js.map +0 -7
  116. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js +0 -212
  117. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js.map +0 -7
  118. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js +0 -209
  119. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js.map +0 -7
  120. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js +0 -116
  121. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js.map +0 -7
  122. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js +0 -317
  123. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js.map +0 -7
  124. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js +0 -142
  125. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js.map +0 -7
  126. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js +0 -180
  127. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js.map +0 -7
  128. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js +0 -136
  129. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js.map +0 -7
  130. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js +0 -178
  131. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js.map +0 -7
  132. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js +0 -676
  133. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js.map +0 -7
  134. package/packages/codemirror-markdown/dist/extensions/embed.js +0 -325
  135. package/packages/codemirror-markdown/dist/extensions/embed.js.map +0 -7
  136. package/packages/codemirror-markdown/dist/extensions/links.js +0 -118
  137. package/packages/codemirror-markdown/dist/extensions/links.js.map +0 -7
  138. package/packages/codemirror-markdown/dist/extensions/markdown.js +0 -3476
  139. package/packages/codemirror-markdown/dist/extensions/markdown.js.map +0 -7
  140. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js +0 -70
  141. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js.map +0 -7
  142. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js +0 -143
  143. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js.map +0 -7
  144. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js +0 -118
  145. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js.map +0 -7
  146. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js +0 -469
  147. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js.map +0 -7
  148. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js +0 -296
  149. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js.map +0 -7
  150. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js +0 -117
  151. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js.map +0 -7
  152. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js +0 -225
  153. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js.map +0 -7
  154. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js +0 -461
  155. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js.map +0 -7
  156. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js +0 -521
  157. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js.map +0 -7
  158. package/packages/codemirror-markdown/dist/http-SZLSACOW.js +0 -81
  159. package/packages/codemirror-markdown/dist/http-SZLSACOW.js.map +0 -7
  160. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js +0 -987
  161. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js.map +0 -7
  162. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js +0 -13
  163. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js.map +0 -7
  164. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js +0 -409
  165. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js.map +0 -7
  166. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js +0 -303
  167. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js.map +0 -7
  168. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js +0 -258
  169. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js.map +0 -7
  170. package/packages/codemirror-markdown/dist/main.js +0 -58
  171. package/packages/codemirror-markdown/dist/main.js.map +0 -7
  172. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js +0 -112
  173. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js.map +0 -7
  174. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js +0 -119
  175. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js.map +0 -7
  176. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js +0 -109
  177. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js.map +0 -7
  178. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js +0 -340
  179. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js.map +0 -7
  180. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js +0 -149
  181. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js.map +0 -7
  182. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js +0 -137
  183. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js.map +0 -7
  184. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js +0 -95
  185. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js.map +0 -7
  186. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js +0 -143
  187. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js.map +0 -7
  188. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js +0 -67
  189. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js.map +0 -7
  190. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js +0 -155
  191. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js.map +0 -7
  192. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js +0 -213
  193. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js.map +0 -7
  194. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js +0 -233
  195. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js.map +0 -7
  196. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js +0 -107
  197. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js.map +0 -7
  198. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js +0 -1107
  199. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js.map +0 -7
  200. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js +0 -105
  201. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js.map +0 -7
  202. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js +0 -330
  203. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js.map +0 -7
  204. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js +0 -60
  205. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js.map +0 -7
  206. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js +0 -80
  207. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js.map +0 -7
  208. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js +0 -410
  209. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js.map +0 -7
  210. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js +0 -139
  211. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js.map +0 -7
  212. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js +0 -429
  213. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js.map +0 -7
  214. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js +0 -135
  215. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js.map +0 -7
  216. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js +0 -174
  217. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js.map +0 -7
  218. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js +0 -111
  219. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js.map +0 -7
  220. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js +0 -333
  221. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js.map +0 -7
  222. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js +0 -209
  223. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js.map +0 -7
  224. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js +0 -230
  225. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js.map +0 -7
  226. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js +0 -224
  227. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js.map +0 -7
  228. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js +0 -137
  229. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js.map +0 -7
  230. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js +0 -123
  231. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js.map +0 -7
  232. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js +0 -71
  233. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js.map +0 -7
  234. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js +0 -251
  235. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js.map +0 -7
  236. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js +0 -89
  237. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js.map +0 -7
  238. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js +0 -358
  239. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js.map +0 -7
  240. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js +0 -233
  241. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js.map +0 -7
  242. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js +0 -591
  243. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js.map +0 -7
  244. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js +0 -293
  245. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js.map +0 -7
  246. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js +0 -116
  247. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js.map +0 -7
  248. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js +0 -416
  249. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js.map +0 -7
  250. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js +0 -231
  251. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js.map +0 -7
  252. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js +0 -276
  253. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js.map +0 -7
  254. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js +0 -78
  255. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js.map +0 -7
  256. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js +0 -63
  257. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js.map +0 -7
  258. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js +0 -211
  259. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js.map +0 -7
  260. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js +0 -141
  261. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js.map +0 -7
  262. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js +0 -132
  263. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js.map +0 -7
  264. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js +0 -204
  265. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js.map +0 -7
  266. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js +0 -482
  267. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js.map +0 -7
  268. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js +0 -151
  269. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js.map +0 -7
  270. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js +0 -456
  271. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js.map +0 -7
  272. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js +0 -162
  273. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js.map +0 -7
  274. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js +0 -206
  275. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js.map +0 -7
  276. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js +0 -532
  277. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js.map +0 -7
  278. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js +0 -132
  279. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js.map +0 -7
  280. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js +0 -95
  281. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js.map +0 -7
  282. package/packages/codemirror-markdown/example.js +0 -46
  283. package/packages/codemirror-markdown/package.json +0 -62
  284. package/packages/commands/dist/main.js +0 -504
  285. package/packages/commands/dist/main.js.map +0 -7
  286. package/packages/commands/package.json +0 -28
  287. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js +0 -161
  288. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js.map +0 -7
  289. package/packages/contact/dist/ContactViewer-ZHEE6INW.js +0 -60
  290. package/packages/contact/dist/ContactViewer-ZHEE6INW.js.map +0 -7
  291. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js +0 -46
  292. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js.map +0 -7
  293. package/packages/contact/dist/chunk-MOZI4Y4O.js +0 -54
  294. package/packages/contact/dist/chunk-MOZI4Y4O.js.map +0 -7
  295. package/packages/contact/dist/datatype-ABVDVPWS.js +0 -27
  296. package/packages/contact/dist/datatype-ABVDVPWS.js.map +0 -7
  297. package/packages/contact/dist/tool.css +0 -81
  298. package/packages/contact/dist/tool.css.map +0 -7
  299. package/packages/contact/dist/tool.js +0 -70
  300. package/packages/contact/dist/tool.js.map +0 -7
  301. package/packages/contact/package.json +0 -46
  302. package/packages/folder/dist/datatype-HWGUFBTQ.js +0 -27
  303. package/packages/folder/dist/datatype-HWGUFBTQ.js.map +0 -7
  304. package/packages/folder/dist/index.js +0 -27
  305. package/packages/folder/dist/index.js.map +0 -7
  306. package/packages/folder/dist/tool-62JZAZRP.js +0 -366
  307. package/packages/folder/dist/tool-62JZAZRP.js.map +0 -7
  308. package/packages/folder/package.json +0 -32
  309. package/packages/sideboard/dist/account-bar-OJQC3J6W.js +0 -2
  310. package/packages/sideboard/dist/account-bar-OJQC3J6W.js.map +0 -7
  311. package/packages/sideboard/dist/chunk-32FICX7K.js +0 -26
  312. package/packages/sideboard/dist/chunk-32FICX7K.js.map +0 -7
  313. package/packages/sideboard/dist/chunk-3OYP6TVA.js +0 -2
  314. package/packages/sideboard/dist/chunk-3OYP6TVA.js.map +0 -7
  315. package/packages/sideboard/dist/chunk-FW4363Y4.js +0 -2
  316. package/packages/sideboard/dist/chunk-FW4363Y4.js.map +0 -7
  317. package/packages/sideboard/dist/chunk-QKYKEZU4.js +0 -2
  318. package/packages/sideboard/dist/chunk-QKYKEZU4.js.map +0 -7
  319. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js +0 -2
  320. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js.map +0 -7
  321. package/packages/sideboard/dist/index.css +0 -2
  322. package/packages/sideboard/dist/index.css.map +0 -7
  323. package/packages/sideboard/dist/index.js +0 -2
  324. package/packages/sideboard/dist/index.js.map +0 -7
  325. package/packages/sideboard/dist/sideboard/sideboard.js +0 -2
  326. package/packages/sideboard/dist/sideboard/sideboard.js.map +0 -7
  327. package/packages/sideboard/package.json +0 -56
  328. package/packages/theming/dist/active-theme-K27UXDBG.js +0 -26
  329. package/packages/theming/dist/active-theme-K27UXDBG.js.map +0 -7
  330. package/packages/theming/dist/chunk-K4OOO2TK.js +0 -281
  331. package/packages/theming/dist/chunk-K4OOO2TK.js.map +0 -7
  332. package/packages/theming/dist/chunk-RATW7VZI.js +0 -11
  333. package/packages/theming/dist/chunk-RATW7VZI.js.map +0 -7
  334. package/packages/theming/dist/chunk-U7SC4JPE.js +0 -86
  335. package/packages/theming/dist/chunk-U7SC4JPE.js.map +0 -7
  336. package/packages/theming/dist/codemirror-theme.js +0 -2415
  337. package/packages/theming/dist/codemirror-theme.js.map +0 -7
  338. package/packages/theming/dist/datatype-UUJVIZM7.js +0 -16
  339. package/packages/theming/dist/datatype-UUJVIZM7.js.map +0 -7
  340. package/packages/theming/dist/gloom-JYQPEOHI.css +0 -102
  341. package/packages/theming/dist/lychee-BMLMUNP6.css +0 -114
  342. package/packages/theming/dist/main.js +0 -112
  343. package/packages/theming/dist/main.js.map +0 -7
  344. package/packages/theming/dist/theme-RC7MV6WP.css +0 -691
  345. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js +0 -11
  346. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js.map +0 -7
  347. package/packages/theming/dist/theme-editor.js +0 -576
  348. package/packages/theming/dist/theme-editor.js.map +0 -7
  349. package/packages/theming/dist/theme-titlebar-P2CODQGF.js +0 -21
  350. package/packages/theming/dist/theme-titlebar-P2CODQGF.js.map +0 -7
  351. package/packages/theming/dist/theme-tray-5L2KGCGD.js +0 -351
  352. package/packages/theming/dist/theme-tray-5L2KGCGD.js.map +0 -7
  353. package/packages/theming/dist/tool.js +0 -405
  354. package/packages/theming/dist/tool.js.map +0 -7
  355. package/packages/theming/package.json +0 -48
  356. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js +0 -2
  357. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js.map +0 -7
  358. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js +0 -2
  359. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js.map +0 -7
  360. package/packages/threepane/dist/chunk-7YXO2YGV.js +0 -2
  361. package/packages/threepane/dist/chunk-7YXO2YGV.js.map +0 -7
  362. package/packages/threepane/dist/chunk-FOMAU6H2.js +0 -972
  363. package/packages/threepane/dist/chunk-FOMAU6H2.js.map +0 -7
  364. package/packages/threepane/dist/chunk-FW4363Y4.js +0 -2
  365. package/packages/threepane/dist/chunk-FW4363Y4.js.map +0 -7
  366. package/packages/threepane/dist/datatypes-FKBTWAO7.js +0 -2
  367. package/packages/threepane/dist/datatypes-FKBTWAO7.js.map +0 -7
  368. package/packages/threepane/dist/index.js +0 -2
  369. package/packages/threepane/dist/index.js.map +0 -7
  370. package/packages/threepane/package.json +0 -42
  371. package/packages/tldraw4/dist/chunk-IKZWERSR.js +0 -38
  372. package/packages/tldraw4/dist/chunk-IKZWERSR.js.map +0 -7
  373. package/packages/tldraw4/dist/chunk-VF5CY24G.js +0 -140894
  374. package/packages/tldraw4/dist/chunk-VF5CY24G.js.map +0 -7
  375. package/packages/tldraw4/dist/datatype.js +0 -46
  376. package/packages/tldraw4/dist/datatype.js.map +0 -7
  377. package/packages/tldraw4/dist/main.css +0 -3202
  378. package/packages/tldraw4/dist/main.css.map +0 -7
  379. package/packages/tldraw4/dist/main.js +0 -42
  380. package/packages/tldraw4/dist/main.js.map +0 -7
  381. package/packages/tldraw4/dist/tool.js +0 -8767
  382. package/packages/tldraw4/dist/tool.js.map +0 -7
  383. package/packages/tldraw4/package.json +0 -62
@@ -1,3476 +0,0 @@
1
- import {
2
- markdown
3
- } from "../chunk-PPGERYN5.js";
4
- import "../chunk-6JT2ASRP.js";
5
- import "../chunk-46Z6CXSY.js";
6
- import "../chunk-NEI7FGV4.js";
7
- import {
8
- completionKeymap
9
- } from "../chunk-CSJO4DNL.js";
10
- import "../chunk-MBTMKYFQ.js";
11
- import {
12
- HighlightStyle,
13
- IndentContext,
14
- LanguageDescription,
15
- LanguageSupport,
16
- NodeProp,
17
- StreamLanguage,
18
- foldKeymap,
19
- getIndentUnit,
20
- getIndentation,
21
- indentOnInput,
22
- indentString,
23
- indentUnit,
24
- matchBrackets,
25
- syntaxHighlighting,
26
- syntaxTree,
27
- tags
28
- } from "../chunk-MAW6NPUW.js";
29
-
30
- // ../node_modules/.pnpm/@codemirror+commands@6.10.4/node_modules/@codemirror/commands/dist/index.js
31
- import { Annotation, Facet, combineConfig, StateField, Transaction, ChangeSet, ChangeDesc, EditorSelection, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from "@codemirror/state";
32
- import { EditorView, Direction } from "@codemirror/view";
33
- var toggleComment = (target) => {
34
- let { state } = target, line = state.doc.lineAt(state.selection.main.from), config = getConfig(target.state, line.from);
35
- return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;
36
- };
37
- function command(f, option) {
38
- return ({ state, dispatch }) => {
39
- if (state.readOnly)
40
- return false;
41
- let tr = f(option, state);
42
- if (!tr)
43
- return false;
44
- dispatch(state.update(tr));
45
- return true;
46
- };
47
- }
48
- var toggleLineComment = /* @__PURE__ */ command(
49
- changeLineComment,
50
- 0
51
- /* CommentOption.Toggle */
52
- );
53
- var toggleBlockComment = /* @__PURE__ */ command(
54
- changeBlockComment,
55
- 0
56
- /* CommentOption.Toggle */
57
- );
58
- var toggleBlockCommentByLine = /* @__PURE__ */ command(
59
- (o, s) => changeBlockComment(o, s, selectedLineRanges(s)),
60
- 0
61
- /* CommentOption.Toggle */
62
- );
63
- function getConfig(state, pos) {
64
- let data = state.languageDataAt("commentTokens", pos, 1);
65
- return data.length ? data[0] : {};
66
- }
67
- var SearchMargin = 50;
68
- function findBlockComment(state, { open, close }, from, to) {
69
- let textBefore = state.sliceDoc(from - SearchMargin, from);
70
- let textAfter = state.sliceDoc(to, to + SearchMargin);
71
- let spaceBefore = /\s*$/.exec(textBefore)[0].length, spaceAfter = /^\s*/.exec(textAfter)[0].length;
72
- let beforeOff = textBefore.length - spaceBefore;
73
- if (textBefore.slice(beforeOff - open.length, beforeOff) == open && textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {
74
- return {
75
- open: { pos: from - spaceBefore, margin: spaceBefore && 1 },
76
- close: { pos: to + spaceAfter, margin: spaceAfter && 1 }
77
- };
78
- }
79
- let startText, endText;
80
- if (to - from <= 2 * SearchMargin) {
81
- startText = endText = state.sliceDoc(from, to);
82
- } else {
83
- startText = state.sliceDoc(from, from + SearchMargin);
84
- endText = state.sliceDoc(to - SearchMargin, to);
85
- }
86
- let startSpace = /^\s*/.exec(startText)[0].length, endSpace = /\s*$/.exec(endText)[0].length;
87
- let endOff = endText.length - endSpace - close.length;
88
- if (startText.slice(startSpace, startSpace + open.length) == open && endText.slice(endOff, endOff + close.length) == close) {
89
- return {
90
- open: {
91
- pos: from + startSpace + open.length,
92
- margin: /\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0
93
- },
94
- close: {
95
- pos: to - endSpace - close.length,
96
- margin: /\s/.test(endText.charAt(endOff - 1)) ? 1 : 0
97
- }
98
- };
99
- }
100
- return null;
101
- }
102
- function selectedLineRanges(state) {
103
- let ranges = [];
104
- for (let r of state.selection.ranges) {
105
- let fromLine = state.doc.lineAt(r.from);
106
- let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);
107
- if (toLine.from > fromLine.from && toLine.from == r.to)
108
- toLine = r.to == fromLine.to + 1 ? fromLine : state.doc.lineAt(r.to - 1);
109
- let last = ranges.length - 1;
110
- if (last >= 0 && ranges[last].to > fromLine.from)
111
- ranges[last].to = toLine.to;
112
- else
113
- ranges.push({ from: fromLine.from + /^\s*/.exec(fromLine.text)[0].length, to: toLine.to });
114
- }
115
- return ranges;
116
- }
117
- function changeBlockComment(option, state, ranges = state.selection.ranges) {
118
- let tokens = ranges.map((r) => getConfig(state, r.from).block);
119
- if (!tokens.every((c) => c))
120
- return null;
121
- let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));
122
- if (option != 2 && !comments.every((c) => c)) {
123
- return { changes: state.changes(ranges.map((range, i) => {
124
- if (comments[i])
125
- return [];
126
- return [{ from: range.from, insert: tokens[i].open + " " }, { from: range.to, insert: " " + tokens[i].close }];
127
- })) };
128
- } else if (option != 1 && comments.some((c) => c)) {
129
- let changes = [];
130
- for (let i = 0, comment; i < comments.length; i++)
131
- if (comment = comments[i]) {
132
- let token = tokens[i], { open, close } = comment;
133
- changes.push({ from: open.pos - token.open.length, to: open.pos + open.margin }, { from: close.pos - close.margin, to: close.pos + token.close.length });
134
- }
135
- return { changes };
136
- }
137
- return null;
138
- }
139
- function changeLineComment(option, state, ranges = state.selection.ranges) {
140
- let lines = [];
141
- let prevLine = -1;
142
- ranges: for (let { from, to } of ranges) {
143
- let startI = lines.length, minIndent = 1e9, token;
144
- for (let pos = from; pos <= to; ) {
145
- let line = state.doc.lineAt(pos);
146
- if (token == void 0) {
147
- token = getConfig(state, line.from).line;
148
- if (!token)
149
- continue ranges;
150
- }
151
- if (line.from > prevLine && (from == to || to > line.from)) {
152
- prevLine = line.from;
153
- let indent = /^\s*/.exec(line.text)[0].length;
154
- let empty2 = indent == line.length;
155
- let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;
156
- if (indent < line.text.length && indent < minIndent)
157
- minIndent = indent;
158
- lines.push({ line, comment, token, indent, empty: empty2, single: false });
159
- }
160
- pos = line.to + 1;
161
- }
162
- if (minIndent < 1e9) {
163
- for (let i = startI; i < lines.length; i++)
164
- if (lines[i].indent < lines[i].line.text.length)
165
- lines[i].indent = minIndent;
166
- }
167
- if (lines.length == startI + 1)
168
- lines[startI].single = true;
169
- }
170
- if (option != 2 && lines.some((l) => l.comment < 0 && (!l.empty || l.single))) {
171
- let changes = [];
172
- for (let { line, token, indent, empty: empty2, single } of lines)
173
- if (single || !empty2)
174
- changes.push({ from: line.from + indent, insert: token + " " });
175
- let changeSet = state.changes(changes);
176
- return { changes: changeSet, selection: state.selection.map(changeSet, 1) };
177
- } else if (option != 1 && lines.some((l) => l.comment >= 0)) {
178
- let changes = [];
179
- for (let { line, comment, token } of lines)
180
- if (comment >= 0) {
181
- let from = line.from + comment, to = from + token.length;
182
- if (line.text[to - line.from] == " ")
183
- to++;
184
- changes.push({ from, to });
185
- }
186
- return { changes };
187
- }
188
- return null;
189
- }
190
- var fromHistory = /* @__PURE__ */ Annotation.define();
191
- var isolateHistory = /* @__PURE__ */ Annotation.define();
192
- var invertedEffects = /* @__PURE__ */ Facet.define();
193
- var historyConfig = /* @__PURE__ */ Facet.define({
194
- combine(configs) {
195
- return combineConfig(configs, {
196
- minDepth: 100,
197
- newGroupDelay: 500,
198
- joinToEvent: (_t, isAdjacent2) => isAdjacent2
199
- }, {
200
- minDepth: Math.max,
201
- newGroupDelay: Math.min,
202
- joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)
203
- });
204
- }
205
- });
206
- var historyField_ = /* @__PURE__ */ StateField.define({
207
- create() {
208
- return HistoryState.empty;
209
- },
210
- update(state, tr) {
211
- let config = tr.state.facet(historyConfig);
212
- let fromHist = tr.annotation(fromHistory);
213
- if (fromHist) {
214
- let item = HistEvent.fromTransaction(tr, fromHist.selection), from = fromHist.side;
215
- let other = from == 0 ? state.undone : state.done;
216
- if (item)
217
- other = updateBranch(other, other.length, config.minDepth, item);
218
- else
219
- other = addSelection(other, tr.startState.selection);
220
- return new HistoryState(from == 0 ? fromHist.rest : other, from == 0 ? other : fromHist.rest);
221
- }
222
- let isolate = tr.annotation(isolateHistory);
223
- if (isolate == "full" || isolate == "before")
224
- state = state.isolate();
225
- if (tr.annotation(Transaction.addToHistory) === false)
226
- return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;
227
- let event = HistEvent.fromTransaction(tr);
228
- let time = tr.annotation(Transaction.time), userEvent = tr.annotation(Transaction.userEvent);
229
- if (event)
230
- state = state.addChanges(event, time, userEvent, config, tr);
231
- else if (tr.selection)
232
- state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);
233
- if (isolate == "full" || isolate == "after")
234
- state = state.isolate();
235
- return state;
236
- },
237
- toJSON(value) {
238
- return { done: value.done.map((e) => e.toJSON()), undone: value.undone.map((e) => e.toJSON()) };
239
- },
240
- fromJSON(json) {
241
- return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));
242
- }
243
- });
244
- function history(config = {}) {
245
- return [
246
- historyField_,
247
- historyConfig.of(config),
248
- EditorView.domEventHandlers({
249
- beforeinput(e, view) {
250
- let command2 = e.inputType == "historyUndo" ? undo : e.inputType == "historyRedo" ? redo : null;
251
- if (!command2)
252
- return false;
253
- e.preventDefault();
254
- return command2(view);
255
- }
256
- })
257
- ];
258
- }
259
- function cmd(side, selection) {
260
- return function({ state, dispatch }) {
261
- if (!selection && state.readOnly)
262
- return false;
263
- let historyState = state.field(historyField_, false);
264
- if (!historyState)
265
- return false;
266
- let tr = historyState.pop(side, state, selection);
267
- if (!tr)
268
- return false;
269
- dispatch(tr);
270
- return true;
271
- };
272
- }
273
- var undo = /* @__PURE__ */ cmd(0, false);
274
- var redo = /* @__PURE__ */ cmd(1, false);
275
- var undoSelection = /* @__PURE__ */ cmd(0, true);
276
- var redoSelection = /* @__PURE__ */ cmd(1, true);
277
- var HistEvent = class _HistEvent {
278
- constructor(changes, effects, mapped, startSelection, selectionsAfter) {
279
- this.changes = changes;
280
- this.effects = effects;
281
- this.mapped = mapped;
282
- this.startSelection = startSelection;
283
- this.selectionsAfter = selectionsAfter;
284
- }
285
- setSelAfter(after) {
286
- return new _HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);
287
- }
288
- toJSON() {
289
- var _a, _b, _c;
290
- return {
291
- changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),
292
- mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),
293
- startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),
294
- selectionsAfter: this.selectionsAfter.map((s) => s.toJSON())
295
- };
296
- }
297
- static fromJSON(json) {
298
- return new _HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));
299
- }
300
- // This does not check `addToHistory` and such, it assumes the
301
- // transaction needs to be converted to an item. Returns null when
302
- // there are no changes or effects in the transaction.
303
- static fromTransaction(tr, selection) {
304
- let effects = none;
305
- for (let invert of tr.startState.facet(invertedEffects)) {
306
- let result = invert(tr);
307
- if (result.length)
308
- effects = effects.concat(result);
309
- }
310
- if (!effects.length && tr.changes.empty)
311
- return null;
312
- return new _HistEvent(tr.changes.invert(tr.startState.doc), effects, void 0, selection || tr.startState.selection, none);
313
- }
314
- static selection(selections) {
315
- return new _HistEvent(void 0, none, void 0, void 0, selections);
316
- }
317
- };
318
- function updateBranch(branch, to, maxLen, newEvent) {
319
- let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;
320
- let newBranch = branch.slice(start, to);
321
- newBranch.push(newEvent);
322
- return newBranch;
323
- }
324
- function isAdjacent(a, b) {
325
- let ranges = [], isAdjacent2 = false;
326
- a.iterChangedRanges((f, t) => ranges.push(f, t));
327
- b.iterChangedRanges((_f, _t, f, t) => {
328
- for (let i = 0; i < ranges.length; ) {
329
- let from = ranges[i++], to = ranges[i++];
330
- if (t >= from && f <= to)
331
- isAdjacent2 = true;
332
- }
333
- });
334
- return isAdjacent2;
335
- }
336
- function eqSelectionShape(a, b) {
337
- return a.ranges.length == b.ranges.length && a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;
338
- }
339
- function conc(a, b) {
340
- return !a.length ? b : !b.length ? a : a.concat(b);
341
- }
342
- var none = [];
343
- var MaxSelectionsPerEvent = 200;
344
- function addSelection(branch, selection) {
345
- if (!branch.length) {
346
- return [HistEvent.selection([selection])];
347
- } else {
348
- let lastEvent = branch[branch.length - 1];
349
- let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));
350
- if (sels.length && sels[sels.length - 1].eq(selection))
351
- return branch;
352
- sels.push(selection);
353
- return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));
354
- }
355
- }
356
- function popSelection(branch) {
357
- let last = branch[branch.length - 1];
358
- let newBranch = branch.slice();
359
- newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));
360
- return newBranch;
361
- }
362
- function addMappingToBranch(branch, mapping) {
363
- if (!branch.length)
364
- return branch;
365
- let length = branch.length, selections = none;
366
- while (length) {
367
- let event = mapEvent(branch[length - 1], mapping, selections);
368
- if (event.changes && !event.changes.empty || event.effects.length) {
369
- let result = branch.slice(0, length);
370
- result[length - 1] = event;
371
- return result;
372
- } else {
373
- mapping = event.mapped;
374
- length--;
375
- selections = event.selectionsAfter;
376
- }
377
- }
378
- return selections.length ? [HistEvent.selection(selections)] : none;
379
- }
380
- function mapEvent(event, mapping, extraSelections) {
381
- let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map((s) => s.map(mapping)) : none, extraSelections);
382
- if (!event.changes)
383
- return HistEvent.selection(selections);
384
- let mappedChanges = event.changes.map(mapping), before = mapping.mapDesc(event.changes, true);
385
- let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;
386
- return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);
387
- }
388
- var joinableUserEvent = /^(input\.type|delete)($|\.)/;
389
- var HistoryState = class _HistoryState {
390
- constructor(done, undone, prevTime = 0, prevUserEvent = void 0) {
391
- this.done = done;
392
- this.undone = undone;
393
- this.prevTime = prevTime;
394
- this.prevUserEvent = prevUserEvent;
395
- }
396
- isolate() {
397
- return this.prevTime ? new _HistoryState(this.done, this.undone) : this;
398
- }
399
- addChanges(event, time, userEvent, config, tr) {
400
- let done = this.done, lastEvent = done[done.length - 1];
401
- if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes && (!userEvent || joinableUserEvent.test(userEvent)) && (!lastEvent.selectionsAfter.length && time - this.prevTime < config.newGroupDelay && config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes)) || // For compose (but not compose.start) events, always join with previous event
402
- userEvent == "input.type.compose")) {
403
- done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(StateEffect.mapEffects(event.effects, lastEvent.changes), lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));
404
- } else {
405
- done = updateBranch(done, done.length, config.minDepth, event);
406
- }
407
- return new _HistoryState(done, none, time, userEvent);
408
- }
409
- addSelection(selection, time, userEvent, newGroupDelay) {
410
- let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;
411
- if (last.length > 0 && time - this.prevTime < newGroupDelay && userEvent == this.prevUserEvent && userEvent && /^select($|\.)/.test(userEvent) && eqSelectionShape(last[last.length - 1], selection))
412
- return this;
413
- return new _HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);
414
- }
415
- addMapping(mapping) {
416
- return new _HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);
417
- }
418
- pop(side, state, onlySelection) {
419
- let branch = side == 0 ? this.done : this.undone;
420
- if (branch.length == 0)
421
- return null;
422
- let event = branch[branch.length - 1], selection = event.selectionsAfter[0] || (event.startSelection ? event.startSelection.map(event.changes.invertedDesc, 1) : state.selection);
423
- if (onlySelection && event.selectionsAfter.length) {
424
- return state.update({
425
- selection: event.selectionsAfter[event.selectionsAfter.length - 1],
426
- annotations: fromHistory.of({ side, rest: popSelection(branch), selection }),
427
- userEvent: side == 0 ? "select.undo" : "select.redo",
428
- scrollIntoView: true
429
- });
430
- } else if (!event.changes) {
431
- return null;
432
- } else {
433
- let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);
434
- if (event.mapped)
435
- rest = addMappingToBranch(rest, event.mapped);
436
- return state.update({
437
- changes: event.changes,
438
- selection: event.startSelection,
439
- effects: event.effects,
440
- annotations: fromHistory.of({ side, rest, selection }),
441
- filter: false,
442
- userEvent: side == 0 ? "undo" : "redo",
443
- scrollIntoView: true
444
- });
445
- }
446
- }
447
- };
448
- HistoryState.empty = /* @__PURE__ */ new HistoryState(none, none);
449
- var historyKeymap = [
450
- { key: "Mod-z", run: undo, preventDefault: true },
451
- { key: "Mod-y", mac: "Mod-Shift-z", run: redo, preventDefault: true },
452
- { linux: "Ctrl-Shift-z", run: redo, preventDefault: true },
453
- { key: "Mod-u", run: undoSelection, preventDefault: true },
454
- { key: "Alt-u", mac: "Mod-Shift-u", run: redoSelection, preventDefault: true }
455
- ];
456
- function updateSel(sel, by) {
457
- return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);
458
- }
459
- function setSel(state, selection) {
460
- return state.update({ selection, scrollIntoView: true, userEvent: "select" });
461
- }
462
- function moveSel({ state, dispatch }, how) {
463
- let selection = updateSel(state.selection, how);
464
- if (selection.eq(state.selection, true))
465
- return false;
466
- dispatch(setSel(state, selection));
467
- return true;
468
- }
469
- function rangeEnd(range, forward) {
470
- return EditorSelection.cursor(forward ? range.to : range.from);
471
- }
472
- function cursorByChar(view, forward) {
473
- return moveSel(view, (range) => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));
474
- }
475
- function ltrAtCursor(view) {
476
- return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;
477
- }
478
- var cursorCharLeft = (view) => cursorByChar(view, !ltrAtCursor(view));
479
- var cursorCharRight = (view) => cursorByChar(view, ltrAtCursor(view));
480
- function cursorByGroup(view, forward) {
481
- return moveSel(view, (range) => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));
482
- }
483
- var cursorGroupLeft = (view) => cursorByGroup(view, !ltrAtCursor(view));
484
- var cursorGroupRight = (view) => cursorByGroup(view, ltrAtCursor(view));
485
- var segmenter = typeof Intl != "undefined" && Intl.Segmenter ? /* @__PURE__ */ new Intl.Segmenter(void 0, { granularity: "word" }) : null;
486
- function interestingNode(state, node, bracketProp) {
487
- if (node.type.prop(bracketProp))
488
- return true;
489
- let len = node.to - node.from;
490
- return len && (len > 2 || /[^\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;
491
- }
492
- function moveBySyntax(state, start, forward) {
493
- let pos = syntaxTree(state).resolveInner(start.head);
494
- let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;
495
- for (let at = start.head; ; ) {
496
- let next = forward ? pos.childAfter(at) : pos.childBefore(at);
497
- if (!next)
498
- break;
499
- if (interestingNode(state, next, bracketProp))
500
- pos = next;
501
- else
502
- at = forward ? next.to : next.from;
503
- }
504
- let bracket = pos.type.prop(bracketProp), match, newPos;
505
- if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched)
506
- newPos = forward ? match.end.to : match.end.from;
507
- else
508
- newPos = forward ? pos.to : pos.from;
509
- return EditorSelection.cursor(newPos, forward ? -1 : 1);
510
- }
511
- var cursorSyntaxLeft = (view) => moveSel(view, (range) => moveBySyntax(view.state, range, !ltrAtCursor(view)));
512
- var cursorSyntaxRight = (view) => moveSel(view, (range) => moveBySyntax(view.state, range, ltrAtCursor(view)));
513
- function cursorByLine(view, forward) {
514
- return moveSel(view, (range) => {
515
- if (!range.empty)
516
- return rangeEnd(range, forward);
517
- let moved = view.moveVertically(range, forward);
518
- return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);
519
- });
520
- }
521
- var cursorLineUp = (view) => cursorByLine(view, false);
522
- var cursorLineDown = (view) => cursorByLine(view, true);
523
- function pageInfo(view) {
524
- let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;
525
- let marginTop = 0, marginBottom = 0, height;
526
- if (selfScroll) {
527
- for (let source of view.state.facet(EditorView.scrollMargins)) {
528
- let margins = source(view);
529
- if (margins === null || margins === void 0 ? void 0 : margins.top)
530
- marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);
531
- if (margins === null || margins === void 0 ? void 0 : margins.bottom)
532
- marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);
533
- }
534
- height = view.scrollDOM.clientHeight - marginTop - marginBottom;
535
- } else {
536
- height = (view.dom.ownerDocument.defaultView || window).innerHeight;
537
- }
538
- return {
539
- marginTop,
540
- marginBottom,
541
- selfScroll,
542
- height: Math.max(view.defaultLineHeight, height - 5)
543
- };
544
- }
545
- function cursorByPage(view, forward) {
546
- let page = pageInfo(view);
547
- let { state } = view, selection = updateSel(state.selection, (range) => {
548
- return range.empty ? view.moveVertically(range, forward, page.height) : rangeEnd(range, forward);
549
- });
550
- if (selection.eq(state.selection))
551
- return false;
552
- let effect;
553
- if (page.selfScroll) {
554
- let startPos = view.coordsAtPos(state.selection.main.head);
555
- let scrollRect = view.scrollDOM.getBoundingClientRect();
556
- let scrollTop = scrollRect.top + page.marginTop, scrollBottom = scrollRect.bottom - page.marginBottom;
557
- if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom)
558
- effect = EditorView.scrollIntoView(selection.main.head, { y: "start", yMargin: startPos.top - scrollTop });
559
- }
560
- view.dispatch(setSel(state, selection), { effects: effect });
561
- return true;
562
- }
563
- var cursorPageUp = (view) => cursorByPage(view, false);
564
- var cursorPageDown = (view) => cursorByPage(view, true);
565
- function moveByLineBoundary(view, start, forward) {
566
- let line = view.lineBlockAt(start.head), moved = view.moveToLineBoundary(start, forward);
567
- if (moved.head == start.head && moved.head != (forward ? line.to : line.from))
568
- moved = view.moveToLineBoundary(start, forward, false);
569
- if (!forward && moved.head == line.from && line.length) {
570
- let space = /^\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;
571
- if (space && start.head != line.from + space)
572
- moved = EditorSelection.cursor(line.from + space);
573
- }
574
- return moved;
575
- }
576
- var cursorLineBoundaryForward = (view) => moveSel(view, (range) => moveByLineBoundary(view, range, true));
577
- var cursorLineBoundaryBackward = (view) => moveSel(view, (range) => moveByLineBoundary(view, range, false));
578
- var cursorLineBoundaryLeft = (view) => moveSel(view, (range) => moveByLineBoundary(view, range, !ltrAtCursor(view)));
579
- var cursorLineBoundaryRight = (view) => moveSel(view, (range) => moveByLineBoundary(view, range, ltrAtCursor(view)));
580
- var cursorLineStart = (view) => moveSel(view, (range) => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));
581
- var cursorLineEnd = (view) => moveSel(view, (range) => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));
582
- function toMatchingBracket(state, dispatch, extend) {
583
- let found = false, selection = updateSel(state.selection, (range) => {
584
- let matching = matchBrackets(state, range.head, -1) || matchBrackets(state, range.head, 1) || range.head > 0 && matchBrackets(state, range.head - 1, 1) || range.head < state.doc.length && matchBrackets(state, range.head + 1, -1);
585
- if (!matching || !matching.end)
586
- return range;
587
- found = true;
588
- let head = matching.start.from == range.head ? matching.end.to : matching.end.from;
589
- return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);
590
- });
591
- if (!found)
592
- return false;
593
- dispatch(setSel(state, selection));
594
- return true;
595
- }
596
- var cursorMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, false);
597
- function extendSel(target, forward, how) {
598
- let selection = updateSel(target.state.selection, (range) => {
599
- if (range.undirectional && range.head >= range.anchor != forward)
600
- range = EditorSelection.range(range.head, range.anchor);
601
- let head = how(range);
602
- return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || void 0, head.assoc);
603
- });
604
- if (selection.eq(target.state.selection))
605
- return false;
606
- target.dispatch(setSel(target.state, selection));
607
- return true;
608
- }
609
- function selectByChar(view, forward) {
610
- return extendSel(view, forward, (range) => view.moveByChar(range, forward));
611
- }
612
- var selectCharLeft = (view) => selectByChar(view, !ltrAtCursor(view));
613
- var selectCharRight = (view) => selectByChar(view, ltrAtCursor(view));
614
- function selectByGroup(view, forward) {
615
- return extendSel(view, forward, (range) => view.moveByGroup(range, forward));
616
- }
617
- var selectGroupLeft = (view) => selectByGroup(view, !ltrAtCursor(view));
618
- var selectGroupRight = (view) => selectByGroup(view, ltrAtCursor(view));
619
- var selectSyntaxLeft = (view) => {
620
- let forward = !ltrAtCursor(view);
621
- return extendSel(view, forward, (range) => moveBySyntax(view.state, range, forward));
622
- };
623
- var selectSyntaxRight = (view) => {
624
- let forward = ltrAtCursor(view);
625
- return extendSel(view, forward, (range) => moveBySyntax(view.state, range, forward));
626
- };
627
- function selectByLine(view, forward) {
628
- return extendSel(view, forward, (range) => view.moveVertically(range, forward));
629
- }
630
- var selectLineUp = (view) => selectByLine(view, false);
631
- var selectLineDown = (view) => selectByLine(view, true);
632
- function selectByPage(view, forward) {
633
- return extendSel(view, forward, (range) => view.moveVertically(range, forward, pageInfo(view).height));
634
- }
635
- var selectPageUp = (view) => selectByPage(view, false);
636
- var selectPageDown = (view) => selectByPage(view, true);
637
- var selectLineBoundaryForward = (view) => extendSel(view, true, (range) => moveByLineBoundary(view, range, true));
638
- var selectLineBoundaryBackward = (view) => extendSel(view, false, (range) => moveByLineBoundary(view, range, false));
639
- var selectLineBoundaryLeft = (view) => {
640
- let forward = !ltrAtCursor(view);
641
- return extendSel(view, forward, (range) => moveByLineBoundary(view, range, forward));
642
- };
643
- var selectLineBoundaryRight = (view) => {
644
- let forward = ltrAtCursor(view);
645
- return extendSel(view, forward, (range) => moveByLineBoundary(view, range, forward));
646
- };
647
- var selectLineStart = (view) => extendSel(view, false, (range) => EditorSelection.cursor(view.lineBlockAt(range.head).from));
648
- var selectLineEnd = (view) => extendSel(view, true, (range) => EditorSelection.cursor(view.lineBlockAt(range.head).to));
649
- var cursorDocStart = ({ state, dispatch }) => {
650
- dispatch(setSel(state, { anchor: 0 }));
651
- return true;
652
- };
653
- var cursorDocEnd = ({ state, dispatch }) => {
654
- dispatch(setSel(state, { anchor: state.doc.length }));
655
- return true;
656
- };
657
- var selectDocStart = ({ state, dispatch }) => {
658
- dispatch(setSel(state, { anchor: state.selection.main.anchor, head: 0 }));
659
- return true;
660
- };
661
- var selectDocEnd = ({ state, dispatch }) => {
662
- dispatch(setSel(state, { anchor: state.selection.main.anchor, head: state.doc.length }));
663
- return true;
664
- };
665
- var selectAll = ({ state, dispatch }) => {
666
- dispatch(state.update({ selection: { anchor: 0, head: state.doc.length }, userEvent: "select" }));
667
- return true;
668
- };
669
- var selectLine = ({ state, dispatch }) => {
670
- let ranges = selectedLineBlocks(state).map(({ from, to }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));
671
- dispatch(state.update({ selection: EditorSelection.create(ranges), userEvent: "select" }));
672
- return true;
673
- };
674
- var selectParentSyntax = ({ state, dispatch }) => {
675
- let selection = updateSel(state.selection, (range) => {
676
- let tree = syntaxTree(state), stack = tree.resolveStack(range.from, 1);
677
- if (range.empty) {
678
- let stackBefore = tree.resolveStack(range.from, -1);
679
- if (stackBefore.node.from >= stack.node.from && stackBefore.node.to <= stack.node.to)
680
- stack = stackBefore;
681
- }
682
- for (let cur = stack; cur; cur = cur.next) {
683
- let { node } = cur;
684
- if ((node.from < range.from && node.to >= range.to || node.to > range.to && node.from <= range.from) && cur.next)
685
- return EditorSelection.range(node.to, node.from);
686
- }
687
- return range;
688
- });
689
- if (selection.eq(state.selection))
690
- return false;
691
- dispatch(setSel(state, selection));
692
- return true;
693
- };
694
- function addCursorVertically(view, forward) {
695
- let { state } = view, sel = state.selection, ranges = state.selection.ranges.slice();
696
- for (let range of state.selection.ranges) {
697
- let line = state.doc.lineAt(range.head);
698
- if (forward ? line.to < view.state.doc.length : line.from > 0)
699
- for (let cur = range; ; ) {
700
- let next = view.moveVertically(cur, forward);
701
- if (next.head < line.from || next.head > line.to) {
702
- if (!ranges.some((r) => r.head == next.head))
703
- ranges.push(next);
704
- break;
705
- } else if (next.head == cur.head) {
706
- break;
707
- } else {
708
- cur = next;
709
- }
710
- }
711
- }
712
- if (ranges.length == sel.ranges.length)
713
- return false;
714
- view.dispatch(setSel(state, EditorSelection.create(ranges, ranges.length - 1)));
715
- return true;
716
- }
717
- var addCursorAbove = (view) => addCursorVertically(view, false);
718
- var addCursorBelow = (view) => addCursorVertically(view, true);
719
- var simplifySelection = ({ state, dispatch }) => {
720
- let cur = state.selection, selection = null;
721
- if (cur.ranges.length > 1)
722
- selection = EditorSelection.create([cur.main]);
723
- else if (!cur.main.empty)
724
- selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);
725
- if (!selection)
726
- return false;
727
- dispatch(setSel(state, selection));
728
- return true;
729
- };
730
- function deleteBy(target, by) {
731
- if (target.state.readOnly)
732
- return false;
733
- let event = "delete.selection", { state } = target;
734
- let changes = state.changeByRange((range) => {
735
- let { from, to } = range;
736
- if (from == to) {
737
- let towards = by(range);
738
- if (towards < from) {
739
- event = "delete.backward";
740
- towards = skipAtomic(target, towards, false);
741
- } else if (towards > from) {
742
- event = "delete.forward";
743
- towards = skipAtomic(target, towards, true);
744
- }
745
- from = Math.min(from, towards);
746
- to = Math.max(to, towards);
747
- } else {
748
- from = skipAtomic(target, from, false);
749
- to = skipAtomic(target, to, true);
750
- }
751
- return from == to ? { range } : { changes: { from, to }, range: EditorSelection.cursor(from, from < range.head ? -1 : 1) };
752
- });
753
- if (changes.changes.empty)
754
- return false;
755
- target.dispatch(state.update(changes, {
756
- scrollIntoView: true,
757
- userEvent: event,
758
- effects: event == "delete.selection" ? EditorView.announce.of(state.phrase("Selection deleted")) : void 0
759
- }));
760
- return true;
761
- }
762
- function skipAtomic(target, pos, forward) {
763
- if (target instanceof EditorView)
764
- for (let ranges of target.state.facet(EditorView.atomicRanges).map((f) => f(target)))
765
- ranges.between(pos, pos, (from, to) => {
766
- if (from < pos && to > pos)
767
- pos = forward ? to : from;
768
- });
769
- return pos;
770
- }
771
- var deleteByChar = (target, forward, byIndentUnit) => deleteBy(target, (range) => {
772
- let pos = range.from, { state } = target, line = state.doc.lineAt(pos), before, targetPos;
773
- if (byIndentUnit && !forward && pos > line.from && pos < line.from + 200 && !/[^ \t]/.test(before = line.text.slice(0, pos - line.from))) {
774
- if (before[before.length - 1] == " ")
775
- return pos - 1;
776
- let col = countColumn(before, state.tabSize), drop = col % getIndentUnit(state) || getIndentUnit(state);
777
- for (let i = 0; i < drop && before[before.length - 1 - i] == " "; i++)
778
- pos--;
779
- targetPos = pos;
780
- } else {
781
- targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;
782
- if (targetPos == pos && line.number != (forward ? state.doc.lines : 1))
783
- targetPos += forward ? 1 : -1;
784
- else if (!forward && /[\ufe00-\ufe0f]/.test(line.text.slice(targetPos - line.from, pos - line.from)))
785
- targetPos = findClusterBreak(line.text, targetPos - line.from, false, false) + line.from;
786
- }
787
- return targetPos;
788
- });
789
- var deleteCharBackward = (view) => deleteByChar(view, false, true);
790
- var deleteCharForward = (view) => deleteByChar(view, true, false);
791
- var deleteByGroup = (target, forward) => deleteBy(target, (range) => {
792
- let pos = range.head, { state } = target, line = state.doc.lineAt(pos);
793
- let categorize = state.charCategorizer(pos);
794
- for (let cat = null; ; ) {
795
- if (pos == (forward ? line.to : line.from)) {
796
- if (pos == range.head && line.number != (forward ? state.doc.lines : 1))
797
- pos += forward ? 1 : -1;
798
- break;
799
- }
800
- let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;
801
- let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);
802
- let nextCat = categorize(nextChar);
803
- if (cat != null && nextCat != cat)
804
- break;
805
- if (nextChar != " " || pos != range.head)
806
- cat = nextCat;
807
- pos = next;
808
- }
809
- return pos;
810
- });
811
- var deleteGroupBackward = (target) => deleteByGroup(target, false);
812
- var deleteGroupForward = (target) => deleteByGroup(target, true);
813
- var deleteToLineEnd = (view) => deleteBy(view, (range) => {
814
- let lineEnd = view.lineBlockAt(range.head).to;
815
- return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);
816
- });
817
- var deleteLineBoundaryBackward = (view) => deleteBy(view, (range) => {
818
- let lineStart = view.moveToLineBoundary(range, false).head;
819
- return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);
820
- });
821
- var deleteLineBoundaryForward = (view) => deleteBy(view, (range) => {
822
- let lineStart = view.moveToLineBoundary(range, true).head;
823
- return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);
824
- });
825
- var splitLine = ({ state, dispatch }) => {
826
- if (state.readOnly)
827
- return false;
828
- let changes = state.changeByRange((range) => {
829
- return {
830
- changes: { from: range.from, to: range.to, insert: Text.of(["", ""]) },
831
- range: EditorSelection.cursor(range.from)
832
- };
833
- });
834
- dispatch(state.update(changes, { scrollIntoView: true, userEvent: "input" }));
835
- return true;
836
- };
837
- var transposeChars = ({ state, dispatch }) => {
838
- if (state.readOnly)
839
- return false;
840
- let changes = state.changeByRange((range) => {
841
- if (!range.empty || range.from == 0 || range.from == state.doc.length)
842
- return { range };
843
- let pos = range.from, line = state.doc.lineAt(pos);
844
- let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;
845
- let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;
846
- return {
847
- changes: { from, to, insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos)) },
848
- range: EditorSelection.cursor(to)
849
- };
850
- });
851
- if (changes.changes.empty)
852
- return false;
853
- dispatch(state.update(changes, { scrollIntoView: true, userEvent: "move.character" }));
854
- return true;
855
- };
856
- function selectedLineBlocks(state) {
857
- let blocks = [], upto = -1;
858
- for (let range of state.selection.ranges) {
859
- let startLine = state.doc.lineAt(range.from), endLine = state.doc.lineAt(range.to);
860
- if (!range.empty && range.to == endLine.from)
861
- endLine = state.doc.lineAt(range.to - 1);
862
- if (upto >= startLine.number) {
863
- let prev = blocks[blocks.length - 1];
864
- prev.to = endLine.to;
865
- prev.ranges.push(range);
866
- } else {
867
- blocks.push({ from: startLine.from, to: endLine.to, ranges: [range] });
868
- }
869
- upto = endLine.number + 1;
870
- }
871
- return blocks;
872
- }
873
- function moveLine(state, dispatch, forward) {
874
- if (state.readOnly)
875
- return false;
876
- let changes = [], ranges = [];
877
- for (let block of selectedLineBlocks(state)) {
878
- if (forward ? block.to == state.doc.length : block.from == 0)
879
- continue;
880
- let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);
881
- let size = nextLine.length + 1;
882
- if (forward) {
883
- changes.push({ from: block.to, to: nextLine.to }, { from: block.from, insert: nextLine.text + state.lineBreak });
884
- for (let r of block.ranges)
885
- ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));
886
- } else {
887
- changes.push({ from: nextLine.from, to: block.from }, { from: block.to, insert: state.lineBreak + nextLine.text });
888
- for (let r of block.ranges)
889
- ranges.push(EditorSelection.range(r.anchor - size, r.head - size));
890
- }
891
- }
892
- if (!changes.length)
893
- return false;
894
- dispatch(state.update({
895
- changes,
896
- scrollIntoView: true,
897
- selection: EditorSelection.create(ranges, state.selection.mainIndex),
898
- userEvent: "move.line"
899
- }));
900
- return true;
901
- }
902
- var moveLineUp = ({ state, dispatch }) => moveLine(state, dispatch, false);
903
- var moveLineDown = ({ state, dispatch }) => moveLine(state, dispatch, true);
904
- function copyLine(state, dispatch, forward) {
905
- if (state.readOnly)
906
- return false;
907
- let changes = [];
908
- for (let block of selectedLineBlocks(state)) {
909
- if (forward)
910
- changes.push({ from: block.from, insert: state.doc.slice(block.from, block.to) + state.lineBreak });
911
- else
912
- changes.push({ from: block.to, insert: state.lineBreak + state.doc.slice(block.from, block.to) });
913
- }
914
- let changeSet = state.changes(changes);
915
- dispatch(state.update({
916
- changes: changeSet,
917
- selection: state.selection.map(changeSet, forward ? 1 : -1),
918
- scrollIntoView: true,
919
- userEvent: "input.copyline"
920
- }));
921
- return true;
922
- }
923
- var copyLineUp = ({ state, dispatch }) => copyLine(state, dispatch, false);
924
- var copyLineDown = ({ state, dispatch }) => copyLine(state, dispatch, true);
925
- var deleteLine = (view) => {
926
- if (view.state.readOnly)
927
- return false;
928
- let { state } = view, changes = state.changes(selectedLineBlocks(state).map(({ from, to }) => {
929
- if (from > 0)
930
- from--;
931
- else if (to < state.doc.length)
932
- to++;
933
- return { from, to };
934
- }));
935
- let selection = updateSel(state.selection, (range) => {
936
- let dist = void 0;
937
- if (view.lineWrapping) {
938
- let block = view.lineBlockAt(range.head), pos = view.coordsAtPos(range.head, range.assoc || 1);
939
- if (pos)
940
- dist = block.bottom + view.documentTop - pos.bottom + view.defaultLineHeight / 2;
941
- }
942
- return view.moveVertically(range, true, dist);
943
- }).map(changes);
944
- view.dispatch({ changes, selection, scrollIntoView: true, userEvent: "delete.line" });
945
- return true;
946
- };
947
- function isBetweenBrackets(state, pos) {
948
- if (/\(\)|\[\]|\{\}/.test(state.sliceDoc(pos - 1, pos + 1)))
949
- return { from: pos, to: pos };
950
- let context = syntaxTree(state).resolveInner(pos);
951
- let before = context.childBefore(pos), after = context.childAfter(pos), closedBy;
952
- if (before && after && before.to <= pos && after.from >= pos && (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 && state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from && !/\S/.test(state.sliceDoc(before.to, after.from)))
953
- return { from: before.to, to: after.from };
954
- return null;
955
- }
956
- var insertNewlineAndIndent = /* @__PURE__ */ newlineAndIndent(false);
957
- var insertBlankLine = /* @__PURE__ */ newlineAndIndent(true);
958
- function newlineAndIndent(atEof) {
959
- return ({ state, dispatch }) => {
960
- if (state.readOnly)
961
- return false;
962
- let changes = state.changeByRange((range) => {
963
- let { from, to } = range, line = state.doc.lineAt(from);
964
- let explode = !atEof && from == to && isBetweenBrackets(state, from);
965
- if (atEof)
966
- from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;
967
- let cx = new IndentContext(state, { simulateBreak: from, simulateDoubleBreak: !!explode });
968
- let indent = getIndentation(cx, from);
969
- if (indent == null)
970
- indent = countColumn(/^\s*/.exec(state.doc.lineAt(from).text)[0], state.tabSize);
971
- while (to < line.to && /\s/.test(line.text[to - line.from]))
972
- to++;
973
- if (explode)
974
- ({ from, to } = explode);
975
- else if (from > line.from && from < line.from + 100 && !/\S/.test(line.text.slice(0, from)))
976
- from = line.from;
977
- let insert = ["", indentString(state, indent)];
978
- if (explode)
979
- insert.push(indentString(state, cx.lineIndent(line.from, -1)));
980
- return {
981
- changes: { from, to, insert: Text.of(insert) },
982
- range: EditorSelection.cursor(from + 1 + insert[1].length)
983
- };
984
- });
985
- dispatch(state.update(changes, { scrollIntoView: true, userEvent: "input" }));
986
- return true;
987
- };
988
- }
989
- function changeBySelectedLine(state, f) {
990
- let atLine = -1;
991
- return state.changeByRange((range) => {
992
- let changes = [];
993
- for (let pos = range.from; pos <= range.to; ) {
994
- let line = state.doc.lineAt(pos);
995
- if (line.number > atLine && (range.empty || range.to > line.from)) {
996
- f(line, changes, range);
997
- atLine = line.number;
998
- }
999
- pos = line.to + 1;
1000
- }
1001
- let changeSet = state.changes(changes);
1002
- return {
1003
- changes,
1004
- range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1))
1005
- };
1006
- });
1007
- }
1008
- var indentSelection = ({ state, dispatch }) => {
1009
- if (state.readOnly)
1010
- return false;
1011
- let updated = /* @__PURE__ */ Object.create(null);
1012
- let context = new IndentContext(state, { overrideIndentation: (start) => {
1013
- let found = updated[start];
1014
- return found == null ? -1 : found;
1015
- } });
1016
- let changes = changeBySelectedLine(state, (line, changes2, range) => {
1017
- let indent = getIndentation(context, line.from);
1018
- if (indent == null)
1019
- return;
1020
- if (!/\S/.test(line.text))
1021
- indent = 0;
1022
- let cur = /^\s*/.exec(line.text)[0];
1023
- let norm = indentString(state, indent);
1024
- if (cur != norm || range.from < line.from + cur.length) {
1025
- updated[line.from] = indent;
1026
- changes2.push({ from: line.from, to: line.from + cur.length, insert: norm });
1027
- }
1028
- });
1029
- if (!changes.changes.empty)
1030
- dispatch(state.update(changes, { userEvent: "indent" }));
1031
- return true;
1032
- };
1033
- var indentMore = ({ state, dispatch }) => {
1034
- if (state.readOnly)
1035
- return false;
1036
- dispatch(state.update(changeBySelectedLine(state, (line, changes) => {
1037
- changes.push({ from: line.from, insert: state.facet(indentUnit) });
1038
- }), { userEvent: "input.indent" }));
1039
- return true;
1040
- };
1041
- var indentLess = ({ state, dispatch }) => {
1042
- if (state.readOnly)
1043
- return false;
1044
- dispatch(state.update(changeBySelectedLine(state, (line, changes) => {
1045
- let space = /^\s*/.exec(line.text)[0];
1046
- if (!space)
1047
- return;
1048
- let col = countColumn(space, state.tabSize), keep = 0;
1049
- let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));
1050
- while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep))
1051
- keep++;
1052
- changes.push({ from: line.from + keep, to: line.from + space.length, insert: insert.slice(keep) });
1053
- }), { userEvent: "delete.dedent" }));
1054
- return true;
1055
- };
1056
- var toggleTabFocusMode = (view) => {
1057
- view.setTabFocusMode();
1058
- return true;
1059
- };
1060
- var emacsStyleKeymap = [
1061
- { key: "Ctrl-b", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },
1062
- { key: "Ctrl-f", run: cursorCharRight, shift: selectCharRight },
1063
- { key: "Ctrl-p", run: cursorLineUp, shift: selectLineUp },
1064
- { key: "Ctrl-n", run: cursorLineDown, shift: selectLineDown },
1065
- { key: "Ctrl-a", run: cursorLineStart, shift: selectLineStart },
1066
- { key: "Ctrl-e", run: cursorLineEnd, shift: selectLineEnd },
1067
- { key: "Ctrl-d", run: deleteCharForward },
1068
- { key: "Ctrl-h", run: deleteCharBackward },
1069
- { key: "Ctrl-k", run: deleteToLineEnd },
1070
- { key: "Ctrl-Alt-h", run: deleteGroupBackward },
1071
- { key: "Ctrl-o", run: splitLine },
1072
- { key: "Ctrl-t", run: transposeChars },
1073
- { key: "Ctrl-v", run: cursorPageDown }
1074
- ];
1075
- var standardKeymap = /* @__PURE__ */ [
1076
- { key: "ArrowLeft", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },
1077
- { key: "Mod-ArrowLeft", mac: "Alt-ArrowLeft", run: cursorGroupLeft, shift: selectGroupLeft, preventDefault: true },
1078
- { mac: "Cmd-ArrowLeft", run: cursorLineBoundaryLeft, shift: selectLineBoundaryLeft, preventDefault: true },
1079
- { key: "ArrowRight", run: cursorCharRight, shift: selectCharRight, preventDefault: true },
1080
- { key: "Mod-ArrowRight", mac: "Alt-ArrowRight", run: cursorGroupRight, shift: selectGroupRight, preventDefault: true },
1081
- { mac: "Cmd-ArrowRight", run: cursorLineBoundaryRight, shift: selectLineBoundaryRight, preventDefault: true },
1082
- { key: "ArrowUp", run: cursorLineUp, shift: selectLineUp, preventDefault: true },
1083
- { mac: "Cmd-ArrowUp", run: cursorDocStart, shift: selectDocStart },
1084
- { mac: "Ctrl-ArrowUp", run: cursorPageUp, shift: selectPageUp },
1085
- { key: "ArrowDown", run: cursorLineDown, shift: selectLineDown, preventDefault: true },
1086
- { mac: "Cmd-ArrowDown", run: cursorDocEnd, shift: selectDocEnd },
1087
- { mac: "Ctrl-ArrowDown", run: cursorPageDown, shift: selectPageDown },
1088
- { key: "PageUp", run: cursorPageUp, shift: selectPageUp },
1089
- { key: "PageDown", run: cursorPageDown, shift: selectPageDown },
1090
- { key: "Home", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward, preventDefault: true },
1091
- { key: "Mod-Home", run: cursorDocStart, shift: selectDocStart },
1092
- { key: "End", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward, preventDefault: true },
1093
- { key: "Mod-End", run: cursorDocEnd, shift: selectDocEnd },
1094
- { key: "Enter", run: insertNewlineAndIndent, shift: insertNewlineAndIndent },
1095
- { key: "Mod-a", run: selectAll },
1096
- { key: "Backspace", run: deleteCharBackward, shift: deleteCharBackward, preventDefault: true },
1097
- { key: "Delete", run: deleteCharForward, preventDefault: true },
1098
- { key: "Mod-Backspace", mac: "Alt-Backspace", run: deleteGroupBackward, preventDefault: true },
1099
- { key: "Mod-Delete", mac: "Alt-Delete", run: deleteGroupForward, preventDefault: true },
1100
- { mac: "Mod-Backspace", run: deleteLineBoundaryBackward, preventDefault: true },
1101
- { mac: "Mod-Delete", run: deleteLineBoundaryForward, preventDefault: true }
1102
- ].concat(/* @__PURE__ */ emacsStyleKeymap.map((b) => ({ mac: b.key, run: b.run, shift: b.shift })));
1103
- var defaultKeymap = /* @__PURE__ */ [
1104
- { key: "Alt-ArrowLeft", mac: "Ctrl-ArrowLeft", run: cursorSyntaxLeft, shift: selectSyntaxLeft },
1105
- { key: "Alt-ArrowRight", mac: "Ctrl-ArrowRight", run: cursorSyntaxRight, shift: selectSyntaxRight },
1106
- { key: "Alt-ArrowUp", run: moveLineUp },
1107
- { key: "Shift-Alt-ArrowUp", run: copyLineUp },
1108
- { key: "Alt-ArrowDown", run: moveLineDown },
1109
- { key: "Shift-Alt-ArrowDown", run: copyLineDown },
1110
- { key: "Mod-Alt-ArrowUp", run: addCursorAbove },
1111
- { key: "Mod-Alt-ArrowDown", run: addCursorBelow },
1112
- { key: "Escape", run: simplifySelection },
1113
- { key: "Mod-Enter", run: insertBlankLine },
1114
- { key: "Alt-l", mac: "Ctrl-l", run: selectLine },
1115
- { key: "Mod-i", run: selectParentSyntax, preventDefault: true },
1116
- { key: "Mod-[", run: indentLess },
1117
- { key: "Mod-]", run: indentMore },
1118
- { key: "Mod-Alt-\\", run: indentSelection },
1119
- { key: "Shift-Mod-k", run: deleteLine },
1120
- { key: "Shift-Mod-\\", run: cursorMatchingBracket },
1121
- { key: "Mod-/", run: toggleComment },
1122
- { key: "Alt-A", run: toggleBlockComment },
1123
- { key: "Ctrl-m", mac: "Shift-Alt-m", run: toggleTabFocusMode }
1124
- ].concat(standardKeymap);
1125
- var indentWithTab = { key: "Tab", run: indentMore, shift: indentLess };
1126
-
1127
- // ../node_modules/.pnpm/@codemirror+language-data@6.5.2/node_modules/@codemirror/language-data/dist/index.js
1128
- function legacy(parser) {
1129
- return new LanguageSupport(StreamLanguage.define(parser));
1130
- }
1131
- function sql(dialectName) {
1132
- return import("../dist-UHUU7KLC.js").then((m) => m.sql({ dialect: m[dialectName] }));
1133
- }
1134
- var languages = [
1135
- // New-style language modes
1136
- /* @__PURE__ */ LanguageDescription.of({
1137
- name: "C",
1138
- extensions: ["c", "h", "ino"],
1139
- load() {
1140
- return import("../dist-HHNZE2GE.js").then((m) => m.cpp());
1141
- }
1142
- }),
1143
- /* @__PURE__ */ LanguageDescription.of({
1144
- name: "C++",
1145
- alias: ["cpp"],
1146
- extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
1147
- load() {
1148
- return import("../dist-HHNZE2GE.js").then((m) => m.cpp());
1149
- }
1150
- }),
1151
- /* @__PURE__ */ LanguageDescription.of({
1152
- name: "CQL",
1153
- alias: ["cassandra"],
1154
- extensions: ["cql"],
1155
- load() {
1156
- return sql("Cassandra");
1157
- }
1158
- }),
1159
- /* @__PURE__ */ LanguageDescription.of({
1160
- name: "CSS",
1161
- extensions: ["css"],
1162
- load() {
1163
- return import("../dist-52S6W6Z3.js").then((m) => m.css());
1164
- }
1165
- }),
1166
- /* @__PURE__ */ LanguageDescription.of({
1167
- name: "Go",
1168
- extensions: ["go"],
1169
- load() {
1170
- return import("../dist-WJMBFK7W.js").then((m) => m.go());
1171
- }
1172
- }),
1173
- /* @__PURE__ */ LanguageDescription.of({
1174
- name: "HTML",
1175
- alias: ["xhtml"],
1176
- extensions: ["html", "htm", "handlebars", "hbs"],
1177
- load() {
1178
- return import("../dist-BOGB4NCA.js").then((m) => m.html());
1179
- }
1180
- }),
1181
- /* @__PURE__ */ LanguageDescription.of({
1182
- name: "Java",
1183
- extensions: ["java"],
1184
- load() {
1185
- return import("../dist-XJYSXJ7H.js").then((m) => m.java());
1186
- }
1187
- }),
1188
- /* @__PURE__ */ LanguageDescription.of({
1189
- name: "JavaScript",
1190
- alias: ["ecmascript", "js", "node"],
1191
- extensions: ["js", "mjs", "cjs"],
1192
- load() {
1193
- return import("../dist-HNH74YPL.js").then((m) => m.javascript());
1194
- }
1195
- }),
1196
- /* @__PURE__ */ LanguageDescription.of({
1197
- name: "Jinja",
1198
- extensions: ["j2", "jinja", "jinja2"],
1199
- load() {
1200
- return import("../dist-DZ4PW5HP.js").then((m) => m.jinja());
1201
- }
1202
- }),
1203
- /* @__PURE__ */ LanguageDescription.of({
1204
- name: "JSON",
1205
- alias: ["json5"],
1206
- extensions: ["json", "map"],
1207
- load() {
1208
- return import("../dist-2C6IPJHB.js").then((m) => m.json());
1209
- }
1210
- }),
1211
- /* @__PURE__ */ LanguageDescription.of({
1212
- name: "JSX",
1213
- extensions: ["jsx"],
1214
- load() {
1215
- return import("../dist-HNH74YPL.js").then((m) => m.javascript({ jsx: true }));
1216
- }
1217
- }),
1218
- /* @__PURE__ */ LanguageDescription.of({
1219
- name: "LESS",
1220
- extensions: ["less"],
1221
- load() {
1222
- return import("../dist-2H653DKD.js").then((m) => m.less());
1223
- }
1224
- }),
1225
- /* @__PURE__ */ LanguageDescription.of({
1226
- name: "Liquid",
1227
- extensions: ["liquid"],
1228
- load() {
1229
- return import("../dist-5KN6ODPO.js").then((m) => m.liquid());
1230
- }
1231
- }),
1232
- /* @__PURE__ */ LanguageDescription.of({
1233
- name: "MariaDB SQL",
1234
- load() {
1235
- return sql("MariaSQL");
1236
- }
1237
- }),
1238
- /* @__PURE__ */ LanguageDescription.of({
1239
- name: "Markdown",
1240
- extensions: ["md", "markdown", "mkd"],
1241
- load() {
1242
- return import("../dist-LBQUKRIG.js").then((m) => m.markdown());
1243
- }
1244
- }),
1245
- /* @__PURE__ */ LanguageDescription.of({
1246
- name: "MS SQL",
1247
- load() {
1248
- return sql("MSSQL");
1249
- }
1250
- }),
1251
- /* @__PURE__ */ LanguageDescription.of({
1252
- name: "MySQL",
1253
- load() {
1254
- return sql("MySQL");
1255
- }
1256
- }),
1257
- /* @__PURE__ */ LanguageDescription.of({
1258
- name: "PHP",
1259
- extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
1260
- load() {
1261
- return import("../dist-NISFJM3T.js").then((m) => m.php());
1262
- }
1263
- }),
1264
- /* @__PURE__ */ LanguageDescription.of({
1265
- name: "PLSQL",
1266
- extensions: ["pls"],
1267
- load() {
1268
- return sql("PLSQL");
1269
- }
1270
- }),
1271
- /* @__PURE__ */ LanguageDescription.of({
1272
- name: "PostgreSQL",
1273
- load() {
1274
- return sql("PostgreSQL");
1275
- }
1276
- }),
1277
- /* @__PURE__ */ LanguageDescription.of({
1278
- name: "Python",
1279
- extensions: ["BUILD", "bzl", "py", "pyw"],
1280
- filename: /^(BUCK|BUILD)$/,
1281
- load() {
1282
- return import("../dist-Q7P6VH6H.js").then((m) => m.python());
1283
- }
1284
- }),
1285
- /* @__PURE__ */ LanguageDescription.of({
1286
- name: "Rust",
1287
- extensions: ["rs"],
1288
- load() {
1289
- return import("../dist-YY24ZXZD.js").then((m) => m.rust());
1290
- }
1291
- }),
1292
- /* @__PURE__ */ LanguageDescription.of({
1293
- name: "Sass",
1294
- extensions: ["sass"],
1295
- load() {
1296
- return import("../dist-G2KVVLNT.js").then((m) => m.sass({ indented: true }));
1297
- }
1298
- }),
1299
- /* @__PURE__ */ LanguageDescription.of({
1300
- name: "SCSS",
1301
- extensions: ["scss"],
1302
- load() {
1303
- return import("../dist-G2KVVLNT.js").then((m) => m.sass());
1304
- }
1305
- }),
1306
- /* @__PURE__ */ LanguageDescription.of({
1307
- name: "SQL",
1308
- extensions: ["sql"],
1309
- load() {
1310
- return sql("StandardSQL");
1311
- }
1312
- }),
1313
- /* @__PURE__ */ LanguageDescription.of({
1314
- name: "SQLite",
1315
- load() {
1316
- return sql("SQLite");
1317
- }
1318
- }),
1319
- /* @__PURE__ */ LanguageDescription.of({
1320
- name: "TSX",
1321
- extensions: ["tsx"],
1322
- load() {
1323
- return import("../dist-HNH74YPL.js").then((m) => m.javascript({ jsx: true, typescript: true }));
1324
- }
1325
- }),
1326
- /* @__PURE__ */ LanguageDescription.of({
1327
- name: "TypeScript",
1328
- alias: ["ts"],
1329
- extensions: ["ts", "mts", "cts"],
1330
- load() {
1331
- return import("../dist-HNH74YPL.js").then((m) => m.javascript({ typescript: true }));
1332
- }
1333
- }),
1334
- /* @__PURE__ */ LanguageDescription.of({
1335
- name: "WebAssembly",
1336
- extensions: ["wat", "wast"],
1337
- load() {
1338
- return import("../dist-2UJRV4FH.js").then((m) => m.wast());
1339
- }
1340
- }),
1341
- /* @__PURE__ */ LanguageDescription.of({
1342
- name: "XML",
1343
- alias: ["rss", "wsdl", "xsd"],
1344
- extensions: ["xml", "xsl", "xsd", "svg"],
1345
- load() {
1346
- return import("../dist-MFKCWPLQ.js").then((m) => m.xml());
1347
- }
1348
- }),
1349
- /* @__PURE__ */ LanguageDescription.of({
1350
- name: "YAML",
1351
- alias: ["yml"],
1352
- extensions: ["yaml", "yml"],
1353
- load() {
1354
- return import("../dist-RWF5A5GN.js").then((m) => m.yaml());
1355
- }
1356
- }),
1357
- // Legacy modes ported from CodeMirror 5
1358
- /* @__PURE__ */ LanguageDescription.of({
1359
- name: "APL",
1360
- extensions: ["dyalog", "apl"],
1361
- load() {
1362
- return import("../apl-QAIM2KBM.js").then((m) => legacy(m.apl));
1363
- }
1364
- }),
1365
- /* @__PURE__ */ LanguageDescription.of({
1366
- name: "PGP",
1367
- alias: ["asciiarmor"],
1368
- extensions: ["asc", "pgp", "sig"],
1369
- load() {
1370
- return import("../asciiarmor-G7UKQURA.js").then((m) => legacy(m.asciiArmor));
1371
- }
1372
- }),
1373
- /* @__PURE__ */ LanguageDescription.of({
1374
- name: "ASN.1",
1375
- extensions: ["asn", "asn1"],
1376
- load() {
1377
- return import("../asn1-JTUXKWKT.js").then((m) => legacy(m.asn1({})));
1378
- }
1379
- }),
1380
- /* @__PURE__ */ LanguageDescription.of({
1381
- name: "Asterisk",
1382
- filename: /^extensions\.conf$/i,
1383
- load() {
1384
- return import("../asterisk-NM6JCXOL.js").then((m) => legacy(m.asterisk));
1385
- }
1386
- }),
1387
- /* @__PURE__ */ LanguageDescription.of({
1388
- name: "Brainfuck",
1389
- extensions: ["b", "bf"],
1390
- load() {
1391
- return import("../brainfuck-X7FFM55E.js").then((m) => legacy(m.brainfuck));
1392
- }
1393
- }),
1394
- /* @__PURE__ */ LanguageDescription.of({
1395
- name: "Cobol",
1396
- extensions: ["cob", "cpy"],
1397
- load() {
1398
- return import("../cobol-HAM4C42S.js").then((m) => legacy(m.cobol));
1399
- }
1400
- }),
1401
- /* @__PURE__ */ LanguageDescription.of({
1402
- name: "C#",
1403
- alias: ["csharp", "cs"],
1404
- extensions: ["cs"],
1405
- load() {
1406
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.csharp));
1407
- }
1408
- }),
1409
- /* @__PURE__ */ LanguageDescription.of({
1410
- name: "Clojure",
1411
- extensions: ["clj", "cljc", "cljx"],
1412
- load() {
1413
- return import("../clojure-PTADSDNF.js").then((m) => legacy(m.clojure));
1414
- }
1415
- }),
1416
- /* @__PURE__ */ LanguageDescription.of({
1417
- name: "ClojureScript",
1418
- extensions: ["cljs"],
1419
- load() {
1420
- return import("../clojure-PTADSDNF.js").then((m) => legacy(m.clojure));
1421
- }
1422
- }),
1423
- /* @__PURE__ */ LanguageDescription.of({
1424
- name: "Closure Stylesheets (GSS)",
1425
- extensions: ["gss"],
1426
- load() {
1427
- return import("../css-VQQXA3AY.js").then((m) => legacy(m.gss));
1428
- }
1429
- }),
1430
- /* @__PURE__ */ LanguageDescription.of({
1431
- name: "CMake",
1432
- extensions: ["cmake", "cmake.in"],
1433
- filename: /^CMakeLists\.txt$/,
1434
- load() {
1435
- return import("../cmake-5HAC7YMH.js").then((m) => legacy(m.cmake));
1436
- }
1437
- }),
1438
- /* @__PURE__ */ LanguageDescription.of({
1439
- name: "CoffeeScript",
1440
- alias: ["coffee", "coffee-script"],
1441
- extensions: ["coffee"],
1442
- load() {
1443
- return import("../coffeescript-IBRKASSJ.js").then((m) => legacy(m.coffeeScript));
1444
- }
1445
- }),
1446
- /* @__PURE__ */ LanguageDescription.of({
1447
- name: "Common Lisp",
1448
- alias: ["lisp"],
1449
- extensions: ["cl", "lisp", "el"],
1450
- load() {
1451
- return import("../commonlisp-KMRPB5EW.js").then((m) => legacy(m.commonLisp));
1452
- }
1453
- }),
1454
- /* @__PURE__ */ LanguageDescription.of({
1455
- name: "Cypher",
1456
- extensions: ["cyp", "cypher"],
1457
- load() {
1458
- return import("../cypher-ZZEGDGDJ.js").then((m) => legacy(m.cypher));
1459
- }
1460
- }),
1461
- /* @__PURE__ */ LanguageDescription.of({
1462
- name: "Cython",
1463
- extensions: ["pyx", "pxd", "pxi"],
1464
- load() {
1465
- return import("../python-A6P3XTMX.js").then((m) => legacy(m.cython));
1466
- }
1467
- }),
1468
- /* @__PURE__ */ LanguageDescription.of({
1469
- name: "Crystal",
1470
- extensions: ["cr"],
1471
- load() {
1472
- return import("../crystal-2MDF4EKJ.js").then((m) => legacy(m.crystal));
1473
- }
1474
- }),
1475
- /* @__PURE__ */ LanguageDescription.of({
1476
- name: "D",
1477
- extensions: ["d"],
1478
- load() {
1479
- return import("../d-5S6PJOOT.js").then((m) => legacy(m.d));
1480
- }
1481
- }),
1482
- /* @__PURE__ */ LanguageDescription.of({
1483
- name: "Dart",
1484
- extensions: ["dart"],
1485
- load() {
1486
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.dart));
1487
- }
1488
- }),
1489
- /* @__PURE__ */ LanguageDescription.of({
1490
- name: "diff",
1491
- extensions: ["diff", "patch"],
1492
- load() {
1493
- return import("../diff-S77XBOWF.js").then((m) => legacy(m.diff));
1494
- }
1495
- }),
1496
- /* @__PURE__ */ LanguageDescription.of({
1497
- name: "Dockerfile",
1498
- filename: /^Dockerfile$/,
1499
- load() {
1500
- return import("../dockerfile-JECCOJWP.js").then((m) => legacy(m.dockerFile));
1501
- }
1502
- }),
1503
- /* @__PURE__ */ LanguageDescription.of({
1504
- name: "DTD",
1505
- extensions: ["dtd"],
1506
- load() {
1507
- return import("../dtd-MNDWTW4Z.js").then((m) => legacy(m.dtd));
1508
- }
1509
- }),
1510
- /* @__PURE__ */ LanguageDescription.of({
1511
- name: "Dylan",
1512
- extensions: ["dylan", "dyl", "intr"],
1513
- load() {
1514
- return import("../dylan-VQ4IHJDS.js").then((m) => legacy(m.dylan));
1515
- }
1516
- }),
1517
- /* @__PURE__ */ LanguageDescription.of({
1518
- name: "EBNF",
1519
- load() {
1520
- return import("../ebnf-IDZBFTCG.js").then((m) => legacy(m.ebnf));
1521
- }
1522
- }),
1523
- /* @__PURE__ */ LanguageDescription.of({
1524
- name: "ECL",
1525
- extensions: ["ecl"],
1526
- load() {
1527
- return import("../ecl-X3ROY7E6.js").then((m) => legacy(m.ecl));
1528
- }
1529
- }),
1530
- /* @__PURE__ */ LanguageDescription.of({
1531
- name: "edn",
1532
- extensions: ["edn"],
1533
- load() {
1534
- return import("../clojure-PTADSDNF.js").then((m) => legacy(m.clojure));
1535
- }
1536
- }),
1537
- /* @__PURE__ */ LanguageDescription.of({
1538
- name: "Eiffel",
1539
- extensions: ["e"],
1540
- load() {
1541
- return import("../eiffel-WB3M7Y2E.js").then((m) => legacy(m.eiffel));
1542
- }
1543
- }),
1544
- /* @__PURE__ */ LanguageDescription.of({
1545
- name: "Elm",
1546
- extensions: ["elm"],
1547
- load() {
1548
- return import("../elm-VHXR6ZA3.js").then((m) => legacy(m.elm));
1549
- }
1550
- }),
1551
- /* @__PURE__ */ LanguageDescription.of({
1552
- name: "Erlang",
1553
- extensions: ["erl"],
1554
- load() {
1555
- return import("../erlang-7ZBDDQDV.js").then((m) => legacy(m.erlang));
1556
- }
1557
- }),
1558
- /* @__PURE__ */ LanguageDescription.of({
1559
- name: "Esper",
1560
- load() {
1561
- return import("../sql-ML2Q43YF.js").then((m) => legacy(m.esper));
1562
- }
1563
- }),
1564
- /* @__PURE__ */ LanguageDescription.of({
1565
- name: "Factor",
1566
- extensions: ["factor"],
1567
- load() {
1568
- return import("../factor-IKT2GQE2.js").then((m) => legacy(m.factor));
1569
- }
1570
- }),
1571
- /* @__PURE__ */ LanguageDescription.of({
1572
- name: "FCL",
1573
- load() {
1574
- return import("../fcl-CNBUVGUC.js").then((m) => legacy(m.fcl));
1575
- }
1576
- }),
1577
- /* @__PURE__ */ LanguageDescription.of({
1578
- name: "Forth",
1579
- extensions: ["forth", "fth", "4th"],
1580
- load() {
1581
- return import("../forth-4BTPWSFZ.js").then((m) => legacy(m.forth));
1582
- }
1583
- }),
1584
- /* @__PURE__ */ LanguageDescription.of({
1585
- name: "Fortran",
1586
- extensions: ["f", "for", "f77", "f90", "f95"],
1587
- load() {
1588
- return import("../fortran-V6F5DQPK.js").then((m) => legacy(m.fortran));
1589
- }
1590
- }),
1591
- /* @__PURE__ */ LanguageDescription.of({
1592
- name: "F#",
1593
- alias: ["fsharp"],
1594
- extensions: ["fs"],
1595
- load() {
1596
- return import("../mllike-C2YS6SJI.js").then((m) => legacy(m.fSharp));
1597
- }
1598
- }),
1599
- /* @__PURE__ */ LanguageDescription.of({
1600
- name: "Gas",
1601
- extensions: ["s"],
1602
- load() {
1603
- return import("../gas-4DLP6BC4.js").then((m) => legacy(m.gas));
1604
- }
1605
- }),
1606
- /* @__PURE__ */ LanguageDescription.of({
1607
- name: "Gherkin",
1608
- extensions: ["feature"],
1609
- load() {
1610
- return import("../gherkin-OSGPX6HI.js").then((m) => legacy(m.gherkin));
1611
- }
1612
- }),
1613
- /* @__PURE__ */ LanguageDescription.of({
1614
- name: "Groovy",
1615
- extensions: ["groovy", "gradle"],
1616
- filename: /^Jenkinsfile$/,
1617
- load() {
1618
- return import("../groovy-R2JW63QF.js").then((m) => legacy(m.groovy));
1619
- }
1620
- }),
1621
- /* @__PURE__ */ LanguageDescription.of({
1622
- name: "Haskell",
1623
- extensions: ["hs"],
1624
- load() {
1625
- return import("../haskell-GG7T4J6H.js").then((m) => legacy(m.haskell));
1626
- }
1627
- }),
1628
- /* @__PURE__ */ LanguageDescription.of({
1629
- name: "Haxe",
1630
- extensions: ["hx"],
1631
- load() {
1632
- return import("../haxe-ESFUJKSE.js").then((m) => legacy(m.haxe));
1633
- }
1634
- }),
1635
- /* @__PURE__ */ LanguageDescription.of({
1636
- name: "HXML",
1637
- extensions: ["hxml"],
1638
- load() {
1639
- return import("../haxe-ESFUJKSE.js").then((m) => legacy(m.hxml));
1640
- }
1641
- }),
1642
- /* @__PURE__ */ LanguageDescription.of({
1643
- name: "HTTP",
1644
- load() {
1645
- return import("../http-SZLSACOW.js").then((m) => legacy(m.http));
1646
- }
1647
- }),
1648
- /* @__PURE__ */ LanguageDescription.of({
1649
- name: "IDL",
1650
- extensions: ["pro"],
1651
- load() {
1652
- return import("../idl-V7UH35RP.js").then((m) => legacy(m.idl));
1653
- }
1654
- }),
1655
- /* @__PURE__ */ LanguageDescription.of({
1656
- name: "JSON-LD",
1657
- alias: ["jsonld"],
1658
- extensions: ["jsonld"],
1659
- load() {
1660
- return import("../javascript-MGRPKFDN.js").then((m) => legacy(m.jsonld));
1661
- }
1662
- }),
1663
- /* @__PURE__ */ LanguageDescription.of({
1664
- name: "Julia",
1665
- extensions: ["jl"],
1666
- load() {
1667
- return import("../julia-CWCVZVPG.js").then((m) => legacy(m.julia));
1668
- }
1669
- }),
1670
- /* @__PURE__ */ LanguageDescription.of({
1671
- name: "Kotlin",
1672
- extensions: ["kt", "kts"],
1673
- load() {
1674
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.kotlin));
1675
- }
1676
- }),
1677
- /* @__PURE__ */ LanguageDescription.of({
1678
- name: "LiveScript",
1679
- alias: ["ls"],
1680
- extensions: ["ls"],
1681
- load() {
1682
- return import("../livescript-IGKT2FL7.js").then((m) => legacy(m.liveScript));
1683
- }
1684
- }),
1685
- /* @__PURE__ */ LanguageDescription.of({
1686
- name: "Lua",
1687
- extensions: ["lua"],
1688
- load() {
1689
- return import("../lua-GHK7GCTS.js").then((m) => legacy(m.lua));
1690
- }
1691
- }),
1692
- /* @__PURE__ */ LanguageDescription.of({
1693
- name: "mIRC",
1694
- extensions: ["mrc"],
1695
- load() {
1696
- return import("../mirc-WYJEQUBY.js").then((m) => legacy(m.mirc));
1697
- }
1698
- }),
1699
- /* @__PURE__ */ LanguageDescription.of({
1700
- name: "Mathematica",
1701
- extensions: ["m", "nb", "wl", "wls"],
1702
- load() {
1703
- return import("../mathematica-W5LMQI3M.js").then((m) => legacy(m.mathematica));
1704
- }
1705
- }),
1706
- /* @__PURE__ */ LanguageDescription.of({
1707
- name: "Modelica",
1708
- extensions: ["mo"],
1709
- load() {
1710
- return import("../modelica-BMJSLZS7.js").then((m) => legacy(m.modelica));
1711
- }
1712
- }),
1713
- /* @__PURE__ */ LanguageDescription.of({
1714
- name: "MUMPS",
1715
- extensions: ["mps"],
1716
- load() {
1717
- return import("../mumps-BYE6H7ZX.js").then((m) => legacy(m.mumps));
1718
- }
1719
- }),
1720
- /* @__PURE__ */ LanguageDescription.of({
1721
- name: "Mbox",
1722
- extensions: ["mbox"],
1723
- load() {
1724
- return import("../mbox-A7CXJ4HZ.js").then((m) => legacy(m.mbox));
1725
- }
1726
- }),
1727
- /* @__PURE__ */ LanguageDescription.of({
1728
- name: "Nginx",
1729
- filename: /nginx.*\.conf$/i,
1730
- load() {
1731
- return import("../nginx-Y54HR7MQ.js").then((m) => legacy(m.nginx));
1732
- }
1733
- }),
1734
- /* @__PURE__ */ LanguageDescription.of({
1735
- name: "NSIS",
1736
- extensions: ["nsh", "nsi"],
1737
- load() {
1738
- return import("../nsis-UZLPE2DL.js").then((m) => legacy(m.nsis));
1739
- }
1740
- }),
1741
- /* @__PURE__ */ LanguageDescription.of({
1742
- name: "NTriples",
1743
- extensions: ["nt", "nq"],
1744
- load() {
1745
- return import("../ntriples-SAI3J2VH.js").then((m) => legacy(m.ntriples));
1746
- }
1747
- }),
1748
- /* @__PURE__ */ LanguageDescription.of({
1749
- name: "Objective-C",
1750
- alias: ["objective-c", "objc"],
1751
- extensions: ["m"],
1752
- load() {
1753
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.objectiveC));
1754
- }
1755
- }),
1756
- /* @__PURE__ */ LanguageDescription.of({
1757
- name: "Objective-C++",
1758
- alias: ["objective-c++", "objc++"],
1759
- extensions: ["mm"],
1760
- load() {
1761
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.objectiveCpp));
1762
- }
1763
- }),
1764
- /* @__PURE__ */ LanguageDescription.of({
1765
- name: "OCaml",
1766
- extensions: ["ml", "mli", "mll", "mly"],
1767
- load() {
1768
- return import("../mllike-C2YS6SJI.js").then((m) => legacy(m.oCaml));
1769
- }
1770
- }),
1771
- /* @__PURE__ */ LanguageDescription.of({
1772
- name: "Octave",
1773
- extensions: ["m"],
1774
- load() {
1775
- return import("../octave-TLUBYOUX.js").then((m) => legacy(m.octave));
1776
- }
1777
- }),
1778
- /* @__PURE__ */ LanguageDescription.of({
1779
- name: "Oz",
1780
- extensions: ["oz"],
1781
- load() {
1782
- return import("../oz-F6LNIR6Q.js").then((m) => legacy(m.oz));
1783
- }
1784
- }),
1785
- /* @__PURE__ */ LanguageDescription.of({
1786
- name: "Pascal",
1787
- extensions: ["p", "pas"],
1788
- load() {
1789
- return import("../pascal-WINE2FE6.js").then((m) => legacy(m.pascal));
1790
- }
1791
- }),
1792
- /* @__PURE__ */ LanguageDescription.of({
1793
- name: "Perl",
1794
- extensions: ["pl", "pm"],
1795
- load() {
1796
- return import("../perl-NZG3EIBE.js").then((m) => legacy(m.perl));
1797
- }
1798
- }),
1799
- /* @__PURE__ */ LanguageDescription.of({
1800
- name: "Pig",
1801
- extensions: ["pig"],
1802
- load() {
1803
- return import("../pig-U7OFLRCV.js").then((m) => legacy(m.pig));
1804
- }
1805
- }),
1806
- /* @__PURE__ */ LanguageDescription.of({
1807
- name: "PowerShell",
1808
- extensions: ["ps1", "psd1", "psm1"],
1809
- load() {
1810
- return import("../powershell-ZSUS7P6D.js").then((m) => legacy(m.powerShell));
1811
- }
1812
- }),
1813
- /* @__PURE__ */ LanguageDescription.of({
1814
- name: "Properties files",
1815
- alias: ["ini", "properties"],
1816
- extensions: ["properties", "ini", "in"],
1817
- load() {
1818
- return import("../properties-IJRU6UJW.js").then((m) => legacy(m.properties));
1819
- }
1820
- }),
1821
- /* @__PURE__ */ LanguageDescription.of({
1822
- name: "ProtoBuf",
1823
- extensions: ["proto"],
1824
- load() {
1825
- return import("../protobuf-2KETQIQ5.js").then((m) => legacy(m.protobuf));
1826
- }
1827
- }),
1828
- /* @__PURE__ */ LanguageDescription.of({
1829
- name: "Pug",
1830
- alias: ["jade"],
1831
- extensions: ["pug", "jade"],
1832
- load() {
1833
- return import("../pug-IQCJJAZU.js").then((m) => legacy(m.pug));
1834
- }
1835
- }),
1836
- /* @__PURE__ */ LanguageDescription.of({
1837
- name: "Puppet",
1838
- extensions: ["pp"],
1839
- load() {
1840
- return import("../puppet-YIIDDH6A.js").then((m) => legacy(m.puppet));
1841
- }
1842
- }),
1843
- /* @__PURE__ */ LanguageDescription.of({
1844
- name: "Q",
1845
- extensions: ["q"],
1846
- load() {
1847
- return import("../q-2KXN5RX7.js").then((m) => legacy(m.q));
1848
- }
1849
- }),
1850
- /* @__PURE__ */ LanguageDescription.of({
1851
- name: "R",
1852
- alias: ["rscript"],
1853
- extensions: ["r", "R"],
1854
- load() {
1855
- return import("../r-BB4MIIBH.js").then((m) => legacy(m.r));
1856
- }
1857
- }),
1858
- /* @__PURE__ */ LanguageDescription.of({
1859
- name: "RPM Changes",
1860
- load() {
1861
- return import("../rpm-LMR25AQ3.js").then((m) => legacy(m.rpmChanges));
1862
- }
1863
- }),
1864
- /* @__PURE__ */ LanguageDescription.of({
1865
- name: "RPM Spec",
1866
- extensions: ["spec"],
1867
- load() {
1868
- return import("../rpm-LMR25AQ3.js").then((m) => legacy(m.rpmSpec));
1869
- }
1870
- }),
1871
- /* @__PURE__ */ LanguageDescription.of({
1872
- name: "Ruby",
1873
- alias: ["jruby", "macruby", "rake", "rb", "rbx"],
1874
- extensions: ["rb"],
1875
- filename: /^(Gemfile|Rakefile)$/,
1876
- load() {
1877
- return import("../ruby-TSD6FT73.js").then((m) => legacy(m.ruby));
1878
- }
1879
- }),
1880
- /* @__PURE__ */ LanguageDescription.of({
1881
- name: "SAS",
1882
- extensions: ["sas"],
1883
- load() {
1884
- return import("../sas-6X4WWIGV.js").then((m) => legacy(m.sas));
1885
- }
1886
- }),
1887
- /* @__PURE__ */ LanguageDescription.of({
1888
- name: "Scala",
1889
- extensions: ["scala"],
1890
- load() {
1891
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.scala));
1892
- }
1893
- }),
1894
- /* @__PURE__ */ LanguageDescription.of({
1895
- name: "Scheme",
1896
- extensions: ["scm", "ss"],
1897
- load() {
1898
- return import("../scheme-E3I46HBL.js").then((m) => legacy(m.scheme));
1899
- }
1900
- }),
1901
- /* @__PURE__ */ LanguageDescription.of({
1902
- name: "Shell",
1903
- alias: ["bash", "sh", "zsh"],
1904
- extensions: ["sh", "ksh", "bash"],
1905
- filename: /^PKGBUILD$/,
1906
- load() {
1907
- return import("../shell-GX3PRI4I.js").then((m) => legacy(m.shell));
1908
- }
1909
- }),
1910
- /* @__PURE__ */ LanguageDescription.of({
1911
- name: "Sieve",
1912
- extensions: ["siv", "sieve"],
1913
- load() {
1914
- return import("../sieve-V65ZPL4F.js").then((m) => legacy(m.sieve));
1915
- }
1916
- }),
1917
- /* @__PURE__ */ LanguageDescription.of({
1918
- name: "Smalltalk",
1919
- extensions: ["st"],
1920
- load() {
1921
- return import("../smalltalk-OVKP2CVW.js").then((m) => legacy(m.smalltalk));
1922
- }
1923
- }),
1924
- /* @__PURE__ */ LanguageDescription.of({
1925
- name: "Solr",
1926
- load() {
1927
- return import("../solr-C4DLQJCF.js").then((m) => legacy(m.solr));
1928
- }
1929
- }),
1930
- /* @__PURE__ */ LanguageDescription.of({
1931
- name: "SML",
1932
- extensions: ["sml", "sig", "fun", "smackspec"],
1933
- load() {
1934
- return import("../mllike-C2YS6SJI.js").then((m) => legacy(m.sml));
1935
- }
1936
- }),
1937
- /* @__PURE__ */ LanguageDescription.of({
1938
- name: "SPARQL",
1939
- alias: ["sparul"],
1940
- extensions: ["rq", "sparql"],
1941
- load() {
1942
- return import("../sparql-REKUW7B3.js").then((m) => legacy(m.sparql));
1943
- }
1944
- }),
1945
- /* @__PURE__ */ LanguageDescription.of({
1946
- name: "Spreadsheet",
1947
- alias: ["excel", "formula"],
1948
- load() {
1949
- return import("../spreadsheet-S7NN2YTQ.js").then((m) => legacy(m.spreadsheet));
1950
- }
1951
- }),
1952
- /* @__PURE__ */ LanguageDescription.of({
1953
- name: "Squirrel",
1954
- extensions: ["nut"],
1955
- load() {
1956
- return import("../clike-DOBZTBQN.js").then((m) => legacy(m.squirrel));
1957
- }
1958
- }),
1959
- /* @__PURE__ */ LanguageDescription.of({
1960
- name: "Stylus",
1961
- extensions: ["styl"],
1962
- load() {
1963
- return import("../stylus-3ONNYZOM.js").then((m) => legacy(m.stylus));
1964
- }
1965
- }),
1966
- /* @__PURE__ */ LanguageDescription.of({
1967
- name: "Swift",
1968
- extensions: ["swift"],
1969
- load() {
1970
- return import("../swift-CNWGZ22Y.js").then((m) => legacy(m.swift));
1971
- }
1972
- }),
1973
- /* @__PURE__ */ LanguageDescription.of({
1974
- name: "sTeX",
1975
- load() {
1976
- return import("../stex-TCOGKBT4.js").then((m) => legacy(m.stex));
1977
- }
1978
- }),
1979
- /* @__PURE__ */ LanguageDescription.of({
1980
- name: "LaTeX",
1981
- alias: ["tex"],
1982
- extensions: ["text", "ltx", "tex"],
1983
- load() {
1984
- return import("../stex-TCOGKBT4.js").then((m) => legacy(m.stex));
1985
- }
1986
- }),
1987
- /* @__PURE__ */ LanguageDescription.of({
1988
- name: "SystemVerilog",
1989
- extensions: ["v", "sv", "svh"],
1990
- load() {
1991
- return import("../verilog-7VEWVDW6.js").then((m) => legacy(m.verilog));
1992
- }
1993
- }),
1994
- /* @__PURE__ */ LanguageDescription.of({
1995
- name: "Tcl",
1996
- extensions: ["tcl"],
1997
- load() {
1998
- return import("../tcl-77IMAZYE.js").then((m) => legacy(m.tcl));
1999
- }
2000
- }),
2001
- /* @__PURE__ */ LanguageDescription.of({
2002
- name: "Textile",
2003
- extensions: ["textile"],
2004
- load() {
2005
- return import("../textile-6IWIIKFM.js").then((m) => legacy(m.textile));
2006
- }
2007
- }),
2008
- /* @__PURE__ */ LanguageDescription.of({
2009
- name: "TiddlyWiki",
2010
- load() {
2011
- return import("../tiddlywiki-IJSZMUSA.js").then((m) => legacy(m.tiddlyWiki));
2012
- }
2013
- }),
2014
- /* @__PURE__ */ LanguageDescription.of({
2015
- name: "Tiki wiki",
2016
- load() {
2017
- return import("../tiki-HG37JJIT.js").then((m) => legacy(m.tiki));
2018
- }
2019
- }),
2020
- /* @__PURE__ */ LanguageDescription.of({
2021
- name: "TOML",
2022
- extensions: ["toml"],
2023
- load() {
2024
- return import("../toml-NINU2IMM.js").then((m) => legacy(m.toml));
2025
- }
2026
- }),
2027
- /* @__PURE__ */ LanguageDescription.of({
2028
- name: "Troff",
2029
- extensions: ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
2030
- load() {
2031
- return import("../troff-AOQJ4Q4C.js").then((m) => legacy(m.troff));
2032
- }
2033
- }),
2034
- /* @__PURE__ */ LanguageDescription.of({
2035
- name: "TTCN",
2036
- extensions: ["ttcn", "ttcn3", "ttcnpp"],
2037
- load() {
2038
- return import("../ttcn-TLOZ3FX3.js").then((m) => legacy(m.ttcn));
2039
- }
2040
- }),
2041
- /* @__PURE__ */ LanguageDescription.of({
2042
- name: "TTCN_CFG",
2043
- extensions: ["cfg"],
2044
- load() {
2045
- return import("../ttcn-cfg-3B6QY7QE.js").then((m) => legacy(m.ttcnCfg));
2046
- }
2047
- }),
2048
- /* @__PURE__ */ LanguageDescription.of({
2049
- name: "Turtle",
2050
- extensions: ["ttl"],
2051
- load() {
2052
- return import("../turtle-3N5KCGXP.js").then((m) => legacy(m.turtle));
2053
- }
2054
- }),
2055
- /* @__PURE__ */ LanguageDescription.of({
2056
- name: "Web IDL",
2057
- extensions: ["webidl"],
2058
- load() {
2059
- return import("../webidl-SLQFEELK.js").then((m) => legacy(m.webIDL));
2060
- }
2061
- }),
2062
- /* @__PURE__ */ LanguageDescription.of({
2063
- name: "VB.NET",
2064
- extensions: ["vb"],
2065
- load() {
2066
- return import("../vb-I7M5DRLP.js").then((m) => legacy(m.vb));
2067
- }
2068
- }),
2069
- /* @__PURE__ */ LanguageDescription.of({
2070
- name: "VBScript",
2071
- extensions: ["vbs"],
2072
- load() {
2073
- return import("../vbscript-U2ARSJLD.js").then((m) => legacy(m.vbScript));
2074
- }
2075
- }),
2076
- /* @__PURE__ */ LanguageDescription.of({
2077
- name: "Velocity",
2078
- extensions: ["vtl"],
2079
- load() {
2080
- return import("../velocity-R3AYP5XJ.js").then((m) => legacy(m.velocity));
2081
- }
2082
- }),
2083
- /* @__PURE__ */ LanguageDescription.of({
2084
- name: "Verilog",
2085
- extensions: ["v"],
2086
- load() {
2087
- return import("../verilog-7VEWVDW6.js").then((m) => legacy(m.verilog));
2088
- }
2089
- }),
2090
- /* @__PURE__ */ LanguageDescription.of({
2091
- name: "VHDL",
2092
- extensions: ["vhd", "vhdl"],
2093
- load() {
2094
- return import("../vhdl-JZUPPGBA.js").then((m) => legacy(m.vhdl));
2095
- }
2096
- }),
2097
- /* @__PURE__ */ LanguageDescription.of({
2098
- name: "XQuery",
2099
- extensions: ["xy", "xquery", "xq", "xqm", "xqy"],
2100
- load() {
2101
- return import("../xquery-VXP5KJ6N.js").then((m) => legacy(m.xQuery));
2102
- }
2103
- }),
2104
- /* @__PURE__ */ LanguageDescription.of({
2105
- name: "Yacas",
2106
- extensions: ["ys"],
2107
- load() {
2108
- return import("../yacas-JRBC4BEV.js").then((m) => legacy(m.yacas));
2109
- }
2110
- }),
2111
- /* @__PURE__ */ LanguageDescription.of({
2112
- name: "Z80",
2113
- extensions: ["z80"],
2114
- load() {
2115
- return import("../z80-AJF6WLUV.js").then((m) => legacy(m.z80));
2116
- }
2117
- }),
2118
- /* @__PURE__ */ LanguageDescription.of({
2119
- name: "MscGen",
2120
- extensions: ["mscgen", "mscin", "msc"],
2121
- load() {
2122
- return import("../mscgen-5BORDYHW.js").then((m) => legacy(m.mscgen));
2123
- }
2124
- }),
2125
- /* @__PURE__ */ LanguageDescription.of({
2126
- name: "X\xF9",
2127
- extensions: ["xu"],
2128
- load() {
2129
- return import("../mscgen-5BORDYHW.js").then((m) => legacy(m.xu));
2130
- }
2131
- }),
2132
- /* @__PURE__ */ LanguageDescription.of({
2133
- name: "MsGenny",
2134
- extensions: ["msgenny"],
2135
- load() {
2136
- return import("../mscgen-5BORDYHW.js").then((m) => legacy(m.msgenny));
2137
- }
2138
- }),
2139
- /* @__PURE__ */ LanguageDescription.of({
2140
- name: "Vue",
2141
- extensions: ["vue"],
2142
- load() {
2143
- return import("../dist-FDBKXKIA.js").then((m) => m.vue());
2144
- }
2145
- }),
2146
- /* @__PURE__ */ LanguageDescription.of({
2147
- name: "Angular Template",
2148
- load() {
2149
- return import("../dist-2O4EI6YQ.js").then((m) => m.angular());
2150
- }
2151
- })
2152
- ];
2153
-
2154
- // ../node_modules/.pnpm/@codemirror+search@6.7.1/node_modules/@codemirror/search/dist/index.js
2155
- import { showDialog, EditorView as EditorView2, Decoration, ViewPlugin, showPanel, runScopeHandlers, getPanel } from "@codemirror/view";
2156
- import { codePointAt, fromCodePoint, codePointSize, EditorSelection as EditorSelection2, Facet as Facet2, combineConfig as combineConfig2, CharCategory as CharCategory2, StateEffect as StateEffect2, StateField as StateField2, RangeSetBuilder, Prec, EditorState, findClusterBreak as findClusterBreak2 } from "@codemirror/state";
2157
-
2158
- // ../node_modules/.pnpm/crelt@1.0.7/node_modules/crelt/index.js
2159
- function crelt() {
2160
- var elt = arguments[0];
2161
- if (typeof elt == "string") elt = document.createElement(elt);
2162
- var i = 1, next = arguments[1];
2163
- if (next && typeof next == "object" && next.nodeType == null && !Array.isArray(next)) {
2164
- for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {
2165
- var value = next[name];
2166
- if (typeof value == "string") elt.setAttribute(name, value);
2167
- else if (value != null) elt[name] = value;
2168
- }
2169
- i++;
2170
- }
2171
- for (; i < arguments.length; i++) add(elt, arguments[i]);
2172
- return elt;
2173
- }
2174
- function add(elt, child) {
2175
- if (typeof child == "string") {
2176
- elt.appendChild(document.createTextNode(child));
2177
- } else if (child == null) {
2178
- } else if (child.nodeType != null) {
2179
- elt.appendChild(child);
2180
- } else if (Array.isArray(child)) {
2181
- for (var i = 0; i < child.length; i++) add(elt, child[i]);
2182
- } else {
2183
- throw new RangeError("Unsupported child node: " + child);
2184
- }
2185
- }
2186
-
2187
- // ../node_modules/.pnpm/@codemirror+search@6.7.1/node_modules/@codemirror/search/dist/index.js
2188
- var basicNormalize = typeof String.prototype.normalize == "function" ? (x) => x.normalize("NFKD") : (x) => x;
2189
- var SearchCursor = class {
2190
- /**
2191
- Create a text cursor. The query is the search string, `from` to
2192
- `to` provides the region to search.
2193
-
2194
- When `normalize` is given, it will be called, on both the query
2195
- string and the content it is matched against, before comparing.
2196
- You can, for example, create a case-insensitive search by
2197
- passing `s => s.toLowerCase()`.
2198
-
2199
- Text is always normalized with
2200
- [`.normalize("NFKD")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)
2201
- (when supported).
2202
- */
2203
- constructor(text, query, from = 0, to = text.length, normalize, test) {
2204
- this.test = test;
2205
- this.value = { from: 0, to: 0, precise: false };
2206
- this.done = false;
2207
- this.matches = [];
2208
- this.buffer = "";
2209
- this.bufferPos = 0;
2210
- this.iter = text.iterRange(from, to);
2211
- this.bufferStart = from;
2212
- this.normalize = normalize ? (x) => normalize(basicNormalize(x)) : basicNormalize;
2213
- this.query = this.normalize(query);
2214
- }
2215
- peek() {
2216
- if (this.bufferPos == this.buffer.length) {
2217
- this.bufferStart += this.buffer.length;
2218
- this.iter.next();
2219
- if (this.iter.done)
2220
- return -1;
2221
- this.bufferPos = 0;
2222
- this.buffer = this.iter.value;
2223
- }
2224
- return codePointAt(this.buffer, this.bufferPos);
2225
- }
2226
- /**
2227
- Look for the next match. Updates the iterator's
2228
- [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and
2229
- [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called
2230
- at least once before using the cursor.
2231
- */
2232
- next() {
2233
- while (this.matches.length)
2234
- this.matches.pop();
2235
- return this.nextOverlapping();
2236
- }
2237
- /**
2238
- The `next` method will ignore matches that partially overlap a
2239
- previous match. This method behaves like `next`, but includes
2240
- such matches.
2241
- */
2242
- nextOverlapping() {
2243
- for (; ; ) {
2244
- let next = this.peek();
2245
- if (next < 0) {
2246
- this.done = true;
2247
- return this;
2248
- }
2249
- let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;
2250
- this.bufferPos += codePointSize(next);
2251
- let norm = this.normalize(str);
2252
- if (norm.length)
2253
- for (let i = 0, pos = start, posPrecise = true; ; i++) {
2254
- let code = norm.charCodeAt(i);
2255
- let match = this.match(code, pos, posPrecise, this.bufferPos + this.bufferStart, i == norm.length - 1);
2256
- if (match) {
2257
- this.value = match;
2258
- return this;
2259
- }
2260
- if (i == norm.length - 1)
2261
- break;
2262
- if (posPrecise && i < str.length && str.charCodeAt(i) == code)
2263
- pos++;
2264
- else
2265
- posPrecise = false;
2266
- }
2267
- }
2268
- }
2269
- match(code, pos, posPrecise, end, endPrecise) {
2270
- let match = null;
2271
- for (let i = 0; i < this.matches.length; ) {
2272
- let partial = this.matches[i], keep = false;
2273
- if (this.query.charCodeAt(partial.index) == code) {
2274
- if (partial.index == this.query.length - 1) {
2275
- match = { from: partial.from, to: end, precise: endPrecise && partial.precise };
2276
- } else {
2277
- partial.index++;
2278
- keep = true;
2279
- }
2280
- }
2281
- if (keep)
2282
- i++;
2283
- else
2284
- this.matches.splice(i, 1);
2285
- }
2286
- if (this.query.charCodeAt(0) == code) {
2287
- if (this.query.length == 1)
2288
- match = { from: pos, to: end, precise: posPrecise && endPrecise };
2289
- else
2290
- this.matches.push({ from: pos, index: 1, precise: posPrecise });
2291
- }
2292
- if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))
2293
- match = null;
2294
- return match;
2295
- }
2296
- };
2297
- if (typeof Symbol != "undefined")
2298
- SearchCursor.prototype[Symbol.iterator] = function() {
2299
- return this;
2300
- };
2301
- var empty = { from: -1, to: -1, match: /* @__PURE__ */ /.*/.exec(""), precise: true };
2302
- var baseFlags = "gm" + (/x/.unicode == null ? "" : "u");
2303
- var RegExpCursor = class {
2304
- /**
2305
- Create a cursor that will search the given range in the given
2306
- document. `query` should be the raw pattern (as you'd pass it to
2307
- `new RegExp`).
2308
- */
2309
- constructor(text, query, options, from = 0, to = text.length) {
2310
- this.text = text;
2311
- this.to = to;
2312
- this.curLine = "";
2313
- this.done = false;
2314
- this.value = empty;
2315
- if (/\\[sWDnr]|\n|\r|\[\^/.test(query))
2316
- return new MultilineRegExpCursor(text, query, options, from, to);
2317
- this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? "i" : ""));
2318
- this.test = options === null || options === void 0 ? void 0 : options.test;
2319
- this.iter = text.iter();
2320
- let startLine = text.lineAt(from);
2321
- this.curLineStart = startLine.from;
2322
- this.matchPos = toCharEnd(text, from);
2323
- this.getLine(this.curLineStart);
2324
- }
2325
- getLine(skip) {
2326
- this.iter.next(skip);
2327
- if (this.iter.lineBreak) {
2328
- this.curLine = "";
2329
- } else {
2330
- this.curLine = this.iter.value;
2331
- if (this.curLineStart + this.curLine.length > this.to)
2332
- this.curLine = this.curLine.slice(0, this.to - this.curLineStart);
2333
- this.iter.next();
2334
- }
2335
- }
2336
- nextLine() {
2337
- this.curLineStart = this.curLineStart + this.curLine.length + 1;
2338
- if (this.curLineStart > this.to)
2339
- this.curLine = "";
2340
- else
2341
- this.getLine(0);
2342
- }
2343
- /**
2344
- Move to the next match, if there is one.
2345
- */
2346
- next() {
2347
- for (let off = this.matchPos - this.curLineStart; ; ) {
2348
- this.re.lastIndex = off;
2349
- let match = this.matchPos <= this.to && this.re.exec(this.curLine);
2350
- if (match) {
2351
- let from = this.curLineStart + match.index, to = from + match[0].length;
2352
- this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));
2353
- if (from == this.curLineStart + this.curLine.length)
2354
- this.nextLine();
2355
- if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {
2356
- this.value = { from, to, precise: true, match };
2357
- return this;
2358
- }
2359
- off = this.matchPos - this.curLineStart;
2360
- } else if (this.curLineStart + this.curLine.length < this.to) {
2361
- this.nextLine();
2362
- off = 0;
2363
- } else {
2364
- this.done = true;
2365
- return this;
2366
- }
2367
- }
2368
- }
2369
- };
2370
- var flattened = /* @__PURE__ */ new WeakMap();
2371
- var FlattenedDoc = class _FlattenedDoc {
2372
- constructor(from, text) {
2373
- this.from = from;
2374
- this.text = text;
2375
- }
2376
- get to() {
2377
- return this.from + this.text.length;
2378
- }
2379
- static get(doc, from, to) {
2380
- let cached = flattened.get(doc);
2381
- if (!cached || cached.from >= to || cached.to <= from) {
2382
- let flat = new _FlattenedDoc(from, doc.sliceString(from, to));
2383
- flattened.set(doc, flat);
2384
- return flat;
2385
- }
2386
- if (cached.from == from && cached.to == to)
2387
- return cached;
2388
- let { text, from: cachedFrom } = cached;
2389
- if (cachedFrom > from) {
2390
- text = doc.sliceString(from, cachedFrom) + text;
2391
- cachedFrom = from;
2392
- }
2393
- if (cached.to < to)
2394
- text += doc.sliceString(cached.to, to);
2395
- flattened.set(doc, new _FlattenedDoc(cachedFrom, text));
2396
- return new _FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));
2397
- }
2398
- };
2399
- var MultilineRegExpCursor = class {
2400
- constructor(text, query, options, from, to) {
2401
- this.text = text;
2402
- this.to = to;
2403
- this.done = false;
2404
- this.value = empty;
2405
- this.matchPos = toCharEnd(text, from);
2406
- this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? "i" : ""));
2407
- this.test = options === null || options === void 0 ? void 0 : options.test;
2408
- this.flat = FlattenedDoc.get(text, from, this.chunkEnd(
2409
- from + 5e3
2410
- /* Chunk.Base */
2411
- ));
2412
- }
2413
- chunkEnd(pos) {
2414
- return pos >= this.to ? this.to : this.text.lineAt(pos).to;
2415
- }
2416
- next() {
2417
- for (; ; ) {
2418
- let off = this.re.lastIndex = this.matchPos - this.flat.from;
2419
- let match = this.re.exec(this.flat.text);
2420
- if (match && !match[0] && match.index == off) {
2421
- this.re.lastIndex = off + 1;
2422
- match = this.re.exec(this.flat.text);
2423
- }
2424
- if (match) {
2425
- let from = this.flat.from + match.index, to = from + match[0].length;
2426
- if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) && (!this.test || this.test(from, to, match))) {
2427
- this.value = { from, to, precise: true, match };
2428
- this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));
2429
- return this;
2430
- }
2431
- }
2432
- if (this.flat.to == this.to) {
2433
- this.done = true;
2434
- return this;
2435
- }
2436
- this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));
2437
- }
2438
- }
2439
- };
2440
- if (typeof Symbol != "undefined") {
2441
- RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] = function() {
2442
- return this;
2443
- };
2444
- }
2445
- function validRegExp(source) {
2446
- try {
2447
- new RegExp(source, baseFlags);
2448
- return true;
2449
- } catch (_a) {
2450
- return false;
2451
- }
2452
- }
2453
- function toCharEnd(text, pos) {
2454
- if (pos >= text.length)
2455
- return pos;
2456
- let line = text.lineAt(pos), next;
2457
- while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 56320 && next < 57344)
2458
- pos++;
2459
- return pos;
2460
- }
2461
- var gotoLine = (view) => {
2462
- let { state } = view;
2463
- let line = String(state.doc.lineAt(view.state.selection.main.head).number);
2464
- let { close, result } = showDialog(view, {
2465
- label: state.phrase("Go to line"),
2466
- input: { type: "text", name: "line", value: line },
2467
- focus: true,
2468
- submitLabel: state.phrase("go")
2469
- });
2470
- result.then((form) => {
2471
- let match = form && /^([+-])?(\d+)?(:\d+)?(%)?$/.exec(form.elements["line"].value);
2472
- if (!match) {
2473
- view.dispatch({ effects: close });
2474
- return;
2475
- }
2476
- let startLine = state.doc.lineAt(state.selection.main.head);
2477
- let [, sign, ln, cl, percent] = match;
2478
- let col = cl ? +cl.slice(1) : 0;
2479
- let line2 = ln ? +ln : startLine.number;
2480
- if (ln && percent) {
2481
- let pc = line2 / 100;
2482
- if (sign)
2483
- pc = pc * (sign == "-" ? -1 : 1) + startLine.number / state.doc.lines;
2484
- line2 = Math.round(state.doc.lines * pc);
2485
- } else if (ln && sign) {
2486
- line2 = line2 * (sign == "-" ? -1 : 1) + startLine.number;
2487
- }
2488
- let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line2)));
2489
- let selection = EditorSelection2.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));
2490
- view.dispatch({
2491
- effects: [close, EditorView2.scrollIntoView(selection.from, { y: "center" })],
2492
- selection
2493
- });
2494
- });
2495
- return true;
2496
- };
2497
- var selectWord = ({ state, dispatch }) => {
2498
- let { selection } = state;
2499
- let newSel = EditorSelection2.create(selection.ranges.map((range) => state.wordAt(range.head) || EditorSelection2.cursor(range.head)), selection.mainIndex);
2500
- if (newSel.eq(selection))
2501
- return false;
2502
- dispatch(state.update({ selection: newSel }));
2503
- return true;
2504
- };
2505
- function findNextOccurrence(state, query) {
2506
- let { main, ranges } = state.selection;
2507
- let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;
2508
- for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to); ; ) {
2509
- cursor.next();
2510
- if (cursor.done) {
2511
- if (cycled)
2512
- return null;
2513
- cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));
2514
- cycled = true;
2515
- } else {
2516
- if (cycled && ranges.some((r) => r.from == cursor.value.from))
2517
- continue;
2518
- if (fullWord) {
2519
- let word2 = state.wordAt(cursor.value.from);
2520
- if (!word2 || word2.from != cursor.value.from || word2.to != cursor.value.to)
2521
- continue;
2522
- }
2523
- return cursor.value;
2524
- }
2525
- }
2526
- }
2527
- var selectNextOccurrence = ({ state, dispatch }) => {
2528
- let { ranges } = state.selection;
2529
- if (ranges.some((sel) => sel.from === sel.to))
2530
- return selectWord({ state, dispatch });
2531
- let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);
2532
- if (state.selection.ranges.some((r) => state.sliceDoc(r.from, r.to) != searchedText))
2533
- return false;
2534
- let range = findNextOccurrence(state, searchedText);
2535
- if (!range)
2536
- return false;
2537
- dispatch(state.update({
2538
- selection: state.selection.addRange(EditorSelection2.range(range.from, range.to), false),
2539
- effects: EditorView2.scrollIntoView(range.to)
2540
- }));
2541
- return true;
2542
- };
2543
- var searchConfigFacet = /* @__PURE__ */ Facet2.define({
2544
- combine(configs) {
2545
- return combineConfig2(configs, {
2546
- top: false,
2547
- caseSensitive: false,
2548
- literal: false,
2549
- regexp: false,
2550
- wholeWord: false,
2551
- createPanel: (view) => new SearchPanel(view),
2552
- scrollToMatch: (range) => EditorView2.scrollIntoView(range)
2553
- });
2554
- }
2555
- });
2556
- var SearchQuery = class {
2557
- /**
2558
- Create a query object.
2559
- */
2560
- constructor(config) {
2561
- this.search = config.search;
2562
- this.caseSensitive = !!config.caseSensitive;
2563
- this.literal = !!config.literal;
2564
- this.regexp = !!config.regexp;
2565
- this.replace = config.replace || "";
2566
- this.valid = !!this.search && (!this.regexp || validRegExp(this.search));
2567
- this.unquoted = this.unquote(this.search);
2568
- this.wholeWord = !!config.wholeWord;
2569
- this.test = config.test;
2570
- }
2571
- /**
2572
- @internal
2573
- */
2574
- unquote(text) {
2575
- return this.literal ? text : text.replace(/\\([nrt\\])/g, (_, ch) => ch == "n" ? "\n" : ch == "r" ? "\r" : ch == "t" ? " " : "\\");
2576
- }
2577
- /**
2578
- Compare this query to another query.
2579
- */
2580
- eq(other) {
2581
- return this.search == other.search && this.replace == other.replace && this.caseSensitive == other.caseSensitive && this.regexp == other.regexp && this.wholeWord == other.wholeWord && this.test == other.test;
2582
- }
2583
- /**
2584
- @internal
2585
- */
2586
- create() {
2587
- return this.regexp ? new RegExpQuery(this) : new StringQuery(this);
2588
- }
2589
- /**
2590
- Get a search cursor for this query, searching through the given
2591
- range in the given state.
2592
- */
2593
- getCursor(state, from = 0, to) {
2594
- let st = state.doc ? state : EditorState.create({ doc: state });
2595
- if (to == null)
2596
- to = st.doc.length;
2597
- return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);
2598
- }
2599
- };
2600
- var QueryType = class {
2601
- constructor(spec) {
2602
- this.spec = spec;
2603
- }
2604
- };
2605
- function wrapStringTest(test, state, inner) {
2606
- return (from, to, buffer, bufferPos) => {
2607
- if (inner && !inner(from, to, buffer, bufferPos))
2608
- return false;
2609
- let match = from >= bufferPos && to <= bufferPos + buffer.length ? buffer.slice(from - bufferPos, to - bufferPos) : state.doc.sliceString(from, to);
2610
- return test(match, state, from, to);
2611
- };
2612
- }
2613
- function stringCursor(spec, state, from, to) {
2614
- let test;
2615
- if (spec.wholeWord)
2616
- test = stringWordTest(state.doc, state.charCategorizer(state.selection.main.head));
2617
- if (spec.test)
2618
- test = wrapStringTest(spec.test, state, test);
2619
- return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? void 0 : (x) => x.toLowerCase(), test);
2620
- }
2621
- function stringWordTest(doc, categorizer) {
2622
- return (from, to, buf, bufPos) => {
2623
- if (bufPos > from || bufPos + buf.length < to) {
2624
- bufPos = Math.max(0, from - 2);
2625
- buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));
2626
- }
2627
- return (categorizer(charBefore(buf, from - bufPos)) != CharCategory2.Word || categorizer(charAfter(buf, from - bufPos)) != CharCategory2.Word) && (categorizer(charAfter(buf, to - bufPos)) != CharCategory2.Word || categorizer(charBefore(buf, to - bufPos)) != CharCategory2.Word);
2628
- };
2629
- }
2630
- var StringQuery = class extends QueryType {
2631
- constructor(spec) {
2632
- super(spec);
2633
- }
2634
- nextMatch(state, curFrom, curTo) {
2635
- let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();
2636
- if (cursor.done) {
2637
- let end = Math.min(state.doc.length, curFrom + this.spec.unquoted.length);
2638
- cursor = stringCursor(this.spec, state, 0, end).nextOverlapping();
2639
- }
2640
- return cursor.done || cursor.value.from == curFrom && cursor.value.to == curTo ? null : cursor.value;
2641
- }
2642
- // Searching in reverse is, rather than implementing an inverted search
2643
- // cursor, done by scanning chunk after chunk forward.
2644
- prevMatchInRange(state, from, to) {
2645
- for (let pos = to; ; ) {
2646
- let start = Math.max(from, pos - 1e4 - this.spec.unquoted.length);
2647
- let cursor = stringCursor(this.spec, state, start, pos), range = null;
2648
- while (!cursor.nextOverlapping().done)
2649
- range = cursor.value;
2650
- if (range)
2651
- return range;
2652
- if (start == from)
2653
- return null;
2654
- pos -= 1e4;
2655
- }
2656
- }
2657
- prevMatch(state, curFrom, curTo) {
2658
- let found = this.prevMatchInRange(state, 0, curFrom);
2659
- if (!found)
2660
- found = this.prevMatchInRange(state, Math.max(0, curTo - this.spec.unquoted.length), state.doc.length);
2661
- return found && (found.from != curFrom || found.to != curTo) ? found : null;
2662
- }
2663
- getReplacement(_result) {
2664
- return this.spec.unquote(this.spec.replace);
2665
- }
2666
- matchAll(state, limit) {
2667
- let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];
2668
- while (!cursor.next().done) {
2669
- if (ranges.length >= limit)
2670
- return null;
2671
- ranges.push(cursor.value);
2672
- }
2673
- return ranges;
2674
- }
2675
- highlight(state, from, to, add2) {
2676
- let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));
2677
- while (!cursor.next().done)
2678
- add2(cursor.value.from, cursor.value.to);
2679
- }
2680
- };
2681
- function wrapRegexpTest(test, state, inner) {
2682
- return (from, to, match) => {
2683
- return (!inner || inner(from, to, match)) && test(match[0], state, from, to);
2684
- };
2685
- }
2686
- function regexpCursor(spec, state, from, to) {
2687
- let test;
2688
- if (spec.wholeWord)
2689
- test = regexpWordTest(state.charCategorizer(state.selection.main.head));
2690
- if (spec.test)
2691
- test = wrapRegexpTest(spec.test, state, test);
2692
- return new RegExpCursor(state.doc, spec.search, { ignoreCase: !spec.caseSensitive, test }, from, to);
2693
- }
2694
- function charBefore(str, index) {
2695
- return str.slice(findClusterBreak2(str, index, false), index);
2696
- }
2697
- function charAfter(str, index) {
2698
- return str.slice(index, findClusterBreak2(str, index));
2699
- }
2700
- function regexpWordTest(categorizer) {
2701
- return (_from, _to, match) => !match[0].length || (categorizer(charBefore(match.input, match.index)) != CharCategory2.Word || categorizer(charAfter(match.input, match.index)) != CharCategory2.Word) && (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory2.Word || categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory2.Word);
2702
- }
2703
- var RegExpQuery = class extends QueryType {
2704
- nextMatch(state, curFrom, curTo) {
2705
- let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();
2706
- if (cursor.done)
2707
- cursor = regexpCursor(this.spec, state, 0, curFrom).next();
2708
- return cursor.done ? null : cursor.value;
2709
- }
2710
- prevMatchInRange(state, from, to) {
2711
- for (let size = 1; ; size++) {
2712
- let start = Math.max(
2713
- from,
2714
- to - size * 1e4
2715
- /* FindPrev.ChunkSize */
2716
- );
2717
- let cursor = regexpCursor(this.spec, state, start, to), range = null;
2718
- while (!cursor.next().done)
2719
- range = cursor.value;
2720
- if (range && (start == from || range.from > start + 10))
2721
- return range;
2722
- if (start == from)
2723
- return null;
2724
- }
2725
- }
2726
- prevMatch(state, curFrom, curTo) {
2727
- return this.prevMatchInRange(state, 0, curFrom) || this.prevMatchInRange(state, curTo, state.doc.length);
2728
- }
2729
- getReplacement(result) {
2730
- return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g, (m, i) => {
2731
- if (i == "&")
2732
- return result.match[0];
2733
- if (i == "$")
2734
- return "$";
2735
- for (let l = i.length; l > 0; l--) {
2736
- let n = +i.slice(0, l);
2737
- if (n > 0 && n < result.match.length)
2738
- return result.match[n] + i.slice(l);
2739
- }
2740
- return m;
2741
- });
2742
- }
2743
- matchAll(state, limit) {
2744
- let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];
2745
- while (!cursor.next().done) {
2746
- if (ranges.length >= limit)
2747
- return null;
2748
- ranges.push(cursor.value);
2749
- }
2750
- return ranges;
2751
- }
2752
- highlight(state, from, to, add2) {
2753
- let cursor = regexpCursor(this.spec, state, Math.max(
2754
- 0,
2755
- from - 250
2756
- /* RegExp.HighlightMargin */
2757
- ), Math.min(to + 250, state.doc.length));
2758
- while (!cursor.next().done)
2759
- add2(cursor.value.from, cursor.value.to);
2760
- }
2761
- };
2762
- var setSearchQuery = /* @__PURE__ */ StateEffect2.define();
2763
- var togglePanel = /* @__PURE__ */ StateEffect2.define();
2764
- var searchState = /* @__PURE__ */ StateField2.define({
2765
- create(state) {
2766
- return new SearchState(defaultQuery(state).create(), null);
2767
- },
2768
- update(value, tr) {
2769
- for (let effect of tr.effects) {
2770
- if (effect.is(setSearchQuery))
2771
- value = new SearchState(effect.value.create(), value.panel);
2772
- else if (effect.is(togglePanel))
2773
- value = new SearchState(value.query, effect.value ? createSearchPanel : null);
2774
- }
2775
- return value;
2776
- },
2777
- provide: (f) => showPanel.from(f, (val) => val.panel)
2778
- });
2779
- var SearchState = class {
2780
- constructor(query, panel) {
2781
- this.query = query;
2782
- this.panel = panel;
2783
- }
2784
- };
2785
- var matchMark = /* @__PURE__ */ Decoration.mark({ class: "cm-searchMatch" });
2786
- var selectedMatchMark = /* @__PURE__ */ Decoration.mark({ class: "cm-searchMatch cm-searchMatch-selected" });
2787
- var searchHighlighter = /* @__PURE__ */ ViewPlugin.fromClass(class {
2788
- constructor(view) {
2789
- this.view = view;
2790
- this.decorations = this.highlight(view.state.field(searchState));
2791
- }
2792
- update(update) {
2793
- let state = update.state.field(searchState);
2794
- if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)
2795
- this.decorations = this.highlight(state);
2796
- }
2797
- highlight({ query, panel }) {
2798
- if (!panel || !query.spec.valid)
2799
- return Decoration.none;
2800
- let { view } = this;
2801
- let builder = new RangeSetBuilder();
2802
- for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {
2803
- let { from, to } = ranges[i];
2804
- while (i < l - 1 && to > ranges[i + 1].from - 2 * 250)
2805
- to = ranges[++i].to;
2806
- query.highlight(view.state, from, to, (from2, to2) => {
2807
- let selected = view.state.selection.ranges.some((r) => r.from == from2 && r.to == to2);
2808
- builder.add(from2, to2, selected ? selectedMatchMark : matchMark);
2809
- });
2810
- }
2811
- return builder.finish();
2812
- }
2813
- }, {
2814
- decorations: (v) => v.decorations
2815
- });
2816
- function searchCommand(f) {
2817
- return (view) => {
2818
- let state = view.state.field(searchState, false);
2819
- return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);
2820
- };
2821
- }
2822
- var findNext = /* @__PURE__ */ searchCommand((view, { query }) => {
2823
- let { to } = view.state.selection.main;
2824
- let next = query.nextMatch(view.state, to, to);
2825
- if (!next)
2826
- return false;
2827
- let selection = EditorSelection2.single(next.from, next.to);
2828
- let config = view.state.facet(searchConfigFacet);
2829
- view.dispatch({
2830
- selection,
2831
- effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],
2832
- userEvent: "select.search"
2833
- });
2834
- selectSearchInput(view);
2835
- return true;
2836
- });
2837
- var findPrevious = /* @__PURE__ */ searchCommand((view, { query }) => {
2838
- let { state } = view, { from } = state.selection.main;
2839
- let prev = query.prevMatch(state, from, from);
2840
- if (!prev)
2841
- return false;
2842
- let selection = EditorSelection2.single(prev.from, prev.to);
2843
- let config = view.state.facet(searchConfigFacet);
2844
- view.dispatch({
2845
- selection,
2846
- effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],
2847
- userEvent: "select.search"
2848
- });
2849
- selectSearchInput(view);
2850
- return true;
2851
- });
2852
- var selectMatches = /* @__PURE__ */ searchCommand((view, { query }) => {
2853
- let ranges = query.matchAll(view.state, 1e3);
2854
- if (!ranges || !ranges.length)
2855
- return false;
2856
- view.dispatch({
2857
- selection: EditorSelection2.create(ranges.map((r) => EditorSelection2.range(r.from, r.to))),
2858
- userEvent: "select.search.matches"
2859
- });
2860
- return true;
2861
- });
2862
- var selectSelectionMatches = ({ state, dispatch }) => {
2863
- let sel = state.selection;
2864
- if (sel.ranges.length > 1 || sel.main.empty)
2865
- return false;
2866
- let { from, to } = sel.main;
2867
- let ranges = [], main = 0;
2868
- for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done; ) {
2869
- if (ranges.length > 1e3)
2870
- return false;
2871
- if (cur.value.from == from)
2872
- main = ranges.length;
2873
- ranges.push(EditorSelection2.range(cur.value.from, cur.value.to));
2874
- }
2875
- dispatch(state.update({
2876
- selection: EditorSelection2.create(ranges, main),
2877
- userEvent: "select.search.matches"
2878
- }));
2879
- return true;
2880
- };
2881
- var replaceNext = /* @__PURE__ */ searchCommand((view, { query }) => {
2882
- let { state } = view, { from, to } = state.selection.main;
2883
- if (state.readOnly)
2884
- return false;
2885
- let match = query.nextMatch(state, from, from);
2886
- if (!match)
2887
- return false;
2888
- let next = match;
2889
- let changes = [], selection, replacement;
2890
- let effects = [];
2891
- if (!next.precise) {
2892
- next = query.nextMatch(state, next.from, next.to);
2893
- } else if (next.from == from && next.to == to) {
2894
- replacement = state.toText(query.getReplacement(next));
2895
- changes.push({ from: next.from, to: next.to, insert: replacement });
2896
- next = query.nextMatch(state, next.from, next.to);
2897
- effects.push(EditorView2.announce.of(state.phrase("replaced match on line $", state.doc.lineAt(from).number) + "."));
2898
- }
2899
- let changeSet = view.state.changes(changes);
2900
- if (next) {
2901
- selection = EditorSelection2.single(next.from, next.to).map(changeSet);
2902
- effects.push(announceMatch(view, next));
2903
- effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));
2904
- }
2905
- view.dispatch({
2906
- changes: changeSet,
2907
- selection,
2908
- effects,
2909
- userEvent: "input.replace"
2910
- });
2911
- return true;
2912
- });
2913
- var replaceAll = /* @__PURE__ */ searchCommand((view, { query }) => {
2914
- if (view.state.readOnly)
2915
- return false;
2916
- let changes = [];
2917
- for (let match of query.matchAll(view.state, 1e9)) {
2918
- let { from, to, precise } = match;
2919
- if (precise)
2920
- changes.push({ from, to, insert: query.getReplacement(match) });
2921
- }
2922
- if (!changes.length)
2923
- return false;
2924
- let announceText = view.state.phrase("replaced $ matches", changes.length) + ".";
2925
- view.dispatch({
2926
- changes,
2927
- effects: EditorView2.announce.of(announceText),
2928
- userEvent: "input.replace.all"
2929
- });
2930
- return true;
2931
- });
2932
- function createSearchPanel(view) {
2933
- return view.state.facet(searchConfigFacet).createPanel(view);
2934
- }
2935
- function defaultQuery(state, fallback) {
2936
- var _a, _b, _c, _d, _e;
2937
- let sel = state.selection.main;
2938
- let selText = sel.empty || sel.to > sel.from + 100 ? "" : state.sliceDoc(sel.from, sel.to);
2939
- if (fallback && !selText)
2940
- return fallback;
2941
- let config = state.facet(searchConfigFacet);
2942
- return new SearchQuery({
2943
- search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\n/g, "\\n"),
2944
- caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,
2945
- literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,
2946
- regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,
2947
- wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord
2948
- });
2949
- }
2950
- function getSearchInput(view) {
2951
- let panel = getPanel(view, createSearchPanel);
2952
- return panel && panel.dom.querySelector("[main-field]");
2953
- }
2954
- function selectSearchInput(view) {
2955
- let input = getSearchInput(view);
2956
- if (input && input == view.root.activeElement)
2957
- input.select();
2958
- }
2959
- var openSearchPanel = (view) => {
2960
- let state = view.state.field(searchState, false);
2961
- if (state && state.panel) {
2962
- let searchInput = getSearchInput(view);
2963
- if (searchInput && searchInput != view.root.activeElement) {
2964
- let query = defaultQuery(view.state, state.query.spec);
2965
- if (query.valid)
2966
- view.dispatch({ effects: setSearchQuery.of(query) });
2967
- searchInput.focus();
2968
- searchInput.select();
2969
- }
2970
- } else {
2971
- view.dispatch({ effects: [
2972
- togglePanel.of(true),
2973
- state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect2.appendConfig.of(searchExtensions)
2974
- ] });
2975
- }
2976
- return true;
2977
- };
2978
- var closeSearchPanel = (view) => {
2979
- let state = view.state.field(searchState, false);
2980
- if (!state || !state.panel)
2981
- return false;
2982
- let panel = getPanel(view, createSearchPanel);
2983
- if (panel && panel.dom.contains(view.root.activeElement))
2984
- view.focus();
2985
- view.dispatch({ effects: togglePanel.of(false) });
2986
- return true;
2987
- };
2988
- var searchKeymap = [
2989
- { key: "Mod-f", run: openSearchPanel, scope: "editor search-panel" },
2990
- { key: "F3", run: findNext, shift: findPrevious, scope: "editor search-panel", preventDefault: true },
2991
- { key: "Mod-g", run: findNext, shift: findPrevious, scope: "editor search-panel", preventDefault: true },
2992
- { key: "Escape", run: closeSearchPanel, scope: "editor search-panel" },
2993
- { key: "Mod-Shift-l", run: selectSelectionMatches },
2994
- { key: "Mod-Alt-g", run: gotoLine },
2995
- { key: "Mod-d", run: selectNextOccurrence, preventDefault: true }
2996
- ];
2997
- var SearchPanel = class {
2998
- constructor(view) {
2999
- this.view = view;
3000
- let query = this.query = view.state.field(searchState).query.spec;
3001
- this.commit = this.commit.bind(this);
3002
- this.searchField = crelt("input", {
3003
- value: query.search,
3004
- placeholder: phrase(view, "Find"),
3005
- "aria-label": phrase(view, "Find"),
3006
- class: "cm-textfield",
3007
- name: "search",
3008
- form: "",
3009
- "main-field": "true",
3010
- onchange: this.commit,
3011
- onkeyup: this.commit
3012
- });
3013
- this.replaceField = crelt("input", {
3014
- value: query.replace,
3015
- placeholder: phrase(view, "Replace"),
3016
- "aria-label": phrase(view, "Replace"),
3017
- class: "cm-textfield",
3018
- name: "replace",
3019
- form: "",
3020
- onchange: this.commit,
3021
- onkeyup: this.commit
3022
- });
3023
- this.caseField = crelt("input", {
3024
- type: "checkbox",
3025
- name: "case",
3026
- form: "",
3027
- checked: query.caseSensitive,
3028
- onchange: this.commit
3029
- });
3030
- this.reField = crelt("input", {
3031
- type: "checkbox",
3032
- name: "re",
3033
- form: "",
3034
- checked: query.regexp,
3035
- onchange: this.commit
3036
- });
3037
- this.wordField = crelt("input", {
3038
- type: "checkbox",
3039
- name: "word",
3040
- form: "",
3041
- checked: query.wholeWord,
3042
- onchange: this.commit
3043
- });
3044
- function button(name, onclick, content) {
3045
- return crelt("button", { class: "cm-button", name, onclick, type: "button" }, content);
3046
- }
3047
- this.dom = crelt("div", { onkeydown: (e) => this.keydown(e), class: "cm-search" }, [
3048
- this.searchField,
3049
- button("next", () => findNext(view), [phrase(view, "next")]),
3050
- button("prev", () => findPrevious(view), [phrase(view, "previous")]),
3051
- button("select", () => selectMatches(view), [phrase(view, "all")]),
3052
- crelt("label", null, [this.caseField, phrase(view, "match case")]),
3053
- crelt("label", null, [this.reField, phrase(view, "regexp")]),
3054
- crelt("label", null, [this.wordField, phrase(view, "by word")]),
3055
- ...view.state.readOnly ? [] : [
3056
- crelt("br"),
3057
- this.replaceField,
3058
- button("replace", () => replaceNext(view), [phrase(view, "replace")]),
3059
- button("replaceAll", () => replaceAll(view), [phrase(view, "replace all")])
3060
- ],
3061
- crelt("button", {
3062
- name: "close",
3063
- onclick: () => closeSearchPanel(view),
3064
- "aria-label": phrase(view, "close"),
3065
- type: "button"
3066
- }, ["\xD7"])
3067
- ]);
3068
- }
3069
- commit() {
3070
- let query = new SearchQuery({
3071
- search: this.searchField.value,
3072
- caseSensitive: this.caseField.checked,
3073
- regexp: this.reField.checked,
3074
- wholeWord: this.wordField.checked,
3075
- replace: this.replaceField.value
3076
- });
3077
- if (!query.eq(this.query)) {
3078
- this.query = query;
3079
- this.view.dispatch({ effects: setSearchQuery.of(query) });
3080
- }
3081
- }
3082
- keydown(e) {
3083
- if (runScopeHandlers(this.view, e, "search-panel")) {
3084
- e.preventDefault();
3085
- } else if (e.keyCode == 13 && e.target == this.searchField) {
3086
- e.preventDefault();
3087
- (e.shiftKey ? findPrevious : findNext)(this.view);
3088
- } else if (e.keyCode == 13 && e.target == this.replaceField) {
3089
- e.preventDefault();
3090
- replaceNext(this.view);
3091
- }
3092
- }
3093
- update(update) {
3094
- for (let tr of update.transactions)
3095
- for (let effect of tr.effects) {
3096
- if (effect.is(setSearchQuery) && !effect.value.eq(this.query))
3097
- this.setQuery(effect.value);
3098
- }
3099
- }
3100
- setQuery(query) {
3101
- this.query = query;
3102
- this.searchField.value = query.search;
3103
- this.replaceField.value = query.replace;
3104
- this.caseField.checked = query.caseSensitive;
3105
- this.reField.checked = query.regexp;
3106
- this.wordField.checked = query.wholeWord;
3107
- }
3108
- mount() {
3109
- this.searchField.select();
3110
- }
3111
- get pos() {
3112
- return 80;
3113
- }
3114
- get top() {
3115
- return this.view.state.facet(searchConfigFacet).top;
3116
- }
3117
- };
3118
- function phrase(view, phrase2) {
3119
- return view.state.phrase(phrase2);
3120
- }
3121
- var AnnounceMargin = 30;
3122
- var Break = /[\s\.,:;?!]/;
3123
- function announceMatch(view, { from, to }) {
3124
- let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;
3125
- let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);
3126
- let text = view.state.sliceDoc(start, end);
3127
- if (start != line.from) {
3128
- for (let i = 0; i < AnnounceMargin; i++)
3129
- if (!Break.test(text[i + 1]) && Break.test(text[i])) {
3130
- text = text.slice(i);
3131
- break;
3132
- }
3133
- }
3134
- if (end != lineEnd) {
3135
- for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)
3136
- if (!Break.test(text[i - 1]) && Break.test(text[i])) {
3137
- text = text.slice(0, i);
3138
- break;
3139
- }
3140
- }
3141
- return EditorView2.announce.of(`${view.state.phrase("current match")}. ${text} ${view.state.phrase("on line")} ${line.number}.`);
3142
- }
3143
- var baseTheme = /* @__PURE__ */ EditorView2.baseTheme({
3144
- ".cm-panel.cm-search": {
3145
- padding: "2px 6px 4px",
3146
- position: "relative",
3147
- "& [name=close]": {
3148
- position: "absolute",
3149
- top: "0",
3150
- right: "4px",
3151
- backgroundColor: "inherit",
3152
- border: "none",
3153
- font: "inherit",
3154
- padding: 0,
3155
- margin: 0
3156
- },
3157
- "& input, & button, & label": {
3158
- margin: ".2em .6em .2em 0"
3159
- },
3160
- "& input[type=checkbox]": {
3161
- marginRight: ".2em"
3162
- },
3163
- "& label": {
3164
- fontSize: "80%",
3165
- whiteSpace: "pre"
3166
- }
3167
- },
3168
- "&light .cm-searchMatch": { backgroundColor: "#ffff0054" },
3169
- "&dark .cm-searchMatch": { backgroundColor: "#00ffff8a" },
3170
- "&light .cm-searchMatch-selected": { backgroundColor: "#ff6a0054" },
3171
- "&dark .cm-searchMatch-selected": { backgroundColor: "#ff00ff8a" }
3172
- });
3173
- var searchExtensions = [
3174
- searchState,
3175
- /* @__PURE__ */ Prec.low(searchHighlighter),
3176
- baseTheme
3177
- ];
3178
-
3179
- // src/extensions/markdown.ts
3180
- import { EditorView as EditorView4, keymap } from "@codemirror/view";
3181
-
3182
- // src/themes/markdown.ts
3183
- import { RangeSetBuilder as RangeSetBuilder2 } from "@codemirror/state";
3184
- import {
3185
- Decoration as Decoration2,
3186
- EditorView as EditorView3,
3187
- ViewPlugin as ViewPlugin2,
3188
- WidgetType
3189
- } from "@codemirror/view";
3190
- var MARKDOWN_STYLES = {
3191
- "&": {},
3192
- "&.cm-editor.cm-focused": {
3193
- outline: "none"
3194
- },
3195
- "&.cm-editor": {
3196
- height: "100%",
3197
- display: "flex",
3198
- alignContent: "center",
3199
- justifyContent: "center",
3200
- overflow: "auto"
3201
- },
3202
- ".cm-scroller": {
3203
- background: "var(--text-editor-fill)"
3204
- },
3205
- ".cm-gutter": {
3206
- background: "transparent"
3207
- },
3208
- ".cm-content": {
3209
- // Justified text makes it look more like the I&S web essay template,
3210
- // but doesn't feel right for most documents.
3211
- // textAlign: "justify",
3212
- textWrap: "pretty",
3213
- lineHeight: "1.5rem",
3214
- color: "var(--text-editor-line)",
3215
- caretColor: "var(--text-editor-cursor-fill)",
3216
- background: "var(--text-editor-fill)",
3217
- marginBlock: "2rem",
3218
- marginInline: "auto",
3219
- // lol i guess this is the same as box-sizing: content-box
3220
- maxWidth: "calc(var(--max-text-line-width, 100ex) - 2rem)",
3221
- padding: "2rem",
3222
- boxShadow: "none",
3223
- marginBottom: "8em",
3224
- borderRadius: "8px"
3225
- },
3226
- ".cm-content li": {
3227
- marginBottom: 0
3228
- },
3229
- ".cm-activeLine": {
3230
- backgroundColor: "inherit"
3231
- },
3232
- ".frontmatter, .frontmatter *": {
3233
- fontSize: "14px",
3234
- fontFamily: "var(--studio-family-code, monospace)",
3235
- color: "var(--syntax-comment, #666)",
3236
- textDecoration: "none",
3237
- fontWeight: "normal",
3238
- lineHeight: "0.8em"
3239
- },
3240
- ".cm-gutters": {
3241
- borderRight: "0",
3242
- border: "0",
3243
- background: "var(--text-editor-gutter-fill)"
3244
- },
3245
- ".cm-comment-gutter": {
3246
- width: "20px"
3247
- },
3248
- ".cm-folded-range-gutter-line-number": {
3249
- display: "none"
3250
- },
3251
- ".cm-folded-range-gutter": {
3252
- background: "var(--text-editor-fill)",
3253
- borderRight: "0px",
3254
- width: "40px"
3255
- },
3256
- ".cm-folded-line-widget": {
3257
- background: "var(--text-editor-fill)",
3258
- border: "0px"
3259
- },
3260
- ".cm-folded-range": {
3261
- background: "var(--text-editor-fill)"
3262
- },
3263
- ".codeblock": {
3264
- background: "orange"
3265
- }
3266
- };
3267
- var baseHeadingStyles = {
3268
- fontFamily: '"Merriweather Sans", sans-serif',
3269
- fontWeight: 400,
3270
- textDecoration: "none"
3271
- };
3272
- var baseCodeStyles = {
3273
- fontFamily: "var(--studio-family-code, monospace)",
3274
- fontSize: "1em"
3275
- };
3276
- var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
3277
- // this is how you ensure that codeblocks are still monospace
3278
- {
3279
- tag: tags.content,
3280
- fontFamily: style == "serif" ? '"Merriweather", serif' : '"Merriweather Sans", sans-serif'
3281
- },
3282
- {
3283
- tag: tags.heading1,
3284
- ...baseHeadingStyles,
3285
- fontSize: "1.5rem",
3286
- lineHeight: "2rem",
3287
- marginBottom: "1rem",
3288
- marginTop: "2rem"
3289
- },
3290
- {
3291
- tag: tags.heading2,
3292
- ...baseHeadingStyles,
3293
- fontSize: "1.5rem",
3294
- lineHeight: "2rem",
3295
- marginBottom: "1rem",
3296
- marginTop: "2rem"
3297
- },
3298
- {
3299
- tag: tags.heading3,
3300
- ...baseHeadingStyles,
3301
- fontSize: "1.25rem",
3302
- lineHeight: "1.75rem",
3303
- marginBottom: "1rem",
3304
- marginTop: "2rem"
3305
- },
3306
- {
3307
- tag: tags.heading4,
3308
- ...baseHeadingStyles,
3309
- fontSize: "1.1rem",
3310
- marginBottom: "1rem",
3311
- marginTop: "2rem"
3312
- },
3313
- {
3314
- tag: tags.comment,
3315
- color: "var(--syntax-comment, #555)",
3316
- fontFamily: "var(--studio-family-code, monospace)"
3317
- },
3318
- { tag: tags.quote, fontStyle: "var(--syntax-style-quote, italic)" },
3319
- {
3320
- tag: tags.strong,
3321
- fontWeight: "var(--syntax-weight-strong, bold)"
3322
- },
3323
- {
3324
- tag: tags.emphasis,
3325
- fontStyle: "var(--syntax-style-emphasis, italic)"
3326
- },
3327
- {
3328
- tag: tags.strikethrough,
3329
- textDecoration: "line-through"
3330
- },
3331
- {
3332
- tag: [tags.meta],
3333
- fontWeight: 300,
3334
- color: "var(--syntax-meta, #999)",
3335
- fontFamily: '"Merriweather Sans", sans-serif'
3336
- },
3337
- { tag: tags.keyword, ...baseCodeStyles, color: "var(--syntax-keyword, #708)" },
3338
- {
3339
- tag: [
3340
- tags.atom,
3341
- tags.bool,
3342
- tags.url,
3343
- tags.contentSeparator,
3344
- tags.labelName
3345
- ],
3346
- ...baseCodeStyles,
3347
- color: "var(--syntax-atom, var(--studio-secondary))"
3348
- },
3349
- { tag: [tags.literal, tags.inserted], ...baseCodeStyles, color: "var(--syntax-inserted, #164)" },
3350
- { tag: [tags.string, tags.deleted], ...baseCodeStyles, color: "var(--syntax-string, #5f67b5)" },
3351
- {
3352
- tag: [tags.regexp, tags.escape, tags.special(tags.string)],
3353
- ...baseCodeStyles,
3354
- color: "var(--syntax-regexp, #e40)"
3355
- },
3356
- {
3357
- tag: tags.definition(tags.variableName),
3358
- ...baseCodeStyles,
3359
- color: "var(--syntax-definition--variable-name, #00f)"
3360
- },
3361
- { tag: tags.local(tags.variableName), ...baseCodeStyles, color: "var(--syntax-variable-name, #30a)" },
3362
- { tag: [tags.typeName, tags.namespace], ...baseCodeStyles, color: "var(--syntax-type-name, #085)" },
3363
- { tag: tags.className, ...baseCodeStyles, color: "var(--syntax-class-name, #167)" },
3364
- {
3365
- tag: [tags.special(tags.variableName), tags.macroName],
3366
- ...baseCodeStyles,
3367
- color: "var(--syntax-special--variable-name, #256)"
3368
- },
3369
- {
3370
- tag: tags.definition(tags.propertyName),
3371
- ...baseCodeStyles,
3372
- color: "var(--syntax-function--property-name, #00c)"
3373
- },
3374
- { tag: tags.monospace, ...baseCodeStyles }
3375
- ]);
3376
- var theme = (style) => [
3377
- EditorView3.theme(MARKDOWN_STYLES),
3378
- syntaxHighlighting(markdownSyntaxHighlighting(style)),
3379
- bullets,
3380
- codeblocks
3381
- ];
3382
- var bullets = ViewPlugin2.fromClass(
3383
- class {
3384
- decorations;
3385
- view;
3386
- constructor(view) {
3387
- this.view = view;
3388
- this.decorations = this.build();
3389
- }
3390
- update(update) {
3391
- if (update.docChanged || update.viewportChanged) {
3392
- this.decorations = this.build();
3393
- }
3394
- }
3395
- build() {
3396
- const builder = new RangeSetBuilder2();
3397
- const doc = this.view.state.doc;
3398
- syntaxTree(this.view.state).iterate({
3399
- enter: ({ type, from }) => {
3400
- if (type.name === "ListMark") {
3401
- const char = doc.sliceString(from, from + 1);
3402
- if (["-", "+", "*"].includes(char)) {
3403
- builder.add(
3404
- from,
3405
- from + 1,
3406
- Decoration2.replace({ widget: new BulletWidget() })
3407
- );
3408
- }
3409
- }
3410
- }
3411
- });
3412
- return builder.finish();
3413
- }
3414
- },
3415
- {
3416
- decorations: (v) => v.decorations
3417
- }
3418
- );
3419
- var BulletWidget = class extends WidgetType {
3420
- toDOM() {
3421
- const span = document.createElement("span");
3422
- span.textContent = "\u2022";
3423
- span.className = "cm-bullet";
3424
- return span;
3425
- }
3426
- };
3427
- var codeblocks = ViewPlugin2.fromClass(
3428
- class BlockquotePlugin {
3429
- decorations = Decoration2.none;
3430
- constructor(view) {
3431
- this.buildDeco(view);
3432
- }
3433
- update(update) {
3434
- this.buildDeco(update.view);
3435
- }
3436
- buildDeco(view) {
3437
- const builder = new RangeSetBuilder2();
3438
- view.viewportLineBlocks.forEach((line) => {
3439
- const lineObj = view.state.doc.lineAt(line.from);
3440
- const match = /^>.*/g.exec(lineObj.text);
3441
- if (match && match[0]) {
3442
- builder.add(
3443
- line.from,
3444
- line.from,
3445
- Decoration2.line({ class: "codeblock" })
3446
- );
3447
- }
3448
- });
3449
- this.decorations = builder.finish();
3450
- }
3451
- }
3452
- );
3453
-
3454
- // src/extensions/markdown.ts
3455
- function markdownExtensions() {
3456
- return [
3457
- ...theme("sans"),
3458
- history(),
3459
- indentOnInput(),
3460
- keymap.of([
3461
- ...defaultKeymap,
3462
- ...searchKeymap,
3463
- ...historyKeymap,
3464
- ...foldKeymap,
3465
- ...completionKeymap,
3466
- indentWithTab
3467
- ]),
3468
- EditorView4.lineWrapping,
3469
- markdown({ codeLanguages: languages }),
3470
- indentUnit.of(" ")
3471
- ];
3472
- }
3473
- export {
3474
- markdownExtensions
3475
- };
3476
- //# sourceMappingURL=markdown.js.map