@aiderdesk/aiderdesk 0.61.0-dev → 0.61.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/out/renderer/assets/__vite-browser-external-2447137e-DYxpcVy9.js +4 -0
  2. package/out/renderer/assets/{_baseUniq-Z8t1Ab1g.js → _baseUniq-BPF2Herp.js} +21 -197
  3. package/out/renderer/assets/{arc-CwESpVYE.js → arc-DfPLteHF.js} +1 -1
  4. package/out/renderer/assets/{architectureDiagram-2XIMDMQ5-C490EQr5.js → architectureDiagram-Q4EWVU46-Bw0u-sSH.js} +34 -20
  5. package/out/renderer/assets/{blockDiagram-WCTKOSBZ-DbHssxrQ.js → blockDiagram-DXYQGD6D-CkfB9if8.js} +21 -8
  6. package/out/renderer/assets/{c4Diagram-IC4MRINW-BxE3GUKu.js → c4Diagram-AHTNJAMY-DweK9Liz.js} +31 -35
  7. package/out/renderer/assets/{channel-C9hJq_Xr.js → channel-C5wwrRof.js} +1 -1
  8. package/out/renderer/assets/{chunk-4BX2VUAB-ChcKNpL6.js → chunk-4BX2VUAB-0KM14cFd.js} +1 -1
  9. package/out/renderer/assets/{chunk-WL4C6EOR-vhby2fZi.js → chunk-4TB4RGXK-CmVtCVL4.js} +121 -82
  10. package/out/renderer/assets/{chunk-55IACEB6-oLT9lXTt.js → chunk-55IACEB6-BzVYZvBM.js} +1 -1
  11. package/out/renderer/assets/{chunk-KX2RTZJC-D32tV7H-.js → chunk-EDXVE4YY-BryQl5Kv.js} +1 -1
  12. package/out/renderer/assets/{chunk-FMBD7UC4-B5k8rETe.js → chunk-FMBD7UC4-CRiLea_e.js} +1 -1
  13. package/out/renderer/assets/{chunk-NQ4KR5QH-Bmqo2FpL.js → chunk-OYMX7WX6-Cpi4N3NO.js} +32 -15
  14. package/out/renderer/assets/{chunk-QZHKN3VN-8BpGifjS.js → chunk-QZHKN3VN-BT8kABWC.js} +1 -1
  15. package/out/renderer/assets/{chunk-JSJVCQXG-DtjSx6Cj.js → chunk-YZCP3GAM-OLZV_Sef.js} +1 -1
  16. package/out/renderer/assets/{classDiagram-VBA2DB6C-BxRSSb9e.js → classDiagram-6PBFFD2Q-VdE6G90i.js} +6 -6
  17. package/out/renderer/assets/{classDiagram-v2-RAHNMMFH-BxRSSb9e.js → classDiagram-v2-HSJHXN6E-VdE6G90i.js} +6 -6
  18. package/out/renderer/assets/{clone-D9a-uIZa.js → clone-DwQZ86nS.js} +1 -1
  19. package/out/renderer/assets/{cose-bilkent-S5V4N54A-CUqqQ-6R.js → cose-bilkent-S5V4N54A-BEcAKM9H.js} +1 -1
  20. package/out/renderer/assets/{dagre-KLK3FWXG-ORIwMMhq.js → dagre-KV5264BT-BcFQYL1M.js} +6 -6
  21. package/out/renderer/assets/diagram-5BDNPKRD-GrUNdC1u.js +171 -0
  22. package/out/renderer/assets/{diagram-E7M64L7V-bS9HcoDQ.js → diagram-G4DWMVQ6-CG4S-ov5.js} +15 -13
  23. package/out/renderer/assets/{diagram-IFDJBPK2-BRlTIR0J.js → diagram-MMDJMWI5-9ogY3MRC.js} +5 -6
  24. package/out/renderer/assets/{diagram-P4PSJMXO-jsjGwH-p.js → diagram-TYMM5635-Ck7mI1bS.js} +5 -6
  25. package/out/renderer/assets/{erDiagram-INFDFZHY-DGlgjHOQ.js → erDiagram-SMLLAGMA-Dvf_c-7M.js} +81 -35
  26. package/out/renderer/assets/{flowDiagram-PKNHOUZH-CzLC87bM.js → flowDiagram-DWJPFMVM-CPDjOXYp.js} +27 -45
  27. package/out/renderer/assets/{ganttDiagram-A5KZAMGK-BbDv36wT.js → ganttDiagram-T4ZO3ILL-B4dJrK-3.js} +17 -8
  28. package/out/renderer/assets/{gitGraphDiagram-K3NZZRJ6-CBQnBjEi.js → gitGraphDiagram-UUTBAWPF-De2eCfMN.js} +244 -67
  29. package/out/renderer/assets/{graph-Dl5N6maZ.js → graph-BFn23kR_.js} +175 -3
  30. package/out/renderer/assets/{index-MDHavDF9.js → index-BL-57WPa.js} +15877 -20787
  31. package/out/renderer/assets/{index-CDCy_DhA.css → index-BkntVzTm.css} +114 -301
  32. package/out/renderer/assets/{infoDiagram-LFFYTUFH-GtEDBEmz.js → infoDiagram-42DDH7IO-BIt9B6mQ.js} +5 -6
  33. package/out/renderer/assets/{ishikawaDiagram-PHBUUO56-Uj90gr3I.js → ishikawaDiagram-UXIWVN3A-CXZs0KGV.js} +3 -3
  34. package/out/renderer/assets/{journeyDiagram-4ABVD52K-DekFuOwS.js → journeyDiagram-VCZTEJTY-B-EXuj5b.js} +14 -13
  35. package/out/renderer/assets/{kanban-definition-K7BYSVSG-Hfz2L6NS.js → kanban-definition-6JOO6SKY-ByvN0qaD.js} +5 -2
  36. package/out/renderer/assets/{layout-B9K2VT39.js → layout-BpybWUv6.js} +117 -4
  37. package/out/renderer/assets/min-DB8ixvoT.js +41 -0
  38. package/out/renderer/assets/{mindmap-definition-YRQLILUH-DDcS7_GH.js → mindmap-definition-QFDTVHPH-Do-I-At8.js} +69 -13
  39. package/out/renderer/assets/{pieDiagram-SKSYHLDU-DwjEcJ0Q.js → pieDiagram-DEJITSTG-Cnpf6Gt6.js} +20 -13
  40. package/out/renderer/assets/{quadrantDiagram-337W2JSQ-CpGqN7vo.js → quadrantDiagram-34T5L4WZ-VcOb1qLd.js} +1 -1
  41. package/out/renderer/assets/{requirementDiagram-Z7DCOOCP-qDRUf1ip.js → requirementDiagram-MS252O5E-VJs9Hpaw.js} +42 -11
  42. package/out/renderer/assets/{sankeyDiagram-WA2Y5GQK-DRKS8C1H.js → sankeyDiagram-XADWPNL6-BoXxgLvi.js} +1 -1
  43. package/out/renderer/assets/{sequenceDiagram-2WXFIKYE-DhVN2ug2.js → sequenceDiagram-FGHM5R23-b69hQjSp.js} +446 -220
  44. package/out/renderer/assets/{stateDiagram-RAJIS63D-BpP4eSqu.js → stateDiagram-FHFEXIEX-BK7E-REm.js} +10 -9
  45. package/out/renderer/assets/{stateDiagram-v2-FVOUBMTO-B_qQJqra.js → stateDiagram-v2-QKLJ7IA2-Cd2wfCQu.js} +4 -4
  46. package/out/renderer/assets/{timeline-definition-YZTLITO2-UoWXE_76.js → timeline-definition-GMOUNBTQ-Bl-MTfK5.js} +445 -71
  47. package/out/renderer/assets/{vennDiagram-LZ73GAT5-Dp1FZ609.js → vennDiagram-DHZGUBPP-DNmr1k2L.js} +1 -1
  48. package/out/renderer/assets/{treemap-KZPCXAKY-W2a2L6ff.js → wardley-RL74JXVD-DTbxPMj9.js} +1474 -977
  49. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BWw08wtD.js +901 -0
  50. package/out/renderer/assets/{xychartDiagram-JWTSCODW-CTzYHTbD.js → xychartDiagram-5P7HB3ND-EEYPnLDT.js} +20 -4
  51. package/out/renderer/index.html +3 -3
  52. package/out/renderer/progress.html +212 -62
  53. package/out/resources/mcp-server/aider-desk-mcp-server.js +642 -402
  54. package/out/resources/skills/extension-creator/SKILL.md +320 -0
  55. package/out/resources/skills/extension-creator/assets/templates/Component.jsx.template +76 -0
  56. package/out/resources/skills/extension-creator/assets/templates/ConfigComponent.jsx.template +38 -0
  57. package/out/resources/skills/extension-creator/assets/templates/folder-extension/config.ts.template +29 -0
  58. package/out/resources/skills/extension-creator/assets/templates/folder-extension/index.ts.template +42 -0
  59. package/out/resources/skills/extension-creator/assets/templates/folder-extension/package.json +12 -0
  60. package/out/resources/skills/extension-creator/assets/templates/folder-extension/tsconfig.json +23 -0
  61. package/out/resources/skills/extension-creator/assets/templates/folder-extension-with-config/index.ts.template +80 -0
  62. package/out/resources/skills/extension-creator/assets/templates/single-file.ts.template +30 -0
  63. package/out/resources/skills/extension-creator/assets/templates/ui-component-external.ts.template +91 -0
  64. package/out/resources/skills/extension-creator/assets/templates/ui-component.ts.template +79 -0
  65. package/out/resources/skills/extension-creator/references/command-definition.md +170 -0
  66. package/out/resources/skills/extension-creator/references/config-components.md +427 -0
  67. package/out/resources/skills/extension-creator/references/event-types.md +156 -0
  68. package/out/resources/skills/extension-creator/references/examples-gallery.md +583 -0
  69. package/out/resources/skills/extension-creator/references/extension-interface.md +240 -0
  70. package/out/resources/skills/extension-creator/references/extension-types.md +186 -0
  71. package/out/resources/skills/extension-creator/references/in-repo-flow.md +132 -0
  72. package/out/resources/skills/extension-creator/references/install-targets.md +96 -0
  73. package/out/resources/skills/extension-creator/references/project-global-flow.md +76 -0
  74. package/out/resources/skills/extension-creator/references/ui-components.md +663 -0
  75. package/out/runner.js +976 -386
  76. package/package.json +2 -3
  77. package/out/renderer/assets/_basePickBy-BWoXHZ8Z.js +0 -161
  78. package/out/renderer/assets/apl-fqmucPXA.js +0 -140
  79. package/out/renderer/assets/asciiarmor-DucZyvP0.js +0 -56
  80. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  81. package/out/renderer/assets/asterisk-QAlztEwS.js +0 -345
  82. package/out/renderer/assets/brainfuck-DZVCuF_t.js +0 -53
  83. package/out/renderer/assets/clike-xqXYL6ge.js +0 -805
  84. package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
  85. package/out/renderer/assets/cmake-BGaNd9E7.js +0 -71
  86. package/out/renderer/assets/cobol-4yqQntpt.js +0 -120
  87. package/out/renderer/assets/coffeescript-D2dXvhEc.js +0 -308
  88. package/out/renderer/assets/commonlisp-CF_VNHQR.js +0 -130
  89. package/out/renderer/assets/crystal-DyuLTqLs.js +0 -398
  90. package/out/renderer/assets/css-c-jst79C.js +0 -1783
  91. package/out/renderer/assets/cypher-Dlu_3r4V.js +0 -121
  92. package/out/renderer/assets/d-UURgV0Ux.js +0 -179
  93. package/out/renderer/assets/diff-B_Bi2Crb.js +0 -25
  94. package/out/renderer/assets/dockerfile-Bvk733Ga.js +0 -201
  95. package/out/renderer/assets/dtd-Dy74G54E.js +0 -114
  96. package/out/renderer/assets/dylan-TSb-Nfix.js +0 -314
  97. package/out/renderer/assets/ebnf-4fKAGW3a.js +0 -140
  98. package/out/renderer/assets/ecl-B59qGGVg.js +0 -178
  99. package/out/renderer/assets/eiffel-Dze7nlu3.js +0 -134
  100. package/out/renderer/assets/elm-DG7jkhNZ.js +0 -176
  101. package/out/renderer/assets/erlang-BO6gOnGA.js +0 -674
  102. package/out/renderer/assets/factor-CMxFHDqz.js +0 -65
  103. package/out/renderer/assets/fcl-CDDUNjTj.js +0 -141
  104. package/out/renderer/assets/forth-B9D2JCeE.js +0 -116
  105. package/out/renderer/assets/fortran-CAG2BFbe.js +0 -467
  106. package/out/renderer/assets/gas-d3KEcW3x.js +0 -294
  107. package/out/renderer/assets/gherkin-DhZlEZiy.js +0 -115
  108. package/out/renderer/assets/groovy-CpwJiBl7.js +0 -223
  109. package/out/renderer/assets/haskell-ySd-OUo8.js +0 -459
  110. package/out/renderer/assets/haxe-7MlzfeYV.js +0 -514
  111. package/out/renderer/assets/http-BqypyemW.js +0 -79
  112. package/out/renderer/assets/idl-4HIGJlDI.js +0 -985
  113. package/out/renderer/assets/index-6qedlt0q.js +0 -689
  114. package/out/renderer/assets/index-86jDpUJn.js +0 -385
  115. package/out/renderer/assets/index-BRjO8ber.js +0 -332
  116. package/out/renderer/assets/index-BVgw7j0d.js +0 -312
  117. package/out/renderer/assets/index-BhkyI1q3.js +0 -642
  118. package/out/renderer/assets/index-BqrmLPkg.js +0 -82
  119. package/out/renderer/assets/index-BuPbw4xM.js +0 -178
  120. package/out/renderer/assets/index-CTO-LPBg.js +0 -311
  121. package/out/renderer/assets/index-CTO4SzlI.js +0 -97
  122. package/out/renderer/assets/index-CZ9IQK_0.js +0 -2488
  123. package/out/renderer/assets/index-CZxsVxBZ.js +0 -1765
  124. package/out/renderer/assets/index-DIXV-3Xn.js +0 -406
  125. package/out/renderer/assets/index-DNzOtZX5.js +0 -61
  126. package/out/renderer/assets/index-DZtJe7oC.js +0 -1019
  127. package/out/renderer/assets/index-DaWjZz_g.js +0 -291
  128. package/out/renderer/assets/index-De056HHR.js +0 -151
  129. package/out/renderer/assets/index-Dk3wSDSN.js +0 -117
  130. package/out/renderer/assets/index-Dy4VRsnA.js +0 -1041
  131. package/out/renderer/assets/index-FnnayPBc.js +0 -82
  132. package/out/renderer/assets/index-MZb_zy6R.js +0 -704
  133. package/out/renderer/assets/index-chzQl8rJ.js +0 -157
  134. package/out/renderer/assets/index-s-Owx3Pm.js +0 -327
  135. package/out/renderer/assets/javascript-C_OHM9hj.js +0 -994
  136. package/out/renderer/assets/julia-Bs6JJhYG.js +0 -407
  137. package/out/renderer/assets/livescript-DmzgM3Yt.js +0 -296
  138. package/out/renderer/assets/lua-8cJgIlqe.js +0 -256
  139. package/out/renderer/assets/mathematica-DNLOL9PQ.js +0 -110
  140. package/out/renderer/assets/mbox-Ga7d4MMN.js +0 -117
  141. package/out/renderer/assets/mirc-Dma3B8rS.js +0 -107
  142. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  143. package/out/renderer/assets/modelica-0d55jYY0.js +0 -147
  144. package/out/renderer/assets/mscgen-DdqZYINH.js +0 -135
  145. package/out/renderer/assets/mumps-Btr8VblO.js +0 -93
  146. package/out/renderer/assets/nginx-DTDtBDVN.js +0 -141
  147. package/out/renderer/assets/nsis-3zG7tgur.js +0 -62
  148. package/out/renderer/assets/ntriples-CvgOYMpL.js +0 -153
  149. package/out/renderer/assets/octave-DYBj3-tl.js +0 -200
  150. package/out/renderer/assets/oz-R_e8WMIi.js +0 -231
  151. package/out/renderer/assets/pascal-GD8iposT.js +0 -105
  152. package/out/renderer/assets/perl-DL9mHpoi.js +0 -1105
  153. package/out/renderer/assets/pig-C_4T4YIV.js +0 -101
  154. package/out/renderer/assets/powershell-B0suO7Vd.js +0 -328
  155. package/out/renderer/assets/properties-BR-vP1aU.js +0 -58
  156. package/out/renderer/assets/protobuf-BxgpyhoW.js +0 -77
  157. package/out/renderer/assets/pug-CTXt1f8z.js +0 -405
  158. package/out/renderer/assets/puppet-Bdao66PW.js +0 -137
  159. package/out/renderer/assets/python-CvWbmiX4.js +0 -427
  160. package/out/renderer/assets/q-CrbCVq4a.js +0 -131
  161. package/out/renderer/assets/r-V7nswm59.js +0 -170
  162. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  163. package/out/renderer/assets/ruby-JDKLJNK0.js +0 -330
  164. package/out/renderer/assets/sas-D2UG-yhZ.js +0 -207
  165. package/out/renderer/assets/scheme-BKzrkGJD.js +0 -222
  166. package/out/renderer/assets/shell-BlsXDxCn.js +0 -222
  167. package/out/renderer/assets/sieve-CjwBwOY5.js +0 -135
  168. package/out/renderer/assets/simple-mode-DMneyfDu.js +0 -130
  169. package/out/renderer/assets/smalltalk-BOIGQuhN.js +0 -121
  170. package/out/renderer/assets/solr-CwD7U71z.js +0 -69
  171. package/out/renderer/assets/sparql-DYskk2vE.js +0 -249
  172. package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +0 -87
  173. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  174. package/out/renderer/assets/stex-B6LNC55o.js +0 -231
  175. package/out/renderer/assets/stylus-BkS-boTH.js +0 -565
  176. package/out/renderer/assets/swift-FRZi1uvB.js +0 -291
  177. package/out/renderer/assets/tcl-CUcaCdmq.js +0 -114
  178. package/out/renderer/assets/textile-BnFpjsrl.js +0 -414
  179. package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +0 -218
  180. package/out/renderer/assets/tiki-DK9DOeWn.js +0 -268
  181. package/out/renderer/assets/toml-BOuWGMcf.js +0 -76
  182. package/out/renderer/assets/troff-E1bJ0PPL.js +0 -61
  183. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  184. package/out/renderer/assets/ttcn-tKd4HLu4.js +0 -192
  185. package/out/renderer/assets/turtle-Dq7-1WAf.js +0 -124
  186. package/out/renderer/assets/vb-Dp90gtsv.js +0 -196
  187. package/out/renderer/assets/vbscript-CI6_mxxU.js +0 -479
  188. package/out/renderer/assets/velocity-BwIZK1TH.js +0 -149
  189. package/out/renderer/assets/verilog-DDCYnHN8.js +0 -430
  190. package/out/renderer/assets/vhdl-DCkMIyT9.js +0 -158
  191. package/out/renderer/assets/webidl-BTLTThCm.js +0 -204
  192. package/out/renderer/assets/xquery-BrBUuxMR.js +0 -525
  193. package/out/renderer/assets/yacas-b5lAVEIl.js +0 -130
  194. package/out/renderer/assets/z80-BZV19vqv.js +0 -93
  195. package/scripts/download-uv.mjs +0 -147
  196. /package/patches/{ai+5.0.161.patch → ai+5.0.167.patch} +0 -0
