online-compiler-widget 0.0.3 → 1.0.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 (161) hide show
  1. package/dist/abap-CrvW7_qN.js +1398 -0
  2. package/dist/apex-BAOI8p1v.js +327 -0
  3. package/dist/assets/css.worker-Cb0JI69t.js +93 -0
  4. package/dist/assets/html.worker-BNFZMwEc.js +470 -0
  5. package/dist/assets/json.worker-BCybXpia.js +58 -0
  6. package/dist/assets/ts.worker-DAVh1bw1.js +67731 -0
  7. package/dist/azcli-BlCk_UqW.js +68 -0
  8. package/dist/bat-DPoEelVx.js +100 -0
  9. package/dist/bicep-Cp1F394l.js +102 -0
  10. package/dist/cameligo-CWqtSlQs.js +174 -0
  11. package/dist/clojure-CKBp32Gf.js +761 -0
  12. package/dist/coffee-CDo6vc-J.js +232 -0
  13. package/dist/cpp-DokufPgf.js +389 -0
  14. package/dist/csharp-BQi3szM0.js +326 -0
  15. package/dist/csp-BSGtCCZ-.js +53 -0
  16. package/dist/css-DEPFDJfb.js +187 -0
  17. package/dist/cssMode-nHrB9Mnr.js +141 -0
  18. package/dist/cypher-DAb1vOxS.js +263 -0
  19. package/dist/dart-C8p4jewR.js +281 -0
  20. package/dist/dockerfile-DP0iLFPN.js +130 -0
  21. package/dist/ecl-BDQHA6fi.js +456 -0
  22. package/dist/elixir-D4II6kDM.js +569 -0
  23. package/dist/flow9-StcnL-VB.js +142 -0
  24. package/dist/freemarker2-BoiXdkJM.js +982 -0
  25. package/dist/fsharp-DdUVp3EN.js +217 -0
  26. package/dist/go-D1-I258M.js +218 -0
  27. package/dist/graphql-DWkL3f8U.js +151 -0
  28. package/dist/handlebars-C7PJzkmo.js +412 -0
  29. package/dist/hcl-D_0MNifv.js +183 -0
  30. package/dist/html-D_xe_tUa.js +301 -0
  31. package/dist/htmlMode-Dk_luXu_.js +152 -0
  32. package/dist/index-Ds0EJmOd.js +129200 -0
  33. package/dist/index.js +14 -0
  34. package/dist/ini-C4I2-MT7.js +71 -0
  35. package/dist/java-OBvaP_SS.js +232 -0
  36. package/dist/javascript-CUK67ITD.js +70 -0
  37. package/dist/jsonMode-BIAYTpVF.js +569 -0
  38. package/dist/julia-BmDH8Kkf.js +511 -0
  39. package/dist/kotlin-Dhu5AGOD.js +252 -0
  40. package/dist/less-CzmjXREq.js +162 -0
  41. package/dist/lexon-CV2c4pN9.js +157 -0
  42. package/dist/liquid-Cgsk8EmK.js +233 -0
  43. package/dist/lspLanguageFeatures-HqO1l9Me.js +1458 -0
  44. package/dist/lua-CFY5U8qF.js +162 -0
  45. package/dist/m3-BL_AnZVh.js +210 -0
  46. package/dist/markdown-CWKQPXCv.js +229 -0
  47. package/dist/mdx-QboWmT4M.js +158 -0
  48. package/dist/mips-ButYmJ5E.js +198 -0
  49. package/dist/msdax-C3cnXqDh.js +375 -0
  50. package/dist/mysql-YlSHaf6G.js +878 -0
  51. package/dist/objective-c-Dwnlproe.js +183 -0
  52. package/dist/pascal-UzGbSWEN.js +251 -0
  53. package/dist/pascaligo-CslTgu68.js +164 -0
  54. package/dist/perl-oj6r_mgw.js +626 -0
  55. package/dist/pgsql-DSBO0Mev.js +851 -0
  56. package/dist/php-YzCD--7j.js +500 -0
  57. package/dist/pla-CmylB8vQ.js +137 -0
  58. package/dist/postiats-CLFW5gNY.js +907 -0
  59. package/dist/powerquery-CmOWUvlh.js +890 -0
  60. package/dist/powershell-fHQcmBLK.js +239 -0
  61. package/dist/protobuf-p5BArb-9.js +420 -0
  62. package/dist/pug-gVdUDvqf.js +402 -0
  63. package/dist/python-kIZaMFF7.js +294 -0
  64. package/dist/qsharp-DnrWSUlt.js +301 -0
  65. package/dist/r-Cv309K2z.js +243 -0
  66. package/dist/razor-ms2cCMGp.js +543 -0
  67. package/dist/redis-DTcS4wMj.js +302 -0
  68. package/dist/redshift-hLxZVESM.js +809 -0
  69. package/dist/restructuredtext-C898lK4f.js +174 -0
  70. package/dist/ruby-CgKtnJIQ.js +511 -0
  71. package/dist/rust-bj8oxVnh.js +343 -0
  72. package/dist/sb-DWynz26l.js +115 -0
  73. package/dist/scala-BL5z1UEd.js +370 -0
  74. package/dist/scheme-DUJsH6VU.js +108 -0
  75. package/dist/scss-CxjmhvaL.js +262 -0
  76. package/dist/shell-D14Zs1dF.js +221 -0
  77. package/dist/solidity-WyRm-BGK.js +1367 -0
  78. package/dist/sophia-CKk-_Oa5.js +199 -0
  79. package/dist/sparql-DHtmINMZ.js +201 -0
  80. package/dist/sql-Dqaj5JHC.js +853 -0
  81. package/dist/st-Bj2IIaop.js +416 -0
  82. package/dist/style.css +1 -0
  83. package/dist/swift-DwxP72iM.js +312 -0
  84. package/dist/systemverilog-D7wJfuql.js +576 -0
  85. package/dist/tcl-0ApMt-eC.js +232 -0
  86. package/dist/tsMode-BiXWAJYS.js +946 -0
  87. package/dist/twig-DxwbdmvQ.js +392 -0
  88. package/dist/typescript-ByMmjZ38.js +336 -0
  89. package/dist/typespec-Fd-JwSuS.js +117 -0
  90. package/dist/vb-CxuyYE1I.js +372 -0
  91. package/dist/wgsl-DoEGc31J.js +439 -0
  92. package/dist/xml-iOXTZgNN.js +88 -0
  93. package/dist/yaml-RRlyy-QW.js +199 -0
  94. package/package.json +41 -36
  95. package/FileStorage/obj/FileStorage.csproj.EntityFrameworkCore.targets +0 -28
  96. package/README.md +0 -1
  97. package/eslint.config.js +0 -26
  98. package/index.html +0 -13
  99. package/index.tsx +0 -3
  100. package/openapitools.json +0 -7
  101. package/pnpm-workspace.yaml +0 -2
  102. package/public/vite.svg +0 -1
  103. package/src/App.css +0 -49
  104. package/src/App.tsx +0 -84
  105. package/src/api/.openapi-generator/FILES +0 -25
  106. package/src/api/.openapi-generator/VERSION +0 -1
  107. package/src/api/.openapi-generator-ignore +0 -23
  108. package/src/api/api.ts +0 -1312
  109. package/src/api/base.ts +0 -62
  110. package/src/api/common.ts +0 -113
  111. package/src/api/configuration.ts +0 -121
  112. package/src/api/docs/CompilationError.md +0 -26
  113. package/src/api/docs/CompileRequest.md +0 -22
  114. package/src/api/docs/CompileResult.md +0 -28
  115. package/src/api/docs/CompilerApi.md +0 -263
  116. package/src/api/docs/CreateFileDto.md +0 -22
  117. package/src/api/docs/CreateProjectRequest.md +0 -20
  118. package/src/api/docs/FileApi.md +0 -274
  119. package/src/api/docs/ProcessStatus.md +0 -28
  120. package/src/api/docs/ProjectApi.md +0 -362
  121. package/src/api/docs/ProjectInfo.md +0 -24
  122. package/src/api/docs/ProjectStats.md +0 -28
  123. package/src/api/docs/RenameFileDto.md +0 -20
  124. package/src/api/docs/RenameProjectRequest.md +0 -20
  125. package/src/api/docs/RunRequest.md +0 -24
  126. package/src/api/docs/RunResult.md +0 -30
  127. package/src/api/docs/RunningProjectInfo.md +0 -26
  128. package/src/api/docs/UpdateFileDto.md +0 -20
  129. package/src/api/git_push.sh +0 -57
  130. package/src/api/index.ts +0 -18
  131. package/src/assets/Badge.svg +0 -17
  132. package/src/assets/closeIcon.svg +0 -20
  133. package/src/assets/documentIcon.svg +0 -11
  134. package/src/assets/history.svg +0 -11
  135. package/src/assets/output.svg +0 -12
  136. package/src/assets/plus.svg +0 -20
  137. package/src/assets/react.svg +0 -1
  138. package/src/assets/save-icon.svg +0 -11
  139. package/src/assets/shield.svg +0 -10
  140. package/src/assets/start.svg +0 -11
  141. package/src/assets/stop.svg +0 -11
  142. package/src/components/CompilerWidget.module.scss +0 -169
  143. package/src/components/CompilerWidget.tsx +0 -279
  144. package/src/components/FileExplorer.module.scss +0 -372
  145. package/src/components/FileExplorer.tsx +0 -285
  146. package/src/components/MonacoEditorWrapper.module.scss +0 -29
  147. package/src/components/MonacoEditorWrapper.tsx +0 -74
  148. package/src/components/OutputPanel.module.scss +0 -123
  149. package/src/components/OutputPanel.tsx +0 -53
  150. package/src/components/RunContainer.module.scss +0 -150
  151. package/src/components/RunContainer.tsx +0 -34
  152. package/src/hooks/useCompiler.ts +0 -228
  153. package/src/hooks/useInitialNodes.ts +0 -0
  154. package/src/index.css +0 -78
  155. package/src/main.tsx +0 -8
  156. package/src/types/EditorDocument.ts +0 -8
  157. package/swagger.json +0 -1020
  158. package/tsconfig.app.json +0 -29
  159. package/tsconfig.json +0 -7
  160. package/tsconfig.node.json +0 -26
  161. package/vite.config.ts +0 -8
