app-ai-solution-exp 0.1.2

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 (173) hide show
  1. package/bin/app-ai-solution-exp.js +20 -0
  2. package/out/main/index.js +1631 -0
  3. package/out/preload/index.js +108 -0
  4. package/out/renderer/assets/abap-D5KwWAsZ.js +1399 -0
  5. package/out/renderer/assets/apex-DVGUZ64i.js +331 -0
  6. package/out/renderer/assets/azcli-BEAhqcuE.js +69 -0
  7. package/out/renderer/assets/bat-Bqkp9Cfu.js +101 -0
  8. package/out/renderer/assets/bicep-DIlfshcM.js +110 -0
  9. package/out/renderer/assets/cameligo-CLaaYNMV.js +175 -0
  10. package/out/renderer/assets/clojure-fcgFaMHx.js +762 -0
  11. package/out/renderer/assets/codicon-ngg6Pgfi.ttf +0 -0
  12. package/out/renderer/assets/coffee-CzJ5oEdj.js +233 -0
  13. package/out/renderer/assets/cpp-CcN6f0ik.js +390 -0
  14. package/out/renderer/assets/csharp-BJeIuvde.js +327 -0
  15. package/out/renderer/assets/csp-D_3BK2Wp.js +54 -0
  16. package/out/renderer/assets/css-i3rI3_64.js +186 -0
  17. package/out/renderer/assets/css.worker-umuuUiIb.js +53567 -0
  18. package/out/renderer/assets/cssMode-BlKZF8mS.js +208 -0
  19. package/out/renderer/assets/cypher-D0--_GAN.js +264 -0
  20. package/out/renderer/assets/dart-vLMHv35g.js +282 -0
  21. package/out/renderer/assets/dockerfile--oxj0cAH.js +131 -0
  22. package/out/renderer/assets/ecl-CeuUgzaZ.js +457 -0
  23. package/out/renderer/assets/editor.worker-CNgWLVu7.js +13695 -0
  24. package/out/renderer/assets/elixir-eLfY1jWH.js +570 -0
  25. package/out/renderer/assets/flow9-ZSTChSMd.js +143 -0
  26. package/out/renderer/assets/freemarker2-BTb0QKKy.js +995 -0
  27. package/out/renderer/assets/fsharp-D2uoxuLH.js +218 -0
  28. package/out/renderer/assets/go-brnMpFrj.js +219 -0
  29. package/out/renderer/assets/graphql-BeiGgjIU.js +152 -0
  30. package/out/renderer/assets/handlebars-DKVnkZoO.js +414 -0
  31. package/out/renderer/assets/hcl-CrX1Es2W.js +184 -0
  32. package/out/renderer/assets/html-DSHBWNSF.js +303 -0
  33. package/out/renderer/assets/html.worker-BT47iy49.js +29777 -0
  34. package/out/renderer/assets/htmlMode-hdSFcfq-.js +224 -0
  35. package/out/renderer/assets/index-ByP1RhpK.js +309272 -0
  36. package/out/renderer/assets/index-CgixHIqL.css +11502 -0
  37. package/out/renderer/assets/ini-BcQysCTb.js +72 -0
  38. package/out/renderer/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  39. package/out/renderer/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  40. package/out/renderer/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  41. package/out/renderer/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  42. package/out/renderer/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  43. package/out/renderer/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  44. package/out/renderer/assets/inter-cyrillic-700-normal-CjBOestx.woff2 +0 -0
  45. package/out/renderer/assets/inter-cyrillic-700-normal-DrXBdSj3.woff +0 -0
  46. package/out/renderer/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  47. package/out/renderer/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  48. package/out/renderer/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  49. package/out/renderer/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  50. package/out/renderer/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  51. package/out/renderer/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  52. package/out/renderer/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 +0 -0
  53. package/out/renderer/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff +0 -0
  54. package/out/renderer/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  55. package/out/renderer/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  56. package/out/renderer/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  57. package/out/renderer/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  58. package/out/renderer/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  59. package/out/renderer/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  60. package/out/renderer/assets/inter-greek-700-normal-BUv2fZ6O.woff +0 -0
  61. package/out/renderer/assets/inter-greek-700-normal-C3JjAnD8.woff2 +0 -0
  62. package/out/renderer/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  63. package/out/renderer/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  64. package/out/renderer/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  65. package/out/renderer/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  66. package/out/renderer/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  67. package/out/renderer/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  68. package/out/renderer/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff +0 -0
  69. package/out/renderer/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 +0 -0
  70. package/out/renderer/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  71. package/out/renderer/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  72. package/out/renderer/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  73. package/out/renderer/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  74. package/out/renderer/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  75. package/out/renderer/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  76. package/out/renderer/assets/inter-latin-700-normal-BLAVimhd.woff +0 -0
  77. package/out/renderer/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
  78. package/out/renderer/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  79. package/out/renderer/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  80. package/out/renderer/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  81. package/out/renderer/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  82. package/out/renderer/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  83. package/out/renderer/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  84. package/out/renderer/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 +0 -0
  85. package/out/renderer/assets/inter-latin-ext-700-normal-TidjK2hL.woff +0 -0
  86. package/out/renderer/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  87. package/out/renderer/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  88. package/out/renderer/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  89. package/out/renderer/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  90. package/out/renderer/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  91. package/out/renderer/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  92. package/out/renderer/assets/inter-vietnamese-700-normal-BZaoP0fm.woff +0 -0
  93. package/out/renderer/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 +0 -0
  94. package/out/renderer/assets/java-Dt3iMn2o.js +233 -0
  95. package/out/renderer/assets/javascript-Ae6t5gfn.js +72 -0
  96. package/out/renderer/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  97. package/out/renderer/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  98. package/out/renderer/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  99. package/out/renderer/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  100. package/out/renderer/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  101. package/out/renderer/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  102. package/out/renderer/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  103. package/out/renderer/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  104. package/out/renderer/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  105. package/out/renderer/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  106. package/out/renderer/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  107. package/out/renderer/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  108. package/out/renderer/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  109. package/out/renderer/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  110. package/out/renderer/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  111. package/out/renderer/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  112. package/out/renderer/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  113. package/out/renderer/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  114. package/out/renderer/assets/json.worker-D4JVmXIe.js +21424 -0
  115. package/out/renderer/assets/jsonMode-B3dQSNhP.js +931 -0
  116. package/out/renderer/assets/julia-Cm3ItYL_.js +512 -0
  117. package/out/renderer/assets/kotlin-Ddo1SjA5.js +253 -0
  118. package/out/renderer/assets/less-B7Qaxw-O.js +162 -0
  119. package/out/renderer/assets/lexon-C1U0m2n9.js +158 -0
  120. package/out/renderer/assets/liquid-Zgyb8DZ5.js +235 -0
  121. package/out/renderer/assets/lspLanguageFeatures-CkDn9c2y.js +1841 -0
  122. package/out/renderer/assets/lua-hNsuGJkO.js +163 -0
  123. package/out/renderer/assets/m3-6ko6q9-_.js +211 -0
  124. package/out/renderer/assets/markdown-B0YTnTxW.js +230 -0
  125. package/out/renderer/assets/mdx-C8e8DFOf.js +159 -0
  126. package/out/renderer/assets/mips-CJm71dS3.js +199 -0
  127. package/out/renderer/assets/msdax-BBeIktCY.js +376 -0
  128. package/out/renderer/assets/mysql-BWiizXSn.js +879 -0
  129. package/out/renderer/assets/objective-c-B1L1C5EC.js +184 -0
  130. package/out/renderer/assets/pascal-DMQyD4Xk.js +252 -0
  131. package/out/renderer/assets/pascaligo-VA_LQ1oU.js +165 -0
  132. package/out/renderer/assets/perl-DC0Z0tlO.js +627 -0
  133. package/out/renderer/assets/pgsql-DaSGFTLp.js +852 -0
  134. package/out/renderer/assets/php-Bkx1qpkQ.js +501 -0
  135. package/out/renderer/assets/pla-DEV89yYj.js +138 -0
  136. package/out/renderer/assets/postiats-CVVurEnu.js +908 -0
  137. package/out/renderer/assets/powerquery-BQ_t1ZiQ.js +891 -0
  138. package/out/renderer/assets/powershell-BXiKvz7Z.js +240 -0
  139. package/out/renderer/assets/protobuf-CndvAUGu.js +421 -0
  140. package/out/renderer/assets/pug-BxCXwerb.js +403 -0
  141. package/out/renderer/assets/python-8eSQckTG.js +295 -0
  142. package/out/renderer/assets/qsharp-BWK6YLKm.js +302 -0
  143. package/out/renderer/assets/r-CtqYUQ6l.js +244 -0
  144. package/out/renderer/assets/razor-eAkN4Qfv.js +545 -0
  145. package/out/renderer/assets/redis-O7gSt3oh.js +303 -0
  146. package/out/renderer/assets/redshift-CvYMMYZY.js +810 -0
  147. package/out/renderer/assets/restructuredtext-B-KQCVu_.js +175 -0
  148. package/out/renderer/assets/ruby-DCd4DmAr.js +512 -0
  149. package/out/renderer/assets/rust-B1c0VCeq.js +344 -0
  150. package/out/renderer/assets/sb-Chfc_wZF.js +116 -0
  151. package/out/renderer/assets/scala-DbVzH-3O.js +371 -0
  152. package/out/renderer/assets/scheme-D7PxodDG.js +109 -0
  153. package/out/renderer/assets/scss-B42qMyAu.js +261 -0
  154. package/out/renderer/assets/shell-vZEubQ82.js +222 -0
  155. package/out/renderer/assets/solidity-yHOxYChb.js +1368 -0
  156. package/out/renderer/assets/sophia-D7pU0Y1d.js +200 -0
  157. package/out/renderer/assets/sparql-DxuVdnRl.js +202 -0
  158. package/out/renderer/assets/sql-BAGepFCR.js +854 -0
  159. package/out/renderer/assets/st-C-b0Dh53.js +417 -0
  160. package/out/renderer/assets/swift-BmOZGynf.js +313 -0
  161. package/out/renderer/assets/systemverilog-BOC0OOdC.js +577 -0
  162. package/out/renderer/assets/tcl-Bb4GCwBr.js +233 -0
  163. package/out/renderer/assets/ts.worker-C7hW3aY-.js +225330 -0
  164. package/out/renderer/assets/tsMode-D7ET908H.js +1265 -0
  165. package/out/renderer/assets/twig-DvgEGWAV.js +393 -0
  166. package/out/renderer/assets/typescript-BhqUlrW4.js +337 -0
  167. package/out/renderer/assets/typespec-R77Ln7Jb.js +128 -0
  168. package/out/renderer/assets/vb-Bm6ESA0Q.js +373 -0
  169. package/out/renderer/assets/wgsl-_KPae5vw.js +454 -0
  170. package/out/renderer/assets/xml-Bg3Ctug6.js +89 -0
  171. package/out/renderer/assets/yaml-C9aCL4uU.js +200 -0
  172. package/out/renderer/index.html +13 -0
  173. package/package.json +110 -0
