@inkandswitch/patchwork-pkg-base 0.0.17 → 0.0.19

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 (384) hide show
  1. package/init.js +0 -1
  2. package/modules.json +1 -11
  3. package/package.json +1 -1
  4. package/packages/raw/raw-editor.js +2 -2
  5. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js +0 -8860
  6. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js.map +0 -7
  7. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css +0 -371
  8. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css.map +0 -7
  9. package/packages/account-picker/dist/chunk-5WRI5ZAA.js +0 -31
  10. package/packages/account-picker/dist/chunk-5WRI5ZAA.js.map +0 -7
  11. package/packages/account-picker/dist/tool.css +0 -371
  12. package/packages/account-picker/dist/tool.css.map +0 -7
  13. package/packages/account-picker/dist/tool.js +0 -19
  14. package/packages/account-picker/dist/tool.js.map +0 -7
  15. package/packages/account-picker/package.json +0 -39
  16. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js +0 -490
  17. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js.map +0 -7
  18. package/packages/codemirror-base/dist/lib/codemirror.js +0 -7
  19. package/packages/codemirror-base/dist/lib/codemirror.js.map +0 -7
  20. package/packages/codemirror-base/dist/main.js +0 -17
  21. package/packages/codemirror-base/dist/main.js.map +0 -7
  22. package/packages/codemirror-base/dist/tool.js +0 -1799
  23. package/packages/codemirror-base/dist/tool.js.map +0 -7
  24. package/packages/codemirror-base/package.json +0 -55
  25. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js +0 -142
  26. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js.map +0 -7
  27. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js +0 -58
  28. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js.map +0 -7
  29. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js +0 -144
  30. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js.map +0 -7
  31. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js +0 -351
  32. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js.map +0 -7
  33. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js +0 -55
  34. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js.map +0 -7
  35. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js +0 -1062
  36. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js.map +0 -7
  37. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js +0 -1111
  38. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js.map +0 -7
  39. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js +0 -1424
  40. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js.map +0 -7
  41. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js +0 -133
  42. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js.map +0 -7
  43. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js +0 -998
  44. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js.map +0 -7
  45. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js +0 -4930
  46. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js.map +0 -7
  47. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js +0 -1779
  48. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js.map +0 -7
  49. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js +0 -697
  50. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js.map +0 -7
  51. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js +0 -2528
  52. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js.map +0 -7
  53. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js +0 -808
  54. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js.map +0 -7
  55. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js +0 -851
  56. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js.map +0 -7
  57. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js +0 -73
  58. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js.map +0 -7
  59. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js +0 -131
  60. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js.map +0 -7
  61. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js +0 -310
  62. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js.map +0 -7
  63. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js +0 -132
  64. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js.map +0 -7
  65. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js +0 -400
  66. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js.map +0 -7
  67. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js +0 -1795
  68. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js.map +0 -7
  69. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js +0 -123
  70. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js.map +0 -7
  71. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js +0 -187
  72. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js.map +0 -7
  73. package/packages/codemirror-markdown/dist/datatype.js +0 -48
  74. package/packages/codemirror-markdown/dist/datatype.js.map +0 -7
  75. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js +0 -27
  76. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js.map +0 -7
  77. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js +0 -98
  78. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js.map +0 -7
  79. package/packages/codemirror-markdown/dist/dist-2H653DKD.js +0 -170
  80. package/packages/codemirror-markdown/dist/dist-2H653DKD.js.map +0 -7
  81. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js +0 -140
  82. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js.map +0 -7
  83. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js +0 -75
  84. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js.map +0 -7
  85. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js +0 -15
  86. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js.map +0 -7
  87. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js +0 -340
  88. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js.map +0 -7
  89. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js +0 -20
  90. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js.map +0 -7
  91. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js +0 -318
  92. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js.map +0 -7
  93. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js +0 -100
  94. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js.map +0 -7
  95. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js +0 -381
  96. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js.map +0 -7
  97. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js +0 -193
  98. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js.map +0 -7
  99. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js +0 -32
  100. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js.map +0 -7
  101. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js +0 -27
  102. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js.map +0 -7
  103. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js +0 -416
  104. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js.map +0 -7
  105. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js +0 -423
  106. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js.map +0 -7
  107. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js +0 -786
  108. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js.map +0 -7
  109. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js +0 -451
  110. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js.map +0 -7
  111. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js +0 -748
  112. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js.map +0 -7
  113. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js +0 -360
  114. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js.map +0 -7
  115. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js +0 -115
  116. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js.map +0 -7
  117. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js +0 -212
  118. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js.map +0 -7
  119. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js +0 -209
  120. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js.map +0 -7
  121. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js +0 -116
  122. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js.map +0 -7
  123. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js +0 -317
  124. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js.map +0 -7
  125. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js +0 -142
  126. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js.map +0 -7
  127. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js +0 -180
  128. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js.map +0 -7
  129. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js +0 -136
  130. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js.map +0 -7
  131. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js +0 -178
  132. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js.map +0 -7
  133. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js +0 -676
  134. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js.map +0 -7
  135. package/packages/codemirror-markdown/dist/extensions/embed.js +0 -325
  136. package/packages/codemirror-markdown/dist/extensions/embed.js.map +0 -7
  137. package/packages/codemirror-markdown/dist/extensions/links.js +0 -118
  138. package/packages/codemirror-markdown/dist/extensions/links.js.map +0 -7
  139. package/packages/codemirror-markdown/dist/extensions/markdown.js +0 -3476
  140. package/packages/codemirror-markdown/dist/extensions/markdown.js.map +0 -7
  141. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js +0 -70
  142. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js.map +0 -7
  143. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js +0 -143
  144. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js.map +0 -7
  145. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js +0 -118
  146. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js.map +0 -7
  147. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js +0 -469
  148. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js.map +0 -7
  149. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js +0 -296
  150. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js.map +0 -7
  151. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js +0 -117
  152. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js.map +0 -7
  153. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js +0 -225
  154. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js.map +0 -7
  155. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js +0 -461
  156. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js.map +0 -7
  157. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js +0 -521
  158. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js.map +0 -7
  159. package/packages/codemirror-markdown/dist/http-SZLSACOW.js +0 -81
  160. package/packages/codemirror-markdown/dist/http-SZLSACOW.js.map +0 -7
  161. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js +0 -987
  162. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js.map +0 -7
  163. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js +0 -13
  164. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js.map +0 -7
  165. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js +0 -409
  166. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js.map +0 -7
  167. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js +0 -303
  168. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js.map +0 -7
  169. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js +0 -258
  170. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js.map +0 -7
  171. package/packages/codemirror-markdown/dist/main.js +0 -58
  172. package/packages/codemirror-markdown/dist/main.js.map +0 -7
  173. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js +0 -112
  174. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js.map +0 -7
  175. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js +0 -119
  176. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js.map +0 -7
  177. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js +0 -109
  178. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js.map +0 -7
  179. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js +0 -340
  180. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js.map +0 -7
  181. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js +0 -149
  182. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js.map +0 -7
  183. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js +0 -137
  184. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js.map +0 -7
  185. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js +0 -95
  186. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js.map +0 -7
  187. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js +0 -143
  188. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js.map +0 -7
  189. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js +0 -67
  190. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js.map +0 -7
  191. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js +0 -155
  192. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js.map +0 -7
  193. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js +0 -213
  194. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js.map +0 -7
  195. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js +0 -233
  196. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js.map +0 -7
  197. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js +0 -107
  198. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js.map +0 -7
  199. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js +0 -1107
  200. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js.map +0 -7
  201. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js +0 -105
  202. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js.map +0 -7
  203. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js +0 -330
  204. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js.map +0 -7
  205. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js +0 -60
  206. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js.map +0 -7
  207. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js +0 -80
  208. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js.map +0 -7
  209. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js +0 -410
  210. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js.map +0 -7
  211. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js +0 -139
  212. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js.map +0 -7
  213. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js +0 -429
  214. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js.map +0 -7
  215. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js +0 -135
  216. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js.map +0 -7
  217. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js +0 -174
  218. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js.map +0 -7
  219. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js +0 -111
  220. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js.map +0 -7
  221. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js +0 -333
  222. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js.map +0 -7
  223. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js +0 -209
  224. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js.map +0 -7
  225. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js +0 -230
  226. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js.map +0 -7
  227. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js +0 -224
  228. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js.map +0 -7
  229. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js +0 -137
  230. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js.map +0 -7
  231. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js +0 -123
  232. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js.map +0 -7
  233. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js +0 -71
  234. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js.map +0 -7
  235. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js +0 -251
  236. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js.map +0 -7
  237. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js +0 -89
  238. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js.map +0 -7
  239. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js +0 -358
  240. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js.map +0 -7
  241. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js +0 -233
  242. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js.map +0 -7
  243. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js +0 -591
  244. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js.map +0 -7
  245. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js +0 -293
  246. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js.map +0 -7
  247. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js +0 -116
  248. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js.map +0 -7
  249. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js +0 -416
  250. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js.map +0 -7
  251. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js +0 -231
  252. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js.map +0 -7
  253. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js +0 -276
  254. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js.map +0 -7
  255. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js +0 -78
  256. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js.map +0 -7
  257. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js +0 -63
  258. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js.map +0 -7
  259. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js +0 -211
  260. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js.map +0 -7
  261. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js +0 -141
  262. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js.map +0 -7
  263. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js +0 -132
  264. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js.map +0 -7
  265. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js +0 -204
  266. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js.map +0 -7
  267. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js +0 -482
  268. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js.map +0 -7
  269. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js +0 -151
  270. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js.map +0 -7
  271. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js +0 -456
  272. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js.map +0 -7
  273. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js +0 -162
  274. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js.map +0 -7
  275. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js +0 -206
  276. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js.map +0 -7
  277. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js +0 -532
  278. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js.map +0 -7
  279. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js +0 -132
  280. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js.map +0 -7
  281. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js +0 -95
  282. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js.map +0 -7
  283. package/packages/codemirror-markdown/example.js +0 -46
  284. package/packages/codemirror-markdown/package.json +0 -62
  285. package/packages/commands/dist/main.js +0 -504
  286. package/packages/commands/dist/main.js.map +0 -7
  287. package/packages/commands/package.json +0 -28
  288. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js +0 -161
  289. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js.map +0 -7
  290. package/packages/contact/dist/ContactViewer-ZHEE6INW.js +0 -60
  291. package/packages/contact/dist/ContactViewer-ZHEE6INW.js.map +0 -7
  292. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js +0 -46
  293. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js.map +0 -7
  294. package/packages/contact/dist/chunk-MOZI4Y4O.js +0 -54
  295. package/packages/contact/dist/chunk-MOZI4Y4O.js.map +0 -7
  296. package/packages/contact/dist/datatype-ABVDVPWS.js +0 -27
  297. package/packages/contact/dist/datatype-ABVDVPWS.js.map +0 -7
  298. package/packages/contact/dist/tool.css +0 -81
  299. package/packages/contact/dist/tool.css.map +0 -7
  300. package/packages/contact/dist/tool.js +0 -70
  301. package/packages/contact/dist/tool.js.map +0 -7
  302. package/packages/contact/package.json +0 -46
  303. package/packages/folder/dist/datatype-HWGUFBTQ.js +0 -27
  304. package/packages/folder/dist/datatype-HWGUFBTQ.js.map +0 -7
  305. package/packages/folder/dist/index.js +0 -27
  306. package/packages/folder/dist/index.js.map +0 -7
  307. package/packages/folder/dist/tool-62JZAZRP.js +0 -366
  308. package/packages/folder/dist/tool-62JZAZRP.js.map +0 -7
  309. package/packages/folder/package.json +0 -32
  310. package/packages/sideboard/dist/account-bar-OJQC3J6W.js +0 -2
  311. package/packages/sideboard/dist/account-bar-OJQC3J6W.js.map +0 -7
  312. package/packages/sideboard/dist/chunk-32FICX7K.js +0 -26
  313. package/packages/sideboard/dist/chunk-32FICX7K.js.map +0 -7
  314. package/packages/sideboard/dist/chunk-3OYP6TVA.js +0 -2
  315. package/packages/sideboard/dist/chunk-3OYP6TVA.js.map +0 -7
  316. package/packages/sideboard/dist/chunk-FW4363Y4.js +0 -2
  317. package/packages/sideboard/dist/chunk-FW4363Y4.js.map +0 -7
  318. package/packages/sideboard/dist/chunk-QKYKEZU4.js +0 -2
  319. package/packages/sideboard/dist/chunk-QKYKEZU4.js.map +0 -7
  320. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js +0 -2
  321. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js.map +0 -7
  322. package/packages/sideboard/dist/index.css +0 -2
  323. package/packages/sideboard/dist/index.css.map +0 -7
  324. package/packages/sideboard/dist/index.js +0 -2
  325. package/packages/sideboard/dist/index.js.map +0 -7
  326. package/packages/sideboard/dist/sideboard/sideboard.js +0 -2
  327. package/packages/sideboard/dist/sideboard/sideboard.js.map +0 -7
  328. package/packages/sideboard/package.json +0 -56
  329. package/packages/theming/dist/active-theme-K27UXDBG.js +0 -26
  330. package/packages/theming/dist/active-theme-K27UXDBG.js.map +0 -7
  331. package/packages/theming/dist/chunk-K4OOO2TK.js +0 -281
  332. package/packages/theming/dist/chunk-K4OOO2TK.js.map +0 -7
  333. package/packages/theming/dist/chunk-RATW7VZI.js +0 -11
  334. package/packages/theming/dist/chunk-RATW7VZI.js.map +0 -7
  335. package/packages/theming/dist/chunk-U7SC4JPE.js +0 -86
  336. package/packages/theming/dist/chunk-U7SC4JPE.js.map +0 -7
  337. package/packages/theming/dist/codemirror-theme.js +0 -2415
  338. package/packages/theming/dist/codemirror-theme.js.map +0 -7
  339. package/packages/theming/dist/datatype-UUJVIZM7.js +0 -16
  340. package/packages/theming/dist/datatype-UUJVIZM7.js.map +0 -7
  341. package/packages/theming/dist/gloom-JYQPEOHI.css +0 -102
  342. package/packages/theming/dist/lychee-BMLMUNP6.css +0 -114
  343. package/packages/theming/dist/main.js +0 -112
  344. package/packages/theming/dist/main.js.map +0 -7
  345. package/packages/theming/dist/theme-RC7MV6WP.css +0 -691
  346. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js +0 -11
  347. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js.map +0 -7
  348. package/packages/theming/dist/theme-editor.js +0 -576
  349. package/packages/theming/dist/theme-editor.js.map +0 -7
  350. package/packages/theming/dist/theme-titlebar-P2CODQGF.js +0 -21
  351. package/packages/theming/dist/theme-titlebar-P2CODQGF.js.map +0 -7
  352. package/packages/theming/dist/theme-tray-5L2KGCGD.js +0 -351
  353. package/packages/theming/dist/theme-tray-5L2KGCGD.js.map +0 -7
  354. package/packages/theming/dist/tool.js +0 -405
  355. package/packages/theming/dist/tool.js.map +0 -7
  356. package/packages/theming/package.json +0 -48
  357. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js +0 -2
  358. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js.map +0 -7
  359. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js +0 -2
  360. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js.map +0 -7
  361. package/packages/threepane/dist/chunk-7YXO2YGV.js +0 -2
  362. package/packages/threepane/dist/chunk-7YXO2YGV.js.map +0 -7
  363. package/packages/threepane/dist/chunk-FOMAU6H2.js +0 -972
  364. package/packages/threepane/dist/chunk-FOMAU6H2.js.map +0 -7
  365. package/packages/threepane/dist/chunk-FW4363Y4.js +0 -2
  366. package/packages/threepane/dist/chunk-FW4363Y4.js.map +0 -7
  367. package/packages/threepane/dist/datatypes-FKBTWAO7.js +0 -2
  368. package/packages/threepane/dist/datatypes-FKBTWAO7.js.map +0 -7
  369. package/packages/threepane/dist/index.js +0 -2
  370. package/packages/threepane/dist/index.js.map +0 -7
  371. package/packages/threepane/package.json +0 -42
  372. package/packages/tldraw4/dist/chunk-IKZWERSR.js +0 -38
  373. package/packages/tldraw4/dist/chunk-IKZWERSR.js.map +0 -7
  374. package/packages/tldraw4/dist/chunk-VF5CY24G.js +0 -140894
  375. package/packages/tldraw4/dist/chunk-VF5CY24G.js.map +0 -7
  376. package/packages/tldraw4/dist/datatype.js +0 -46
  377. package/packages/tldraw4/dist/datatype.js.map +0 -7
  378. package/packages/tldraw4/dist/main.css +0 -3202
  379. package/packages/tldraw4/dist/main.css.map +0 -7
  380. package/packages/tldraw4/dist/main.js +0 -42
  381. package/packages/tldraw4/dist/main.js.map +0 -7
  382. package/packages/tldraw4/dist/tool.js +0 -8767
  383. package/packages/tldraw4/dist/tool.js.map +0 -7
  384. 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