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,240 @@
1
+ const conf = {
2
+ // the default separators except `$-`
3
+ wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
4
+ comments: {
5
+ lineComment: "#",
6
+ blockComment: ["<#", "#>"]
7
+ },
8
+ brackets: [
9
+ ["{", "}"],
10
+ ["[", "]"],
11
+ ["(", ")"]
12
+ ],
13
+ autoClosingPairs: [
14
+ { open: "{", close: "}" },
15
+ { open: "[", close: "]" },
16
+ { open: "(", close: ")" },
17
+ { open: '"', close: '"', notIn: ["string"] },
18
+ { open: "'", close: "'", notIn: ["string", "comment"] }
19
+ ],
20
+ surroundingPairs: [
21
+ { open: "{", close: "}" },
22
+ { open: "[", close: "]" },
23
+ { open: "(", close: ")" },
24
+ { open: '"', close: '"' },
25
+ { open: "'", close: "'" }
26
+ ],
27
+ folding: {
28
+ markers: {
29
+ start: new RegExp("^\\s*#region\\b"),
30
+ end: new RegExp("^\\s*#endregion\\b")
31
+ }
32
+ }
33
+ };
34
+ const language = {
35
+ defaultToken: "",
36
+ ignoreCase: true,
37
+ tokenPostfix: ".ps1",
38
+ brackets: [
39
+ { token: "delimiter.curly", open: "{", close: "}" },
40
+ { token: "delimiter.square", open: "[", close: "]" },
41
+ { token: "delimiter.parenthesis", open: "(", close: ")" }
42
+ ],
43
+ keywords: [
44
+ "begin",
45
+ "break",
46
+ "catch",
47
+ "class",
48
+ "continue",
49
+ "data",
50
+ "define",
51
+ "do",
52
+ "dynamicparam",
53
+ "else",
54
+ "elseif",
55
+ "end",
56
+ "exit",
57
+ "filter",
58
+ "finally",
59
+ "for",
60
+ "foreach",
61
+ "from",
62
+ "function",
63
+ "if",
64
+ "in",
65
+ "param",
66
+ "process",
67
+ "return",
68
+ "switch",
69
+ "throw",
70
+ "trap",
71
+ "try",
72
+ "until",
73
+ "using",
74
+ "var",
75
+ "while",
76
+ "workflow",
77
+ "parallel",
78
+ "sequence",
79
+ "inlinescript",
80
+ "configuration"
81
+ ],
82
+ helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,
83
+ // we include these common regular expressions
84
+ symbols: /[=><!~?&%|+\-*\/\^;\.,]+/,
85
+ escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
86
+ // The main tokenizer for our languages
87
+ tokenizer: {
88
+ root: [
89
+ // commands and keywords
90
+ [
91
+ /[a-zA-Z_][\w-]*/,
92
+ {
93
+ cases: {
94
+ "@keywords": { token: "keyword.$0" },
95
+ "@default": ""
96
+ }
97
+ }
98
+ ],
99
+ // whitespace
100
+ [/[ \t\r\n]+/, ""],
101
+ // labels
102
+ [/^:\w*/, "metatag"],
103
+ // variables
104
+ [
105
+ /\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,
106
+ "variable"
107
+ ],
108
+ // Comments
109
+ [/<#/, "comment", "@comment"],
110
+ [/#.*$/, "comment"],
111
+ // delimiters
112
+ [/[{}()\[\]]/, "@brackets"],
113
+ [/@symbols/, "delimiter"],
114
+ // numbers
115
+ [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
116
+ [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
117
+ [/\d+?/, "number"],
118
+ // delimiter: after number because of .\d floats
119
+ [/[;,.]/, "delimiter"],
120
+ // strings:
121
+ [/\@"/, "string", '@herestring."'],
122
+ [/\@'/, "string", "@herestring.'"],
123
+ [
124
+ /"/,
125
+ {
126
+ cases: {
127
+ "@eos": "string",
128
+ "@default": { token: "string", next: '@string."' }
129
+ }
130
+ }
131
+ ],
132
+ [
133
+ /'/,
134
+ {
135
+ cases: {
136
+ "@eos": "string",
137
+ "@default": { token: "string", next: "@string.'" }
138
+ }
139
+ }
140
+ ]
141
+ ],
142
+ string: [
143
+ [
144
+ /[^"'\$`]+/,
145
+ {
146
+ cases: {
147
+ "@eos": { token: "string", next: "@popall" },
148
+ "@default": "string"
149
+ }
150
+ }
151
+ ],
152
+ [
153
+ /@escapes/,
154
+ {
155
+ cases: {
156
+ "@eos": { token: "string.escape", next: "@popall" },
157
+ "@default": "string.escape"
158
+ }
159
+ }
160
+ ],
161
+ [
162
+ /`./,
163
+ {
164
+ cases: {
165
+ "@eos": {
166
+ token: "string.escape.invalid",
167
+ next: "@popall"
168
+ },
169
+ "@default": "string.escape.invalid"
170
+ }
171
+ }
172
+ ],
173
+ [
174
+ /\$[\w]+$/,
175
+ {
176
+ cases: {
177
+ '$S2=="': { token: "variable", next: "@popall" },
178
+ "@default": { token: "string", next: "@popall" }
179
+ }
180
+ }
181
+ ],
182
+ [
183
+ /\$[\w]+/,
184
+ {
185
+ cases: {
186
+ '$S2=="': "variable",
187
+ "@default": "string"
188
+ }
189
+ }
190
+ ],
191
+ [
192
+ /["']/,
193
+ {
194
+ cases: {
195
+ "$#==$S2": { token: "string", next: "@pop" },
196
+ "@default": {
197
+ cases: {
198
+ "@eos": { token: "string", next: "@popall" },
199
+ "@default": "string"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ ]
205
+ ],
206
+ herestring: [
207
+ [
208
+ /^\s*(["'])@/,
209
+ {
210
+ cases: {
211
+ "$1==$S2": { token: "string", next: "@pop" },
212
+ "@default": "string"
213
+ }
214
+ }
215
+ ],
216
+ [/[^\$`]+/, "string"],
217
+ [/@escapes/, "string.escape"],
218
+ [/`./, "string.escape.invalid"],
219
+ [
220
+ /\$[\w]+/,
221
+ {
222
+ cases: {
223
+ '$S2=="': "variable",
224
+ "@default": "string"
225
+ }
226
+ }
227
+ ]
228
+ ],
229
+ comment: [
230
+ [/[^#\.]+/, "comment"],
231
+ [/#>/, "comment", "@pop"],
232
+ [/(\.)(@helpKeywords)(?!\w)/, { token: "comment.keyword.$2" }],
233
+ [/[\.#]/, "comment"]
234
+ ]
235
+ }
236
+ };
237
+ export {
238
+ conf,
239
+ language
240
+ };
@@ -0,0 +1,421 @@
1
+ const namedLiterals = ["true", "false"];
2
+ const conf = {
3
+ comments: {
4
+ lineComment: "//",
5
+ blockComment: ["/*", "*/"]
6
+ },
7
+ brackets: [
8
+ ["{", "}"],
9
+ ["[", "]"],
10
+ ["(", ")"],
11
+ ["<", ">"]
12
+ ],
13
+ surroundingPairs: [
14
+ { open: "{", close: "}" },
15
+ { open: "[", close: "]" },
16
+ { open: "(", close: ")" },
17
+ { open: "<", close: ">" },
18
+ { open: '"', close: '"' },
19
+ { open: "'", close: "'" }
20
+ ],
21
+ autoClosingPairs: [
22
+ { open: "{", close: "}" },
23
+ { open: "[", close: "]" },
24
+ { open: "(", close: ")" },
25
+ { open: "<", close: ">" },
26
+ { open: '"', close: '"', notIn: ["string"] },
27
+ { open: "'", close: "'", notIn: ["string"] }
28
+ ],
29
+ autoCloseBefore: ".,=}])>' \n ",
30
+ indentationRules: {
31
+ increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),
32
+ decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")
33
+ }
34
+ };
35
+ const language = {
36
+ defaultToken: "",
37
+ tokenPostfix: ".proto",
38
+ brackets: [
39
+ { open: "{", close: "}", token: "delimiter.curly" },
40
+ { open: "[", close: "]", token: "delimiter.square" },
41
+ { open: "(", close: ")", token: "delimiter.parenthesis" },
42
+ { open: "<", close: ">", token: "delimiter.angle" }
43
+ ],
44
+ symbols: /[=><!~?:&|+\-*/^%]+/,
45
+ keywords: [
46
+ "syntax",
47
+ "import",
48
+ "weak",
49
+ "public",
50
+ "package",
51
+ "option",
52
+ "repeated",
53
+ "oneof",
54
+ "map",
55
+ "reserved",
56
+ "to",
57
+ "max",
58
+ "enum",
59
+ "message",
60
+ "service",
61
+ "rpc",
62
+ "stream",
63
+ "returns",
64
+ "package",
65
+ "optional",
66
+ "true",
67
+ "false"
68
+ ],
69
+ builtinTypes: [
70
+ "double",
71
+ "float",
72
+ "int32",
73
+ "int64",
74
+ "uint32",
75
+ "uint64",
76
+ "sint32",
77
+ "sint64",
78
+ "fixed32",
79
+ "fixed64",
80
+ "sfixed32",
81
+ "sfixed64",
82
+ "bool",
83
+ "string",
84
+ "bytes"
85
+ ],
86
+ operators: ["=", "+", "-"],
87
+ namedLiterals,
88
+ escapes: `\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\\${)`,
89
+ identifier: /[a-zA-Z]\w*/,
90
+ fullIdentifier: /@identifier(?:\s*\.\s*@identifier)*/,
91
+ optionName: /(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/,
92
+ messageName: /@identifier/,
93
+ enumName: /@identifier/,
94
+ messageType: /\.?\s*(?:@identifier\s*\.\s*)*@messageName/,
95
+ enumType: /\.?\s*(?:@identifier\s*\.\s*)*@enumName/,
96
+ floatLit: /[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/,
97
+ exponent: /[eE]\s*[+-]?\s*[0-9]+/,
98
+ boolLit: /true\b|false\b/,
99
+ decimalLit: /[1-9][0-9]*/,
100
+ octalLit: /0[0-7]*/,
101
+ hexLit: /0[xX][0-9a-fA-F]+/,
102
+ type: /double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,
103
+ keyType: /int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,
104
+ tokenizer: {
105
+ root: [
106
+ { include: "@whitespace" },
107
+ [/syntax/, "keyword"],
108
+ [/=/, "operators"],
109
+ [/;/, "delimiter"],
110
+ [
111
+ /(")(proto3)(")/,
112
+ ["string.quote", "string", { token: "string.quote", switchTo: "@topLevel.proto3" }]
113
+ ],
114
+ [
115
+ /(")(proto2)(")/,
116
+ ["string.quote", "string", { token: "string.quote", switchTo: "@topLevel.proto2" }]
117
+ ],
118
+ [
119
+ // If no `syntax` provided, regarded as proto2
120
+ /.*?/,
121
+ { token: "", switchTo: "@topLevel.proto2" }
122
+ ]
123
+ ],
124
+ topLevel: [
125
+ // whitespace
126
+ { include: "@whitespace" },
127
+ { include: "@constant" },
128
+ [/=/, "operators"],
129
+ [/[;.]/, "delimiter"],
130
+ [
131
+ /@fullIdentifier/,
132
+ {
133
+ cases: {
134
+ option: { token: "keyword", next: "@option.$S2" },
135
+ enum: { token: "keyword", next: "@enumDecl.$S2" },
136
+ message: { token: "keyword", next: "@messageDecl.$S2" },
137
+ service: { token: "keyword", next: "@serviceDecl.$S2" },
138
+ extend: {
139
+ cases: {
140
+ "$S2==proto2": { token: "keyword", next: "@extendDecl.$S2" }
141
+ }
142
+ },
143
+ "@keywords": "keyword",
144
+ "@default": "identifier"
145
+ }
146
+ }
147
+ ]
148
+ ],
149
+ enumDecl: [
150
+ { include: "@whitespace" },
151
+ [/@identifier/, "type.identifier"],
152
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@enumBody.$S2" }]
153
+ ],
154
+ enumBody: [
155
+ { include: "@whitespace" },
156
+ { include: "@constant" },
157
+ [/=/, "operators"],
158
+ [/;/, "delimiter"],
159
+ [/option\b/, "keyword", "@option.$S2"],
160
+ [/@identifier/, "identifier"],
161
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
162
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
163
+ ],
164
+ messageDecl: [
165
+ { include: "@whitespace" },
166
+ [/@identifier/, "type.identifier"],
167
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@messageBody.$S2" }]
168
+ ],
169
+ messageBody: [
170
+ { include: "@whitespace" },
171
+ { include: "@constant" },
172
+ [/=/, "operators"],
173
+ [/;/, "delimiter"],
174
+ [
175
+ "(map)(s*)(<)",
176
+ ["keyword", "white", { token: "@brackets", bracket: "@open", next: "@map.$S2" }]
177
+ ],
178
+ [
179
+ /@identifier/,
180
+ {
181
+ cases: {
182
+ option: { token: "keyword", next: "@option.$S2" },
183
+ enum: { token: "keyword", next: "@enumDecl.$S2" },
184
+ message: { token: "keyword", next: "@messageDecl.$S2" },
185
+ oneof: { token: "keyword", next: "@oneofDecl.$S2" },
186
+ extensions: {
187
+ cases: {
188
+ "$S2==proto2": { token: "keyword", next: "@reserved.$S2" }
189
+ }
190
+ },
191
+ reserved: { token: "keyword", next: "@reserved.$S2" },
192
+ "(?:repeated|optional)": { token: "keyword", next: "@field.$S2" },
193
+ required: {
194
+ cases: {
195
+ "$S2==proto2": { token: "keyword", next: "@field.$S2" }
196
+ }
197
+ },
198
+ "$S2==proto3": { token: "@rematch", next: "@field.$S2" }
199
+ }
200
+ }
201
+ ],
202
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
203
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
204
+ ],
205
+ extendDecl: [
206
+ { include: "@whitespace" },
207
+ [/@identifier/, "type.identifier"],
208
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@extendBody.$S2" }]
209
+ ],
210
+ extendBody: [
211
+ { include: "@whitespace" },
212
+ { include: "@constant" },
213
+ [/;/, "delimiter"],
214
+ [/(?:repeated|optional|required)/, "keyword", "@field.$S2"],
215
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
216
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
217
+ ],
218
+ options: [
219
+ { include: "@whitespace" },
220
+ { include: "@constant" },
221
+ [/;/, "delimiter"],
222
+ [/@optionName/, "annotation"],
223
+ [/[()]/, "annotation.brackets"],
224
+ [/=/, "operator"],
225
+ [/\]/, { token: "@brackets", bracket: "@close", next: "@pop" }]
226
+ ],
227
+ option: [
228
+ { include: "@whitespace" },
229
+ [/@optionName/, "annotation"],
230
+ [/[()]/, "annotation.brackets"],
231
+ [/=/, "operator", "@pop"]
232
+ ],
233
+ oneofDecl: [
234
+ { include: "@whitespace" },
235
+ [/@identifier/, "identifier"],
236
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@oneofBody.$S2" }]
237
+ ],
238
+ oneofBody: [
239
+ { include: "@whitespace" },
240
+ { include: "@constant" },
241
+ [/;/, "delimiter"],
242
+ [/(@identifier)(\s*)(=)/, ["identifier", "white", "delimiter"]],
243
+ [
244
+ /@fullIdentifier|\./,
245
+ {
246
+ cases: {
247
+ "@builtinTypes": "keyword",
248
+ "@default": "type.identifier"
249
+ }
250
+ }
251
+ ],
252
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
253
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
254
+ ],
255
+ reserved: [
256
+ { include: "@whitespace" },
257
+ [/,/, "delimiter"],
258
+ [/;/, "delimiter", "@pop"],
259
+ { include: "@constant" },
260
+ [/to\b|max\b/, "keyword"]
261
+ ],
262
+ map: [
263
+ { include: "@whitespace" },
264
+ [
265
+ /@fullIdentifier|\./,
266
+ {
267
+ cases: {
268
+ "@builtinTypes": "keyword",
269
+ "@default": "type.identifier"
270
+ }
271
+ }
272
+ ],
273
+ [/,/, "delimiter"],
274
+ [/>/, { token: "@brackets", bracket: "@close", switchTo: "identifier" }]
275
+ ],
276
+ field: [
277
+ { include: "@whitespace" },
278
+ [
279
+ "group",
280
+ {
281
+ cases: {
282
+ "$S2==proto2": { token: "keyword", switchTo: "@groupDecl.$S2" }
283
+ }
284
+ }
285
+ ],
286
+ [/(@identifier)(\s*)(=)/, ["identifier", "white", { token: "delimiter", next: "@pop" }]],
287
+ [
288
+ /@fullIdentifier|\./,
289
+ {
290
+ cases: {
291
+ "@builtinTypes": "keyword",
292
+ "@default": "type.identifier"
293
+ }
294
+ }
295
+ ]
296
+ ],
297
+ groupDecl: [
298
+ { include: "@whitespace" },
299
+ [/@identifier/, "identifier"],
300
+ ["=", "operator"],
301
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@messageBody.$S2" }],
302
+ { include: "@constant" }
303
+ ],
304
+ type: [
305
+ { include: "@whitespace" },
306
+ [/@identifier/, "type.identifier", "@pop"],
307
+ [/./, "delimiter"]
308
+ ],
309
+ identifier: [{ include: "@whitespace" }, [/@identifier/, "identifier", "@pop"]],
310
+ serviceDecl: [
311
+ { include: "@whitespace" },
312
+ [/@identifier/, "identifier"],
313
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@serviceBody.$S2" }]
314
+ ],
315
+ serviceBody: [
316
+ { include: "@whitespace" },
317
+ { include: "@constant" },
318
+ [/;/, "delimiter"],
319
+ [/option\b/, "keyword", "@option.$S2"],
320
+ [/rpc\b/, "keyword", "@rpc.$S2"],
321
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
322
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
323
+ ],
324
+ rpc: [
325
+ { include: "@whitespace" },
326
+ [/@identifier/, "identifier"],
327
+ [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@request.$S2" }],
328
+ [/{/, { token: "@brackets", bracket: "@open", next: "@methodOptions.$S2" }],
329
+ [/;/, "delimiter", "@pop"]
330
+ ],
331
+ request: [
332
+ { include: "@whitespace" },
333
+ [
334
+ /@messageType/,
335
+ {
336
+ cases: {
337
+ stream: { token: "keyword", next: "@type.$S2" },
338
+ "@default": "type.identifier"
339
+ }
340
+ }
341
+ ],
342
+ [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@returns.$S2" }]
343
+ ],
344
+ returns: [
345
+ { include: "@whitespace" },
346
+ [/returns\b/, "keyword"],
347
+ [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@response.$S2" }]
348
+ ],
349
+ response: [
350
+ { include: "@whitespace" },
351
+ [
352
+ /@messageType/,
353
+ {
354
+ cases: {
355
+ stream: { token: "keyword", next: "@type.$S2" },
356
+ "@default": "type.identifier"
357
+ }
358
+ }
359
+ ],
360
+ [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@rpc.$S2" }]
361
+ ],
362
+ methodOptions: [
363
+ { include: "@whitespace" },
364
+ { include: "@constant" },
365
+ [/;/, "delimiter"],
366
+ ["option", "keyword"],
367
+ [/@optionName/, "annotation"],
368
+ [/[()]/, "annotation.brackets"],
369
+ [/=/, "operator"],
370
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
371
+ ],
372
+ comment: [
373
+ [/[^\/*]+/, "comment"],
374
+ [/\/\*/, "comment", "@push"],
375
+ // nested comment
376
+ ["\\*/", "comment", "@pop"],
377
+ [/[\/*]/, "comment"]
378
+ ],
379
+ string: [
380
+ [/[^\\"]+/, "string"],
381
+ [/@escapes/, "string.escape"],
382
+ [/\\./, "string.escape.invalid"],
383
+ [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }]
384
+ ],
385
+ stringSingle: [
386
+ [/[^\\']+/, "string"],
387
+ [/@escapes/, "string.escape"],
388
+ [/\\./, "string.escape.invalid"],
389
+ [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
390
+ ],
391
+ constant: [
392
+ ["@boolLit", "keyword.constant"],
393
+ ["@hexLit", "number.hex"],
394
+ ["@octalLit", "number.octal"],
395
+ ["@decimalLit", "number"],
396
+ ["@floatLit", "number.float"],
397
+ [/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/, "string.invalid"],
398
+ // non-terminated string
399
+ [/"/, { token: "string.quote", bracket: "@open", next: "@string" }],
400
+ [/'/, { token: "string.quote", bracket: "@open", next: "@stringSingle" }],
401
+ [/{/, { token: "@brackets", bracket: "@open", next: "@prototext" }],
402
+ [/identifier/, "identifier"]
403
+ ],
404
+ whitespace: [
405
+ [/[ \t\r\n]+/, "white"],
406
+ [/\/\*/, "comment", "@comment"],
407
+ [/\/\/.*$/, "comment"]
408
+ ],
409
+ prototext: [
410
+ { include: "@whitespace" },
411
+ { include: "@constant" },
412
+ [/@identifier/, "identifier"],
413
+ [/[:;]/, "delimiter"],
414
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
415
+ ]
416
+ }
417
+ };
418
+ export {
419
+ conf,
420
+ language
421
+ };