repl-sdk 1.0.1 → 1.0.3

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 (261) hide show
  1. package/package.json +12 -20
  2. package/dist/apl-fqmucPXA.js +0 -141
  3. package/dist/apl-fqmucPXA.js.map +0 -1
  4. package/dist/asciiarmor-DucZyvP0.js +0 -57
  5. package/dist/asciiarmor-DucZyvP0.js.map +0 -1
  6. package/dist/asn1-BnOEsgAm.js +0 -145
  7. package/dist/asn1-BnOEsgAm.js.map +0 -1
  8. package/dist/assets/tar-worker-CxTcoQcr.js +0 -593
  9. package/dist/assets/tar-worker-CxTcoQcr.js.map +0 -1
  10. package/dist/asterisk-QAlztEwS.js +0 -346
  11. package/dist/asterisk-QAlztEwS.js.map +0 -1
  12. package/dist/brainfuck-DZVCuF_t.js +0 -54
  13. package/dist/brainfuck-DZVCuF_t.js.map +0 -1
  14. package/dist/clike-CTYGlS6x.js +0 -800
  15. package/dist/clike-CTYGlS6x.js.map +0 -1
  16. package/dist/clojure-BhXMqnxz.js +0 -850
  17. package/dist/clojure-BhXMqnxz.js.map +0 -1
  18. package/dist/cmake-BGaNd9E7.js +0 -72
  19. package/dist/cmake-BGaNd9E7.js.map +0 -1
  20. package/dist/cobol-4yqQntpt.js +0 -121
  21. package/dist/cobol-4yqQntpt.js.map +0 -1
  22. package/dist/codemirror-De3S70Np.js +0 -2912
  23. package/dist/codemirror-De3S70Np.js.map +0 -1
  24. package/dist/coffeescript-D2dXvhEc.js +0 -309
  25. package/dist/coffeescript-D2dXvhEc.js.map +0 -1
  26. package/dist/commonlisp-CF_VNHQR.js +0 -131
  27. package/dist/commonlisp-CF_VNHQR.js.map +0 -1
  28. package/dist/crystal-DyuLTqLs.js +0 -399
  29. package/dist/crystal-DyuLTqLs.js.map +0 -1
  30. package/dist/css-DkSyTW67.js +0 -1773
  31. package/dist/css-DkSyTW67.js.map +0 -1
  32. package/dist/cypher-Dlu_3r4V.js +0 -122
  33. package/dist/cypher-Dlu_3r4V.js.map +0 -1
  34. package/dist/d-UURgV0Ux.js +0 -180
  35. package/dist/d-UURgV0Ux.js.map +0 -1
  36. package/dist/diff-B_Bi2Crb.js +0 -26
  37. package/dist/diff-B_Bi2Crb.js.map +0 -1
  38. package/dist/dockerfile-Bvk733Ga.js +0 -202
  39. package/dist/dockerfile-Bvk733Ga.js.map +0 -1
  40. package/dist/dtd-Dy74G54E.js +0 -115
  41. package/dist/dtd-Dy74G54E.js.map +0 -1
  42. package/dist/dylan-TSb-Nfix.js +0 -315
  43. package/dist/dylan-TSb-Nfix.js.map +0 -1
  44. package/dist/ebnf-4fKAGW3a.js +0 -141
  45. package/dist/ebnf-4fKAGW3a.js.map +0 -1
  46. package/dist/ecl-B59qGGVg.js +0 -179
  47. package/dist/ecl-B59qGGVg.js.map +0 -1
  48. package/dist/eiffel-Dze7nlu3.js +0 -135
  49. package/dist/eiffel-Dze7nlu3.js.map +0 -1
  50. package/dist/elm-DG7jkhNZ.js +0 -177
  51. package/dist/elm-DG7jkhNZ.js.map +0 -1
  52. package/dist/erlang-BO6gOnGA.js +0 -675
  53. package/dist/erlang-BO6gOnGA.js.map +0 -1
  54. package/dist/factor-CMxFHDqz.js +0 -66
  55. package/dist/factor-CMxFHDqz.js.map +0 -1
  56. package/dist/fcl-CDDUNjTj.js +0 -142
  57. package/dist/fcl-CDDUNjTj.js.map +0 -1
  58. package/dist/forth-B9D2JCeE.js +0 -117
  59. package/dist/forth-B9D2JCeE.js.map +0 -1
  60. package/dist/fortran-CAG2BFbe.js +0 -468
  61. package/dist/fortran-CAG2BFbe.js.map +0 -1
  62. package/dist/gas-0Aw8zDr5.js +0 -294
  63. package/dist/gas-0Aw8zDr5.js.map +0 -1
  64. package/dist/gherkin-DhZlEZiy.js +0 -116
  65. package/dist/gherkin-DhZlEZiy.js.map +0 -1
  66. package/dist/gjs-DfguZDLq.js +0 -173
  67. package/dist/gjs-DfguZDLq.js.map +0 -1
  68. package/dist/gmd-Yas-Oo8k.js +0 -163
  69. package/dist/gmd-Yas-Oo8k.js.map +0 -1
  70. package/dist/groovy-CpwJiBl7.js +0 -224
  71. package/dist/groovy-CpwJiBl7.js.map +0 -1
  72. package/dist/haskell-ySd-OUo8.js +0 -460
  73. package/dist/haskell-ySd-OUo8.js.map +0 -1
  74. package/dist/haxe-7MlzfeYV.js +0 -515
  75. package/dist/haxe-7MlzfeYV.js.map +0 -1
  76. package/dist/hbs-CxcmWxSJ.js +0 -62
  77. package/dist/hbs-CxcmWxSJ.js.map +0 -1
  78. package/dist/http-BqypyemW.js +0 -80
  79. package/dist/http-BqypyemW.js.map +0 -1
  80. package/dist/idl-4HIGJlDI.js +0 -986
  81. package/dist/idl-4HIGJlDI.js.map +0 -1
  82. package/dist/index-B3Meoznj.js +0 -118
  83. package/dist/index-B3Meoznj.js.map +0 -1
  84. package/dist/index-BQyfDUUx.js +0 -692
  85. package/dist/index-BQyfDUUx.js.map +0 -1
  86. package/dist/index-BRDroAD8.js +0 -305
  87. package/dist/index-BRDroAD8.js.map +0 -1
  88. package/dist/index-BRMAzRyM.js +0 -179
  89. package/dist/index-BRMAzRyM.js.map +0 -1
  90. package/dist/index-Bb8uYQgv.js +0 -927
  91. package/dist/index-Bb8uYQgv.js.map +0 -1
  92. package/dist/index-BlOjO66K.js +0 -17618
  93. package/dist/index-BlOjO66K.js.map +0 -1
  94. package/dist/index-BoGWnSNL.js +0 -706
  95. package/dist/index-BoGWnSNL.js.map +0 -1
  96. package/dist/index-BsRrEiOu.js +0 -98
  97. package/dist/index-BsRrEiOu.js.map +0 -1
  98. package/dist/index-C2sFZMth.js +0 -391
  99. package/dist/index-C2sFZMth.js.map +0 -1
  100. package/dist/index-C7xwOjmS.js +0 -291
  101. package/dist/index-C7xwOjmS.js.map +0 -1
  102. package/dist/index-CA3lFUx6.js +0 -315
  103. package/dist/index-CA3lFUx6.js.map +0 -1
  104. package/dist/index-CB-pPTIf.js +0 -98
  105. package/dist/index-CB-pPTIf.js.map +0 -1
  106. package/dist/index-CCa6x1FE.js +0 -386
  107. package/dist/index-CCa6x1FE.js.map +0 -1
  108. package/dist/index-CD4DINI1.js +0 -158
  109. package/dist/index-CD4DINI1.js.map +0 -1
  110. package/dist/index-CE0B_fcG.js +0 -328
  111. package/dist/index-CE0B_fcG.js.map +0 -1
  112. package/dist/index-CVGAEPMV.js +0 -2139
  113. package/dist/index-CVGAEPMV.js.map +0 -1
  114. package/dist/index-CmaT2afn.js +0 -332
  115. package/dist/index-CmaT2afn.js.map +0 -1
  116. package/dist/index-D8sUxXp5.js +0 -83
  117. package/dist/index-D8sUxXp5.js.map +0 -1
  118. package/dist/index-DIz8Vpn-.js +0 -737
  119. package/dist/index-DIz8Vpn-.js.map +0 -1
  120. package/dist/index-DNP1xT-S.js +0 -408
  121. package/dist/index-DNP1xT-S.js.map +0 -1
  122. package/dist/index-DOAqdvnQ.js +0 -862
  123. package/dist/index-DOAqdvnQ.js.map +0 -1
  124. package/dist/index-DVUMFbgi.js +0 -152
  125. package/dist/index-DVUMFbgi.js.map +0 -1
  126. package/dist/index-VeTBKRVd.js +0 -83
  127. package/dist/index-VeTBKRVd.js.map +0 -1
  128. package/dist/index-dXZeR7Bx.js +0 -1767
  129. package/dist/index-dXZeR7Bx.js.map +0 -1
  130. package/dist/index-gtqbIb6T.js +0 -62
  131. package/dist/index-gtqbIb6T.js.map +0 -1
  132. package/dist/index-pN_pUAQ7.js +0 -2426
  133. package/dist/index-pN_pUAQ7.js.map +0 -1
  134. package/dist/index-wasu5VX0.js +0 -1150
  135. package/dist/index-wasu5VX0.js.map +0 -1
  136. package/dist/javascript-Bt8B7yTi.js +0 -993
  137. package/dist/javascript-Bt8B7yTi.js.map +0 -1
  138. package/dist/julia-Bs6JJhYG.js +0 -408
  139. package/dist/julia-Bs6JJhYG.js.map +0 -1
  140. package/dist/livescript-DmzgM3Yt.js +0 -297
  141. package/dist/livescript-DmzgM3Yt.js.map +0 -1
  142. package/dist/lua-8cJgIlqe.js +0 -257
  143. package/dist/lua-8cJgIlqe.js.map +0 -1
  144. package/dist/mathematica-DNLOL9PQ.js +0 -111
  145. package/dist/mathematica-DNLOL9PQ.js.map +0 -1
  146. package/dist/mbox-Ga7d4MMN.js +0 -118
  147. package/dist/mbox-Ga7d4MMN.js.map +0 -1
  148. package/dist/mirc-Dma3B8rS.js +0 -108
  149. package/dist/mirc-Dma3B8rS.js.map +0 -1
  150. package/dist/mllike-DHn7xckP.js +0 -335
  151. package/dist/mllike-DHn7xckP.js.map +0 -1
  152. package/dist/modelica-0d55jYY0.js +0 -148
  153. package/dist/modelica-0d55jYY0.js.map +0 -1
  154. package/dist/mscgen-DdqZYINH.js +0 -136
  155. package/dist/mscgen-DdqZYINH.js.map +0 -1
  156. package/dist/mumps-Btr8VblO.js +0 -94
  157. package/dist/mumps-Btr8VblO.js.map +0 -1
  158. package/dist/nginx-DTDtBDVN.js +0 -142
  159. package/dist/nginx-DTDtBDVN.js.map +0 -1
  160. package/dist/nsis-3zG7tgur.js +0 -63
  161. package/dist/nsis-3zG7tgur.js.map +0 -1
  162. package/dist/ntriples-CvgOYMpL.js +0 -154
  163. package/dist/ntriples-CvgOYMpL.js.map +0 -1
  164. package/dist/octave-DYBj3-tl.js +0 -201
  165. package/dist/octave-DYBj3-tl.js.map +0 -1
  166. package/dist/oz-R_e8WMIi.js +0 -232
  167. package/dist/oz-R_e8WMIi.js.map +0 -1
  168. package/dist/parse-CAqQaKsh.js +0 -21685
  169. package/dist/parse-CAqQaKsh.js.map +0 -1
  170. package/dist/pascal-GD8iposT.js +0 -106
  171. package/dist/pascal-GD8iposT.js.map +0 -1
  172. package/dist/perl-DL9mHpoi.js +0 -1106
  173. package/dist/perl-DL9mHpoi.js.map +0 -1
  174. package/dist/pig-C_4T4YIV.js +0 -102
  175. package/dist/pig-C_4T4YIV.js.map +0 -1
  176. package/dist/powershell-B0suO7Vd.js +0 -329
  177. package/dist/powershell-B0suO7Vd.js.map +0 -1
  178. package/dist/properties-BR-vP1aU.js +0 -59
  179. package/dist/properties-BR-vP1aU.js.map +0 -1
  180. package/dist/protobuf-BxgpyhoW.js +0 -78
  181. package/dist/protobuf-BxgpyhoW.js.map +0 -1
  182. package/dist/pug-vHnWR0UE.js +0 -406
  183. package/dist/pug-vHnWR0UE.js.map +0 -1
  184. package/dist/puppet-Bdao66PW.js +0 -138
  185. package/dist/puppet-Bdao66PW.js.map +0 -1
  186. package/dist/python-BFGRmuZ9.js +0 -427
  187. package/dist/python-BFGRmuZ9.js.map +0 -1
  188. package/dist/q-CrbCVq4a.js +0 -132
  189. package/dist/q-CrbCVq4a.js.map +0 -1
  190. package/dist/r-V7nswm59.js +0 -171
  191. package/dist/r-V7nswm59.js.map +0 -1
  192. package/dist/render-app-island-B-i8rvGi.js +0 -61
  193. package/dist/render-app-island-B-i8rvGi.js.map +0 -1
  194. package/dist/repl-sdk.js +0 -7
  195. package/dist/repl-sdk.js.map +0 -1
  196. package/dist/rpm-C-DLY-If.js +0 -110
  197. package/dist/rpm-C-DLY-If.js.map +0 -1
  198. package/dist/ruby-JDKLJNK0.js +0 -331
  199. package/dist/ruby-JDKLJNK0.js.map +0 -1
  200. package/dist/sas-D2UG-yhZ.js +0 -208
  201. package/dist/sas-D2UG-yhZ.js.map +0 -1
  202. package/dist/scheme-BKzrkGJD.js +0 -223
  203. package/dist/scheme-BKzrkGJD.js.map +0 -1
  204. package/dist/shell-BlsXDxCn.js +0 -223
  205. package/dist/shell-BlsXDxCn.js.map +0 -1
  206. package/dist/sieve-CjwBwOY5.js +0 -136
  207. package/dist/sieve-CjwBwOY5.js.map +0 -1
  208. package/dist/simple-mode-DMneyfDu.js +0 -131
  209. package/dist/simple-mode-DMneyfDu.js.map +0 -1
  210. package/dist/smalltalk-BOIGQuhN.js +0 -122
  211. package/dist/smalltalk-BOIGQuhN.js.map +0 -1
  212. package/dist/solr-CwD7U71z.js +0 -70
  213. package/dist/solr-CwD7U71z.js.map +0 -1
  214. package/dist/sparql-DYskk2vE.js +0 -250
  215. package/dist/sparql-DYskk2vE.js.map +0 -1
  216. package/dist/spreadsheet-Bgtt3oLP.js +0 -88
  217. package/dist/spreadsheet-Bgtt3oLP.js.map +0 -1
  218. package/dist/sql-Cei9CMfk.js +0 -343
  219. package/dist/sql-Cei9CMfk.js.map +0 -1
  220. package/dist/stex-C1nZSzAw.js +0 -231
  221. package/dist/stex-C1nZSzAw.js.map +0 -1
  222. package/dist/stylus-BkS-boTH.js +0 -566
  223. package/dist/stylus-BkS-boTH.js.map +0 -1
  224. package/dist/swift-FRZi1uvB.js +0 -292
  225. package/dist/swift-FRZi1uvB.js.map +0 -1
  226. package/dist/tcl-CUcaCdmq.js +0 -115
  227. package/dist/tcl-CUcaCdmq.js.map +0 -1
  228. package/dist/textile-BnFpjsrl.js +0 -415
  229. package/dist/textile-BnFpjsrl.js.map +0 -1
  230. package/dist/tiddlywiki-CjprD-Qp.js +0 -219
  231. package/dist/tiddlywiki-CjprD-Qp.js.map +0 -1
  232. package/dist/tiki-DK9DOeWn.js +0 -269
  233. package/dist/tiki-DK9DOeWn.js.map +0 -1
  234. package/dist/toml-BOuWGMcf.js +0 -77
  235. package/dist/toml-BOuWGMcf.js.map +0 -1
  236. package/dist/troff-E1bJ0PPL.js +0 -62
  237. package/dist/troff-E1bJ0PPL.js.map +0 -1
  238. package/dist/ttcn-cfg-Dc39-fIP.js +0 -134
  239. package/dist/ttcn-cfg-Dc39-fIP.js.map +0 -1
  240. package/dist/ttcn-tKd4HLu4.js +0 -193
  241. package/dist/ttcn-tKd4HLu4.js.map +0 -1
  242. package/dist/turtle-Dq7-1WAf.js +0 -125
  243. package/dist/turtle-Dq7-1WAf.js.map +0 -1
  244. package/dist/vb-Dp90gtsv.js +0 -197
  245. package/dist/vb-Dp90gtsv.js.map +0 -1
  246. package/dist/vbscript-Bfn8O8I7.js +0 -479
  247. package/dist/vbscript-Bfn8O8I7.js.map +0 -1
  248. package/dist/velocity-BwIZK1TH.js +0 -150
  249. package/dist/velocity-BwIZK1TH.js.map +0 -1
  250. package/dist/verilog-CnT9bMk0.js +0 -430
  251. package/dist/verilog-CnT9bMk0.js.map +0 -1
  252. package/dist/vhdl-DCkMIyT9.js +0 -159
  253. package/dist/vhdl-DCkMIyT9.js.map +0 -1
  254. package/dist/webidl-BTLTThCm.js +0 -205
  255. package/dist/webidl-BTLTThCm.js.map +0 -1
  256. package/dist/xquery-BrBUuxMR.js +0 -526
  257. package/dist/xquery-BrBUuxMR.js.map +0 -1
  258. package/dist/yacas-b5lAVEIl.js +0 -131
  259. package/dist/yacas-b5lAVEIl.js.map +0 -1
  260. package/dist/z80-ClgwfNdB.js +0 -93
  261. package/dist/z80-ClgwfNdB.js.map +0 -1
