@aiderdesk/aiderdesk 0.61.0-dev → 0.61.0

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 (175) 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/runner.js +976 -386
  55. package/package.json +2 -3
  56. package/out/renderer/assets/_basePickBy-BWoXHZ8Z.js +0 -161
  57. package/out/renderer/assets/apl-fqmucPXA.js +0 -140
  58. package/out/renderer/assets/asciiarmor-DucZyvP0.js +0 -56
  59. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  60. package/out/renderer/assets/asterisk-QAlztEwS.js +0 -345
  61. package/out/renderer/assets/brainfuck-DZVCuF_t.js +0 -53
  62. package/out/renderer/assets/clike-xqXYL6ge.js +0 -805
  63. package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
  64. package/out/renderer/assets/cmake-BGaNd9E7.js +0 -71
  65. package/out/renderer/assets/cobol-4yqQntpt.js +0 -120
  66. package/out/renderer/assets/coffeescript-D2dXvhEc.js +0 -308
  67. package/out/renderer/assets/commonlisp-CF_VNHQR.js +0 -130
  68. package/out/renderer/assets/crystal-DyuLTqLs.js +0 -398
  69. package/out/renderer/assets/css-c-jst79C.js +0 -1783
  70. package/out/renderer/assets/cypher-Dlu_3r4V.js +0 -121
  71. package/out/renderer/assets/d-UURgV0Ux.js +0 -179
  72. package/out/renderer/assets/diff-B_Bi2Crb.js +0 -25
  73. package/out/renderer/assets/dockerfile-Bvk733Ga.js +0 -201
  74. package/out/renderer/assets/dtd-Dy74G54E.js +0 -114
  75. package/out/renderer/assets/dylan-TSb-Nfix.js +0 -314
  76. package/out/renderer/assets/ebnf-4fKAGW3a.js +0 -140
  77. package/out/renderer/assets/ecl-B59qGGVg.js +0 -178
  78. package/out/renderer/assets/eiffel-Dze7nlu3.js +0 -134
  79. package/out/renderer/assets/elm-DG7jkhNZ.js +0 -176
  80. package/out/renderer/assets/erlang-BO6gOnGA.js +0 -674
  81. package/out/renderer/assets/factor-CMxFHDqz.js +0 -65
  82. package/out/renderer/assets/fcl-CDDUNjTj.js +0 -141
  83. package/out/renderer/assets/forth-B9D2JCeE.js +0 -116
  84. package/out/renderer/assets/fortran-CAG2BFbe.js +0 -467
  85. package/out/renderer/assets/gas-d3KEcW3x.js +0 -294
  86. package/out/renderer/assets/gherkin-DhZlEZiy.js +0 -115
  87. package/out/renderer/assets/groovy-CpwJiBl7.js +0 -223
  88. package/out/renderer/assets/haskell-ySd-OUo8.js +0 -459
  89. package/out/renderer/assets/haxe-7MlzfeYV.js +0 -514
  90. package/out/renderer/assets/http-BqypyemW.js +0 -79
  91. package/out/renderer/assets/idl-4HIGJlDI.js +0 -985
  92. package/out/renderer/assets/index-6qedlt0q.js +0 -689
  93. package/out/renderer/assets/index-86jDpUJn.js +0 -385
  94. package/out/renderer/assets/index-BRjO8ber.js +0 -332
  95. package/out/renderer/assets/index-BVgw7j0d.js +0 -312
  96. package/out/renderer/assets/index-BhkyI1q3.js +0 -642
  97. package/out/renderer/assets/index-BqrmLPkg.js +0 -82
  98. package/out/renderer/assets/index-BuPbw4xM.js +0 -178
  99. package/out/renderer/assets/index-CTO-LPBg.js +0 -311
  100. package/out/renderer/assets/index-CTO4SzlI.js +0 -97
  101. package/out/renderer/assets/index-CZ9IQK_0.js +0 -2488
  102. package/out/renderer/assets/index-CZxsVxBZ.js +0 -1765
  103. package/out/renderer/assets/index-DIXV-3Xn.js +0 -406
  104. package/out/renderer/assets/index-DNzOtZX5.js +0 -61
  105. package/out/renderer/assets/index-DZtJe7oC.js +0 -1019
  106. package/out/renderer/assets/index-DaWjZz_g.js +0 -291
  107. package/out/renderer/assets/index-De056HHR.js +0 -151
  108. package/out/renderer/assets/index-Dk3wSDSN.js +0 -117
  109. package/out/renderer/assets/index-Dy4VRsnA.js +0 -1041
  110. package/out/renderer/assets/index-FnnayPBc.js +0 -82
  111. package/out/renderer/assets/index-MZb_zy6R.js +0 -704
  112. package/out/renderer/assets/index-chzQl8rJ.js +0 -157
  113. package/out/renderer/assets/index-s-Owx3Pm.js +0 -327
  114. package/out/renderer/assets/javascript-C_OHM9hj.js +0 -994
  115. package/out/renderer/assets/julia-Bs6JJhYG.js +0 -407
  116. package/out/renderer/assets/livescript-DmzgM3Yt.js +0 -296
  117. package/out/renderer/assets/lua-8cJgIlqe.js +0 -256
  118. package/out/renderer/assets/mathematica-DNLOL9PQ.js +0 -110
  119. package/out/renderer/assets/mbox-Ga7d4MMN.js +0 -117
  120. package/out/renderer/assets/mirc-Dma3B8rS.js +0 -107
  121. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  122. package/out/renderer/assets/modelica-0d55jYY0.js +0 -147
  123. package/out/renderer/assets/mscgen-DdqZYINH.js +0 -135
  124. package/out/renderer/assets/mumps-Btr8VblO.js +0 -93
  125. package/out/renderer/assets/nginx-DTDtBDVN.js +0 -141
  126. package/out/renderer/assets/nsis-3zG7tgur.js +0 -62
  127. package/out/renderer/assets/ntriples-CvgOYMpL.js +0 -153
  128. package/out/renderer/assets/octave-DYBj3-tl.js +0 -200
  129. package/out/renderer/assets/oz-R_e8WMIi.js +0 -231
  130. package/out/renderer/assets/pascal-GD8iposT.js +0 -105
  131. package/out/renderer/assets/perl-DL9mHpoi.js +0 -1105
  132. package/out/renderer/assets/pig-C_4T4YIV.js +0 -101
  133. package/out/renderer/assets/powershell-B0suO7Vd.js +0 -328
  134. package/out/renderer/assets/properties-BR-vP1aU.js +0 -58
  135. package/out/renderer/assets/protobuf-BxgpyhoW.js +0 -77
  136. package/out/renderer/assets/pug-CTXt1f8z.js +0 -405
  137. package/out/renderer/assets/puppet-Bdao66PW.js +0 -137
  138. package/out/renderer/assets/python-CvWbmiX4.js +0 -427
  139. package/out/renderer/assets/q-CrbCVq4a.js +0 -131
  140. package/out/renderer/assets/r-V7nswm59.js +0 -170
  141. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  142. package/out/renderer/assets/ruby-JDKLJNK0.js +0 -330
  143. package/out/renderer/assets/sas-D2UG-yhZ.js +0 -207
  144. package/out/renderer/assets/scheme-BKzrkGJD.js +0 -222
  145. package/out/renderer/assets/shell-BlsXDxCn.js +0 -222
  146. package/out/renderer/assets/sieve-CjwBwOY5.js +0 -135
  147. package/out/renderer/assets/simple-mode-DMneyfDu.js +0 -130
  148. package/out/renderer/assets/smalltalk-BOIGQuhN.js +0 -121
  149. package/out/renderer/assets/solr-CwD7U71z.js +0 -69
  150. package/out/renderer/assets/sparql-DYskk2vE.js +0 -249
  151. package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +0 -87
  152. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  153. package/out/renderer/assets/stex-B6LNC55o.js +0 -231
  154. package/out/renderer/assets/stylus-BkS-boTH.js +0 -565
  155. package/out/renderer/assets/swift-FRZi1uvB.js +0 -291
  156. package/out/renderer/assets/tcl-CUcaCdmq.js +0 -114
  157. package/out/renderer/assets/textile-BnFpjsrl.js +0 -414
  158. package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +0 -218
  159. package/out/renderer/assets/tiki-DK9DOeWn.js +0 -268
  160. package/out/renderer/assets/toml-BOuWGMcf.js +0 -76
  161. package/out/renderer/assets/troff-E1bJ0PPL.js +0 -61
  162. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  163. package/out/renderer/assets/ttcn-tKd4HLu4.js +0 -192
  164. package/out/renderer/assets/turtle-Dq7-1WAf.js +0 -124
  165. package/out/renderer/assets/vb-Dp90gtsv.js +0 -196
  166. package/out/renderer/assets/vbscript-CI6_mxxU.js +0 -479
  167. package/out/renderer/assets/velocity-BwIZK1TH.js +0 -149
  168. package/out/renderer/assets/verilog-DDCYnHN8.js +0 -430
  169. package/out/renderer/assets/vhdl-DCkMIyT9.js +0 -158
  170. package/out/renderer/assets/webidl-BTLTThCm.js +0 -204
  171. package/out/renderer/assets/xquery-BrBUuxMR.js +0 -525
  172. package/out/renderer/assets/yacas-b5lAVEIl.js +0 -130
  173. package/out/renderer/assets/z80-BZV19vqv.js +0 -93
  174. package/scripts/download-uv.mjs +0 -147
  175. /package/patches/{ai+5.0.161.patch → ai+5.0.167.patch} +0 -0