@@ -0,0 +1,239 @@
1
+ const e = {
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
+ }, n = {
34
+ defaultToken: "",
35
+ ignoreCase: !0,
36
+ tokenPostfix: ".ps1",
37
+ brackets: [
38
+ { token: "delimiter.curly", open: "{", close: "}" },
39
+ { token: "delimiter.square", open: "[", close: "]" },
40
+ { token: "delimiter.parenthesis", open: "(", close: ")" }
41
+ ],
42
+ keywords: [
43
+ "begin",
44
+ "break",
45
+ "catch",
46
+ "class",
47
+ "continue",
48
+ "data",
49
+ "define",
50
+ "do",
51
+ "dynamicparam",
52
+ "else",
53
+ "elseif",
54
+ "end",
55
+ "exit",
56
+ "filter",
57
+ "finally",
58
+ "for",
59
+ "foreach",
60
+ "from",
61
+ "function",
62
+ "if",
63
+ "in",
64
+ "param",
65
+ "process",
66
+ "return",
67
+ "switch",
68
+ "throw",
69
+ "trap",
70
+ "try",
71
+ "until",
72
+ "using",
73
+ "var",
74
+ "while",
75
+ "workflow",
76
+ "parallel",
77
+ "sequence",
78
+ "inlinescript",
79
+ "configuration"
80
+ ],
81
+ helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,
82
+ // we include these common regular expressions
83
+ symbols: /[=><!~?&%|+\-*\/\^;\.,]+/,
84
+ escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
85
+ // The main tokenizer for our languages
86
+ tokenizer: {
87
+ root: [
88
+ // commands and keywords
89
+ [
90
+ /[a-zA-Z_][\w-]*/,
91
+ {
92
+ cases: {
93
+ "@keywords": { token: "keyword.$0" },
94
+ "@default": ""
95
+ }
96
+ }
97
+ ],
98
+ // whitespace
99
+ [/[ \t\r\n]+/, ""],
100
+ // labels
101
+ [/^:\w*/, "metatag"],
102
+ // variables
103
+ [
104
+ /\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,
105
+ "variable"
106
+ ],
107
+ // Comments
108
+ [/<#/, "comment", "@comment"],
109
+ [/#.*$/, "comment"],
110
+ // delimiters
111
+ [/[{}()\[\]]/, "@brackets"],
112
+ [/@symbols/, "delimiter"],
113
+ // numbers
114
+ [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
115
+ [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
116
+ [/\d+?/, "number"],
117
+ // delimiter: after number because of .\d floats
118
+ [/[;,.]/, "delimiter"],
119
+ // strings:
120
+ [/\@"/, "string", '@herestring."'],
121
+ [/\@'/, "string", "@herestring.'"],
122
+ [
123
+ /"/,
124
+ {
125
+ cases: {
126
+ "@eos": "string",
127
+ "@default": { token: "string", next: '@string."' }
128
+ }
129
+ }
130
+ ],
131
+ [
132
+ /'/,
133
+ {
134
+ cases: {
135
+ "@eos": "string",
136
+ "@default": { token: "string", next: "@string.'" }
137
+ }
138
+ }
139
+ ]
140
+ ],
141
+ string: [
142
+ [
143
+ /[^"'\$`]+/,
144
+ {
145
+ cases: {
146
+ "@eos": { token: "string", next: "@popall" },
147
+ "@default": "string"
148
+ }
149
+ }
150
+ ],
151
+ [
152
+ /@escapes/,
153
+ {
154
+ cases: {
155
+ "@eos": { token: "string.escape", next: "@popall" },
156
+ "@default": "string.escape"
157
+ }
158
+ }
159
+ ],
160
+ [
161
+ /`./,
162
+ {
163
+ cases: {
164
+ "@eos": {
165
+ token: "string.escape.invalid",
166
+ next: "@popall"
167
+ },
168
+ "@default": "string.escape.invalid"
169
+ }
170
+ }
171
+ ],
172
+ [
173
+ /\$[\w]+$/,
174
+ {
175
+ cases: {
176
+ '$S2=="': { token: "variable", next: "@popall" },
177
+ "@default": { token: "string", next: "@popall" }
178
+ }
179
+ }
180
+ ],
181
+ [
182
+ /\$[\w]+/,
183
+ {
184
+ cases: {
185
+ '$S2=="': "variable",
186
+ "@default": "string"
187
+ }
188
+ }
189
+ ],
190
+ [
191
+ /["']/,
192
+ {
193
+ cases: {
194
+ "$#==$S2": { token: "string", next: "@pop" },
195
+ "@default": {
196
+ cases: {
197
+ "@eos": { token: "string", next: "@popall" },
198
+ "@default": "string"
199
+ }
200
+ }
201
+ }
202
+ }
203
+ ]
204
+ ],
205
+ herestring: [
206
+ [
207
+ /^\s*(["'])@/,
208
+ {
209
+ cases: {
210
+ "$1==$S2": { token: "string", next: "@pop" },
211
+ "@default": "string"
212
+ }
213
+ }
214
+ ],
215
+ [/[^\$`]+/, "string"],
216
+ [/@escapes/, "string.escape"],
217
+ [/`./, "string.escape.invalid"],
218
+ [
219
+ /\$[\w]+/,
220
+ {
221
+ cases: {
222
+ '$S2=="': "variable",
223
+ "@default": "string"
224
+ }
225
+ }
226
+ ]
227
+ ],
228
+ comment: [
229
+ [/[^#\.]+/, "comment"],
230
+ [/#>/, "comment", "@pop"],
231
+ [/(\.)(@helpKeywords)(?!\w)/, { token: "comment.keyword.$2" }],
232
+ [/[\.#]/, "comment"]
233
+ ]
234
+ }
235
+ };
236
+ export {
237
+ e as conf,
238
+ n as language
239
+ };
@@ -0,0 +1,420 @@
1
+ const e = ["true", "false"], t = {
2
+ comments: {
3
+ lineComment: "//",
4
+ blockComment: ["/*", "*/"]
5
+ },
6
+ brackets: [
7
+ ["{", "}"],
8
+ ["[", "]"],
9
+ ["(", ")"],
10
+ ["<", ">"]
11
+ ],
12
+ surroundingPairs: [
13
+ { open: "{", close: "}" },
14
+ { open: "[", close: "]" },
15
+ { open: "(", close: ")" },
16
+ { open: "<", close: ">" },
17
+ { open: '"', close: '"' },
18
+ { open: "'", close: "'" }
19
+ ],
20
+ autoClosingPairs: [
21
+ { open: "{", close: "}" },
22
+ { open: "[", close: "]" },
23
+ { open: "(", close: ")" },
24
+ { open: "<", close: ">" },
25
+ { open: '"', close: '"', notIn: ["string"] },
26
+ { open: "'", close: "'", notIn: ["string"] }
27
+ ],
28
+ autoCloseBefore: `.,=}])>'
29
+ `,
30
+ indentationRules: {
31
+ increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),
32
+ decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")
33
+ }
34
+ }, n = {
35
+ defaultToken: "",
36
+ tokenPostfix: ".proto",
37
+ brackets: [
38
+ { open: "{", close: "}", token: "delimiter.curly" },
39
+ { open: "[", close: "]", token: "delimiter.square" },
40
+ { open: "(", close: ")", token: "delimiter.parenthesis" },
41
+ { open: "<", close: ">", token: "delimiter.angle" }
42
+ ],
43
+ symbols: /[=><!~?:&|+\-*/^%]+/,
44
+ keywords: [
45
+ "syntax",
46
+ "import",
47
+ "weak",
48
+ "public",
49
+ "package",
50
+ "option",
51
+ "repeated",
52
+ "oneof",
53
+ "map",
54
+ "reserved",
55
+ "to",
56
+ "max",
57
+ "enum",
58
+ "message",
59
+ "service",
60
+ "rpc",
61
+ "stream",
62
+ "returns",
63
+ "package",
64
+ "optional",
65
+ "true",
66
+ "false"
67
+ ],
68
+ builtinTypes: [
69
+ "double",
70
+ "float",
71
+ "int32",
72
+ "int64",
73
+ "uint32",
74
+ "uint64",
75
+ "sint32",
76
+ "sint64",
77
+ "fixed32",
78
+ "fixed64",
79
+ "sfixed32",
80
+ "sfixed64",
81
+ "bool",
82
+ "string",
83
+ "bytes"
84
+ ],
85
+ operators: ["=", "+", "-"],
86
+ namedLiterals: e,
87
+ escapes: "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",
88
+ identifier: /[a-zA-Z]\w*/,
89
+ fullIdentifier: /@identifier(?:\s*\.\s*@identifier)*/,
90
+ optionName: /(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/,
91
+ messageName: /@identifier/,
92
+ enumName: /@identifier/,
93
+ messageType: /\.?\s*(?:@identifier\s*\.\s*)*@messageName/,
94
+ enumType: /\.?\s*(?:@identifier\s*\.\s*)*@enumName/,
95
+ floatLit: /[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/,
96
+ exponent: /[eE]\s*[+-]?\s*[0-9]+/,
97
+ boolLit: /true\b|false\b/,
98
+ decimalLit: /[1-9][0-9]*/,
99
+ octalLit: /0[0-7]*/,
100
+ hexLit: /0[xX][0-9a-fA-F]+/,
101
+ type: /double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,
102
+ keyType: /int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,
103
+ tokenizer: {
104
+ root: [
105
+ { include: "@whitespace" },
106
+ [/syntax/, "keyword"],
107
+ [/=/, "operators"],
108
+ [/;/, "delimiter"],
109
+ [
110
+ /(")(proto3)(")/,
111
+ ["string.quote", "string", { token: "string.quote", switchTo: "@topLevel.proto3" }]
112
+ ],
113
+ [
114
+ /(")(proto2)(")/,
115
+ ["string.quote", "string", { token: "string.quote", switchTo: "@topLevel.proto2" }]
116
+ ],
117
+ [
118
+ // If no `syntax` provided, regarded as proto2
119
+ /.*?/,
120
+ { token: "", switchTo: "@topLevel.proto2" }
121
+ ]
122
+ ],
123
+ topLevel: [
124
+ // whitespace
125
+ { include: "@whitespace" },
126
+ { include: "@constant" },
127
+ [/=/, "operators"],
128
+ [/[;.]/, "delimiter"],
129
+ [
130
+ /@fullIdentifier/,
131
+ {
132
+ cases: {
133
+ option: { token: "keyword", next: "@option.$S2" },
134
+ enum: { token: "keyword", next: "@enumDecl.$S2" },
135
+ message: { token: "keyword", next: "@messageDecl.$S2" },
136
+ service: { token: "keyword", next: "@serviceDecl.$S2" },
137
+ extend: {
138
+ cases: {
139
+ "$S2==proto2": { token: "keyword", next: "@extendDecl.$S2" }
140
+ }
141
+ },
142
+ "@keywords": "keyword",
143
+ "@default": "identifier"
144
+ }
145
+ }
146
+ ]
147
+ ],
148
+ enumDecl: [
149
+ { include: "@whitespace" },
150
+ [/@identifier/, "type.identifier"],
151
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@enumBody.$S2" }]
152
+ ],
153
+ enumBody: [
154
+ { include: "@whitespace" },
155
+ { include: "@constant" },
156
+ [/=/, "operators"],
157
+ [/;/, "delimiter"],
158
+ [/option\b/, "keyword", "@option.$S2"],
159
+ [/@identifier/, "identifier"],
160
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
161
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
162
+ ],
163
+ messageDecl: [
164
+ { include: "@whitespace" },
165
+ [/@identifier/, "type.identifier"],
166
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@messageBody.$S2" }]
167
+ ],
168
+ messageBody: [
169
+ { include: "@whitespace" },
170
+ { include: "@constant" },
171
+ [/=/, "operators"],
172
+ [/;/, "delimiter"],
173
+ [
174
+ "(map)(s*)(<)",
175
+ ["keyword", "white", { token: "@brackets", bracket: "@open", next: "@map.$S2" }]
176
+ ],
177
+ [
178
+ /@identifier/,
179
+ {
180
+ cases: {
181
+ option: { token: "keyword", next: "@option.$S2" },
182
+ enum: { token: "keyword", next: "@enumDecl.$S2" },
183
+ message: { token: "keyword", next: "@messageDecl.$S2" },
184
+ oneof: { token: "keyword", next: "@oneofDecl.$S2" },
185
+ extensions: {
186
+ cases: {
187
+ "$S2==proto2": { token: "keyword", next: "@reserved.$S2" }
188
+ }
189
+ },
190
+ reserved: { token: "keyword", next: "@reserved.$S2" },
191
+ "(?:repeated|optional)": { token: "keyword", next: "@field.$S2" },
192
+ required: {
193
+ cases: {
194
+ "$S2==proto2": { token: "keyword", next: "@field.$S2" }
195
+ }
196
+ },
197
+ "$S2==proto3": { token: "@rematch", next: "@field.$S2" }
198
+ }
199
+ }
200
+ ],
201
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
202
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
203
+ ],
204
+ extendDecl: [
205
+ { include: "@whitespace" },
206
+ [/@identifier/, "type.identifier"],
207
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@extendBody.$S2" }]
208
+ ],
209
+ extendBody: [
210
+ { include: "@whitespace" },
211
+ { include: "@constant" },
212
+ [/;/, "delimiter"],
213
+ [/(?:repeated|optional|required)/, "keyword", "@field.$S2"],
214
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
215
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
216
+ ],
217
+ options: [
218
+ { include: "@whitespace" },
219
+ { include: "@constant" },
220
+ [/;/, "delimiter"],
221
+ [/@optionName/, "annotation"],
222
+ [/[()]/, "annotation.brackets"],
223
+ [/=/, "operator"],
224
+ [/\]/, { token: "@brackets", bracket: "@close", next: "@pop" }]
225
+ ],
226
+ option: [
227
+ { include: "@whitespace" },
228
+ [/@optionName/, "annotation"],
229
+ [/[()]/, "annotation.brackets"],
230
+ [/=/, "operator", "@pop"]
231
+ ],
232
+ oneofDecl: [
233
+ { include: "@whitespace" },
234
+ [/@identifier/, "identifier"],
235
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@oneofBody.$S2" }]
236
+ ],
237
+ oneofBody: [
238
+ { include: "@whitespace" },
239
+ { include: "@constant" },
240
+ [/;/, "delimiter"],
241
+ [/(@identifier)(\s*)(=)/, ["identifier", "white", "delimiter"]],
242
+ [
243
+ /@fullIdentifier|\./,
244
+ {
245
+ cases: {
246
+ "@builtinTypes": "keyword",
247
+ "@default": "type.identifier"
248
+ }
249
+ }
250
+ ],
251
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
252
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
253
+ ],
254
+ reserved: [
255
+ { include: "@whitespace" },
256
+ [/,/, "delimiter"],
257
+ [/;/, "delimiter", "@pop"],
258
+ { include: "@constant" },
259
+ [/to\b|max\b/, "keyword"]
260
+ ],
261
+ map: [
262
+ { include: "@whitespace" },
263
+ [
264
+ /@fullIdentifier|\./,
265
+ {
266
+ cases: {
267
+ "@builtinTypes": "keyword",
268
+ "@default": "type.identifier"
269
+ }
270
+ }
271
+ ],
272
+ [/,/, "delimiter"],
273
+ [/>/, { token: "@brackets", bracket: "@close", switchTo: "identifier" }]
274
+ ],
275
+ field: [
276
+ { include: "@whitespace" },
277
+ [
278
+ "group",
279
+ {
280
+ cases: {
281
+ "$S2==proto2": { token: "keyword", switchTo: "@groupDecl.$S2" }
282
+ }
283
+ }
284
+ ],
285
+ [/(@identifier)(\s*)(=)/, ["identifier", "white", { token: "delimiter", next: "@pop" }]],
286
+ [
287
+ /@fullIdentifier|\./,
288
+ {
289
+ cases: {
290
+ "@builtinTypes": "keyword",
291
+ "@default": "type.identifier"
292
+ }
293
+ }
294
+ ]
295
+ ],
296
+ groupDecl: [
297
+ { include: "@whitespace" },
298
+ [/@identifier/, "identifier"],
299
+ ["=", "operator"],
300
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@messageBody.$S2" }],
301
+ { include: "@constant" }
302
+ ],
303
+ type: [
304
+ { include: "@whitespace" },
305
+ [/@identifier/, "type.identifier", "@pop"],
306
+ [/./, "delimiter"]
307
+ ],
308
+ identifier: [{ include: "@whitespace" }, [/@identifier/, "identifier", "@pop"]],
309
+ serviceDecl: [
310
+ { include: "@whitespace" },
311
+ [/@identifier/, "identifier"],
312
+ [/{/, { token: "@brackets", bracket: "@open", switchTo: "@serviceBody.$S2" }]
313
+ ],
314
+ serviceBody: [
315
+ { include: "@whitespace" },
316
+ { include: "@constant" },
317
+ [/;/, "delimiter"],
318
+ [/option\b/, "keyword", "@option.$S2"],
319
+ [/rpc\b/, "keyword", "@rpc.$S2"],
320
+ [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }],
321
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
322
+ ],
323
+ rpc: [
324
+ { include: "@whitespace" },
325
+ [/@identifier/, "identifier"],
326
+ [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@request.$S2" }],
327
+ [/{/, { token: "@brackets", bracket: "@open", next: "@methodOptions.$S2" }],
328
+ [/;/, "delimiter", "@pop"]
329
+ ],
330
+ request: [
331
+ { include: "@whitespace" },
332
+ [
333
+ /@messageType/,
334
+ {
335
+ cases: {
336
+ stream: { token: "keyword", next: "@type.$S2" },
337
+ "@default": "type.identifier"
338
+ }
339
+ }
340
+ ],
341
+ [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@returns.$S2" }]
342
+ ],
343
+ returns: [
344
+ { include: "@whitespace" },
345
+ [/returns\b/, "keyword"],
346
+ [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@response.$S2" }]
347
+ ],
348
+ response: [
349
+ { include: "@whitespace" },
350
+ [
351
+ /@messageType/,
352
+ {
353
+ cases: {
354
+ stream: { token: "keyword", next: "@type.$S2" },
355
+ "@default": "type.identifier"
356
+ }
357
+ }
358
+ ],
359
+ [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@rpc.$S2" }]
360
+ ],
361
+ methodOptions: [
362
+ { include: "@whitespace" },
363
+ { include: "@constant" },
364
+ [/;/, "delimiter"],
365
+ ["option", "keyword"],
366
+ [/@optionName/, "annotation"],
367
+ [/[()]/, "annotation.brackets"],
368
+ [/=/, "operator"],
369
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
370
+ ],
371
+ comment: [
372
+ [/[^\/*]+/, "comment"],
373
+ [/\/\*/, "comment", "@push"],
374
+ // nested comment
375
+ ["\\*/", "comment", "@pop"],
376
+ [/[\/*]/, "comment"]
377
+ ],
378
+ string: [
379
+ [/[^\\"]+/, "string"],
380
+ [/@escapes/, "string.escape"],
381
+ [/\\./, "string.escape.invalid"],
382
+ [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }]
383
+ ],
384
+ stringSingle: [
385
+ [/[^\\']+/, "string"],
386
+ [/@escapes/, "string.escape"],
387
+ [/\\./, "string.escape.invalid"],
388
+ [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
389
+ ],
390
+ constant: [
391
+ ["@boolLit", "keyword.constant"],
392
+ ["@hexLit", "number.hex"],
393
+ ["@octalLit", "number.octal"],
394
+ ["@decimalLit", "number"],
395
+ ["@floatLit", "number.float"],
396
+ [/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/, "string.invalid"],
397
+ // non-terminated string
398
+ [/"/, { token: "string.quote", bracket: "@open", next: "@string" }],
399
+ [/'/, { token: "string.quote", bracket: "@open", next: "@stringSingle" }],
400
+ [/{/, { token: "@brackets", bracket: "@open", next: "@prototext" }],
401
+ [/identifier/, "identifier"]
402
+ ],
403
+ whitespace: [
404
+ [/[ \t\r\n]+/, "white"],
405
+ [/\/\*/, "comment", "@comment"],
406
+ [/\/\/.*$/, "comment"]
407
+ ],
408
+ prototext: [
409
+ { include: "@whitespace" },
410
+ { include: "@constant" },
411
+ [/@identifier/, "identifier"],
412
+ [/[:;]/, "delimiter"],
413
+ [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }]
414
+ ]
415
+ }
416
+ };
417
+ export {
418
+ t as conf,
419
+ n as language
420
+ };