@@ -1,391 +0,0 @@
1
- import { Z as LanguageSupport, P as Prec, Q as keymap, s as syntaxTree, a as EditorSelection, c as countColumn, a6 as Language, a7 as defineLanguageFacet, a9 as foldService, a4 as LanguageDescription, aa as ParseContext, k as indentUnit, u as EditorState, a3 as foldNodeProp, a2 as indentNodeProp, a8 as languageDataProp } from "./index-BlOjO66K.js";
2
- import { C as CompletionContext } from "./index-pN_pUAQ7.js";
3
- import { MarkdownParser, parseCode, parser, GFM, Subscript, Superscript, Emoji } from "@lezer/markdown";
4
- import { a as html, h as htmlCompletionSource } from "./index-dXZeR7Bx.js";
5
- import { NodeProp } from "@lezer/common";
6
- const data = /* @__PURE__ */ defineLanguageFacet({ commentTokens: { block: { open: "<!--", close: "-->" } } });
7
- const headingProp = /* @__PURE__ */ new NodeProp();
8
- const commonmark = /* @__PURE__ */ parser.configure({
9
- props: [
10
- /* @__PURE__ */ foldNodeProp.add((type) => {
11
- return !type.is("Block") || type.is("Document") || isHeading(type) != null || isList(type) ? void 0 : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });
12
- }),
13
- /* @__PURE__ */ headingProp.add(isHeading),
14
- /* @__PURE__ */ indentNodeProp.add({
15
- Document: () => null
16
- }),
17
- /* @__PURE__ */ languageDataProp.add({
18
- Document: data
19
- })
20
- ]
21
- });
22
- function isHeading(type) {
23
- let match = /^(?:ATX|Setext)Heading(\d)$/.exec(type.name);
24
- return match ? +match[1] : void 0;
25
- }
26
- function isList(type) {
27
- return type.name == "OrderedList" || type.name == "BulletList";
28
- }
29
- function findSectionEnd(headerNode, level) {
30
- let last = headerNode;
31
- for (; ; ) {
32
- let next = last.nextSibling, heading;
33
- if (!next || (heading = isHeading(next.type)) != null && heading <= level)
34
- break;
35
- last = next;
36
- }
37
- return last.to;
38
- }
39
- const headerIndent = /* @__PURE__ */ foldService.of((state, start, end) => {
40
- for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {
41
- if (node.from < start)
42
- break;
43
- let heading = node.type.prop(headingProp);
44
- if (heading == null)
45
- continue;
46
- let upto = findSectionEnd(node, heading);
47
- if (upto > end)
48
- return { from: end, to: upto };
49
- }
50
- return null;
51
- });
52
- function mkLang(parser2) {
53
- return new Language(data, parser2, [headerIndent], "markdown");
54
- }
55
- const commonmarkLanguage = /* @__PURE__ */ mkLang(commonmark);
56
- const extended = /* @__PURE__ */ commonmark.configure([GFM, Subscript, Superscript, Emoji, {
57
- props: [
58
- /* @__PURE__ */ foldNodeProp.add({
59
- Table: (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to })
60
- })
61
- ]
62
- }]);
63
- const markdownLanguage = /* @__PURE__ */ mkLang(extended);
64
- function getCodeParser(languages, defaultLanguage) {
65
- return (info) => {
66
- if (info && languages) {
67
- let found = null;
68
- info = /\S*/.exec(info)[0];
69
- if (typeof languages == "function")
70
- found = languages(info);
71
- else
72
- found = LanguageDescription.matchLanguageName(languages, info, true);
73
- if (found instanceof LanguageDescription)
74
- return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());
75
- else if (found)
76
- return found.parser;
77
- }
78
- return defaultLanguage ? defaultLanguage.parser : null;
79
- };
80
- }
81
- class Context {
82
- constructor(node, from, to, spaceBefore, spaceAfter, type, item) {
83
- this.node = node;
84
- this.from = from;
85
- this.to = to;
86
- this.spaceBefore = spaceBefore;
87
- this.spaceAfter = spaceAfter;
88
- this.type = type;
89
- this.item = item;
90
- }
91
- blank(maxWidth, trailing = true) {
92
- let result = this.spaceBefore + (this.node.name == "Blockquote" ? ">" : "");
93
- if (maxWidth != null) {
94
- while (result.length < maxWidth)
95
- result += " ";
96
- return result;
97
- } else {
98
- for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)
99
- result += " ";
100
- return result + (trailing ? this.spaceAfter : "");
101
- }
102
- }
103
- marker(doc, add) {
104
- let number = this.node.name == "OrderedList" ? String(+itemNumber(this.item, doc)[2] + add) : "";
105
- return this.spaceBefore + number + this.type + this.spaceAfter;
106
- }
107
- }
108
- function getContext(node, doc) {
109
- let nodes = [], context = [];
110
- for (let cur = node; cur; cur = cur.parent) {
111
- if (cur.name == "FencedCode")
112
- return context;
113
- if (cur.name == "ListItem" || cur.name == "Blockquote")
114
- nodes.push(cur);
115
- }
116
- for (let i = nodes.length - 1; i >= 0; i--) {
117
- let node2 = nodes[i], match;
118
- let line = doc.lineAt(node2.from), startPos = node2.from - line.from;
119
- if (node2.name == "Blockquote" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {
120
- context.push(new Context(node2, startPos, startPos + match[0].length, "", match[1], ">", null));
121
- } else if (node2.name == "ListItem" && node2.parent.name == "OrderedList" && (match = /^( *)\d+([.)])( *)/.exec(line.text.slice(startPos)))) {
122
- let after = match[3], len = match[0].length;
123
- if (after.length >= 4) {
124
- after = after.slice(0, after.length - 4);
125
- len -= 4;
126
- }
127
- context.push(new Context(node2.parent, startPos, startPos + len, match[1], after, match[2], node2));
128
- } else if (node2.name == "ListItem" && node2.parent.name == "BulletList" && (match = /^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(line.text.slice(startPos)))) {
129
- let after = match[4], len = match[0].length;
130
- if (after.length > 4) {
131
- after = after.slice(0, after.length - 4);
132
- len -= 4;
133
- }
134
- let type = match[2];
135
- if (match[3])
136
- type += match[3].replace(/[xX]/, " ");
137
- context.push(new Context(node2.parent, startPos, startPos + len, match[1], after, type, node2));
138
- }
139
- }
140
- return context;
141
- }
142
- function itemNumber(item, doc) {
143
- return /^(\s*)(\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));
144
- }
145
- function renumberList(after, doc, changes, offset = 0) {
146
- for (let prev = -1, node = after; ; ) {
147
- if (node.name == "ListItem") {
148
- let m = itemNumber(node, doc);
149
- let number = +m[2];
150
- if (prev >= 0) {
151
- if (number != prev + 1)
152
- return;
153
- changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });
154
- }
155
- prev = number;
156
- }
157
- let next = node.nextSibling;
158
- if (!next)
159
- break;
160
- node = next;
161
- }
162
- }
163
- function normalizeIndent(content, state) {
164
- let blank = /^[ \t]*/.exec(content)[0].length;
165
- if (!blank || state.facet(indentUnit) != " ")
166
- return content;
167
- let col = countColumn(content, 4, blank);
168
- let space = "";
169
- for (let i = col; i > 0; ) {
170
- if (i >= 4) {
171
- space += " ";
172
- i -= 4;
173
- } else {
174
- space += " ";
175
- i--;
176
- }
177
- }
178
- return space + content.slice(blank);
179
- }
180
- const insertNewlineContinueMarkup = ({ state, dispatch }) => {
181
- let tree = syntaxTree(state), { doc } = state;
182
- let dont = null, changes = state.changeByRange((range) => {
183
- if (!range.empty || !markdownLanguage.isActiveAt(state, range.from, -1) && !markdownLanguage.isActiveAt(state, range.from, 1))
184
- return dont = { range };
185
- let pos = range.from, line = doc.lineAt(pos);
186
- let context = getContext(tree.resolveInner(pos, -1), doc);
187
- while (context.length && context[context.length - 1].from > pos - line.from)
188
- context.pop();
189
- if (!context.length)
190
- return dont = { range };
191
- let inner = context[context.length - 1];
192
- if (inner.to - inner.spaceAfter.length > pos - line.from)
193
- return dont = { range };
194
- let emptyLine = pos >= inner.to - inner.spaceAfter.length && !/\S/.test(line.text.slice(inner.to));
195
- if (inner.item && emptyLine) {
196
- let first = inner.node.firstChild, second = inner.node.getChild("ListItem", "ListItem");
197
- if (first.to >= pos || second && second.to < pos || line.from > 0 && !/[^\s>]/.test(doc.lineAt(line.from - 1).text)) {
198
- let next = context.length > 1 ? context[context.length - 2] : null;
199
- let delTo, insert2 = "";
200
- if (next && next.item) {
201
- delTo = line.from + next.from;
202
- insert2 = next.marker(doc, 1);
203
- } else {
204
- delTo = line.from + (next ? next.to : 0);
205
- }
206
- let changes3 = [{ from: delTo, to: pos, insert: insert2 }];
207
- if (inner.node.name == "OrderedList")
208
- renumberList(inner.item, doc, changes3, -2);
209
- if (next && next.node.name == "OrderedList")
210
- renumberList(next.item, doc, changes3);
211
- return { range: EditorSelection.cursor(delTo + insert2.length), changes: changes3 };
212
- } else {
213
- let insert2 = blankLine(context, state, line);
214
- return {
215
- range: EditorSelection.cursor(pos + insert2.length + 1),
216
- changes: { from: line.from, insert: insert2 + state.lineBreak }
217
- };
218
- }
219
- }
220
- if (inner.node.name == "Blockquote" && emptyLine && line.from) {
221
- let prevLine = doc.lineAt(line.from - 1), quoted = />\s*$/.exec(prevLine.text);
222
- if (quoted && quoted.index == inner.from) {
223
- let changes3 = state.changes([
224
- { from: prevLine.from + quoted.index, to: prevLine.to },
225
- { from: line.from + inner.from, to: line.to }
226
- ]);
227
- return { range: range.map(changes3), changes: changes3 };
228
- }
229
- }
230
- let changes2 = [];
231
- if (inner.node.name == "OrderedList")
232
- renumberList(inner.item, doc, changes2);
233
- let continued = inner.item && inner.item.from < line.from;
234
- let insert = "";
235
- if (!continued || /^[\s\d.)\-+*>]*/.exec(line.text)[0].length >= inner.to) {
236
- for (let i = 0, e = context.length - 1; i <= e; i++) {
237
- insert += i == e && !continued ? context[i].marker(doc, 1) : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);
238
- }
239
- }
240
- let from = pos;
241
- while (from > line.from && /\s/.test(line.text.charAt(from - line.from - 1)))
242
- from--;
243
- insert = normalizeIndent(insert, state);
244
- if (nonTightList(inner.node, state.doc))
245
- insert = blankLine(context, state, line) + state.lineBreak + insert;
246
- changes2.push({ from, to: pos, insert: state.lineBreak + insert });
247
- return { range: EditorSelection.cursor(from + insert.length + 1), changes: changes2 };
248
- });
249
- if (dont)
250
- return false;
251
- dispatch(state.update(changes, { scrollIntoView: true, userEvent: "input" }));
252
- return true;
253
- };
254
- function isMark(node) {
255
- return node.name == "QuoteMark" || node.name == "ListMark";
256
- }
257
- function nonTightList(node, doc) {
258
- if (node.name != "OrderedList" && node.name != "BulletList")
259
- return false;
260
- let first = node.firstChild, second = node.getChild("ListItem", "ListItem");
261
- if (!second)
262
- return false;
263
- let line1 = doc.lineAt(first.to), line2 = doc.lineAt(second.from);
264
- let empty = /^[\s>]*$/.test(line1.text);
265
- return line1.number + (empty ? 0 : 1) < line2.number;
266
- }
267
- function blankLine(context, state, line) {
268
- let insert = "";
269
- for (let i = 0, e = context.length - 2; i <= e; i++) {
270
- insert += context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null, i < e);
271
- }
272
- return normalizeIndent(insert, state);
273
- }
274
- function contextNodeForDelete(tree, pos) {
275
- let node = tree.resolveInner(pos, -1), scan = pos;
276
- if (isMark(node)) {
277
- scan = node.from;
278
- node = node.parent;
279
- }
280
- for (let prev; prev = node.childBefore(scan); ) {
281
- if (isMark(prev)) {
282
- scan = prev.from;
283
- } else if (prev.name == "OrderedList" || prev.name == "BulletList") {
284
- node = prev.lastChild;
285
- scan = node.to;
286
- } else {
287
- break;
288
- }
289
- }
290
- return node;
291
- }
292
- const deleteMarkupBackward = ({ state, dispatch }) => {
293
- let tree = syntaxTree(state);
294
- let dont = null, changes = state.changeByRange((range) => {
295
- let pos = range.from, { doc } = state;
296
- if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {
297
- let line = doc.lineAt(pos);
298
- let context = getContext(contextNodeForDelete(tree, pos), doc);
299
- if (context.length) {
300
- let inner = context[context.length - 1];
301
- let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);
302
- if (pos - line.from > spaceEnd && !/\S/.test(line.text.slice(spaceEnd, pos - line.from)))
303
- return {
304
- range: EditorSelection.cursor(line.from + spaceEnd),
305
- changes: { from: line.from + spaceEnd, to: pos }
306
- };
307
- if (pos - line.from == spaceEnd && // Only apply this if we're on the line that has the
308
- // construct's syntax, or there's only indentation in the
309
- // target range
310
- (!inner.item || line.from <= inner.item.from || !/\S/.test(line.text.slice(0, inner.to)))) {
311
- let start = line.from + inner.from;
312
- if (inner.item && inner.node.from < inner.item.from && /\S/.test(line.text.slice(inner.from, inner.to))) {
313
- let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));
314
- if (start == line.from)
315
- insert = normalizeIndent(insert, state);
316
- return {
317
- range: EditorSelection.cursor(start + insert.length),
318
- changes: { from: start, to: line.from + inner.to, insert }
319
- };
320
- }
321
- if (start < pos)
322
- return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };
323
- }
324
- }
325
- }
326
- return dont = { range };
327
- });
328
- if (dont)
329
- return false;
330
- dispatch(state.update(changes, { scrollIntoView: true, userEvent: "delete" }));
331
- return true;
332
- };
333
- const markdownKeymap = [
334
- { key: "Enter", run: insertNewlineContinueMarkup },
335
- { key: "Backspace", run: deleteMarkupBackward }
336
- ];
337
- const htmlNoMatch = /* @__PURE__ */ html({ matchClosingTags: false });
338
- function markdown(config = {}) {
339
- let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser: parser2 } = commonmarkLanguage, completeHTMLTags = true, htmlTagLanguage = htmlNoMatch } = config;
340
- if (!(parser2 instanceof MarkdownParser))
341
- throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");
342
- let extensions = config.extensions ? [config.extensions] : [];
343
- let support = [htmlTagLanguage.support], defaultCode;
344
- if (defaultCodeLanguage instanceof LanguageSupport) {
345
- support.push(defaultCodeLanguage.support);
346
- defaultCode = defaultCodeLanguage.language;
347
- } else if (defaultCodeLanguage) {
348
- defaultCode = defaultCodeLanguage;
349
- }
350
- let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : void 0;
351
- extensions.push(parseCode({ codeParser, htmlParser: htmlTagLanguage.language.parser }));
352
- if (addKeymap)
353
- support.push(Prec.high(keymap.of(markdownKeymap)));
354
- let lang = mkLang(parser2.configure(extensions));
355
- if (completeHTMLTags)
356
- support.push(lang.data.of({ autocomplete: htmlTagCompletion }));
357
- return new LanguageSupport(lang, support);
358
- }
359
- function htmlTagCompletion(context) {
360
- let { state, pos } = context, m = /<[:\-\.\w\u00b7-\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));
361
- if (!m)
362
- return null;
363
- let tree = syntaxTree(state).resolveInner(pos, -1);
364
- while (tree && !tree.type.isTop) {
365
- if (tree.name == "CodeBlock" || tree.name == "FencedCode" || tree.name == "ProcessingInstructionBlock" || tree.name == "CommentBlock" || tree.name == "Link" || tree.name == "Image")
366
- return null;
367
- tree = tree.parent;
368
- }
369
- return {
370
- from: pos - m[0].length,
371
- to: pos,
372
- options: htmlTagCompletions(),
373
- validFor: /^<[:\-\.\w\u00b7-\uffff]*$/
374
- };
375
- }
376
- let _tagCompletions = null;
377
- function htmlTagCompletions() {
378
- if (_tagCompletions)
379
- return _tagCompletions;
380
- let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));
381
- return _tagCompletions = result ? result.options : [];
382
- }
383
- export {
384
- commonmarkLanguage,
385
- deleteMarkupBackward,
386
- insertNewlineContinueMarkup,
387
- markdown,
388
- markdownKeymap,
389
- markdownLanguage
390
- };
391
- //# sourceMappingURL=index-C2sFZMth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C2sFZMth.js","sources":["../../../node_modules/.pnpm/@codemirror+lang-markdown@6.3.3/node_modules/@codemirror/lang-markdown/dist/index.js"],"sourcesContent":["import { EditorSelection, countColumn, Prec, EditorState } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { defineLanguageFacet, foldNodeProp, indentNodeProp, languageDataProp, foldService, syntaxTree, Language, LanguageDescription, ParseContext, indentUnit, LanguageSupport } from '@codemirror/language';\nimport { CompletionContext } from '@codemirror/autocomplete';\nimport { parser, GFM, Subscript, Superscript, Emoji, MarkdownParser, parseCode } from '@lezer/markdown';\nimport { html, htmlCompletionSource } from '@codemirror/lang-html';\nimport { NodeProp } from '@lezer/common';\n\nconst data = /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"<!--\", close: \"-->\" } } });\nconst headingProp = /*@__PURE__*/new NodeProp();\nconst commonmark = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add(type => {\n return !type.is(\"Block\") || type.is(\"Document\") || isHeading(type) != null || isList(type) ? undefined\n : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });\n }),\n /*@__PURE__*/headingProp.add(isHeading),\n /*@__PURE__*/indentNodeProp.add({\n Document: () => null\n }),\n /*@__PURE__*/languageDataProp.add({\n Document: data\n })\n ]\n});\nfunction isHeading(type) {\n let match = /^(?:ATX|Setext)Heading(\\d)$/.exec(type.name);\n return match ? +match[1] : undefined;\n}\nfunction isList(type) {\n return type.name == \"OrderedList\" || type.name == \"BulletList\";\n}\nfunction findSectionEnd(headerNode, level) {\n let last = headerNode;\n for (;;) {\n let next = last.nextSibling, heading;\n if (!next || (heading = isHeading(next.type)) != null && heading <= level)\n break;\n last = next;\n }\n return last.to;\n}\nconst headerIndent = /*@__PURE__*/foldService.of((state, start, end) => {\n for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {\n if (node.from < start)\n break;\n let heading = node.type.prop(headingProp);\n if (heading == null)\n continue;\n let upto = findSectionEnd(node, heading);\n if (upto > end)\n return { from: end, to: upto };\n }\n return null;\n});\nfunction mkLang(parser) {\n return new Language(data, parser, [headerIndent], \"markdown\");\n}\n/**\nLanguage support for strict CommonMark.\n*/\nconst commonmarkLanguage = /*@__PURE__*/mkLang(commonmark);\nconst extended = /*@__PURE__*/commonmark.configure([GFM, Subscript, Superscript, Emoji, {\n props: [\n /*@__PURE__*/foldNodeProp.add({\n Table: (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to })\n })\n ]\n }]);\n/**\nLanguage support for [GFM](https://github.github.com/gfm/) plus\nsubscript, superscript, and emoji syntax.\n*/\nconst markdownLanguage = /*@__PURE__*/mkLang(extended);\nfunction getCodeParser(languages, defaultLanguage) {\n return (info) => {\n if (info && languages) {\n let found = null;\n // Strip anything after whitespace\n info = /\\S*/.exec(info)[0];\n if (typeof languages == \"function\")\n found = languages(info);\n else\n found = LanguageDescription.matchLanguageName(languages, info, true);\n if (found instanceof LanguageDescription)\n return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());\n else if (found)\n return found.parser;\n }\n return defaultLanguage ? defaultLanguage.parser : null;\n };\n}\n\nclass Context {\n constructor(node, from, to, spaceBefore, spaceAfter, type, item) {\n this.node = node;\n this.from = from;\n this.to = to;\n this.spaceBefore = spaceBefore;\n this.spaceAfter = spaceAfter;\n this.type = type;\n this.item = item;\n }\n blank(maxWidth, trailing = true) {\n let result = this.spaceBefore + (this.node.name == \"Blockquote\" ? \">\" : \"\");\n if (maxWidth != null) {\n while (result.length < maxWidth)\n result += \" \";\n return result;\n }\n else {\n for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)\n result += \" \";\n return result + (trailing ? this.spaceAfter : \"\");\n }\n }\n marker(doc, add) {\n let number = this.node.name == \"OrderedList\" ? String((+itemNumber(this.item, doc)[2] + add)) : \"\";\n return this.spaceBefore + number + this.type + this.spaceAfter;\n }\n}\nfunction getContext(node, doc) {\n let nodes = [], context = [];\n for (let cur = node; cur; cur = cur.parent) {\n if (cur.name == \"FencedCode\")\n return context;\n if (cur.name == \"ListItem\" || cur.name == \"Blockquote\")\n nodes.push(cur);\n }\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i], match;\n let line = doc.lineAt(node.from), startPos = node.from - line.from;\n if (node.name == \"Blockquote\" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {\n context.push(new Context(node, startPos, startPos + match[0].length, \"\", match[1], \">\", null));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"OrderedList\" &&\n (match = /^( *)\\d+([.)])( *)/.exec(line.text.slice(startPos)))) {\n let after = match[3], len = match[0].length;\n if (after.length >= 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, match[2], node));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"BulletList\" &&\n (match = /^( *)([-+*])( {1,4}\\[[ xX]\\])?( +)/.exec(line.text.slice(startPos)))) {\n let after = match[4], len = match[0].length;\n if (after.length > 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n let type = match[2];\n if (match[3])\n type += match[3].replace(/[xX]/, ' ');\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, type, node));\n }\n }\n return context;\n}\nfunction itemNumber(item, doc) {\n return /^(\\s*)(\\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));\n}\nfunction renumberList(after, doc, changes, offset = 0) {\n for (let prev = -1, node = after;;) {\n if (node.name == \"ListItem\") {\n let m = itemNumber(node, doc);\n let number = +m[2];\n if (prev >= 0) {\n if (number != prev + 1)\n return;\n changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });\n }\n prev = number;\n }\n let next = node.nextSibling;\n if (!next)\n break;\n node = next;\n }\n}\nfunction normalizeIndent(content, state) {\n let blank = /^[ \\t]*/.exec(content)[0].length;\n if (!blank || state.facet(indentUnit) != \"\\t\")\n return content;\n let col = countColumn(content, 4, blank);\n let space = \"\";\n for (let i = col; i > 0;) {\n if (i >= 4) {\n space += \"\\t\";\n i -= 4;\n }\n else {\n space += \" \";\n i--;\n }\n }\n return space + content.slice(blank);\n}\n/**\nThis command, when invoked in Markdown context with cursor\nselection(s), will create a new line with the markup for\nblockquotes and lists that were active on the old line. If the\ncursor was directly after the end of the markup for the old line,\ntrailing whitespace and list markers are removed from that line.\n\nThe command does nothing in non-Markdown context, so it should\nnot be used as the only binding for Enter (even in a Markdown\ndocument, HTML and code regions might use a different language).\n*/\nconst insertNewlineContinueMarkup = ({ state, dispatch }) => {\n let tree = syntaxTree(state), { doc } = state;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty || !markdownLanguage.isActiveAt(state, range.from, -1) && !markdownLanguage.isActiveAt(state, range.from, 1))\n return dont = { range };\n let pos = range.from, line = doc.lineAt(pos);\n let context = getContext(tree.resolveInner(pos, -1), doc);\n while (context.length && context[context.length - 1].from > pos - line.from)\n context.pop();\n if (!context.length)\n return dont = { range };\n let inner = context[context.length - 1];\n if (inner.to - inner.spaceAfter.length > pos - line.from)\n return dont = { range };\n let emptyLine = pos >= (inner.to - inner.spaceAfter.length) && !/\\S/.test(line.text.slice(inner.to));\n // Empty line in list\n if (inner.item && emptyLine) {\n let first = inner.node.firstChild, second = inner.node.getChild(\"ListItem\", \"ListItem\");\n // Not second item or blank line before: delete a level of markup\n if (first.to >= pos || second && second.to < pos ||\n line.from > 0 && !/[^\\s>]/.test(doc.lineAt(line.from - 1).text)) {\n let next = context.length > 1 ? context[context.length - 2] : null;\n let delTo, insert = \"\";\n if (next && next.item) { // Re-add marker for the list at the next level\n delTo = line.from + next.from;\n insert = next.marker(doc, 1);\n }\n else {\n delTo = line.from + (next ? next.to : 0);\n }\n let changes = [{ from: delTo, to: pos, insert }];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes, -2);\n if (next && next.node.name == \"OrderedList\")\n renumberList(next.item, doc, changes);\n return { range: EditorSelection.cursor(delTo + insert.length), changes };\n }\n else { // Move second item down, making tight two-item list non-tight\n let insert = blankLine(context, state, line);\n return { range: EditorSelection.cursor(pos + insert.length + 1),\n changes: { from: line.from, insert: insert + state.lineBreak } };\n }\n }\n if (inner.node.name == \"Blockquote\" && emptyLine && line.from) {\n let prevLine = doc.lineAt(line.from - 1), quoted = />\\s*$/.exec(prevLine.text);\n // Two aligned empty quoted lines in a row\n if (quoted && quoted.index == inner.from) {\n let changes = state.changes([{ from: prevLine.from + quoted.index, to: prevLine.to },\n { from: line.from + inner.from, to: line.to }]);\n return { range: range.map(changes), changes };\n }\n }\n let changes = [];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes);\n let continued = inner.item && inner.item.from < line.from;\n let insert = \"\";\n // If not dedented\n if (!continued || /^[\\s\\d.)\\-+*>]*/.exec(line.text)[0].length >= inner.to) {\n for (let i = 0, e = context.length - 1; i <= e; i++) {\n insert += i == e && !continued ? context[i].marker(doc, 1)\n : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);\n }\n }\n let from = pos;\n while (from > line.from && /\\s/.test(line.text.charAt(from - line.from - 1)))\n from--;\n insert = normalizeIndent(insert, state);\n if (nonTightList(inner.node, state.doc))\n insert = blankLine(context, state, line) + state.lineBreak + insert;\n changes.push({ from, to: pos, insert: state.lineBreak + insert });\n return { range: EditorSelection.cursor(from + insert.length + 1), changes };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isMark(node) {\n return node.name == \"QuoteMark\" || node.name == \"ListMark\";\n}\nfunction nonTightList(node, doc) {\n if (node.name != \"OrderedList\" && node.name != \"BulletList\")\n return false;\n let first = node.firstChild, second = node.getChild(\"ListItem\", \"ListItem\");\n if (!second)\n return false;\n let line1 = doc.lineAt(first.to), line2 = doc.lineAt(second.from);\n let empty = /^[\\s>]*$/.test(line1.text);\n return line1.number + (empty ? 0 : 1) < line2.number;\n}\nfunction blankLine(context, state, line) {\n let insert = \"\";\n for (let i = 0, e = context.length - 2; i <= e; i++) {\n insert += context[i].blank(i < e\n ? countColumn(line.text, 4, context[i + 1].from) - insert.length\n : null, i < e);\n }\n return normalizeIndent(insert, state);\n}\nfunction contextNodeForDelete(tree, pos) {\n let node = tree.resolveInner(pos, -1), scan = pos;\n if (isMark(node)) {\n scan = node.from;\n node = node.parent;\n }\n for (let prev; prev = node.childBefore(scan);) {\n if (isMark(prev)) {\n scan = prev.from;\n }\n else if (prev.name == \"OrderedList\" || prev.name == \"BulletList\") {\n node = prev.lastChild;\n scan = node.to;\n }\n else {\n break;\n }\n }\n return node;\n}\n/**\nThis command will, when invoked in a Markdown context with the\ncursor directly after list or blockquote markup, delete one level\nof markup. When the markup is for a list, it will be replaced by\nspaces on the first invocation (a further invocation will delete\nthe spaces), to make it easy to continue a list.\n\nWhen not after Markdown block markup, this command will return\nfalse, so it is intended to be bound alongside other deletion\ncommands, with a higher precedence than the more generic commands.\n*/\nconst deleteMarkupBackward = ({ state, dispatch }) => {\n let tree = syntaxTree(state);\n let dont = null, changes = state.changeByRange(range => {\n let pos = range.from, { doc } = state;\n if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {\n let line = doc.lineAt(pos);\n let context = getContext(contextNodeForDelete(tree, pos), doc);\n if (context.length) {\n let inner = context[context.length - 1];\n let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);\n // Delete extra trailing space after markup\n if (pos - line.from > spaceEnd && !/\\S/.test(line.text.slice(spaceEnd, pos - line.from)))\n return { range: EditorSelection.cursor(line.from + spaceEnd),\n changes: { from: line.from + spaceEnd, to: pos } };\n if (pos - line.from == spaceEnd &&\n // Only apply this if we're on the line that has the\n // construct's syntax, or there's only indentation in the\n // target range\n (!inner.item || line.from <= inner.item.from || !/\\S/.test(line.text.slice(0, inner.to)))) {\n let start = line.from + inner.from;\n // Replace a list item marker with blank space\n if (inner.item && inner.node.from < inner.item.from && /\\S/.test(line.text.slice(inner.from, inner.to))) {\n let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));\n if (start == line.from)\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(start + insert.length),\n changes: { from: start, to: line.from + inner.to, insert } };\n }\n // Delete one level of indentation\n if (start < pos)\n return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };\n }\n }\n }\n return dont = { range };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete\" }));\n return true;\n};\n\n/**\nA small keymap with Markdown-specific bindings. Binds Enter to\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)\nand Backspace to\n[`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).\n*/\nconst markdownKeymap = [\n { key: \"Enter\", run: insertNewlineContinueMarkup },\n { key: \"Backspace\", run: deleteMarkupBackward }\n];\nconst htmlNoMatch = /*@__PURE__*/html({ matchClosingTags: false });\n/**\nMarkdown language support.\n*/\nfunction markdown(config = {}) {\n let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser } = commonmarkLanguage, completeHTMLTags = true, htmlTagLanguage = htmlNoMatch } = config;\n if (!(parser instanceof MarkdownParser))\n throw new RangeError(\"Base parser provided to `markdown` should be a Markdown parser\");\n let extensions = config.extensions ? [config.extensions] : [];\n let support = [htmlTagLanguage.support], defaultCode;\n if (defaultCodeLanguage instanceof LanguageSupport) {\n support.push(defaultCodeLanguage.support);\n defaultCode = defaultCodeLanguage.language;\n }\n else if (defaultCodeLanguage) {\n defaultCode = defaultCodeLanguage;\n }\n let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : undefined;\n extensions.push(parseCode({ codeParser, htmlParser: htmlTagLanguage.language.parser }));\n if (addKeymap)\n support.push(Prec.high(keymap.of(markdownKeymap)));\n let lang = mkLang(parser.configure(extensions));\n if (completeHTMLTags)\n support.push(lang.data.of({ autocomplete: htmlTagCompletion }));\n return new LanguageSupport(lang, support);\n}\nfunction htmlTagCompletion(context) {\n let { state, pos } = context, m = /<[:\\-\\.\\w\\u00b7-\\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));\n if (!m)\n return null;\n let tree = syntaxTree(state).resolveInner(pos, -1);\n while (tree && !tree.type.isTop) {\n if (tree.name == \"CodeBlock\" || tree.name == \"FencedCode\" || tree.name == \"ProcessingInstructionBlock\" ||\n tree.name == \"CommentBlock\" || tree.name == \"Link\" || tree.name == \"Image\")\n return null;\n tree = tree.parent;\n }\n return {\n from: pos - m[0].length, to: pos,\n options: htmlTagCompletions(),\n validFor: /^<[:\\-\\.\\w\\u00b7-\\uffff]*$/\n };\n}\nlet _tagCompletions = null;\nfunction htmlTagCompletions() {\n if (_tagCompletions)\n return _tagCompletions;\n let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));\n return _tagCompletions = result ? result.options : [];\n}\n\nexport { commonmarkLanguage, deleteMarkupBackward, insertNewlineContinueMarkup, markdown, markdownKeymap, markdownLanguage };\n"],"names":["parser","node","insert","changes"],"mappings":"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","x_google_ignoreList":[0]}