@@ -0,0 +1,414 @@
1
+ import { l as languages } from "./index-ByP1RhpK.js";
2
+ const EMPTY_ELEMENTS = [
3
+ "area",
4
+ "base",
5
+ "br",
6
+ "col",
7
+ "embed",
8
+ "hr",
9
+ "img",
10
+ "input",
11
+ "keygen",
12
+ "link",
13
+ "menuitem",
14
+ "meta",
15
+ "param",
16
+ "source",
17
+ "track",
18
+ "wbr"
19
+ ];
20
+ const conf = {
21
+ wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,
22
+ comments: {
23
+ blockComment: ["{{!--", "--}}"]
24
+ },
25
+ brackets: [
26
+ ["<!--", "-->"],
27
+ ["<", ">"],
28
+ ["{{", "}}"],
29
+ ["{", "}"],
30
+ ["(", ")"]
31
+ ],
32
+ autoClosingPairs: [
33
+ { open: "{", close: "}" },
34
+ { open: "[", close: "]" },
35
+ { open: "(", close: ")" },
36
+ { open: '"', close: '"' },
37
+ { open: "'", close: "'" }
38
+ ],
39
+ surroundingPairs: [
40
+ { open: "<", close: ">" },
41
+ { open: '"', close: '"' },
42
+ { open: "'", close: "'" }
43
+ ],
44
+ onEnterRules: [
45
+ {
46
+ beforeText: new RegExp(
47
+ `<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
48
+ "i"
49
+ ),
50
+ afterText: /^<\/(\w[\w\d]*)\s*>$/i,
51
+ action: {
52
+ indentAction: languages.IndentAction.IndentOutdent
53
+ }
54
+ },
55
+ {
56
+ beforeText: new RegExp(
57
+ `<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,
58
+ "i"
59
+ ),
60
+ action: { indentAction: languages.IndentAction.Indent }
61
+ }
62
+ ]
63
+ };
64
+ const language = {
65
+ defaultToken: "",
66
+ tokenPostfix: "",
67
+ // ignoreCase: true,
68
+ // The main tokenizer for our languages
69
+ tokenizer: {
70
+ root: [
71
+ [/\{\{!--/, "comment.block.start.handlebars", "@commentBlock"],
72
+ [/\{\{!/, "comment.start.handlebars", "@comment"],
73
+ [/\{\{/, { token: "@rematch", switchTo: "@handlebarsInSimpleState.root" }],
74
+ [/<!DOCTYPE/, "metatag.html", "@doctype"],
75
+ [/<!--/, "comment.html", "@commentHtml"],
76
+ [/(<)(\w+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]],
77
+ [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]],
78
+ [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]],
79
+ [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
80
+ [/(<\/)(\w+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]],
81
+ [/</, "delimiter.html"],
82
+ [/\{/, "delimiter.html"],
83
+ [/[^<{]+/]
84
+ // text
85
+ ],
86
+ doctype: [
87
+ [
88
+ /\{\{/,
89
+ {
90
+ token: "@rematch",
91
+ switchTo: "@handlebarsInSimpleState.comment"
92
+ }
93
+ ],
94
+ [/[^>]+/, "metatag.content.html"],
95
+ [/>/, "metatag.html", "@pop"]
96
+ ],
97
+ comment: [
98
+ [/\}\}/, "comment.end.handlebars", "@pop"],
99
+ [/./, "comment.content.handlebars"]
100
+ ],
101
+ commentBlock: [
102
+ [/--\}\}/, "comment.block.end.handlebars", "@pop"],
103
+ [/./, "comment.content.handlebars"]
104
+ ],
105
+ commentHtml: [
106
+ [
107
+ /\{\{/,
108
+ {
109
+ token: "@rematch",
110
+ switchTo: "@handlebarsInSimpleState.comment"
111
+ }
112
+ ],
113
+ [/-->/, "comment.html", "@pop"],
114
+ [/[^-]+/, "comment.content.html"],
115
+ [/./, "comment.content.html"]
116
+ ],
117
+ otherTag: [
118
+ [
119
+ /\{\{/,
120
+ {
121
+ token: "@rematch",
122
+ switchTo: "@handlebarsInSimpleState.otherTag"
123
+ }
124
+ ],
125
+ [/\/?>/, "delimiter.html", "@pop"],
126
+ [/"([^"]*)"/, "attribute.value"],
127
+ [/'([^']*)'/, "attribute.value"],
128
+ [/[\w\-]+/, "attribute.name"],
129
+ [/=/, "delimiter"],
130
+ [/[ \t\r\n]+/]
131
+ // whitespace
132
+ ],
133
+ // -- BEGIN <script> tags handling
134
+ // After <script
135
+ script: [
136
+ [
137
+ /\{\{/,
138
+ {
139
+ token: "@rematch",
140
+ switchTo: "@handlebarsInSimpleState.script"
141
+ }
142
+ ],
143
+ [/type/, "attribute.name", "@scriptAfterType"],
144
+ [/"([^"]*)"/, "attribute.value"],
145
+ [/'([^']*)'/, "attribute.value"],
146
+ [/[\w\-]+/, "attribute.name"],
147
+ [/=/, "delimiter"],
148
+ [
149
+ />/,
150
+ {
151
+ token: "delimiter.html",
152
+ next: "@scriptEmbedded.text/javascript",
153
+ nextEmbedded: "text/javascript"
154
+ }
155
+ ],
156
+ [/[ \t\r\n]+/],
157
+ // whitespace
158
+ [
159
+ /(<\/)(script\s*)(>)/,
160
+ ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
161
+ ]
162
+ ],
163
+ // After <script ... type
164
+ scriptAfterType: [
165
+ [
166
+ /\{\{/,
167
+ {
168
+ token: "@rematch",
169
+ switchTo: "@handlebarsInSimpleState.scriptAfterType"
170
+ }
171
+ ],
172
+ [/=/, "delimiter", "@scriptAfterTypeEquals"],
173
+ [
174
+ />/,
175
+ {
176
+ token: "delimiter.html",
177
+ next: "@scriptEmbedded.text/javascript",
178
+ nextEmbedded: "text/javascript"
179
+ }
180
+ ],
181
+ // cover invalid e.g. <script type>
182
+ [/[ \t\r\n]+/],
183
+ // whitespace
184
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
185
+ ],
186
+ // After <script ... type =
187
+ scriptAfterTypeEquals: [
188
+ [
189
+ /\{\{/,
190
+ {
191
+ token: "@rematch",
192
+ switchTo: "@handlebarsInSimpleState.scriptAfterTypeEquals"
193
+ }
194
+ ],
195
+ [
196
+ /"([^"]*)"/,
197
+ {
198
+ token: "attribute.value",
199
+ switchTo: "@scriptWithCustomType.$1"
200
+ }
201
+ ],
202
+ [
203
+ /'([^']*)'/,
204
+ {
205
+ token: "attribute.value",
206
+ switchTo: "@scriptWithCustomType.$1"
207
+ }
208
+ ],
209
+ [
210
+ />/,
211
+ {
212
+ token: "delimiter.html",
213
+ next: "@scriptEmbedded.text/javascript",
214
+ nextEmbedded: "text/javascript"
215
+ }
216
+ ],
217
+ // cover invalid e.g. <script type=>
218
+ [/[ \t\r\n]+/],
219
+ // whitespace
220
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
221
+ ],
222
+ // After <script ... type = $S2
223
+ scriptWithCustomType: [
224
+ [
225
+ /\{\{/,
226
+ {
227
+ token: "@rematch",
228
+ switchTo: "@handlebarsInSimpleState.scriptWithCustomType.$S2"
229
+ }
230
+ ],
231
+ [
232
+ />/,
233
+ {
234
+ token: "delimiter.html",
235
+ next: "@scriptEmbedded.$S2",
236
+ nextEmbedded: "$S2"
237
+ }
238
+ ],
239
+ [/"([^"]*)"/, "attribute.value"],
240
+ [/'([^']*)'/, "attribute.value"],
241
+ [/[\w\-]+/, "attribute.name"],
242
+ [/=/, "delimiter"],
243
+ [/[ \t\r\n]+/],
244
+ // whitespace
245
+ [/<\/script\s*>/, { token: "@rematch", next: "@pop" }]
246
+ ],
247
+ scriptEmbedded: [
248
+ [
249
+ /\{\{/,
250
+ {
251
+ token: "@rematch",
252
+ switchTo: "@handlebarsInEmbeddedState.scriptEmbedded.$S2",
253
+ nextEmbedded: "@pop"
254
+ }
255
+ ],
256
+ [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }]
257
+ ],
258
+ // -- END <script> tags handling
259
+ // -- BEGIN <style> tags handling
260
+ // After <style
261
+ style: [
262
+ [
263
+ /\{\{/,
264
+ {
265
+ token: "@rematch",
266
+ switchTo: "@handlebarsInSimpleState.style"
267
+ }
268
+ ],
269
+ [/type/, "attribute.name", "@styleAfterType"],
270
+ [/"([^"]*)"/, "attribute.value"],
271
+ [/'([^']*)'/, "attribute.value"],
272
+ [/[\w\-]+/, "attribute.name"],
273
+ [/=/, "delimiter"],
274
+ [
275
+ />/,
276
+ {
277
+ token: "delimiter.html",
278
+ next: "@styleEmbedded.text/css",
279
+ nextEmbedded: "text/css"
280
+ }
281
+ ],
282
+ [/[ \t\r\n]+/],
283
+ // whitespace
284
+ [
285
+ /(<\/)(style\s*)(>)/,
286
+ ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }]
287
+ ]
288
+ ],
289
+ // After <style ... type
290
+ styleAfterType: [
291
+ [
292
+ /\{\{/,
293
+ {
294
+ token: "@rematch",
295
+ switchTo: "@handlebarsInSimpleState.styleAfterType"
296
+ }
297
+ ],
298
+ [/=/, "delimiter", "@styleAfterTypeEquals"],
299
+ [
300
+ />/,
301
+ {
302
+ token: "delimiter.html",
303
+ next: "@styleEmbedded.text/css",
304
+ nextEmbedded: "text/css"
305
+ }
306
+ ],
307
+ // cover invalid e.g. <style type>
308
+ [/[ \t\r\n]+/],
309
+ // whitespace
310
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
311
+ ],
312
+ // After <style ... type =
313
+ styleAfterTypeEquals: [
314
+ [
315
+ /\{\{/,
316
+ {
317
+ token: "@rematch",
318
+ switchTo: "@handlebarsInSimpleState.styleAfterTypeEquals"
319
+ }
320
+ ],
321
+ [
322
+ /"([^"]*)"/,
323
+ {
324
+ token: "attribute.value",
325
+ switchTo: "@styleWithCustomType.$1"
326
+ }
327
+ ],
328
+ [
329
+ /'([^']*)'/,
330
+ {
331
+ token: "attribute.value",
332
+ switchTo: "@styleWithCustomType.$1"
333
+ }
334
+ ],
335
+ [
336
+ />/,
337
+ {
338
+ token: "delimiter.html",
339
+ next: "@styleEmbedded.text/css",
340
+ nextEmbedded: "text/css"
341
+ }
342
+ ],
343
+ // cover invalid e.g. <style type=>
344
+ [/[ \t\r\n]+/],
345
+ // whitespace
346
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
347
+ ],
348
+ // After <style ... type = $S2
349
+ styleWithCustomType: [
350
+ [
351
+ /\{\{/,
352
+ {
353
+ token: "@rematch",
354
+ switchTo: "@handlebarsInSimpleState.styleWithCustomType.$S2"
355
+ }
356
+ ],
357
+ [
358
+ />/,
359
+ {
360
+ token: "delimiter.html",
361
+ next: "@styleEmbedded.$S2",
362
+ nextEmbedded: "$S2"
363
+ }
364
+ ],
365
+ [/"([^"]*)"/, "attribute.value"],
366
+ [/'([^']*)'/, "attribute.value"],
367
+ [/[\w\-]+/, "attribute.name"],
368
+ [/=/, "delimiter"],
369
+ [/[ \t\r\n]+/],
370
+ // whitespace
371
+ [/<\/style\s*>/, { token: "@rematch", next: "@pop" }]
372
+ ],
373
+ styleEmbedded: [
374
+ [
375
+ /\{\{/,
376
+ {
377
+ token: "@rematch",
378
+ switchTo: "@handlebarsInEmbeddedState.styleEmbedded.$S2",
379
+ nextEmbedded: "@pop"
380
+ }
381
+ ],
382
+ [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }]
383
+ ],
384
+ // -- END <style> tags handling
385
+ handlebarsInSimpleState: [
386
+ [/\{\{\{?/, "delimiter.handlebars"],
387
+ [/\}\}\}?/, { token: "delimiter.handlebars", switchTo: "@$S2.$S3" }],
388
+ { include: "handlebarsRoot" }
389
+ ],
390
+ handlebarsInEmbeddedState: [
391
+ [/\{\{\{?/, "delimiter.handlebars"],
392
+ [
393
+ /\}\}\}?/,
394
+ {
395
+ token: "delimiter.handlebars",
396
+ switchTo: "@$S2.$S3",
397
+ nextEmbedded: "$S3"
398
+ }
399
+ ],
400
+ { include: "handlebarsRoot" }
401
+ ],
402
+ handlebarsRoot: [
403
+ [/"[^"]*"/, "string.handlebars"],
404
+ [/[#/][^\s}]+/, "keyword.helper.handlebars"],
405
+ [/else\b/, "keyword.helper.handlebars"],
406
+ [/[\s]+/],
407
+ [/[^}]/, "variable.parameter.handlebars"]
408
+ ]
409
+ }
410
+ };
411
+ export {
412
+ conf,
413
+ language
414
+ };
@@ -0,0 +1,184 @@
1
+ const conf = {
2
+ comments: {
3
+ lineComment: "#",
4
+ blockComment: ["/*", "*/"]
5
+ },
6
+ brackets: [
7
+ ["{", "}"],
8
+ ["[", "]"],
9
+ ["(", ")"]
10
+ ],
11
+ autoClosingPairs: [
12
+ { open: "{", close: "}" },
13
+ { open: "[", close: "]" },
14
+ { open: "(", close: ")" },
15
+ { open: '"', close: '"', notIn: ["string"] }
16
+ ],
17
+ surroundingPairs: [
18
+ { open: "{", close: "}" },
19
+ { open: "[", close: "]" },
20
+ { open: "(", close: ")" },
21
+ { open: '"', close: '"' }
22
+ ]
23
+ };
24
+ const language = {
25
+ defaultToken: "",
26
+ tokenPostfix: ".hcl",
27
+ keywords: [
28
+ "var",
29
+ "local",
30
+ "path",
31
+ "for_each",
32
+ "any",
33
+ "string",
34
+ "number",
35
+ "bool",
36
+ "true",
37
+ "false",
38
+ "null",
39
+ "if ",
40
+ "else ",
41
+ "endif ",
42
+ "for ",
43
+ "in",
44
+ "endfor"
45
+ ],
46
+ operators: [
47
+ "=",
48
+ ">=",
49
+ "<=",
50
+ "==",
51
+ "!=",
52
+ "+",
53
+ "-",
54
+ "*",
55
+ "/",
56
+ "%",
57
+ "&&",
58
+ "||",
59
+ "!",
60
+ "<",
61
+ ">",
62
+ "?",
63
+ "...",
64
+ ":"
65
+ ],
66
+ symbols: /[=><!~?:&|+\-*\/\^%]+/,
67
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
68
+ terraformFunctions: /(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/,
69
+ terraformMainBlocks: /(module|data|terraform|resource|provider|variable|output|locals)/,
70
+ tokenizer: {
71
+ root: [
72
+ // highlight main blocks
73
+ [
74
+ /^@terraformMainBlocks([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,
75
+ ["type", "", "string", "", "string", "", "@brackets"]
76
+ ],
77
+ // highlight all the remaining blocks
78
+ [
79
+ /(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,
80
+ ["identifier", "", "string", "", "string", "", "@brackets"]
81
+ ],
82
+ // highlight block
83
+ [
84
+ /(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)(=)(\{)/,
85
+ ["identifier", "", "string", "", "operator", "", "@brackets"]
86
+ ],
87
+ // terraform general highlight - shared with expressions
88
+ { include: "@terraform" }
89
+ ],
90
+ terraform: [
91
+ // highlight terraform functions
92
+ [/@terraformFunctions(\()/, ["type", "@brackets"]],
93
+ // all other words are variables or keywords
94
+ [
95
+ /[a-zA-Z_]\w*-*/,
96
+ // must work with variables such as foo-bar and also with negative numbers
97
+ {
98
+ cases: {
99
+ "@keywords": { token: "keyword.$0" },
100
+ "@default": "variable"
101
+ }
102
+ }
103
+ ],
104
+ { include: "@whitespace" },
105
+ { include: "@heredoc" },
106
+ // delimiters and operators
107
+ [/[{}()\[\]]/, "@brackets"],
108
+ [/[<>](?!@symbols)/, "@brackets"],
109
+ [
110
+ /@symbols/,
111
+ {
112
+ cases: {
113
+ "@operators": "operator",
114
+ "@default": ""
115
+ }
116
+ }
117
+ ],
118
+ // numbers
119
+ [/\d*\d+[eE]([\-+]?\d+)?/, "number.float"],
120
+ [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
121
+ [/\d[\d']*/, "number"],
122
+ [/\d/, "number"],
123
+ [/[;,.]/, "delimiter"],
124
+ // delimiter: after number because of .\d floats
125
+ // strings
126
+ [/"/, "string", "@string"],
127
+ // this will include expressions
128
+ [/'/, "invalid"]
129
+ ],
130
+ heredoc: [
131
+ [/<<[-]*\s*["]?([\w\-]+)["]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }]
132
+ ],
133
+ heredocBody: [
134
+ [
135
+ /([\w\-]+)$/,
136
+ {
137
+ cases: {
138
+ "$1==$S2": [
139
+ {
140
+ token: "string.heredoc.delimiter",
141
+ next: "@popall"
142
+ }
143
+ ],
144
+ "@default": "string.heredoc"
145
+ }
146
+ }
147
+ ],
148
+ [/./, "string.heredoc"]
149
+ ],
150
+ whitespace: [
151
+ [/[ \t\r\n]+/, ""],
152
+ [/\/\*/, "comment", "@comment"],
153
+ [/\/\/.*$/, "comment"],
154
+ [/#.*$/, "comment"]
155
+ ],
156
+ comment: [
157
+ [/[^\/*]+/, "comment"],
158
+ [/\*\//, "comment", "@pop"],
159
+ [/[\/*]/, "comment"]
160
+ ],
161
+ string: [
162
+ [/\$\{/, { token: "delimiter", next: "@stringExpression" }],
163
+ [/[^\\"\$]+/, "string"],
164
+ [/@escapes/, "string.escape"],
165
+ [/\\./, "string.escape.invalid"],
166
+ [/"/, "string", "@popall"]
167
+ ],
168
+ stringInsideExpression: [
169
+ [/[^\\"]+/, "string"],
170
+ [/@escapes/, "string.escape"],
171
+ [/\\./, "string.escape.invalid"],
172
+ [/"/, "string", "@pop"]
173
+ ],
174
+ stringExpression: [
175
+ [/\}/, { token: "delimiter", next: "@pop" }],
176
+ [/"/, "string", "@stringInsideExpression"],
177
+ { include: "@terraform" }
178
+ ]
179
+ }
180
+ };
181
+ export {
182
+ conf,
183
+ language
184
+ };