@vc-shell/framework 1.1.2 → 1.1.4

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 (271) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/apl-B2DGVGxc.js +76 -0
  3. package/dist/asciiarmor-2LVJmxlE.js +34 -0
  4. package/dist/asn1-jKiBa2Ya.js +95 -0
  5. package/dist/asterisk-DS281yxp.js +271 -0
  6. package/dist/brainfuck-C_p9pTT8.js +34 -0
  7. package/dist/clike-BUuHEmgZ.js +620 -0
  8. package/dist/clojure-CCKyeQKf.js +800 -0
  9. package/dist/cmake-CuaCgAKt.js +28 -0
  10. package/dist/cobol-BlTKFDRj.js +72 -0
  11. package/dist/coffeescript-BVCvwO8I.js +179 -0
  12. package/dist/commonlisp-D_kxz07b.js +75 -0
  13. package/dist/crystal-D309uH6_.js +217 -0
  14. package/dist/css-bIlmDBTK.js +1560 -0
  15. package/dist/cypher-BMq4Fwjl.js +68 -0
  16. package/dist/d-BZcgY6La.js +127 -0
  17. package/dist/diff-Cg9d_RX2.js +18 -0
  18. package/dist/{assets/dockerfile-D0MivFIF.js → dockerfile-DIy8NleC.js} +36 -41
  19. package/dist/dtd-CtLokQ-U.js +84 -0
  20. package/dist/dylan-QYeExnWK.js +234 -0
  21. package/dist/ebnf-DUPDuY4r.js +78 -0
  22. package/dist/ecl-CiXN-g_D.js +121 -0
  23. package/dist/eiffel-yQhjl4T1.js +110 -0
  24. package/dist/elm-CNT9vbN0.js +108 -0
  25. package/dist/erlang-CFOYdy9e.js +487 -0
  26. package/dist/factor-DDOC7X6P.js +65 -0
  27. package/dist/fcl-CPC2WYrI.js +103 -0
  28. package/dist/forth-BmxRyE9S.js +60 -0
  29. package/dist/fortran-9bvPyrOW.js +442 -0
  30. package/dist/framework.js +288 -29
  31. package/dist/gas-BdfkXJT_.js +183 -0
  32. package/dist/gherkin-CJuwpceU.js +34 -0
  33. package/dist/groovy-DZeT_VM-.js +146 -0
  34. package/dist/haskell-Bvt3Qq1t.js +375 -0
  35. package/dist/haxe-70NVW1pR.js +359 -0
  36. package/dist/http-D9LttvKF.js +44 -0
  37. package/dist/idl-B6TRFYjl.js +947 -0
  38. package/dist/{assets/index-BKF-A58l.js → index-BBYKbiRX.js} +79 -92
  39. package/dist/index-BDm0tcWn.js +145680 -0
  40. package/dist/{assets/index-CeeaNa4F.js → index-BDqUaIyQ.js} +136 -167
  41. package/dist/index-BdflTsg6.js +308 -0
  42. package/dist/{assets/index-CtmpJVwa.js → index-BpBTtmQ6.js} +270 -312
  43. package/dist/index-Br0y2YMn.js +58 -0
  44. package/dist/index-CIcET-ZI.js +71 -0
  45. package/dist/index-CYAMpxnu.js +341 -0
  46. package/dist/index-Cf2H7YZ1.js +98 -0
  47. package/dist/{assets/index-Bv_z_qRq.js → index-Ck055pN8.js} +121 -124
  48. package/dist/index-D-fPN3yf.js +75 -0
  49. package/dist/{assets/index-BT8o9-M5.js → index-DJOis7Nc.js} +267 -386
  50. package/dist/index-DKtQMsy4.js +538 -0
  51. package/dist/{assets/index-DMTL7O1s.js → index-DWTsz5bC.js} +570 -586
  52. package/dist/{assets/index-C7zlEJy8.js → index-DuY7BIGm.js} +229 -302
  53. package/dist/{assets/index-B1srGfDb.js → index-o6aSdNED.js} +119 -165
  54. package/dist/index-wfv8ehcx.js +249 -0
  55. package/dist/index.css +9 -18
  56. package/dist/javascript-WMWNx-Vj.js +690 -0
  57. package/dist/jinja2-DnB6dQmV.js +154 -0
  58. package/dist/julia-DpvXAuO6.js +241 -0
  59. package/dist/livescript-CanGTf8u.js +272 -0
  60. package/dist/lua-XplVlWi_.js +217 -0
  61. package/dist/mathematica-jaRHnSxC.js +35 -0
  62. package/dist/mbox-BctzC1hL.js +76 -0
  63. package/dist/mirc-CFBPAOaF.js +72 -0
  64. package/dist/mllike-BSnXJBGA.js +272 -0
  65. package/dist/modelica-vUgVs--1.js +93 -0
  66. package/dist/mscgen-Cpl0NYLN.js +104 -0
  67. package/dist/mumps-CQoS1kWX.js +25 -0
  68. package/dist/nginx-zDPm3Z74.js +89 -0
  69. package/dist/nsis-fePjrhq7.js +62 -0
  70. package/dist/ntriples-CsNjv2QF.js +79 -0
  71. package/dist/octave-C8PmmSRH.js +143 -0
  72. package/dist/oz-Ce8aN8oE.js +151 -0
  73. package/dist/pascal-De0D6mP7.js +77 -0
  74. package/dist/perl-B4bSCe1C.js +915 -0
  75. package/dist/pig-D24Z8EXi.js +54 -0
  76. package/dist/powershell-DkYVfTzP.js +249 -0
  77. package/dist/properties-Dn9wna3M.js +26 -0
  78. package/dist/protobuf-BPIjwpzm.js +49 -0
  79. package/dist/pug-BqUR2bBq.js +248 -0
  80. package/dist/puppet-nyd4dhjf.js +45 -0
  81. package/dist/python-B5QdSKoL.js +313 -0
  82. package/dist/q-DXjKs-tC.js +83 -0
  83. package/dist/r-LKEuhEGI.js +104 -0
  84. package/dist/rpm-IznJm2Xc.js +57 -0
  85. package/dist/ruby-CcYfvIk6.js +228 -0
  86. package/dist/sas-7E8yHoCW.js +105 -0
  87. package/dist/scheme-DjibxsNh.js +124 -0
  88. package/dist/shell-C0C2sNA_.js +182 -0
  89. package/dist/sieve-Bwz7vjP5.js +72 -0
  90. package/dist/simple-mode-B0dvCdAA.js +89 -0
  91. package/dist/smalltalk-Bhddl2pB.js +48 -0
  92. package/dist/solr-BNlsLglM.js +41 -0
  93. package/dist/sparql-FarWu_Gb.js +197 -0
  94. package/dist/spreadsheet-C-cy4P5N.js +49 -0
  95. package/dist/sql-mMre1Bo3.js +282 -0
  96. package/dist/stex-92raWT1r.js +129 -0
  97. package/dist/stylus-CAdqWld3.js +250 -0
  98. package/dist/swift-DSxqR9R6.js +230 -0
  99. package/dist/tcl-xfoLljhY.js +81 -0
  100. package/dist/textile-D1AWE-pc.js +295 -0
  101. package/dist/tiddlywiki-5wqsXtSk.js +155 -0
  102. package/dist/tiki-__Kn3CeS.js +181 -0
  103. package/dist/toml-BHiuTcfn.js +49 -0
  104. package/dist/troff-D2UO-fKf.js +35 -0
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/dist/ttcn-Bsa4sfRm.js +123 -0
  107. package/dist/ttcn-cfg-Bac_acMi.js +88 -0
  108. package/dist/turtle-xwJUxoPV.js +80 -0
  109. package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
  110. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  111. package/dist/vb-c2kQGd6-.js +74 -0
  112. package/dist/vbscript-Dz1TtKsy.js +324 -0
  113. package/dist/velocity-DJd0pTTC.js +96 -0
  114. package/dist/verilog-C4VGD9n1.js +263 -0
  115. package/dist/vhdl-T9HkrbI2.js +106 -0
  116. package/dist/webidl-CjfDENEo.js +155 -0
  117. package/dist/xquery-BUQdORAS.js +422 -0
  118. package/dist/yacas-C0absKBh.js +73 -0
  119. package/dist/z80-C8rPtw-0.js +61 -0
  120. package/package.json +4 -4
  121. package/ui/components/atoms/vc-widget/vc-widget.vue +2 -0
  122. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +65 -32
  123. package/dist/assets/apl-NdZ6-T1z.js +0 -142
  124. package/dist/assets/asciiarmor-CmJEbAuq.js +0 -56
  125. package/dist/assets/asn1-Ctc8K72v.js +0 -192
  126. package/dist/assets/asterisk-D6r__RMF.js +0 -187
  127. package/dist/assets/brainfuck-COwWCBpq.js +0 -70
  128. package/dist/assets/clike-C-PtfL50.js +0 -1019
  129. package/dist/assets/clojure-C2XPrGCa.js +0 -274
  130. package/dist/assets/cmake-BGrEgXCL.js +0 -81
  131. package/dist/assets/cobol-DShPmpZe.js +0 -234
  132. package/dist/assets/coffeescript-BG8vTfSz.js +0 -329
  133. package/dist/assets/commonlisp-8oE2EpEe.js +0 -108
  134. package/dist/assets/core-api-BMLS9FrT.js +0 -8288
  135. package/dist/assets/core-composables-DYxpIWyY.js +0 -1799
  136. package/dist/assets/core-constants-DiKDBbnD.js +0 -83
  137. package/dist/assets/core-directives-QhJx9kWh.js +0 -41
  138. package/dist/assets/core-interceptors-CSjUvxQ0.js +0 -78
  139. package/dist/assets/core-plugins-wv2bDZ0l.js +0 -4919
  140. package/dist/assets/core-services-CAfJRsjs.js +0 -4
  141. package/dist/assets/core-utilities-BTktq_a-.js +0 -33
  142. package/dist/assets/crystal--rIRMl16.js +0 -419
  143. package/dist/assets/css/core-directives-FL4vIIkN.css +0 -73
  144. package/dist/assets/css/fonts-M1mtyV8L.css +0 -305
  145. package/dist/assets/css/icons-css-DbCVsovz.css +0 -41
  146. package/dist/assets/css/shared-components-bnLHdCtf.css +0 -429
  147. package/dist/assets/css/shared-modules-CNOICmYQ.css +0 -45
  148. package/dist/assets/css/styles-C62nDZwV.css +0 -4096
  149. package/dist/assets/css/ui-app-Bh9hmlIB.css +0 -1287
  150. package/dist/assets/css/ui-content-B29jsmK7.css +0 -1187
  151. package/dist/assets/css/ui-controls-CRtfFczw.css +0 -387
  152. package/dist/assets/css/ui-data-CYLxfdUa.css +0 -1555
  153. package/dist/assets/css/ui-form-C3WrWfVl.css +0 -71
  154. package/dist/assets/css/ui-form-fields-DOtHhDeM.css +0 -1360
  155. package/dist/assets/css/ui-helpers-bOoNv5dS.css +0 -37
  156. package/dist/assets/css/ui-indicators-CybQnCoU.css +0 -628
  157. package/dist/assets/css/ui-layout-DyGKgizy.css +0 -251
  158. package/dist/assets/css/ui-media-TWYep8js.css +0 -298
  159. package/dist/assets/css/ui-media-advanced-BGxy3VSB.css +0 -183
  160. package/dist/assets/css/ui-navigation-DcPRn8SB.css +0 -1693
  161. package/dist/assets/css-C_ZeEwz2.js +0 -847
  162. package/dist/assets/cypher-Bayei42D.js +0 -122
  163. package/dist/assets/d-B0hhz6be.js +0 -205
  164. package/dist/assets/diff-DQutOIXs.js +0 -30
  165. package/dist/assets/dtd-C1CeYVnM.js +0 -121
  166. package/dist/assets/dylan-Dm9-uD-A.js +0 -337
  167. package/dist/assets/ebnf-jWG_1Yly.js +0 -151
  168. package/dist/assets/ecl-CgJPA6z9.js +0 -190
  169. package/dist/assets/eiffel-lj7uLahq.js +0 -146
  170. package/dist/assets/elm-Cz7o1ijk.js +0 -230
  171. package/dist/assets/erlang-CyL5QOyR.js +0 -581
  172. package/dist/assets/factor-BVWHwYpu.js +0 -65
  173. package/dist/assets/fcl-DiozYjc8.js +0 -154
  174. package/dist/assets/forth-B7vn5ze0.js +0 -164
  175. package/dist/assets/fortran-D2XNEnBT.js +0 -172
  176. package/dist/assets/gas-B_Tj57Ve.js +0 -343
  177. package/dist/assets/gherkin-CJ6Qk4EZ.js +0 -147
  178. package/dist/assets/groovy-ioGz2WSV.js +0 -228
  179. package/dist/assets/haskell-BHnm1B83.js +0 -239
  180. package/dist/assets/haxe-Bn6Yo6N3.js +0 -490
  181. package/dist/assets/http-BOd5SYCT.js +0 -89
  182. package/dist/assets/idl-FSFk8_xX.js +0 -274
  183. package/dist/assets/index--5fKpGeN.js +0 -792
  184. package/dist/assets/index-0lME64YH.js +0 -342
  185. package/dist/assets/index-B6Ip0FgO.js +0 -437
  186. package/dist/assets/index-BmV05E5M.js +0 -479
  187. package/dist/assets/index-C6MavZDA.js +0 -131
  188. package/dist/assets/index-CwKpgcYl.js +0 -85
  189. package/dist/assets/index-DRUmDL0J.js +0 -59
  190. package/dist/assets/index-DgFC-M9G.js +0 -96
  191. package/dist/assets/javascript-DGrAs70C.js +0 -922
  192. package/dist/assets/jinja2-D9k5QrXv.js +0 -171
  193. package/dist/assets/julia-DM42tOPB.js +0 -369
  194. package/dist/assets/livescript-Dci8HnOi.js +0 -259
  195. package/dist/assets/lua-CByQu4v6.js +0 -137
  196. package/dist/assets/lucide-icons-af0BY3bi.js +0 -34555
  197. package/dist/assets/mathematica-Dkv0uCYF.js +0 -153
  198. package/dist/assets/mbox-CYTvs5kC.js +0 -114
  199. package/dist/assets/mirc-DpgP3GCo.js +0 -176
  200. package/dist/assets/mllike-C6tNn2Yt.js +0 -343
  201. package/dist/assets/modelica-CR6hTSce.js +0 -192
  202. package/dist/assets/mscgen-D0GXtzMS.js +0 -149
  203. package/dist/assets/mumps-Bf1EyDa6.js +0 -129
  204. package/dist/assets/nginx-By9Phklj.js +0 -163
  205. package/dist/assets/nsis-B5ggMLQ9.js +0 -80
  206. package/dist/assets/ntriples-C7VJ7pnm.js +0 -141
  207. package/dist/assets/octave-6yR_ix15.js +0 -112
  208. package/dist/assets/oz-CEUnktiQ.js +0 -235
  209. package/dist/assets/pascal-Dksf1EyF.js +0 -124
  210. package/dist/assets/perl-B99DUQQt.js +0 -819
  211. package/dist/assets/pig-DFeDRta6.js +0 -149
  212. package/dist/assets/powershell-DhwsNWMx.js +0 -381
  213. package/dist/assets/properties-o21uErwC.js +0 -62
  214. package/dist/assets/protobuf-YxlANsmD.js +0 -54
  215. package/dist/assets/pug-bUgjeODZ.js +0 -504
  216. package/dist/assets/puppet-B8WICGYE.js +0 -205
  217. package/dist/assets/python-D3FFx1Id.js +0 -389
  218. package/dist/assets/q-D2Hjhl2C.js +0 -123
  219. package/dist/assets/r-D73k5lac.js +0 -174
  220. package/dist/assets/rpm-Duv_WH0z.js +0 -89
  221. package/dist/assets/ruby-DGCVqZDt.js +0 -287
  222. package/dist/assets/sas-XjPv1Vy5.js +0 -268
  223. package/dist/assets/scheme-DeaA28vt.js +0 -263
  224. package/dist/assets/shared-components-CfAt2hC6.js +0 -1501
  225. package/dist/assets/shared-composables-v9NkNuAe.js +0 -35
  226. package/dist/assets/shared-modules-CDP-H5ZB.js +0 -3588
  227. package/dist/assets/shared-pages-BGRRA5WB.js +0 -20
  228. package/dist/assets/shell-Bx6QZTgx.js +0 -145
  229. package/dist/assets/sieve-CWCD62sW.js +0 -178
  230. package/dist/assets/simple-mode-BAO9cD7H.js +0 -136
  231. package/dist/assets/smalltalk-DSQbF4MF.js +0 -153
  232. package/dist/assets/solr-v_XRf31C.js +0 -80
  233. package/dist/assets/sparql-BrfDqf0-.js +0 -170
  234. package/dist/assets/spreadsheet-Csn84Pef.js +0 -98
  235. package/dist/assets/sql-D4utlq1l.js +0 -480
  236. package/dist/assets/stex-DBkktma-.js +0 -246
  237. package/dist/assets/stylus-ByG-Fd6f.js +0 -750
  238. package/dist/assets/swift-CHbTprt3.js +0 -202
  239. package/dist/assets/tcl-BRlMUELr.js +0 -125
  240. package/dist/assets/textile-CqfTUjd4.js +0 -441
  241. package/dist/assets/tiddlywiki-BrsoM8KB.js +0 -278
  242. package/dist/assets/tiki-D-ivWPkc.js +0 -289
  243. package/dist/assets/toml-t_IhJu83.js +0 -75
  244. package/dist/assets/troff-DckGF2AE.js +0 -64
  245. package/dist/assets/ttcn-B8TAFbRR.js +0 -253
  246. package/dist/assets/ttcn-cfg-NHh25oCM.js +0 -197
  247. package/dist/assets/turtle-D9Js0BlL.js +0 -141
  248. package/dist/assets/ui-app-D31Pr1WY.js +0 -1993
  249. package/dist/assets/ui-content-B7SxH8y9.js +0 -52887
  250. package/dist/assets/ui-controls-nmDJYLmC.js +0 -348
  251. package/dist/assets/ui-data-Ci3b1ye0.js +0 -22901
  252. package/dist/assets/ui-form-Cs5ooOo7.js +0 -159
  253. package/dist/assets/ui-form-fields-DFQi31jT.js +0 -40575
  254. package/dist/assets/ui-helpers-CF-EUlOg.js +0 -1736
  255. package/dist/assets/ui-indicators-mIQeEqha.js +0 -199
  256. package/dist/assets/ui-layout-v2XBQky3.js +0 -320
  257. package/dist/assets/ui-media-WWYrwmZw.js +0 -1259
  258. package/dist/assets/ui-media-advanced-T8ibi153.js +0 -492
  259. package/dist/assets/ui-modals-BdZXzI85.js +0 -2
  260. package/dist/assets/ui-navigation-BtHa6ovW.js +0 -24269
  261. package/dist/assets/utils-DZK5fu48.js +0 -17216
  262. package/dist/assets/vb-CbIGLrpY.js +0 -249
  263. package/dist/assets/vbscript-8ANWle9n.js +0 -320
  264. package/dist/assets/velocity-D6hz3Hzw.js +0 -186
  265. package/dist/assets/verilog-DIV442at.js +0 -565
  266. package/dist/assets/vhdl-BlTiZo_v.js +0 -174
  267. package/dist/assets/vueuse-CTQm4Zh0.js +0 -9308
  268. package/dist/assets/webidl-Cp3tcqdk.js +0 -179
  269. package/dist/assets/xquery-Dd4TBzXv.js +0 -411
  270. package/dist/assets/yacas-DQ1WucF0.js +0 -182
  271. package/dist/assets/z80-P1j44jDI.js +0 -102