@@ -1,398 +0,0 @@
1
- function wordRegExp(words, end) {
2
- return new RegExp((end ? "" : "^") + "(?:" + words.join("|") + ")" + (end ? "$" : "\\b"));
3
- }
4
- function chain(tokenize, stream, state) {
5
- state.tokenize.push(tokenize);
6
- return tokenize(stream, state);
7
- }
8
- var operators = /^(?:[-+/%|&^]|\*\*?|[<>]{2})/;
9
- var conditionalOperators = /^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/;
10
- var indexingOperators = /^(?:\[\][?=]?)/;
11
- var anotherOperators = /^(?:\.(?:\.{2})?|->|[?:])/;
12
- var idents = /^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;
13
- var types = /^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;
14
- var keywords = wordRegExp([
15
- "abstract",
16
- "alias",
17
- "as",
18
- "asm",
19
- "begin",
20
- "break",
21
- "case",
22
- "class",
23
- "def",
24
- "do",
25
- "else",
26
- "elsif",
27
- "end",
28
- "ensure",
29
- "enum",
30
- "extend",
31
- "for",
32
- "fun",
33
- "if",
34
- "include",
35
- "instance_sizeof",
36
- "lib",
37
- "macro",
38
- "module",
39
- "next",
40
- "of",
41
- "out",
42
- "pointerof",
43
- "private",
44
- "protected",
45
- "rescue",
46
- "return",
47
- "require",
48
- "select",
49
- "sizeof",
50
- "struct",
51
- "super",
52
- "then",
53
- "type",
54
- "typeof",
55
- "uninitialized",
56
- "union",
57
- "unless",
58
- "until",
59
- "when",
60
- "while",
61
- "with",
62
- "yield",
63
- "__DIR__",
64
- "__END_LINE__",
65
- "__FILE__",
66
- "__LINE__"
67
- ]);
68
- var atomWords = wordRegExp(["true", "false", "nil", "self"]);
69
- var indentKeywordsArray = [
70
- "def",
71
- "fun",
72
- "macro",
73
- "class",
74
- "module",
75
- "struct",
76
- "lib",
77
- "enum",
78
- "union",
79
- "do",
80
- "for"
81
- ];
82
- var indentKeywords = wordRegExp(indentKeywordsArray);
83
- var indentExpressionKeywordsArray = ["if", "unless", "case", "while", "until", "begin", "then"];
84
- var indentExpressionKeywords = wordRegExp(indentExpressionKeywordsArray);
85
- var dedentKeywordsArray = ["end", "else", "elsif", "rescue", "ensure"];
86
- var dedentKeywords = wordRegExp(dedentKeywordsArray);
87
- var dedentPunctualsArray = ["\\)", "\\}", "\\]"];
88
- var dedentPunctuals = new RegExp("^(?:" + dedentPunctualsArray.join("|") + ")$");
89
- var nextTokenizer = {
90
- "def": tokenFollowIdent,
91
- "fun": tokenFollowIdent,
92
- "macro": tokenMacroDef,
93
- "class": tokenFollowType,
94
- "module": tokenFollowType,
95
- "struct": tokenFollowType,
96
- "lib": tokenFollowType,
97
- "enum": tokenFollowType,
98
- "union": tokenFollowType
99
- };
100
- var matching = { "[": "]", "{": "}", "(": ")", "<": ">" };
101
- function tokenBase(stream, state) {
102
- if (stream.eatSpace()) {
103
- return null;
104
- }
105
- if (state.lastToken != "\\" && stream.match("{%", false)) {
106
- return chain(tokenMacro("%", "%"), stream, state);
107
- }
108
- if (state.lastToken != "\\" && stream.match("{{", false)) {
109
- return chain(tokenMacro("{", "}"), stream, state);
110
- }
111
- if (stream.peek() == "#") {
112
- stream.skipToEnd();
113
- return "comment";
114
- }
115
- var matched;
116
- if (stream.match(idents)) {
117
- stream.eat(/[?!]/);
118
- matched = stream.current();
119
- if (stream.eat(":")) {
120
- return "atom";
121
- } else if (state.lastToken == ".") {
122
- return "property";
123
- } else if (keywords.test(matched)) {
124
- if (indentKeywords.test(matched)) {
125
- if (!(matched == "fun" && state.blocks.indexOf("lib") >= 0) && !(matched == "def" && state.lastToken == "abstract")) {
126
- state.blocks.push(matched);
127
- state.currentIndent += 1;
128
- }
129
- } else if ((state.lastStyle == "operator" || !state.lastStyle) && indentExpressionKeywords.test(matched)) {
130
- state.blocks.push(matched);
131
- state.currentIndent += 1;
132
- } else if (matched == "end") {
133
- state.blocks.pop();
134
- state.currentIndent -= 1;
135
- }
136
- if (nextTokenizer.hasOwnProperty(matched)) {
137
- state.tokenize.push(nextTokenizer[matched]);
138
- }
139
- return "keyword";
140
- } else if (atomWords.test(matched)) {
141
- return "atom";
142
- }
143
- return "variable";
144
- }
145
- if (stream.eat("@")) {
146
- if (stream.peek() == "[") {
147
- return chain(tokenNest("[", "]", "meta"), stream, state);
148
- }
149
- stream.eat("@");
150
- stream.match(idents) || stream.match(types);
151
- return "propertyName";
152
- }
153
- if (stream.match(types)) {
154
- return "tag";
155
- }
156
- if (stream.eat(":")) {
157
- if (stream.eat('"')) {
158
- return chain(tokenQuote('"', "atom", false), stream, state);
159
- } else if (stream.match(idents) || stream.match(types) || stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators)) {
160
- return "atom";
161
- }
162
- stream.eat(":");
163
- return "operator";
164
- }
165
- if (stream.eat('"')) {
166
- return chain(tokenQuote('"', "string", true), stream, state);
167
- }
168
- if (stream.peek() == "%") {
169
- var style = "string";
170
- var embed = true;
171
- var delim;
172
- if (stream.match("%r")) {
173
- style = "string.special";
174
- delim = stream.next();
175
- } else if (stream.match("%w")) {
176
- embed = false;
177
- delim = stream.next();
178
- } else if (stream.match("%q")) {
179
- embed = false;
180
- delim = stream.next();
181
- } else {
182
- if (delim = stream.match(/^%([^\w\s=])/)) {
183
- delim = delim[1];
184
- } else if (stream.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/)) {
185
- return "meta";
186
- } else if (stream.eat("%")) {
187
- return "operator";
188
- }
189
- }
190
- if (matching.hasOwnProperty(delim)) {
191
- delim = matching[delim];
192
- }
193
- return chain(tokenQuote(delim, style, embed), stream, state);
194
- }
195
- if (matched = stream.match(/^<<-('?)([A-Z]\w*)\1/)) {
196
- return chain(tokenHereDoc(matched[2], !matched[1]), stream, state);
197
- }
198
- if (stream.eat("'")) {
199
- stream.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/);
200
- stream.eat("'");
201
- return "atom";
202
- }
203
- if (stream.eat("0")) {
204
- if (stream.eat("x")) {
205
- stream.match(/^[0-9a-fA-F_]+/);
206
- } else if (stream.eat("o")) {
207
- stream.match(/^[0-7_]+/);
208
- } else if (stream.eat("b")) {
209
- stream.match(/^[01_]+/);
210
- }
211
- return "number";
212
- }
213
- if (stream.eat(/^\d/)) {
214
- stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/);
215
- return "number";
216
- }
217
- if (stream.match(operators)) {
218
- stream.eat("=");
219
- return "operator";
220
- }
221
- if (stream.match(conditionalOperators) || stream.match(anotherOperators)) {
222
- return "operator";
223
- }
224
- if (matched = stream.match(/[({[]/, false)) {
225
- matched = matched[0];
226
- return chain(tokenNest(matched, matching[matched], null), stream, state);
227
- }
228
- if (stream.eat("\\")) {
229
- stream.next();
230
- return "meta";
231
- }
232
- stream.next();
233
- return null;
234
- }
235
- function tokenNest(begin, end, style, started) {
236
- return function(stream, state) {
237
- if (!started && stream.match(begin)) {
238
- state.tokenize[state.tokenize.length - 1] = tokenNest(begin, end, style, true);
239
- state.currentIndent += 1;
240
- return style;
241
- }
242
- var nextStyle = tokenBase(stream, state);
243
- if (stream.current() === end) {
244
- state.tokenize.pop();
245
- state.currentIndent -= 1;
246
- nextStyle = style;
247
- }
248
- return nextStyle;
249
- };
250
- }
251
- function tokenMacro(begin, end, started) {
252
- return function(stream, state) {
253
- if (!started && stream.match("{" + begin)) {
254
- state.currentIndent += 1;
255
- state.tokenize[state.tokenize.length - 1] = tokenMacro(begin, end, true);
256
- return "meta";
257
- }
258
- if (stream.match(end + "}")) {
259
- state.currentIndent -= 1;
260
- state.tokenize.pop();
261
- return "meta";
262
- }
263
- return tokenBase(stream, state);
264
- };
265
- }
266
- function tokenMacroDef(stream, state) {
267
- if (stream.eatSpace()) {
268
- return null;
269
- }
270
- var matched;
271
- if (matched = stream.match(idents)) {
272
- if (matched == "def") {
273
- return "keyword";
274
- }
275
- stream.eat(/[?!]/);
276
- }
277
- state.tokenize.pop();
278
- return "def";
279
- }
280
- function tokenFollowIdent(stream, state) {
281
- if (stream.eatSpace()) {
282
- return null;
283
- }
284
- if (stream.match(idents)) {
285
- stream.eat(/[!?]/);
286
- } else {
287
- stream.match(operators) || stream.match(conditionalOperators) || stream.match(indexingOperators);
288
- }
289
- state.tokenize.pop();
290
- return "def";
291
- }
292
- function tokenFollowType(stream, state) {
293
- if (stream.eatSpace()) {
294
- return null;
295
- }
296
- stream.match(types);
297
- state.tokenize.pop();
298
- return "def";
299
- }
300
- function tokenQuote(end, style, embed) {
301
- return function(stream, state) {
302
- var escaped = false;
303
- while (stream.peek()) {
304
- if (!escaped) {
305
- if (stream.match("{%", false)) {
306
- state.tokenize.push(tokenMacro("%", "%"));
307
- return style;
308
- }
309
- if (stream.match("{{", false)) {
310
- state.tokenize.push(tokenMacro("{", "}"));
311
- return style;
312
- }
313
- if (embed && stream.match("#{", false)) {
314
- state.tokenize.push(tokenNest("#{", "}", "meta"));
315
- return style;
316
- }
317
- var ch = stream.next();
318
- if (ch == end) {
319
- state.tokenize.pop();
320
- return style;
321
- }
322
- escaped = embed && ch == "\\";
323
- } else {
324
- stream.next();
325
- escaped = false;
326
- }
327
- }
328
- return style;
329
- };
330
- }
331
- function tokenHereDoc(phrase, embed) {
332
- return function(stream, state) {
333
- if (stream.sol()) {
334
- stream.eatSpace();
335
- if (stream.match(phrase)) {
336
- state.tokenize.pop();
337
- return "string";
338
- }
339
- }
340
- var escaped = false;
341
- while (stream.peek()) {
342
- if (!escaped) {
343
- if (stream.match("{%", false)) {
344
- state.tokenize.push(tokenMacro("%", "%"));
345
- return "string";
346
- }
347
- if (stream.match("{{", false)) {
348
- state.tokenize.push(tokenMacro("{", "}"));
349
- return "string";
350
- }
351
- if (embed && stream.match("#{", false)) {
352
- state.tokenize.push(tokenNest("#{", "}", "meta"));
353
- return "string";
354
- }
355
- escaped = stream.next() == "\\" && embed;
356
- } else {
357
- stream.next();
358
- escaped = false;
359
- }
360
- }
361
- return "string";
362
- };
363
- }
364
- const crystal = {
365
- name: "crystal",
366
- startState: function() {
367
- return {
368
- tokenize: [tokenBase],
369
- currentIndent: 0,
370
- lastToken: null,
371
- lastStyle: null,
372
- blocks: []
373
- };
374
- },
375
- token: function(stream, state) {
376
- var style = state.tokenize[state.tokenize.length - 1](stream, state);
377
- var token = stream.current();
378
- if (style && style != "comment") {
379
- state.lastToken = token;
380
- state.lastStyle = style;
381
- }
382
- return style;
383
- },
384
- indent: function(state, textAfter, cx) {
385
- textAfter = textAfter.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g, "");
386
- if (dedentKeywords.test(textAfter) || dedentPunctuals.test(textAfter)) {
387
- return cx.unit * (state.currentIndent - 1);
388
- }
389
- return cx.unit * state.currentIndent;
390
- },
391
- languageData: {
392
- indentOnInput: wordRegExp(dedentPunctualsArray.concat(dedentKeywordsArray), true),
393
- commentTokens: { line: "#" }
394
- }
395
- };
396
- export {
397
- crystal
398
- };