@@ -1,674 +0,0 @@
1
- var typeWords = [
2
- "-type",
3
- "-spec",
4
- "-export_type",
5
- "-opaque"
6
- ];
7
- var keywordWords = [
8
- "after",
9
- "begin",
10
- "catch",
11
- "case",
12
- "cond",
13
- "end",
14
- "fun",
15
- "if",
16
- "let",
17
- "of",
18
- "query",
19
- "receive",
20
- "try",
21
- "when"
22
- ];
23
- var separatorRE = /[\->,;]/;
24
- var separatorWords = [
25
- "->",
26
- ";",
27
- ","
28
- ];
29
- var operatorAtomWords = [
30
- "and",
31
- "andalso",
32
- "band",
33
- "bnot",
34
- "bor",
35
- "bsl",
36
- "bsr",
37
- "bxor",
38
- "div",
39
- "not",
40
- "or",
41
- "orelse",
42
- "rem",
43
- "xor"
44
- ];
45
- var operatorSymbolRE = /[\+\-\*\/<>=\|:!]/;
46
- var operatorSymbolWords = [
47
- "=",
48
- "+",
49
- "-",
50
- "*",
51
- "/",
52
- ">",
53
- ">=",
54
- "<",
55
- "=<",
56
- "=:=",
57
- "==",
58
- "=/=",
59
- "/=",
60
- "||",
61
- "<-",
62
- "!"
63
- ];
64
- var openParenRE = /[<\(\[\{]/;
65
- var openParenWords = [
66
- "<<",
67
- "(",
68
- "[",
69
- "{"
70
- ];
71
- var closeParenRE = /[>\)\]\}]/;
72
- var closeParenWords = [
73
- "}",
74
- "]",
75
- ")",
76
- ">>"
77
- ];
78
- var guardWords = [
79
- "is_atom",
80
- "is_binary",
81
- "is_bitstring",
82
- "is_boolean",
83
- "is_float",
84
- "is_function",
85
- "is_integer",
86
- "is_list",
87
- "is_number",
88
- "is_pid",
89
- "is_port",
90
- "is_record",
91
- "is_reference",
92
- "is_tuple",
93
- "atom",
94
- "binary",
95
- "bitstring",
96
- "boolean",
97
- "function",
98
- "integer",
99
- "list",
100
- "number",
101
- "pid",
102
- "port",
103
- "record",
104
- "reference",
105
- "tuple"
106
- ];
107
- var bifWords = [
108
- "abs",
109
- "adler32",
110
- "adler32_combine",
111
- "alive",
112
- "apply",
113
- "atom_to_binary",
114
- "atom_to_list",
115
- "binary_to_atom",
116
- "binary_to_existing_atom",
117
- "binary_to_list",
118
- "binary_to_term",
119
- "bit_size",
120
- "bitstring_to_list",
121
- "byte_size",
122
- "check_process_code",
123
- "contact_binary",
124
- "crc32",
125
- "crc32_combine",
126
- "date",
127
- "decode_packet",
128
- "delete_module",
129
- "disconnect_node",
130
- "element",
131
- "erase",
132
- "exit",
133
- "float",
134
- "float_to_list",
135
- "garbage_collect",
136
- "get",
137
- "get_keys",
138
- "group_leader",
139
- "halt",
140
- "hd",
141
- "integer_to_list",
142
- "internal_bif",
143
- "iolist_size",
144
- "iolist_to_binary",
145
- "is_alive",
146
- "is_atom",
147
- "is_binary",
148
- "is_bitstring",
149
- "is_boolean",
150
- "is_float",
151
- "is_function",
152
- "is_integer",
153
- "is_list",
154
- "is_number",
155
- "is_pid",
156
- "is_port",
157
- "is_process_alive",
158
- "is_record",
159
- "is_reference",
160
- "is_tuple",
161
- "length",
162
- "link",
163
- "list_to_atom",
164
- "list_to_binary",
165
- "list_to_bitstring",
166
- "list_to_existing_atom",
167
- "list_to_float",
168
- "list_to_integer",
169
- "list_to_pid",
170
- "list_to_tuple",
171
- "load_module",
172
- "make_ref",
173
- "module_loaded",
174
- "monitor_node",
175
- "node",
176
- "node_link",
177
- "node_unlink",
178
- "nodes",
179
- "notalive",
180
- "now",
181
- "open_port",
182
- "pid_to_list",
183
- "port_close",
184
- "port_command",
185
- "port_connect",
186
- "port_control",
187
- "pre_loaded",
188
- "process_flag",
189
- "process_info",
190
- "processes",
191
- "purge_module",
192
- "put",
193
- "register",
194
- "registered",
195
- "round",
196
- "self",
197
- "setelement",
198
- "size",
199
- "spawn",
200
- "spawn_link",
201
- "spawn_monitor",
202
- "spawn_opt",
203
- "split_binary",
204
- "statistics",
205
- "term_to_binary",
206
- "time",
207
- "throw",
208
- "tl",
209
- "trunc",
210
- "tuple_size",
211
- "tuple_to_list",
212
- "unlink",
213
- "unregister",
214
- "whereis"
215
- ];
216
- var anumRE = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/;
217
- var escapesRE = /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;
218
- function tokenizer(stream, state) {
219
- if (state.in_string) {
220
- state.in_string = !doubleQuote(stream);
221
- return rval(state, stream, "string");
222
- }
223
- if (state.in_atom) {
224
- state.in_atom = !singleQuote(stream);
225
- return rval(state, stream, "atom");
226
- }
227
- if (stream.eatSpace()) {
228
- return rval(state, stream, "whitespace");
229
- }
230
- if (!peekToken(state) && stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) {
231
- if (is_member(stream.current(), typeWords)) {
232
- return rval(state, stream, "type");
233
- } else {
234
- return rval(state, stream, "attribute");
235
- }
236
- }
237
- var ch = stream.next();
238
- if (ch == "%") {
239
- stream.skipToEnd();
240
- return rval(state, stream, "comment");
241
- }
242
- if (ch == ":") {
243
- return rval(state, stream, "colon");
244
- }
245
- if (ch == "?") {
246
- stream.eatSpace();
247
- stream.eatWhile(anumRE);
248
- return rval(state, stream, "macro");
249
- }
250
- if (ch == "#") {
251
- stream.eatSpace();
252
- stream.eatWhile(anumRE);
253
- return rval(state, stream, "record");
254
- }
255
- if (ch == "$") {
256
- if (stream.next() == "\\" && !stream.match(escapesRE)) {
257
- return rval(state, stream, "error");
258
- }
259
- return rval(state, stream, "number");
260
- }
261
- if (ch == ".") {
262
- return rval(state, stream, "dot");
263
- }
264
- if (ch == "'") {
265
- if (!(state.in_atom = !singleQuote(stream))) {
266
- if (stream.match(/\s*\/\s*[0-9]/, false)) {
267
- stream.match(/\s*\/\s*[0-9]/, true);
268
- return rval(state, stream, "fun");
269
- }
270
- if (stream.match(/\s*\(/, false) || stream.match(/\s*:/, false)) {
271
- return rval(state, stream, "function");
272
- }
273
- }
274
- return rval(state, stream, "atom");
275
- }
276
- if (ch == '"') {
277
- state.in_string = !doubleQuote(stream);
278
- return rval(state, stream, "string");
279
- }
280
- if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {
281
- stream.eatWhile(anumRE);
282
- return rval(state, stream, "variable");
283
- }
284
- if (/[a-z_ß-öø-ÿ]/.test(ch)) {
285
- stream.eatWhile(anumRE);
286
- if (stream.match(/\s*\/\s*[0-9]/, false)) {
287
- stream.match(/\s*\/\s*[0-9]/, true);
288
- return rval(state, stream, "fun");
289
- }
290
- var w = stream.current();
291
- if (is_member(w, keywordWords)) {
292
- return rval(state, stream, "keyword");
293
- } else if (is_member(w, operatorAtomWords)) {
294
- return rval(state, stream, "operator");
295
- } else if (stream.match(/\s*\(/, false)) {
296
- if (is_member(w, bifWords) && (peekToken(state).token != ":" || peekToken(state, 2).token == "erlang")) {
297
- return rval(state, stream, "builtin");
298
- } else if (is_member(w, guardWords)) {
299
- return rval(state, stream, "guard");
300
- } else {
301
- return rval(state, stream, "function");
302
- }
303
- } else if (lookahead(stream) == ":") {
304
- if (w == "erlang") {
305
- return rval(state, stream, "builtin");
306
- } else {
307
- return rval(state, stream, "function");
308
- }
309
- } else if (is_member(w, ["true", "false"])) {
310
- return rval(state, stream, "boolean");
311
- } else {
312
- return rval(state, stream, "atom");
313
- }
314
- }
315
- var digitRE = /[0-9]/;
316
- var radixRE = /[0-9a-zA-Z]/;
317
- if (digitRE.test(ch)) {
318
- stream.eatWhile(digitRE);
319
- if (stream.eat("#")) {
320
- if (!stream.eatWhile(radixRE)) {
321
- stream.backUp(1);
322
- }
323
- } else if (stream.eat(".")) {
324
- if (!stream.eatWhile(digitRE)) {
325
- stream.backUp(1);
326
- } else {
327
- if (stream.eat(/[eE]/)) {
328
- if (stream.eat(/[-+]/)) {
329
- if (!stream.eatWhile(digitRE)) {
330
- stream.backUp(2);
331
- }
332
- } else {
333
- if (!stream.eatWhile(digitRE)) {
334
- stream.backUp(1);
335
- }
336
- }
337
- }
338
- }
339
- }
340
- return rval(state, stream, "number");
341
- }
342
- if (nongreedy(stream, openParenRE, openParenWords)) {
343
- return rval(state, stream, "open_paren");
344
- }
345
- if (nongreedy(stream, closeParenRE, closeParenWords)) {
346
- return rval(state, stream, "close_paren");
347
- }
348
- if (greedy(stream, separatorRE, separatorWords)) {
349
- return rval(state, stream, "separator");
350
- }
351
- if (greedy(stream, operatorSymbolRE, operatorSymbolWords)) {
352
- return rval(state, stream, "operator");
353
- }
354
- return rval(state, stream, null);
355
- }
356
- function nongreedy(stream, re, words) {
357
- if (stream.current().length == 1 && re.test(stream.current())) {
358
- stream.backUp(1);
359
- while (re.test(stream.peek())) {
360
- stream.next();
361
- if (is_member(stream.current(), words)) {
362
- return true;
363
- }
364
- }
365
- stream.backUp(stream.current().length - 1);
366
- }
367
- return false;
368
- }
369
- function greedy(stream, re, words) {
370
- if (stream.current().length == 1 && re.test(stream.current())) {
371
- while (re.test(stream.peek())) {
372
- stream.next();
373
- }
374
- while (0 < stream.current().length) {
375
- if (is_member(stream.current(), words)) {
376
- return true;
377
- } else {
378
- stream.backUp(1);
379
- }
380
- }
381
- stream.next();
382
- }
383
- return false;
384
- }
385
- function doubleQuote(stream) {
386
- return quote(stream, '"', "\\");
387
- }
388
- function singleQuote(stream) {
389
- return quote(stream, "'", "\\");
390
- }
391
- function quote(stream, quoteChar, escapeChar) {
392
- while (!stream.eol()) {
393
- var ch = stream.next();
394
- if (ch == quoteChar) {
395
- return true;
396
- } else if (ch == escapeChar) {
397
- stream.next();
398
- }
399
- }
400
- return false;
401
- }
402
- function lookahead(stream) {
403
- var m = stream.match(/^\s*([^\s%])/, false);
404
- return m ? m[1] : "";
405
- }
406
- function is_member(element, list) {
407
- return -1 < list.indexOf(element);
408
- }
409
- function rval(state, stream, type) {
410
- pushToken(state, realToken(type, stream));
411
- switch (type) {
412
- case "atom":
413
- return "atom";
414
- case "attribute":
415
- return "attribute";
416
- case "boolean":
417
- return "atom";
418
- case "builtin":
419
- return "builtin";
420
- case "close_paren":
421
- return null;
422
- case "colon":
423
- return null;
424
- case "comment":
425
- return "comment";
426
- case "dot":
427
- return null;
428
- case "error":
429
- return "error";
430
- case "fun":
431
- return "meta";
432
- case "function":
433
- return "tag";
434
- case "guard":
435
- return "property";
436
- case "keyword":
437
- return "keyword";
438
- case "macro":
439
- return "macroName";
440
- case "number":
441
- return "number";
442
- case "open_paren":
443
- return null;
444
- case "operator":
445
- return "operator";
446
- case "record":
447
- return "bracket";
448
- case "separator":
449
- return null;
450
- case "string":
451
- return "string";
452
- case "type":
453
- return "def";
454
- case "variable":
455
- return "variable";
456
- default:
457
- return null;
458
- }
459
- }
460
- function aToken(tok, col, ind, typ) {
461
- return {
462
- token: tok,
463
- column: col,
464
- indent: ind,
465
- type: typ
466
- };
467
- }
468
- function realToken(type, stream) {
469
- return aToken(
470
- stream.current(),
471
- stream.column(),
472
- stream.indentation(),
473
- type
474
- );
475
- }
476
- function fakeToken(type) {
477
- return aToken(type, 0, 0, type);
478
- }
479
- function peekToken(state, depth) {
480
- var len = state.tokenStack.length;
481
- var dep = depth ? depth : 1;
482
- if (len < dep) {
483
- return false;
484
- } else {
485
- return state.tokenStack[len - dep];
486
- }
487
- }
488
- function pushToken(state, token) {
489
- if (!(token.type == "comment" || token.type == "whitespace")) {
490
- state.tokenStack = maybe_drop_pre(state.tokenStack, token);
491
- state.tokenStack = maybe_drop_post(state.tokenStack);
492
- }
493
- }
494
- function maybe_drop_pre(s, token) {
495
- var last = s.length - 1;
496
- if (0 < last && s[last].type === "record" && token.type === "dot") {
497
- s.pop();
498
- } else if (0 < last && s[last].type === "group") {
499
- s.pop();
500
- s.push(token);
501
- } else {
502
- s.push(token);
503
- }
504
- return s;
505
- }
506
- function maybe_drop_post(s) {
507
- if (!s.length) return s;
508
- var last = s.length - 1;
509
- if (s[last].type === "dot") {
510
- return [];
511
- }
512
- if (last > 1 && s[last].type === "fun" && s[last - 1].token === "fun") {
513
- return s.slice(0, last - 1);
514
- }
515
- switch (s[last].token) {
516
- case "}":
517
- return d(s, { g: ["{"] });
518
- case "]":
519
- return d(s, { i: ["["] });
520
- case ")":
521
- return d(s, { i: ["("] });
522
- case ">>":
523
- return d(s, { i: ["<<"] });
524
- case "end":
525
- return d(s, { i: ["begin", "case", "fun", "if", "receive", "try"] });
526
- case ",":
527
- return d(s, { e: [
528
- "begin",
529
- "try",
530
- "when",
531
- "->",
532
- ",",
533
- "(",
534
- "[",
535
- "{",
536
- "<<"
537
- ] });
538
- case "->":
539
- return d(s, {
540
- r: ["when"],
541
- m: ["try", "if", "case", "receive"]
542
- });
543
- case ";":
544
- return d(s, { E: ["case", "fun", "if", "receive", "try", "when"] });
545
- case "catch":
546
- return d(s, { e: ["try"] });
547
- case "of":
548
- return d(s, { e: ["case"] });
549
- case "after":
550
- return d(s, { e: ["receive", "try"] });
551
- default:
552
- return s;
553
- }
554
- }
555
- function d(stack, tt) {
556
- for (var type in tt) {
557
- var len = stack.length - 1;
558
- var tokens = tt[type];
559
- for (var i = len - 1; -1 < i; i--) {
560
- if (is_member(stack[i].token, tokens)) {
561
- var ss = stack.slice(0, i);
562
- switch (type) {
563
- case "m":
564
- return ss.concat(stack[i]).concat(stack[len]);
565
- case "r":
566
- return ss.concat(stack[len]);
567
- case "i":
568
- return ss;
569
- case "g":
570
- return ss.concat(fakeToken("group"));
571
- case "E":
572
- return ss.concat(stack[i]);
573
- case "e":
574
- return ss.concat(stack[i]);
575
- }
576
- }
577
- }
578
- }
579
- return type == "E" ? [] : stack;
580
- }
581
- function indenter(state, textAfter, cx) {
582
- var t;
583
- var wordAfter = wordafter(textAfter);
584
- var currT = peekToken(state, 1);
585
- var prevT = peekToken(state, 2);
586
- if (state.in_string || state.in_atom) {
587
- return null;
588
- } else if (!prevT) {
589
- return 0;
590
- } else if (currT.token == "when") {
591
- return currT.column + cx.unit;
592
- } else if (wordAfter === "when" && prevT.type === "function") {
593
- return prevT.indent + cx.unit;
594
- } else if (wordAfter === "(" && currT.token === "fun") {
595
- return currT.column + 3;
596
- } else if (wordAfter === "catch" && (t = getToken(state, ["try"]))) {
597
- return t.column;
598
- } else if (is_member(wordAfter, ["end", "after", "of"])) {
599
- t = getToken(state, ["begin", "case", "fun", "if", "receive", "try"]);
600
- return t ? t.column : null;
601
- } else if (is_member(wordAfter, closeParenWords)) {
602
- t = getToken(state, openParenWords);
603
- return t ? t.column : null;
604
- } else if (is_member(currT.token, [",", "|", "||"]) || is_member(wordAfter, [",", "|", "||"])) {
605
- t = postcommaToken(state);
606
- return t ? t.column + t.token.length : cx.unit;
607
- } else if (currT.token == "->") {
608
- if (is_member(prevT.token, ["receive", "case", "if", "try"])) {
609
- return prevT.column + cx.unit + cx.unit;
610
- } else {
611
- return prevT.column + cx.unit;
612
- }
613
- } else if (is_member(currT.token, openParenWords)) {
614
- return currT.column + currT.token.length;
615
- } else {
616
- t = defaultToken(state);
617
- return truthy(t) ? t.column + cx.unit : 0;
618
- }
619
- }
620
- function wordafter(str) {
621
- var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);
622
- return truthy(m) && m.index === 0 ? m[0] : "";
623
- }
624
- function postcommaToken(state) {
625
- var objs = state.tokenStack.slice(0, -1);
626
- var i = getTokenIndex(objs, "type", ["open_paren"]);
627
- return truthy(objs[i]) ? objs[i] : false;
628
- }
629
- function defaultToken(state) {
630
- var objs = state.tokenStack;
631
- var stop = getTokenIndex(objs, "type", ["open_paren", "separator", "keyword"]);
632
- var oper = getTokenIndex(objs, "type", ["operator"]);
633
- if (truthy(stop) && truthy(oper) && stop < oper) {
634
- return objs[stop + 1];
635
- } else if (truthy(stop)) {
636
- return objs[stop];
637
- } else {
638
- return false;
639
- }
640
- }
641
- function getToken(state, tokens) {
642
- var objs = state.tokenStack;
643
- var i = getTokenIndex(objs, "token", tokens);
644
- return truthy(objs[i]) ? objs[i] : false;
645
- }
646
- function getTokenIndex(objs, propname, propvals) {
647
- for (var i = objs.length - 1; -1 < i; i--) {
648
- if (is_member(objs[i][propname], propvals)) {
649
- return i;
650
- }
651
- }
652
- return false;
653
- }
654
- function truthy(x) {
655
- return x !== false && x != null;
656
- }
657
- const erlang = {
658
- name: "erlang",
659
- startState() {
660
- return {
661
- tokenStack: [],
662
- in_string: false,
663
- in_atom: false
664
- };
665
- },
666
- token: tokenizer,
667
- indent: indenter,
668
- languageData: {
669
- commentTokens: { line: "%" }
670
- }
671
- };
672
- export {
673
- erlang
674
- };