@@ -1,437 +0,0 @@
1
- import { j as LRParser, E as ExternalTokenizer, s as styleTags, C as ContextTracker, t as tags, G as EditorView, L as LRLanguage, v as syntaxTree, H as EditorSelection, k as LanguageSupport, l as indentNodeProp, m as foldNodeProp, M as bracketMatchingHandle } from './ui-content-B7SxH8y9.js';
2
-
3
- // This file was generated by lezer-generator. You probably shouldn't edit it.
4
- const StartTag = 1,
5
- StartCloseTag = 2,
6
- MissingCloseTag = 3,
7
- mismatchedStartCloseTag = 4,
8
- incompleteStartCloseTag = 5,
9
- commentContent$1 = 36,
10
- piContent$1 = 37,
11
- cdataContent$1 = 38,
12
- Element$1 = 11,
13
- OpenTag = 13;
14
-
15
- /* Hand-written tokenizer for XML tag matching. */
16
-
17
- function nameChar(ch) {
18
- return ch == 45 || ch == 46 || ch == 58 || ch >= 65 && ch <= 90 || ch == 95 || ch >= 97 && ch <= 122 || ch >= 161
19
- }
20
-
21
- function isSpace(ch) {
22
- return ch == 9 || ch == 10 || ch == 13 || ch == 32
23
- }
24
-
25
- let cachedName = null, cachedInput = null, cachedPos = 0;
26
- function tagNameAfter(input, offset) {
27
- let pos = input.pos + offset;
28
- if (cachedInput == input && cachedPos == pos) return cachedName
29
- while (isSpace(input.peek(offset))) offset++;
30
- let name = "";
31
- for (;;) {
32
- let next = input.peek(offset);
33
- if (!nameChar(next)) break
34
- name += String.fromCharCode(next);
35
- offset++;
36
- }
37
- cachedInput = input; cachedPos = pos;
38
- return cachedName = name || null
39
- }
40
-
41
- function ElementContext(name, parent) {
42
- this.name = name;
43
- this.parent = parent;
44
- }
45
-
46
- const elementContext = new ContextTracker({
47
- start: null,
48
- shift(context, term, stack, input) {
49
- return term == StartTag ? new ElementContext(tagNameAfter(input, 1) || "", context) : context
50
- },
51
- reduce(context, term) {
52
- return term == Element$1 && context ? context.parent : context
53
- },
54
- reuse(context, node, _stack, input) {
55
- let type = node.type.id;
56
- return type == StartTag || type == OpenTag
57
- ? new ElementContext(tagNameAfter(input, 1) || "", context) : context
58
- },
59
- strict: false
60
- });
61
-
62
- const startTag = new ExternalTokenizer((input, stack) => {
63
- if (input.next != 60 /* '<' */) return
64
- input.advance();
65
- if (input.next == 47 /* '/' */) {
66
- input.advance();
67
- let name = tagNameAfter(input, 0);
68
- if (!name) return input.acceptToken(incompleteStartCloseTag)
69
- if (stack.context && name == stack.context.name) return input.acceptToken(StartCloseTag)
70
- for (let cx = stack.context; cx; cx = cx.parent) if (cx.name == name) return input.acceptToken(MissingCloseTag, -2)
71
- input.acceptToken(mismatchedStartCloseTag);
72
- } else if (input.next != 33 /* '!' */ && input.next != 63 /* '?' */) {
73
- return input.acceptToken(StartTag)
74
- }
75
- }, {contextual: true});
76
-
77
- function scanTo(type, end) {
78
- return new ExternalTokenizer(input => {
79
- let len = 0, first = end.charCodeAt(0);
80
- scan: for (;; input.advance(), len++) {
81
- if (input.next < 0) break
82
- if (input.next == first) {
83
- for (let i = 1; i < end.length; i++)
84
- if (input.peek(i) != end.charCodeAt(i)) continue scan
85
- break
86
- }
87
- }
88
- if (len) input.acceptToken(type);
89
- })
90
- }
91
-
92
- const commentContent = scanTo(commentContent$1, "-->");
93
- const piContent = scanTo(piContent$1, "?>");
94
- const cdataContent = scanTo(cdataContent$1, "]]>");
95
-
96
- const xmlHighlighting = styleTags({
97
- Text: tags.content,
98
- "StartTag StartCloseTag EndTag SelfCloseEndTag": tags.angleBracket,
99
- TagName: tags.tagName,
100
- "MismatchedCloseTag/TagName": [tags.tagName, tags.invalid],
101
- AttributeName: tags.attributeName,
102
- AttributeValue: tags.attributeValue,
103
- Is: tags.definitionOperator,
104
- "EntityReference CharacterReference": tags.character,
105
- Comment: tags.blockComment,
106
- ProcessingInst: tags.processingInstruction,
107
- DoctypeDecl: tags.documentMeta,
108
- Cdata: tags.special(tags.string)
109
- });
110
-
111
- // This file was generated by lezer-generator. You probably shouldn't edit it.
112
- const parser = LRParser.deserialize({
113
- version: 14,
114
- states: ",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<<GuOOOP<<Gu<<GuOOOP<<G}<<G}O'bOpO1G.qO'bOpO1G.qO(hO#tO'#CnO(vO&jO'#CnOOOO1G.q1G.qO)UOpO7+$aOOOP7+$a7+$aOOOP<<HQ<<HQOOOPAN=aAN=aOOOPAN=iAN=iO'bOpO7+$]OOOO7+$]7+$]OOOO'#Cz'#CzO)^O#tO,59YOOOO,59Y,59YOOOO'#C{'#C{O)lO&jO,59YOOOP<<G{<<G{OOOO<<Gw<<GwOOOO-E6x-E6xOOOO1G.t1G.tOOOO-E6y-E6y",
115
- stateData: ")z~OPQOSVOTWOVWOWWOXWOiXOyPO!QTO!SUO~OvZOx]O~O^`Oz^O~OPQOQcOSVOTWOVWOWWOXWOyPO!QTO!SUO~ORdO~P!SOteO!PgO~OuhO!RjO~O^lOz^O~OvZOxoO~O^qOz^O~O[vO`sOdwOz^O~ORyO~P!SO^{Oz^O~OteO!P}O~OuhO!R!PO~O^!QOz^O~O[!SOz^O~O[!VO`sOd!WOz^O~Oa!YOz^O~Oz^O[mX`mXdmX~O[!VO`sOd!WO~O^!]Oz^O~O[!_Oz^O~O[!aOz^O~O[!cO`sOd!dOz^O~O[!cO`sOd!dO~Oa!eOz^O~Oz^O{!gO}!hO~Oz^O[ma`madma~O[!kOz^O~O[!lOz^O~O[!mO`sOd!nO~OW!qOX!qO{!sO|!qO~OW!tOX!tO}!sO!O!tO~O[!vOz^O~OW!qOX!qO{!yO|!qO~OW!tOX!tO}!yO!O!tO~O",
116
- goto: "%cxPPPPPPPPPPyyP!PP!VPP!`!jP!pyyyP!v!|#S$[$k$q$w$}%TPPPP%ZXWORYbXRORYb_t`qru!T!U!bQ!i!YS!p!e!fR!w!oQdRRybXSORYbQYORmYQ[PRn[Q_QQkVjp_krz!R!T!X!Z!^!`!f!j!oQr`QzcQ!RlQ!TqQ!XsQ!ZtQ!^{Q!`!QQ!f!YQ!j!]R!o!eQu`S!UqrU![u!U!bR!b!TQ!r!gR!x!rQ!u!hR!z!uQbRRxbQfTR|fQiUR!OiSXOYTaRb",
117
- nodeNames: "⚠ StartTag StartCloseTag MissingCloseTag StartCloseTag StartCloseTag Document Text EntityReference CharacterReference Cdata Element EndTag OpenTag TagName Attribute AttributeName Is AttributeValue CloseTag SelfCloseEndTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag DoctypeDecl",
118
- maxTerm: 50,
119
- context: elementContext,
120
- nodeProps: [
121
- ["closedBy", 1,"SelfCloseEndTag EndTag",13,"CloseTag MissingCloseTag"],
122
- ["openedBy", 12,"StartTag StartCloseTag",19,"OpenTag",20,"StartTag"],
123
- ["isolate", -6,13,18,19,21,22,24,""]
124
- ],
125
- propSources: [xmlHighlighting],
126
- skippedNodes: [0],
127
- repeatNodeCount: 9,
128
- tokenData: "!)v~R!YOX$qXY)iYZ)iZ]$q]^)i^p$qpq)iqr$qrs*vsv$qvw+fwx/ix}$q}!O0[!O!P$q!P!Q2z!Q![$q![!]4n!]!^$q!^!_8U!_!`!#t!`!a!$l!a!b!%d!b!c$q!c!}4n!}#P$q#P#Q!'W#Q#R$q#R#S4n#S#T$q#T#o4n#o%W$q%W%o4n%o%p$q%p&a4n&a&b$q&b1p4n1p4U$q4U4d4n4d4e$q4e$IS4n$IS$I`$q$I`$Ib4n$Ib$Kh$q$Kh%#t4n%#t&/x$q&/x&Et4n&Et&FV$q&FV;'S4n;'S;:j8O;:j;=`)c<%l?&r$q?&r?Ah4n?Ah?BY$q?BY?Mn4n?MnO$qi$zXVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qa%nVVP!O`Ov%gwx&Tx!^%g!^!_&o!_;'S%g;'S;=`'W<%lO%gP&YTVPOv&Tw!^&T!_;'S&T;'S;=`&i<%lO&TP&lP;=`<%l&T`&tS!O`Ov&ox;'S&o;'S;=`'Q<%lO&o`'TP;=`<%l&oa'ZP;=`<%l%gX'eWVP|WOr'^rs&Tsv'^w!^'^!^!_'}!_;'S'^;'S;=`(i<%lO'^W(ST|WOr'}sv'}w;'S'};'S;=`(c<%lO'}W(fP;=`<%l'}X(lP;=`<%l'^h(vV|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oh)`P;=`<%l(oi)fP;=`<%l$qo)t`VP|W!O`zUOX$qXY)iYZ)iZ]$q]^)i^p$qpq)iqr$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk+PV{YVP!O`Ov%gwx&Tx!^%g!^!_&o!_;'S%g;'S;=`'W<%lO%g~+iast,n![!]-r!c!}-r#R#S-r#T#o-r%W%o-r%p&a-r&b1p-r4U4d-r4e$IS-r$I`$Ib-r$Kh%#t-r&/x&Et-r&FV;'S-r;'S;:j/c?&r?Ah-r?BY?Mn-r~,qQ!Q![,w#l#m-V~,zQ!Q![,w!]!^-Q~-VOX~~-YR!Q![-c!c!i-c#T#Z-c~-fS!Q![-c!]!^-Q!c!i-c#T#Z-c~-ug}!O-r!O!P-r!Q![-r![!]-r!]!^/^!c!}-r#R#S-r#T#o-r$}%O-r%W%o-r%p&a-r&b1p-r1p4U-r4U4d-r4e$IS-r$I`$Ib-r$Je$Jg-r$Kh%#t-r&/x&Et-r&FV;'S-r;'S;:j/c?&r?Ah-r?BY?Mn-r~/cOW~~/fP;=`<%l-rk/rW}bVP|WOr'^rs&Tsv'^w!^'^!^!_'}!_;'S'^;'S;=`(i<%lO'^k0eZVP|W!O`Or$qrs%gsv$qwx'^x}$q}!O1W!O!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk1aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a2S!a;'S$q;'S;=`)c<%lO$qk2_X!PQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qm3TZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a3v!a;'S$q;'S;=`)c<%lO$qm4RXdSVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo4{!P`S^QVP|W!O`Or$qrs%gsv$qwx'^x}$q}!O4n!O!P4n!P!Q$q!Q![4n![!]4n!]!^$q!^!_(o!_!c$q!c!}4n!}#R$q#R#S4n#S#T$q#T#o4n#o$}$q$}%O4n%O%W$q%W%o4n%o%p$q%p&a4n&a&b$q&b1p4n1p4U4n4U4d4n4d4e$q4e$IS4n$IS$I`$q$I`$Ib4n$Ib$Je$q$Je$Jg4n$Jg$Kh$q$Kh%#t4n%#t&/x$q&/x&Et4n&Et&FV$q&FV;'S4n;'S;:j8O;:j;=`)c<%l?&r$q?&r?Ah4n?Ah?BY$q?BY?Mn4n?MnO$qo8RP;=`<%l4ni8]Y|W!O`Oq(oqr8{rs&osv(owx'}x!a(o!a!b!#U!b;'S(o;'S;=`)]<%lO(oi9S_|W!O`Or(ors&osv(owx'}x}(o}!O:R!O!f(o!f!g;e!g!}(o!}#ODh#O#W(o#W#XLp#X;'S(o;'S;=`)]<%lO(oi:YX|W!O`Or(ors&osv(owx'}x}(o}!O:u!O;'S(o;'S;=`)]<%lO(oi;OV!QP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oi;lX|W!O`Or(ors&osv(owx'}x!q(o!q!r<X!r;'S(o;'S;=`)]<%lO(oi<`X|W!O`Or(ors&osv(owx'}x!e(o!e!f<{!f;'S(o;'S;=`)]<%lO(oi=SX|W!O`Or(ors&osv(owx'}x!v(o!v!w=o!w;'S(o;'S;=`)]<%lO(oi=vX|W!O`Or(ors&osv(owx'}x!{(o!{!|>c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",
129
- tokenizers: [startTag, commentContent, piContent, cdataContent, 0, 1, 2, 3, 4],
130
- topRules: {"Document":[0,6]},
131
- tokenPrec: 0
132
- });
133
-
134
- function tagName(doc, tag) {
135
- let name = tag && tag.getChild("TagName");
136
- return name ? doc.sliceString(name.from, name.to) : "";
137
- }
138
- function elementName$1(doc, tree) {
139
- let tag = tree && tree.firstChild;
140
- return !tag || tag.name != "OpenTag" ? "" : tagName(doc, tag);
141
- }
142
- function attrName(doc, tag, pos) {
143
- let attr = tag && tag.getChildren("Attribute").find(a => a.from <= pos && a.to >= pos);
144
- let name = attr && attr.getChild("AttributeName");
145
- return name ? doc.sliceString(name.from, name.to) : "";
146
- }
147
- function findParentElement(tree) {
148
- for (let cur = tree && tree.parent; cur; cur = cur.parent)
149
- if (cur.name == "Element")
150
- return cur;
151
- return null;
152
- }
153
- function findLocation(state, pos) {
154
- var _a;
155
- let at = syntaxTree(state).resolveInner(pos, -1), inTag = null;
156
- for (let cur = at; !inTag && cur.parent; cur = cur.parent)
157
- if (cur.name == "OpenTag" || cur.name == "CloseTag" || cur.name == "SelfClosingTag" || cur.name == "MismatchedCloseTag")
158
- inTag = cur;
159
- if (inTag && (inTag.to > pos || inTag.lastChild.type.isError)) {
160
- let elt = inTag.parent;
161
- if (at.name == "TagName")
162
- return inTag.name == "CloseTag" || inTag.name == "MismatchedCloseTag"
163
- ? { type: "closeTag", from: at.from, context: elt }
164
- : { type: "openTag", from: at.from, context: findParentElement(elt) };
165
- if (at.name == "AttributeName")
166
- return { type: "attrName", from: at.from, context: inTag };
167
- if (at.name == "AttributeValue")
168
- return { type: "attrValue", from: at.from, context: inTag };
169
- let before = at == inTag || at.name == "Attribute" ? at.childBefore(pos) : at;
170
- if ((before === null || before === void 0 ? void 0 : before.name) == "StartTag")
171
- return { type: "openTag", from: pos, context: findParentElement(elt) };
172
- if ((before === null || before === void 0 ? void 0 : before.name) == "StartCloseTag" && before.to <= pos)
173
- return { type: "closeTag", from: pos, context: elt };
174
- if ((before === null || before === void 0 ? void 0 : before.name) == "Is")
175
- return { type: "attrValue", from: pos, context: inTag };
176
- if (before)
177
- return { type: "attrName", from: pos, context: inTag };
178
- return null;
179
- }
180
- else if (at.name == "StartCloseTag") {
181
- return { type: "closeTag", from: pos, context: at.parent };
182
- }
183
- while (at.parent && at.to == pos && !((_a = at.lastChild) === null || _a === void 0 ? void 0 : _a.type.isError))
184
- at = at.parent;
185
- if (at.name == "Element" || at.name == "Text" || at.name == "Document")
186
- return { type: "tag", from: pos, context: at.name == "Element" ? at : findParentElement(at) };
187
- return null;
188
- }
189
- class Element {
190
- constructor(spec, attrs, attrValues) {
191
- this.attrs = attrs;
192
- this.attrValues = attrValues;
193
- this.children = [];
194
- this.name = spec.name;
195
- this.completion = Object.assign(Object.assign({ type: "type" }, spec.completion || {}), { label: this.name });
196
- this.openCompletion = Object.assign(Object.assign({}, this.completion), { label: "<" + this.name });
197
- this.closeCompletion = Object.assign(Object.assign({}, this.completion), { label: "</" + this.name + ">", boost: 2 });
198
- this.closeNameCompletion = Object.assign(Object.assign({}, this.completion), { label: this.name + ">" });
199
- this.text = spec.textContent ? spec.textContent.map(s => ({ label: s, type: "text" })) : [];
200
- }
201
- }
202
- const Identifier = /^[:\-\.\w\u00b7-\uffff]*$/;
203
- function attrCompletion(spec) {
204
- return Object.assign(Object.assign({ type: "property" }, spec.completion || {}), { label: spec.name });
205
- }
206
- function valueCompletion(spec) {
207
- return typeof spec == "string" ? { label: `"${spec}"`, type: "constant" }
208
- : /^"/.test(spec.label) ? spec
209
- : Object.assign(Object.assign({}, spec), { label: `"${spec.label}"` });
210
- }
211
- /**
212
- Create a completion source for the given schema.
213
- */
214
- function completeFromSchema(eltSpecs, attrSpecs) {
215
- let allAttrs = [], globalAttrs = [];
216
- let attrValues = Object.create(null);
217
- for (let s of attrSpecs) {
218
- let completion = attrCompletion(s);
219
- allAttrs.push(completion);
220
- if (s.global)
221
- globalAttrs.push(completion);
222
- if (s.values)
223
- attrValues[s.name] = s.values.map(valueCompletion);
224
- }
225
- let allElements = [], topElements = [];
226
- let byName = Object.create(null);
227
- for (let s of eltSpecs) {
228
- let attrs = globalAttrs, attrVals = attrValues;
229
- if (s.attributes)
230
- attrs = attrs.concat(s.attributes.map(s => {
231
- if (typeof s == "string")
232
- return allAttrs.find(a => a.label == s) || { label: s, type: "property" };
233
- if (s.values) {
234
- if (attrVals == attrValues)
235
- attrVals = Object.create(attrVals);
236
- attrVals[s.name] = s.values.map(valueCompletion);
237
- }
238
- return attrCompletion(s);
239
- }));
240
- let elt = new Element(s, attrs, attrVals);
241
- byName[elt.name] = elt;
242
- allElements.push(elt);
243
- if (s.top)
244
- topElements.push(elt);
245
- }
246
- if (!topElements.length)
247
- topElements = allElements;
248
- for (let i = 0; i < allElements.length; i++) {
249
- let s = eltSpecs[i], elt = allElements[i];
250
- if (s.children) {
251
- for (let ch of s.children)
252
- if (byName[ch])
253
- elt.children.push(byName[ch]);
254
- }
255
- else {
256
- elt.children = allElements;
257
- }
258
- }
259
- return cx => {
260
- var _a;
261
- let { doc } = cx.state, loc = findLocation(cx.state, cx.pos);
262
- if (!loc || (loc.type == "tag" && !cx.explicit))
263
- return null;
264
- let { type, from, context } = loc;
265
- if (type == "openTag") {
266
- let children = topElements;
267
- let parentName = elementName$1(doc, context);
268
- if (parentName) {
269
- let parent = byName[parentName];
270
- children = (parent === null || parent === void 0 ? void 0 : parent.children) || allElements;
271
- }
272
- return {
273
- from,
274
- options: children.map(ch => ch.completion),
275
- validFor: Identifier
276
- };
277
- }
278
- else if (type == "closeTag") {
279
- let parentName = elementName$1(doc, context);
280
- return parentName ? {
281
- from,
282
- to: cx.pos + (doc.sliceString(cx.pos, cx.pos + 1) == ">" ? 1 : 0),
283
- options: [((_a = byName[parentName]) === null || _a === void 0 ? void 0 : _a.closeNameCompletion) || { label: parentName + ">", type: "type" }],
284
- validFor: Identifier
285
- } : null;
286
- }
287
- else if (type == "attrName") {
288
- let parent = byName[tagName(doc, context)];
289
- return {
290
- from,
291
- options: (parent === null || parent === void 0 ? void 0 : parent.attrs) || globalAttrs,
292
- validFor: Identifier
293
- };
294
- }
295
- else if (type == "attrValue") {
296
- let attr = attrName(doc, context, from);
297
- if (!attr)
298
- return null;
299
- let parent = byName[tagName(doc, context)];
300
- let values = ((parent === null || parent === void 0 ? void 0 : parent.attrValues) || attrValues)[attr];
301
- if (!values || !values.length)
302
- return null;
303
- return {
304
- from,
305
- to: cx.pos + (doc.sliceString(cx.pos, cx.pos + 1) == '"' ? 1 : 0),
306
- options: values,
307
- validFor: /^"[^"]*"?$/
308
- };
309
- }
310
- else if (type == "tag") {
311
- let parentName = elementName$1(doc, context), parent = byName[parentName];
312
- let closing = [], last = context && context.lastChild;
313
- if (parentName && (!last || last.name != "CloseTag" || tagName(doc, last) != parentName))
314
- closing.push(parent ? parent.closeCompletion : { label: "</" + parentName + ">", type: "type", boost: 2 });
315
- let options = closing.concat(((parent === null || parent === void 0 ? void 0 : parent.children) || (context ? allElements : topElements)).map(e => e.openCompletion));
316
- if (context && (parent === null || parent === void 0 ? void 0 : parent.text.length)) {
317
- let openTag = context.firstChild;
318
- if (openTag.to > cx.pos - 20 && !/\S/.test(cx.state.sliceDoc(openTag.to, cx.pos)))
319
- options = options.concat(parent.text);
320
- }
321
- return {
322
- from,
323
- options,
324
- validFor: /^<\/?[:\-\.\w\u00b7-\uffff]*$/
325
- };
326
- }
327
- else {
328
- return null;
329
- }
330
- };
331
- }
332
-
333
- /**
334
- A language provider based on the [Lezer XML
335
- parser](https://github.com/lezer-parser/xml), extended with
336
- highlighting and indentation information.
337
- */
338
- const xmlLanguage = /*@__PURE__*/LRLanguage.define({
339
- name: "xml",
340
- parser: /*@__PURE__*/parser.configure({
341
- props: [
342
- /*@__PURE__*/indentNodeProp.add({
343
- Element(context) {
344
- let closed = /^\s*<\//.test(context.textAfter);
345
- return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);
346
- },
347
- "OpenTag CloseTag SelfClosingTag"(context) {
348
- return context.column(context.node.from) + context.unit;
349
- }
350
- }),
351
- /*@__PURE__*/foldNodeProp.add({
352
- Element(subtree) {
353
- let first = subtree.firstChild, last = subtree.lastChild;
354
- if (!first || first.name != "OpenTag")
355
- return null;
356
- return { from: first.to, to: last.name == "CloseTag" ? last.from : subtree.to };
357
- }
358
- }),
359
- /*@__PURE__*/bracketMatchingHandle.add({
360
- "OpenTag CloseTag": node => node.getChild("TagName")
361
- })
362
- ]
363
- }),
364
- languageData: {
365
- commentTokens: { block: { open: "<!--", close: "-->" } },
366
- indentOnInput: /^\s*<\/$/
367
- }
368
- });
369
- /**
370
- XML language support. Includes schema-based autocompletion when
371
- configured.
372
- */
373
- function xml(conf = {}) {
374
- let support = [xmlLanguage.data.of({
375
- autocomplete: completeFromSchema(conf.elements || [], conf.attributes || [])
376
- })];
377
- if (conf.autoCloseTags !== false)
378
- support.push(autoCloseTags);
379
- return new LanguageSupport(xmlLanguage, support);
380
- }
381
- function elementName(doc, tree, max = doc.length) {
382
- if (!tree)
383
- return "";
384
- let tag = tree.firstChild;
385
- let name = tag && tag.getChild("TagName");
386
- return name ? doc.sliceString(name.from, Math.min(name.to, max)) : "";
387
- }
388
- /**
389
- Extension that will automatically insert close tags when a `>` or
390
- `/` is typed.
391
- */
392
- const autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, insertTransaction) => {
393
- if (view.composing || view.state.readOnly || from != to || (text != ">" && text != "/") ||
394
- !xmlLanguage.isActiveAt(view.state, from, -1))
395
- return false;
396
- let base = insertTransaction(), { state } = base;
397
- let closeTags = state.changeByRange(range => {
398
- var _a, _b, _c;
399
- let { head } = range;
400
- let didType = state.doc.sliceString(head - 1, head) == text;
401
- let after = syntaxTree(state).resolveInner(head, -1), name;
402
- if (didType && text == ">" && after.name == "EndTag") {
403
- let tag = after.parent;
404
- if (((_b = (_a = tag.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != "CloseTag" &&
405
- (name = elementName(state.doc, tag.parent, head))) {
406
- let to = head + (state.doc.sliceString(head, head + 1) === ">" ? 1 : 0);
407
- let insert = `</${name}>`;
408
- return { range, changes: { from: head, to, insert } };
409
- }
410
- }
411
- else if (didType && text == "/" && after.name == "StartCloseTag") {
412
- let base = after.parent;
413
- if (after.from == head - 2 && ((_c = base.lastChild) === null || _c === void 0 ? void 0 : _c.name) != "CloseTag" &&
414
- (name = elementName(state.doc, base, head))) {
415
- let to = head + (state.doc.sliceString(head, head + 1) === ">" ? 1 : 0);
416
- let insert = `${name}>`;
417
- return {
418
- range: EditorSelection.cursor(head + insert.length, -1),
419
- changes: { from: head, to, insert }
420
- };
421
- }
422
- }
423
- return { range };
424
- });
425
- if (closeTags.changes.empty)
426
- return false;
427
- view.dispatch([
428
- base,
429
- state.update(closeTags, {
430
- userEvent: "input.complete",
431
- scrollIntoView: true
432
- })
433
- ]);
434
- return true;
435
- });
436
-
437
- export { autoCloseTags, completeFromSchema, xml, xmlLanguage };