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,627 @@
1
+ const conf = {
2
+ comments: {
3
+ lineComment: "#"
4
+ },
5
+ brackets: [
6
+ ["{", "}"],
7
+ ["[", "]"],
8
+ ["(", ")"]
9
+ ],
10
+ autoClosingPairs: [
11
+ { open: "{", close: "}" },
12
+ { open: "[", close: "]" },
13
+ { open: "(", close: ")" },
14
+ { open: '"', close: '"' },
15
+ { open: "'", close: "'" },
16
+ { open: "`", close: "`" }
17
+ ],
18
+ surroundingPairs: [
19
+ { open: "{", close: "}" },
20
+ { open: "[", close: "]" },
21
+ { open: "(", close: ")" },
22
+ { open: '"', close: '"' },
23
+ { open: "'", close: "'" },
24
+ { open: "`", close: "`" }
25
+ ]
26
+ };
27
+ const language = {
28
+ defaultToken: "",
29
+ tokenPostfix: ".perl",
30
+ brackets: [
31
+ { token: "delimiter.bracket", open: "{", close: "}" },
32
+ { token: "delimiter.parenthesis", open: "(", close: ")" },
33
+ { token: "delimiter.square", open: "[", close: "]" }
34
+ ],
35
+ // https://learn.perl.org/docs/keywords.html
36
+ // Perl syntax
37
+ keywords: [
38
+ "__DATA__",
39
+ "else",
40
+ "lock",
41
+ "__END__",
42
+ "elsif",
43
+ "lt",
44
+ "__FILE__",
45
+ "eq",
46
+ "__LINE__",
47
+ "exp",
48
+ "ne",
49
+ "sub",
50
+ "__PACKAGE__",
51
+ "for",
52
+ "no",
53
+ "and",
54
+ "foreach",
55
+ "or",
56
+ "unless",
57
+ "cmp",
58
+ "ge",
59
+ "package",
60
+ "until",
61
+ "continue",
62
+ "gt",
63
+ "while",
64
+ "CORE",
65
+ "if",
66
+ "xor",
67
+ "do",
68
+ "le",
69
+ "__DIE__",
70
+ "__WARN__"
71
+ ],
72
+ // Perl functions
73
+ builtinFunctions: [
74
+ "-A",
75
+ "END",
76
+ "length",
77
+ "setpgrp",
78
+ "-B",
79
+ "endgrent",
80
+ "link",
81
+ "setpriority",
82
+ "-b",
83
+ "endhostent",
84
+ "listen",
85
+ "setprotoent",
86
+ "-C",
87
+ "endnetent",
88
+ "local",
89
+ "setpwent",
90
+ "-c",
91
+ "endprotoent",
92
+ "localtime",
93
+ "setservent",
94
+ "-d",
95
+ "endpwent",
96
+ "log",
97
+ "setsockopt",
98
+ "-e",
99
+ "endservent",
100
+ "lstat",
101
+ "shift",
102
+ "-f",
103
+ "eof",
104
+ "map",
105
+ "shmctl",
106
+ "-g",
107
+ "eval",
108
+ "mkdir",
109
+ "shmget",
110
+ "-k",
111
+ "exec",
112
+ "msgctl",
113
+ "shmread",
114
+ "-l",
115
+ "exists",
116
+ "msgget",
117
+ "shmwrite",
118
+ "-M",
119
+ "exit",
120
+ "msgrcv",
121
+ "shutdown",
122
+ "-O",
123
+ "fcntl",
124
+ "msgsnd",
125
+ "sin",
126
+ "-o",
127
+ "fileno",
128
+ "my",
129
+ "sleep",
130
+ "-p",
131
+ "flock",
132
+ "next",
133
+ "socket",
134
+ "-r",
135
+ "fork",
136
+ "not",
137
+ "socketpair",
138
+ "-R",
139
+ "format",
140
+ "oct",
141
+ "sort",
142
+ "-S",
143
+ "formline",
144
+ "open",
145
+ "splice",
146
+ "-s",
147
+ "getc",
148
+ "opendir",
149
+ "split",
150
+ "-T",
151
+ "getgrent",
152
+ "ord",
153
+ "sprintf",
154
+ "-t",
155
+ "getgrgid",
156
+ "our",
157
+ "sqrt",
158
+ "-u",
159
+ "getgrnam",
160
+ "pack",
161
+ "srand",
162
+ "-w",
163
+ "gethostbyaddr",
164
+ "pipe",
165
+ "stat",
166
+ "-W",
167
+ "gethostbyname",
168
+ "pop",
169
+ "state",
170
+ "-X",
171
+ "gethostent",
172
+ "pos",
173
+ "study",
174
+ "-x",
175
+ "getlogin",
176
+ "print",
177
+ "substr",
178
+ "-z",
179
+ "getnetbyaddr",
180
+ "printf",
181
+ "symlink",
182
+ "abs",
183
+ "getnetbyname",
184
+ "prototype",
185
+ "syscall",
186
+ "accept",
187
+ "getnetent",
188
+ "push",
189
+ "sysopen",
190
+ "alarm",
191
+ "getpeername",
192
+ "quotemeta",
193
+ "sysread",
194
+ "atan2",
195
+ "getpgrp",
196
+ "rand",
197
+ "sysseek",
198
+ "AUTOLOAD",
199
+ "getppid",
200
+ "read",
201
+ "system",
202
+ "BEGIN",
203
+ "getpriority",
204
+ "readdir",
205
+ "syswrite",
206
+ "bind",
207
+ "getprotobyname",
208
+ "readline",
209
+ "tell",
210
+ "binmode",
211
+ "getprotobynumber",
212
+ "readlink",
213
+ "telldir",
214
+ "bless",
215
+ "getprotoent",
216
+ "readpipe",
217
+ "tie",
218
+ "break",
219
+ "getpwent",
220
+ "recv",
221
+ "tied",
222
+ "caller",
223
+ "getpwnam",
224
+ "redo",
225
+ "time",
226
+ "chdir",
227
+ "getpwuid",
228
+ "ref",
229
+ "times",
230
+ "CHECK",
231
+ "getservbyname",
232
+ "rename",
233
+ "truncate",
234
+ "chmod",
235
+ "getservbyport",
236
+ "require",
237
+ "uc",
238
+ "chomp",
239
+ "getservent",
240
+ "reset",
241
+ "ucfirst",
242
+ "chop",
243
+ "getsockname",
244
+ "return",
245
+ "umask",
246
+ "chown",
247
+ "getsockopt",
248
+ "reverse",
249
+ "undef",
250
+ "chr",
251
+ "glob",
252
+ "rewinddir",
253
+ "UNITCHECK",
254
+ "chroot",
255
+ "gmtime",
256
+ "rindex",
257
+ "unlink",
258
+ "close",
259
+ "goto",
260
+ "rmdir",
261
+ "unpack",
262
+ "closedir",
263
+ "grep",
264
+ "say",
265
+ "unshift",
266
+ "connect",
267
+ "hex",
268
+ "scalar",
269
+ "untie",
270
+ "cos",
271
+ "index",
272
+ "seek",
273
+ "use",
274
+ "crypt",
275
+ "INIT",
276
+ "seekdir",
277
+ "utime",
278
+ "dbmclose",
279
+ "int",
280
+ "select",
281
+ "values",
282
+ "dbmopen",
283
+ "ioctl",
284
+ "semctl",
285
+ "vec",
286
+ "defined",
287
+ "join",
288
+ "semget",
289
+ "wait",
290
+ "delete",
291
+ "keys",
292
+ "semop",
293
+ "waitpid",
294
+ "DESTROY",
295
+ "kill",
296
+ "send",
297
+ "wantarray",
298
+ "die",
299
+ "last",
300
+ "setgrent",
301
+ "warn",
302
+ "dump",
303
+ "lc",
304
+ "sethostent",
305
+ "write",
306
+ "each",
307
+ "lcfirst",
308
+ "setnetent"
309
+ ],
310
+ // File handlers
311
+ builtinFileHandlers: ["ARGV", "STDERR", "STDOUT", "ARGVOUT", "STDIN", "ENV"],
312
+ // Perl variables
313
+ builtinVariables: [
314
+ "$!",
315
+ "$^RE_TRIE_MAXBUF",
316
+ "$LAST_REGEXP_CODE_RESULT",
317
+ '$"',
318
+ "$^S",
319
+ "$LIST_SEPARATOR",
320
+ "$#",
321
+ "$^T",
322
+ "$MATCH",
323
+ "$$",
324
+ "$^TAINT",
325
+ "$MULTILINE_MATCHING",
326
+ "$%",
327
+ "$^UNICODE",
328
+ "$NR",
329
+ "$&",
330
+ "$^UTF8LOCALE",
331
+ "$OFMT",
332
+ "$'",
333
+ "$^V",
334
+ "$OFS",
335
+ "$(",
336
+ "$^W",
337
+ "$ORS",
338
+ "$)",
339
+ "$^WARNING_BITS",
340
+ "$OS_ERROR",
341
+ "$*",
342
+ "$^WIDE_SYSTEM_CALLS",
343
+ "$OSNAME",
344
+ "$+",
345
+ "$^X",
346
+ "$OUTPUT_AUTO_FLUSH",
347
+ "$,",
348
+ "$_",
349
+ "$OUTPUT_FIELD_SEPARATOR",
350
+ "$-",
351
+ "$`",
352
+ "$OUTPUT_RECORD_SEPARATOR",
353
+ "$.",
354
+ "$a",
355
+ "$PERL_VERSION",
356
+ "$/",
357
+ "$ACCUMULATOR",
358
+ "$PERLDB",
359
+ "$0",
360
+ "$ARG",
361
+ "$PID",
362
+ "$:",
363
+ "$ARGV",
364
+ "$POSTMATCH",
365
+ "$;",
366
+ "$b",
367
+ "$PREMATCH",
368
+ "$<",
369
+ "$BASETIME",
370
+ "$PROCESS_ID",
371
+ "$=",
372
+ "$CHILD_ERROR",
373
+ "$PROGRAM_NAME",
374
+ "$>",
375
+ "$COMPILING",
376
+ "$REAL_GROUP_ID",
377
+ "$?",
378
+ "$DEBUGGING",
379
+ "$REAL_USER_ID",
380
+ "$@",
381
+ "$EFFECTIVE_GROUP_ID",
382
+ "$RS",
383
+ "$[",
384
+ "$EFFECTIVE_USER_ID",
385
+ "$SUBSCRIPT_SEPARATOR",
386
+ "$\\",
387
+ "$EGID",
388
+ "$SUBSEP",
389
+ "$]",
390
+ "$ERRNO",
391
+ "$SYSTEM_FD_MAX",
392
+ "$^",
393
+ "$EUID",
394
+ "$UID",
395
+ "$^A",
396
+ "$EVAL_ERROR",
397
+ "$WARNING",
398
+ "$^C",
399
+ "$EXCEPTIONS_BEING_CAUGHT",
400
+ "$|",
401
+ "$^CHILD_ERROR_NATIVE",
402
+ "$EXECUTABLE_NAME",
403
+ "$~",
404
+ "$^D",
405
+ "$EXTENDED_OS_ERROR",
406
+ "%!",
407
+ "$^E",
408
+ "$FORMAT_FORMFEED",
409
+ "%^H",
410
+ "$^ENCODING",
411
+ "$FORMAT_LINE_BREAK_CHARACTERS",
412
+ "%ENV",
413
+ "$^F",
414
+ "$FORMAT_LINES_LEFT",
415
+ "%INC",
416
+ "$^H",
417
+ "$FORMAT_LINES_PER_PAGE",
418
+ "%OVERLOAD",
419
+ "$^I",
420
+ "$FORMAT_NAME",
421
+ "%SIG",
422
+ "$^L",
423
+ "$FORMAT_PAGE_NUMBER",
424
+ "@+",
425
+ "$^M",
426
+ "$FORMAT_TOP_NAME",
427
+ "@-",
428
+ "$^N",
429
+ "$GID",
430
+ "@_",
431
+ "$^O",
432
+ "$INPLACE_EDIT",
433
+ "@ARGV",
434
+ "$^OPEN",
435
+ "$INPUT_LINE_NUMBER",
436
+ "@INC",
437
+ "$^P",
438
+ "$INPUT_RECORD_SEPARATOR",
439
+ "@LAST_MATCH_START",
440
+ "$^R",
441
+ "$LAST_MATCH_END",
442
+ "$^RE_DEBUG_FLAGS",
443
+ "$LAST_PAREN_MATCH"
444
+ ],
445
+ // operators
446
+ symbols: /[:+\-\^*$&%@=<>!?|\/~\.]/,
447
+ quoteLikeOps: ["qr", "m", "s", "q", "qq", "qx", "qw", "tr", "y"],
448
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
449
+ // The main tokenizer for our languages
450
+ tokenizer: {
451
+ root: [
452
+ { include: "@whitespace" },
453
+ [
454
+ /[a-zA-Z\-_][\w\-_]*/,
455
+ {
456
+ cases: {
457
+ "@keywords": "keyword",
458
+ "@builtinFunctions": "type.identifier",
459
+ "@builtinFileHandlers": "variable.predefined",
460
+ "@quoteLikeOps": {
461
+ token: "@rematch",
462
+ next: "quotedConstructs"
463
+ },
464
+ "@default": ""
465
+ }
466
+ }
467
+ ],
468
+ // Perl variables
469
+ [
470
+ /[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/,
471
+ {
472
+ cases: {
473
+ "@builtinVariables": "variable.predefined",
474
+ "@default": "variable"
475
+ }
476
+ }
477
+ ],
478
+ { include: "@strings" },
479
+ { include: "@dblStrings" },
480
+ // Perl Doc
481
+ { include: "@perldoc" },
482
+ // Here Doc
483
+ { include: "@heredoc" },
484
+ [/[{}\[\]()]/, "@brackets"],
485
+ // RegExp
486
+ [/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/, "regexp"],
487
+ [/@symbols/, "operators"],
488
+ { include: "@numbers" },
489
+ [/[,;]/, "delimiter"]
490
+ ],
491
+ whitespace: [
492
+ [/\s+/, "white"],
493
+ [/(^#!.*$)/, "metatag"],
494
+ [/(^#.*$)/, "comment"]
495
+ ],
496
+ numbers: [
497
+ [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
498
+ [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
499
+ [/\d+/, "number"]
500
+ ],
501
+ // Single quote string
502
+ strings: [[/'/, "string", "@stringBody"]],
503
+ stringBody: [
504
+ [/'/, "string", "@popall"],
505
+ [/\\'/, "string.escape"],
506
+ [/./, "string"]
507
+ ],
508
+ // Double quote string
509
+ dblStrings: [[/"/, "string", "@dblStringBody"]],
510
+ dblStringBody: [
511
+ [/"/, "string", "@popall"],
512
+ [/@escapes/, "string.escape"],
513
+ [/\\./, "string.escape.invalid"],
514
+ { include: "@variables" },
515
+ [/./, "string"]
516
+ ],
517
+ // Quoted constructs
518
+ // Percent strings in Ruby are similar to quote-like operators in Perl.
519
+ // This is adapted from pstrings in ../ruby/ruby.ts.
520
+ quotedConstructs: [
521
+ [/(q|qw|tr|y)\s*\(/, { token: "string.delim", switchTo: "@qstring.(.)" }],
522
+ [/(q|qw|tr|y)\s*\[/, { token: "string.delim", switchTo: "@qstring.[.]" }],
523
+ [/(q|qw|tr|y)\s*\{/, { token: "string.delim", switchTo: "@qstring.{.}" }],
524
+ [/(q|qw|tr|y)\s*</, { token: "string.delim", switchTo: "@qstring.<.>" }],
525
+ [/(q|qw|tr|y)#/, { token: "string.delim", switchTo: "@qstring.#.#" }],
526
+ [/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qstring.$2.$2" }],
527
+ [/(q|qw|tr|y)\s+(\w)/, { token: "string.delim", switchTo: "@qstring.$2.$2" }],
528
+ [/(qr|m|s)\s*\(/, { token: "regexp.delim", switchTo: "@qregexp.(.)" }],
529
+ [/(qr|m|s)\s*\[/, { token: "regexp.delim", switchTo: "@qregexp.[.]" }],
530
+ [/(qr|m|s)\s*\{/, { token: "regexp.delim", switchTo: "@qregexp.{.}" }],
531
+ [/(qr|m|s)\s*</, { token: "regexp.delim", switchTo: "@qregexp.<.>" }],
532
+ [/(qr|m|s)#/, { token: "regexp.delim", switchTo: "@qregexp.#.#" }],
533
+ [/(qr|m|s)\s*([^A-Za-z0-9_#\s])/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }],
534
+ [/(qr|m|s)\s+(\w)/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }],
535
+ [/(qq|qx)\s*\(/, { token: "string.delim", switchTo: "@qqstring.(.)" }],
536
+ [/(qq|qx)\s*\[/, { token: "string.delim", switchTo: "@qqstring.[.]" }],
537
+ [/(qq|qx)\s*\{/, { token: "string.delim", switchTo: "@qqstring.{.}" }],
538
+ [/(qq|qx)\s*</, { token: "string.delim", switchTo: "@qqstring.<.>" }],
539
+ [/(qq|qx)#/, { token: "string.delim", switchTo: "@qqstring.#.#" }],
540
+ [/(qq|qx)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }],
541
+ [/(qq|qx)\s+(\w)/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }]
542
+ ],
543
+ // Non-expanded quoted string
544
+ // qstring<open>.<close>
545
+ // open = open delimiter
546
+ // close = close delimiter
547
+ qstring: [
548
+ [/\\./, "string.escape"],
549
+ [
550
+ /./,
551
+ {
552
+ cases: {
553
+ "$#==$S3": { token: "string.delim", next: "@pop" },
554
+ "$#==$S2": { token: "string.delim", next: "@push" },
555
+ // nested delimiters
556
+ "@default": "string"
557
+ }
558
+ }
559
+ ]
560
+ ],
561
+ // Quoted regexp
562
+ // qregexp.<open>.<close>
563
+ // open = open delimiter
564
+ // close = close delimiter
565
+ qregexp: [
566
+ { include: "@variables" },
567
+ [/\\./, "regexp.escape"],
568
+ [
569
+ /./,
570
+ {
571
+ cases: {
572
+ "$#==$S3": {
573
+ token: "regexp.delim",
574
+ next: "@regexpModifiers"
575
+ },
576
+ "$#==$S2": { token: "regexp.delim", next: "@push" },
577
+ // nested delimiters
578
+ "@default": "regexp"
579
+ }
580
+ }
581
+ ]
582
+ ],
583
+ regexpModifiers: [[/[msixpodualngcer]+/, { token: "regexp.modifier", next: "@popall" }]],
584
+ // Expanded quoted string
585
+ // qqstring.<open>.<close>
586
+ // open = open delimiter
587
+ // close = close delimiter
588
+ qqstring: [{ include: "@variables" }, { include: "@qstring" }],
589
+ heredoc: [
590
+ [/<<\s*['"`]?([\w\-]+)['"`]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }]
591
+ ],
592
+ heredocBody: [
593
+ [
594
+ /^([\w\-]+)$/,
595
+ {
596
+ cases: {
597
+ "$1==$S2": [
598
+ {
599
+ token: "string.heredoc.delimiter",
600
+ next: "@popall"
601
+ }
602
+ ],
603
+ "@default": "string.heredoc"
604
+ }
605
+ }
606
+ ],
607
+ [/./, "string.heredoc"]
608
+ ],
609
+ perldoc: [[/^=\w/, "comment.doc", "@perldocBody"]],
610
+ perldocBody: [
611
+ [/^=cut\b/, "type.identifier", "@popall"],
612
+ [/./, "comment.doc"]
613
+ ],
614
+ variables: [
615
+ [/\$\w+/, "variable"],
616
+ // scalar
617
+ [/@\w+/, "variable"],
618
+ // array
619
+ [/%\w+/, "variable"]
620
+ // key/value
621
+ ]
622
+ }
623
+ };
624
+ export {
625
+ conf,
626
+ language
627
+ };