sun-form-v3 1.0.71 → 1.0.73

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. package/dist/abap-DfvySaIJ.js +1404 -0
  2. package/dist/apex-B__0irD3.js +332 -0
  3. package/dist/assets/css.worker-OK053IOu.js +84 -0
  4. package/dist/assets/editor.worker-D9iUZyMP.js +11 -0
  5. package/dist/assets/html.worker-CL40hqKM.js +458 -0
  6. package/dist/assets/json.worker-6f9bhSHY.js +42 -0
  7. package/dist/assets/ts.worker-B6g3wjaE.js +37021 -0
  8. package/dist/azcli-CDMGhRmx.js +74 -0
  9. package/dist/bat-0Mk8aqzx.js +106 -0
  10. package/dist/bicep-BBi_I06Z.js +108 -0
  11. package/dist/cameligo-D0G_Zm6X.js +180 -0
  12. package/dist/clojure-o2ZKLeMp.js +767 -0
  13. package/dist/coffee-DOQff5VC.js +238 -0
  14. package/dist/cpp-CQGJnWhD.js +395 -0
  15. package/dist/csharp-C1jLsHl8.js +332 -0
  16. package/dist/csp-C_ttMQaW.js +59 -0
  17. package/dist/css-BC202kVV.js +193 -0
  18. package/dist/cssMode-BXBciaWt.js +1541 -0
  19. package/dist/cypher-DwtEH7Fi.js +269 -0
  20. package/dist/dart-D9XknsP2.js +287 -0
  21. package/dist/dockerfile-DgsNjqqa.js +136 -0
  22. package/dist/ecl-BAMCHBl6.js +462 -0
  23. package/dist/elixir-CegIttP8.js +575 -0
  24. package/dist/favicon.ico +0 -0
  25. package/dist/flow9-9608t7UV.js +148 -0
  26. package/dist/freemarker2-CmygUpuu.js +995 -0
  27. package/dist/fsharp-CCtt9-1_.js +223 -0
  28. package/dist/go-CGUIPbct.js +224 -0
  29. package/dist/graphql-BNRIFFIn.js +157 -0
  30. package/dist/handlebars-DQf1H2VV.js +425 -0
  31. package/dist/hcl-C__KLIXe.js +189 -0
  32. package/dist/html-Xh9UOPja.js +314 -0
  33. package/dist/htmlMode-B0QDpKvf.js +1551 -0
  34. package/dist/index-BkAjoBLc.js +122298 -0
  35. package/dist/ini-CeKYn_zA.js +77 -0
  36. package/dist/java-Dm24deQl.js +238 -0
  37. package/dist/javascript-lDZ3h7g8.js +76 -0
  38. package/dist/jsonMode-C5XJ2eKG.js +1957 -0
  39. package/dist/julia-BImNW7VE.js +517 -0
  40. package/dist/kotlin-BfE79GEb.js +259 -0
  41. package/dist/less-DglNOcaC.js +168 -0
  42. package/dist/lexon-BA0dRz9Q.js +163 -0
  43. package/dist/liquid-Cjj1frmx.js +246 -0
  44. package/dist/lua-DMkWzJcm.js +168 -0
  45. package/dist/m3-sA-5shO8.js +216 -0
  46. package/dist/markdown-OYRB1igA.js +235 -0
  47. package/dist/mdx-CzfefEJ-.js +171 -0
  48. package/dist/mips-rRzkJ_7G.js +204 -0
  49. package/dist/msdax-DoVJdUhd.js +381 -0
  50. package/dist/mysql-Ty44IHXo.js +884 -0
  51. package/dist/objective-c-VUfyhYrA.js +189 -0
  52. package/dist/pascal-DkASiYyw.js +257 -0
  53. package/dist/pascaligo-p-ELPlVO.js +170 -0
  54. package/dist/perl-Cjl1FxLZ.js +632 -0
  55. package/dist/pgsql-DjVenF7s.js +857 -0
  56. package/dist/php-CwvGzZOO.js +506 -0
  57. package/dist/pla-Br1iaBIV.js +143 -0
  58. package/dist/postiats-BaeP8zZY.js +913 -0
  59. package/dist/powerquery-CLCshuo8.js +896 -0
  60. package/dist/powershell-CZV50w5N.js +245 -0
  61. package/dist/protobuf-MV3XTewJ.js +426 -0
  62. package/dist/pug-DkDg4c4l.js +408 -0
  63. package/dist/python-DyY6ldcy.js +282 -0
  64. package/dist/qsharp-BAtiKA97.js +291 -0
  65. package/dist/r-8ocrd-h-.js +249 -0
  66. package/dist/razor-Bg8q70Ua.js +556 -0
  67. package/dist/redis-9sZiddxc.js +308 -0
  68. package/dist/redshift-DQfTOGC0.js +815 -0
  69. package/dist/restructuredtext-DXU-vkgr.js +180 -0
  70. package/dist/ruby-DotfqwMf.js +517 -0
  71. package/dist/rust-BIauJ5KN.js +349 -0
  72. package/dist/sb-CmWMvDEV.js +121 -0
  73. package/dist/scala-C81brEbk.js +376 -0
  74. package/dist/scheme-D0pcFz2x.js +114 -0
  75. package/dist/scss-BOdN2fGG.js +268 -0
  76. package/dist/shell-6E09eAkU.js +227 -0
  77. package/dist/solidity-CWStzA1K.js +1373 -0
  78. package/dist/sophia-76Sb6CWe.js +205 -0
  79. package/dist/sparql-BmZTkOWT.js +207 -0
  80. package/dist/sql-Cs9TBAW5.js +859 -0
  81. package/dist/st-B-rqE1Bu.js +422 -0
  82. package/dist/style.css +1 -0
  83. package/dist/sun-form-v3.es.js +4 -0
  84. package/dist/sun-form-v3.umd.js +1905 -0
  85. package/dist/swift-Btsj6YxQ.js +318 -0
  86. package/dist/systemverilog-B3RHBRa2.js +582 -0
  87. package/dist/tcl-Dpj776pn.js +238 -0
  88. package/dist/tsMode-CRd35KrT.js +886 -0
  89. package/dist/twig-Bb9JmBsE.js +398 -0
  90. package/dist/typescript-BYlzZUqk.js +349 -0
  91. package/dist/typespec-CDWeg3SU.js +123 -0
  92. package/dist/vb-DEXnYwEI.js +378 -0
  93. package/dist/wgsl-D602c1lx.js +445 -0
  94. package/dist/xml-CuwYh5uN.js +101 -0
  95. package/dist/yaml-CpETH-QO.js +212 -0
  96. package/package.json +7 -10
  97. package/src/App.vue +0 -9
  98. package/src/assets/font/YouSheBiaoTiHei-2.ttf +0 -0
  99. package/src/assets/font/demo.css +0 -539
  100. package/src/assets/font/demo_index.html +0 -1200
  101. package/src/assets/font/iconfont.css +0 -191
  102. package/src/assets/font/iconfont.js +0 -1
  103. package/src/assets/font/iconfont.json +0 -317
  104. package/src/assets/font/iconfont.ttf +0 -0
  105. package/src/assets/font/iconfont.woff +0 -0
  106. package/src/assets/font/iconfont.woff2 +0 -0
  107. package/src/assets/img/bg_footer.png +0 -0
  108. package/src/assets/img/bg_title.png +0 -0
  109. package/src/assets/img/file.png +0 -0
  110. package/src/assets/img/logo.png +0 -0
  111. package/src/assets/img/logo2.png +0 -0
  112. package/src/assets/img/logo22.png +0 -0
  113. package/src/assets/img/logo23.png +0 -0
  114. package/src/assets/img/logo3.png +0 -0
  115. package/src/assets/img//347/237/251/345/275/242@2x.png +0 -0
  116. package/src/assets/logo.svg +0 -1
  117. package/src/assets/styles/element/index.scss +0 -15
  118. package/src/assets/styles/index.css +0 -3
  119. package/src/components/a.js +0 -14
  120. package/src/components/aDesigner/config.vue +0 -127
  121. package/src/components/aDesigner/design.vue +0 -20
  122. package/src/components/aDesigner/index.vue +0 -144
  123. package/src/components/aDesigner/panel.vue +0 -144
  124. package/src/components/aDesigner/show.vue +0 -24
  125. package/src/components/widgetCommonComps/commonApiConfig/index.vue +0 -194
  126. package/src/components/widgetCommonComps/commonCard/index.vue +0 -36
  127. package/src/components/widgetCommonComps/commonCodeEditor/editor.vue +0 -219
  128. package/src/components/widgetCommonComps/commonCodeEditor/modalEditor.vue +0 -68
  129. package/src/components/widgetCommonComps/commonCollapseCard/index.vue +0 -10
  130. package/src/components/widgetCommonComps/commonContainer/index.vue +0 -95
  131. package/src/components/widgetCommonComps/commonJsonInput/index.vue +0 -59
  132. package/src/components/widgetCommonComps/commonLabelContainer/index.vue +0 -39
  133. package/src/components/widgetCommonComps/commonSidetree/index.vue +0 -61
  134. package/src/components/widgetCommonComps/commonTypeInput/index.vue +0 -75
  135. package/src/components/widgetCommonComps/commonWidgetLabelContainer/index.vue +0 -55
  136. package/src/components/widgetCommonComps/index copy.js +0 -17
  137. package/src/components/widgetCommonComps/index.js +0 -17
  138. package/src/components/widgetConfigComps/config-input/index.vue +0 -60
  139. package/src/components/widgetConfigComps/index copy.js +0 -13
  140. package/src/components/widgetConfigComps/index.js +0 -17
  141. package/src/components/widgetShowComps/index.js +0 -29
  142. package/src/components/widgetShowComps/widget-form/index.vue +0 -43
  143. package/src/components/widgetShowComps/widget-homepage/index.vue +0 -41
  144. package/src/components/widgetShowComps/widget-input/index.vue +0 -85
  145. package/src/components/widgetShowComps/widget-select/index.vue +0 -31
  146. package/src/designer.js +0 -342
  147. package/src/http.js +0 -293
  148. package/src/index.js +0 -24
  149. package/src/index2.js +0 -23
  150. package/src/main.js +0 -19
  151. package/src/remark.js +0 -708
  152. package/src/testBtn.vue +0 -11
  153. package/src/testInput.vue +0 -12
  154. package/src/util/jsformat.js +0 -568
  155. package/src/widgetConfig.js +0 -1112
@@ -0,0 +1,575 @@
1
+ /*!-----------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Version: 0.49.0(383fdf3fc0e1e1a024068b8d0fd4f3dcbae74d04)
4
+ * Released under the MIT license
5
+ * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
6
+ *-----------------------------------------------------------------------------*/
7
+ var e = {
8
+ comments: {
9
+ lineComment: "#"
10
+ },
11
+ brackets: [
12
+ ["{", "}"],
13
+ ["[", "]"],
14
+ ["(", ")"]
15
+ ],
16
+ surroundingPairs: [
17
+ { open: "{", close: "}" },
18
+ { open: "[", close: "]" },
19
+ { open: "(", close: ")" },
20
+ { open: "'", close: "'" },
21
+ { open: '"', close: '"' }
22
+ ],
23
+ autoClosingPairs: [
24
+ { open: "'", close: "'", notIn: ["string", "comment"] },
25
+ { open: '"', close: '"', notIn: ["comment"] },
26
+ { open: '"""', close: '"""' },
27
+ { open: "`", close: "`", notIn: ["string", "comment"] },
28
+ { open: "(", close: ")" },
29
+ { open: "{", close: "}" },
30
+ { open: "[", close: "]" },
31
+ { open: "<<", close: ">>" }
32
+ ],
33
+ indentationRules: {
34
+ increaseIndentPattern: /^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,
35
+ decreaseIndentPattern: /^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/
36
+ }
37
+ }, t = {
38
+ defaultToken: "source",
39
+ tokenPostfix: ".elixir",
40
+ brackets: [
41
+ { open: "[", close: "]", token: "delimiter.square" },
42
+ { open: "(", close: ")", token: "delimiter.parenthesis" },
43
+ { open: "{", close: "}", token: "delimiter.curly" },
44
+ { open: "<<", close: ">>", token: "delimiter.angle.special" }
45
+ ],
46
+ // Below are lists/regexps to which we reference later.
47
+ declarationKeywords: [
48
+ "def",
49
+ "defp",
50
+ "defn",
51
+ "defnp",
52
+ "defguard",
53
+ "defguardp",
54
+ "defmacro",
55
+ "defmacrop",
56
+ "defdelegate",
57
+ "defcallback",
58
+ "defmacrocallback",
59
+ "defmodule",
60
+ "defprotocol",
61
+ "defexception",
62
+ "defimpl",
63
+ "defstruct"
64
+ ],
65
+ operatorKeywords: ["and", "in", "not", "or", "when"],
66
+ namespaceKeywords: ["alias", "import", "require", "use"],
67
+ otherKeywords: [
68
+ "after",
69
+ "case",
70
+ "catch",
71
+ "cond",
72
+ "do",
73
+ "else",
74
+ "end",
75
+ "fn",
76
+ "for",
77
+ "if",
78
+ "quote",
79
+ "raise",
80
+ "receive",
81
+ "rescue",
82
+ "super",
83
+ "throw",
84
+ "try",
85
+ "unless",
86
+ "unquote_splicing",
87
+ "unquote",
88
+ "with"
89
+ ],
90
+ constants: ["true", "false", "nil"],
91
+ nameBuiltin: ["__MODULE__", "__DIR__", "__ENV__", "__CALLER__", "__STACKTRACE__"],
92
+ // Matches any of the operator names:
93
+ // <<< >>> ||| &&& ^^^ ~~~ === !== ~>> <~> |~> <|> == != <= >= && || \\ <> ++ -- |> =~ -> <- ~> <~ :: .. = < > + - * / | . ^ & !
94
+ operator: /-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,
95
+ // See https://hexdocs.pm/elixir/syntax-reference.html#variables
96
+ variableName: /[a-z_][a-zA-Z0-9_]*[?!]?/,
97
+ // See https://hexdocs.pm/elixir/syntax-reference.html#atoms
98
+ atomName: /[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,
99
+ specialAtomName: /\.\.\.|<<>>|%\{\}|%|\{\}/,
100
+ aliasPart: /[A-Z][a-zA-Z0-9_]*/,
101
+ moduleName: /@aliasPart(?:\.@aliasPart)*/,
102
+ // Sigil pairs are: """ """, ''' ''', " ", ' ', / /, | |, < >, { }, [ ], ( )
103
+ sigilSymmetricDelimiter: /"""|'''|"|'|\/|\|/,
104
+ sigilStartDelimiter: /@sigilSymmetricDelimiter|<|\{|\[|\(/,
105
+ sigilEndDelimiter: /@sigilSymmetricDelimiter|>|\}|\]|\)/,
106
+ sigilModifiers: /[a-zA-Z0-9]*/,
107
+ decimal: /\d(?:_?\d)*/,
108
+ hex: /[0-9a-fA-F](_?[0-9a-fA-F])*/,
109
+ octal: /[0-7](_?[0-7])*/,
110
+ binary: /[01](_?[01])*/,
111
+ // See https://hexdocs.pm/elixir/master/String.html#module-escape-characters
112
+ escape: /\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,
113
+ // The keys below correspond to tokenizer states.
114
+ // We start from the root state and match against its rules
115
+ // until we explicitly transition into another state.
116
+ // The `include` simply brings in all operations from the given state
117
+ // and is useful for improving readability.
118
+ tokenizer: {
119
+ root: [
120
+ { include: "@whitespace" },
121
+ { include: "@comments" },
122
+ // Keywords start as either an identifier or a string,
123
+ // but end with a : so it's important to match this first.
124
+ { include: "@keywordsShorthand" },
125
+ { include: "@numbers" },
126
+ { include: "@identifiers" },
127
+ { include: "@strings" },
128
+ { include: "@atoms" },
129
+ { include: "@sigils" },
130
+ { include: "@attributes" },
131
+ { include: "@symbols" }
132
+ ],
133
+ // Whitespace
134
+ whitespace: [[/\s+/, "white"]],
135
+ // Comments
136
+ comments: [[/(#)(.*)/, ["comment.punctuation", "comment"]]],
137
+ // Keyword list shorthand
138
+ keywordsShorthand: [
139
+ [/(@atomName)(:)(\s+)/, ["constant", "constant.punctuation", "white"]],
140
+ // Use positive look-ahead to ensure the string is followed by :
141
+ // and should be considered a keyword.
142
+ [
143
+ /"(?=([^"]|#\{.*?\}|\\")*":)/,
144
+ { token: "constant.delimiter", next: "@doubleQuotedStringKeyword" }
145
+ ],
146
+ [
147
+ /'(?=([^']|#\{.*?\}|\\')*':)/,
148
+ { token: "constant.delimiter", next: "@singleQuotedStringKeyword" }
149
+ ]
150
+ ],
151
+ doubleQuotedStringKeyword: [
152
+ [/":/, { token: "constant.delimiter", next: "@pop" }],
153
+ { include: "@stringConstantContentInterpol" }
154
+ ],
155
+ singleQuotedStringKeyword: [
156
+ [/':/, { token: "constant.delimiter", next: "@pop" }],
157
+ { include: "@stringConstantContentInterpol" }
158
+ ],
159
+ // Numbers
160
+ numbers: [
161
+ [/0b@binary/, "number.binary"],
162
+ [/0o@octal/, "number.octal"],
163
+ [/0x@hex/, "number.hex"],
164
+ [/@decimal\.@decimal([eE]-?@decimal)?/, "number.float"],
165
+ [/@decimal/, "number"]
166
+ ],
167
+ // Identifiers
168
+ identifiers: [
169
+ // Tokenize identifier name in function-like definitions.
170
+ // Note: given `def a + b, do: nil`, `a` is not a function name,
171
+ // so we use negative look-ahead to ensure there's no operator.
172
+ [
173
+ /\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,
174
+ [
175
+ "keyword.declaration",
176
+ "white",
177
+ {
178
+ cases: {
179
+ unquote: "keyword",
180
+ "@default": "function"
181
+ }
182
+ }
183
+ ]
184
+ ],
185
+ // Tokenize function calls
186
+ [
187
+ // In-scope call - an identifier followed by ( or .(
188
+ /(@variableName)(?=\s*\.?\s*\()/,
189
+ {
190
+ cases: {
191
+ // Tokenize as keyword in cases like `if(..., do: ..., else: ...)`
192
+ "@declarationKeywords": "keyword.declaration",
193
+ "@namespaceKeywords": "keyword",
194
+ "@otherKeywords": "keyword",
195
+ "@default": "function.call"
196
+ }
197
+ }
198
+ ],
199
+ [
200
+ // Referencing function in a module
201
+ /(@moduleName)(\s*)(\.)(\s*)(@variableName)/,
202
+ ["type.identifier", "white", "operator", "white", "function.call"]
203
+ ],
204
+ [
205
+ // Referencing function in an Erlang module
206
+ /(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,
207
+ ["constant.punctuation", "constant", "white", "operator", "white", "function.call"]
208
+ ],
209
+ [
210
+ // Piping into a function (tokenized separately as it may not have parentheses)
211
+ /(\|>)(\s*)(@variableName)/,
212
+ [
213
+ "operator",
214
+ "white",
215
+ {
216
+ cases: {
217
+ "@otherKeywords": "keyword",
218
+ "@default": "function.call"
219
+ }
220
+ }
221
+ ]
222
+ ],
223
+ [
224
+ // Function reference passed to another function
225
+ /(&)(\s*)(@variableName)/,
226
+ ["operator", "white", "function.call"]
227
+ ],
228
+ // Language keywords, builtins, constants and variables
229
+ [
230
+ /@variableName/,
231
+ {
232
+ cases: {
233
+ "@declarationKeywords": "keyword.declaration",
234
+ "@operatorKeywords": "keyword.operator",
235
+ "@namespaceKeywords": "keyword",
236
+ "@otherKeywords": "keyword",
237
+ "@constants": "constant.language",
238
+ "@nameBuiltin": "variable.language",
239
+ "_.*": "comment.unused",
240
+ "@default": "identifier"
241
+ }
242
+ }
243
+ ],
244
+ // Module names
245
+ [/@moduleName/, "type.identifier"]
246
+ ],
247
+ // Strings
248
+ strings: [
249
+ [/"""/, { token: "string.delimiter", next: "@doubleQuotedHeredoc" }],
250
+ [/'''/, { token: "string.delimiter", next: "@singleQuotedHeredoc" }],
251
+ [/"/, { token: "string.delimiter", next: "@doubleQuotedString" }],
252
+ [/'/, { token: "string.delimiter", next: "@singleQuotedString" }]
253
+ ],
254
+ doubleQuotedHeredoc: [
255
+ [/"""/, { token: "string.delimiter", next: "@pop" }],
256
+ { include: "@stringContentInterpol" }
257
+ ],
258
+ singleQuotedHeredoc: [
259
+ [/'''/, { token: "string.delimiter", next: "@pop" }],
260
+ { include: "@stringContentInterpol" }
261
+ ],
262
+ doubleQuotedString: [
263
+ [/"/, { token: "string.delimiter", next: "@pop" }],
264
+ { include: "@stringContentInterpol" }
265
+ ],
266
+ singleQuotedString: [
267
+ [/'/, { token: "string.delimiter", next: "@pop" }],
268
+ { include: "@stringContentInterpol" }
269
+ ],
270
+ // Atoms
271
+ atoms: [
272
+ [/(:)(@atomName)/, ["constant.punctuation", "constant"]],
273
+ [/:"/, { token: "constant.delimiter", next: "@doubleQuotedStringAtom" }],
274
+ [/:'/, { token: "constant.delimiter", next: "@singleQuotedStringAtom" }]
275
+ ],
276
+ doubleQuotedStringAtom: [
277
+ [/"/, { token: "constant.delimiter", next: "@pop" }],
278
+ { include: "@stringConstantContentInterpol" }
279
+ ],
280
+ singleQuotedStringAtom: [
281
+ [/'/, { token: "constant.delimiter", next: "@pop" }],
282
+ { include: "@stringConstantContentInterpol" }
283
+ ],
284
+ // Sigils
285
+ // See https://elixir-lang.org/getting-started/sigils.html
286
+ // Sigils allow for typing values using their textual representation.
287
+ // All sigils start with ~ followed by a letter or
288
+ // multi-letter uppercase starting at Elixir v1.15.0, indicating sigil type
289
+ // and then a delimiter pair enclosing the textual representation.
290
+ // Optional modifiers are allowed after the closing delimiter.
291
+ // For instance a regular expressions can be written as:
292
+ // ~r/foo|bar/ ~r{foo|bar} ~r/foo|bar/g
293
+ //
294
+ // In general lowercase sigils allow for interpolation
295
+ // and escaped characters, whereas uppercase sigils don't
296
+ //
297
+ // During tokenization we want to distinguish some
298
+ // specific sigil types, namely string and regexp,
299
+ // so that they cen be themed separately.
300
+ //
301
+ // To reasonably handle all those combinations we leverage
302
+ // dot-separated states, so if we transition to @sigilStart.interpol.s.{.}
303
+ // then "sigilStart.interpol.s" state will match and also all
304
+ // the individual dot-separated parameters can be accessed.
305
+ sigils: [
306
+ [/~[a-z]@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.interpol" }],
307
+ [/~([A-Z]+)@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.noInterpol" }]
308
+ ],
309
+ sigil: [
310
+ [/~([a-z]|[A-Z]+)\{/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.{.}" }],
311
+ [/~([a-z]|[A-Z]+)\[/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.[.]" }],
312
+ [/~([a-z]|[A-Z]+)\(/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.(.)" }],
313
+ [/~([a-z]|[A-Z]+)\</, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.<.>" }],
314
+ [
315
+ /~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,
316
+ { token: "@rematch", switchTo: "@sigilStart.$S2.$1.$2.$2" }
317
+ ]
318
+ ],
319
+ // The definitions below expect states to be of the form:
320
+ //
321
+ // sigilStart.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>
322
+ // sigilContinue.<interpol-or-noInterpol>.<sigil-letter>.<start-delimiter>.<end-delimiter>
323
+ //
324
+ // The sigilStart state is used only to properly classify the token (as string/regex/sigil)
325
+ // and immediately switches to the sigilContinue sate, which handles the actual content
326
+ // and waits for the corresponding end delimiter.
327
+ "sigilStart.interpol.s": [
328
+ [
329
+ /~s@sigilStartDelimiter/,
330
+ {
331
+ token: "string.delimiter",
332
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
333
+ }
334
+ ]
335
+ ],
336
+ "sigilContinue.interpol.s": [
337
+ [
338
+ /(@sigilEndDelimiter)@sigilModifiers/,
339
+ {
340
+ cases: {
341
+ "$1==$S5": { token: "string.delimiter", next: "@pop" },
342
+ "@default": "string"
343
+ }
344
+ }
345
+ ],
346
+ { include: "@stringContentInterpol" }
347
+ ],
348
+ "sigilStart.noInterpol.S": [
349
+ [
350
+ /~S@sigilStartDelimiter/,
351
+ {
352
+ token: "string.delimiter",
353
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
354
+ }
355
+ ]
356
+ ],
357
+ "sigilContinue.noInterpol.S": [
358
+ // Ignore escaped sigil end
359
+ [/(^|[^\\])\\@sigilEndDelimiter/, "string"],
360
+ [
361
+ /(@sigilEndDelimiter)@sigilModifiers/,
362
+ {
363
+ cases: {
364
+ "$1==$S5": { token: "string.delimiter", next: "@pop" },
365
+ "@default": "string"
366
+ }
367
+ }
368
+ ],
369
+ { include: "@stringContent" }
370
+ ],
371
+ "sigilStart.interpol.r": [
372
+ [
373
+ /~r@sigilStartDelimiter/,
374
+ {
375
+ token: "regexp.delimiter",
376
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
377
+ }
378
+ ]
379
+ ],
380
+ "sigilContinue.interpol.r": [
381
+ [
382
+ /(@sigilEndDelimiter)@sigilModifiers/,
383
+ {
384
+ cases: {
385
+ "$1==$S5": { token: "regexp.delimiter", next: "@pop" },
386
+ "@default": "regexp"
387
+ }
388
+ }
389
+ ],
390
+ { include: "@regexpContentInterpol" }
391
+ ],
392
+ "sigilStart.noInterpol.R": [
393
+ [
394
+ /~R@sigilStartDelimiter/,
395
+ {
396
+ token: "regexp.delimiter",
397
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
398
+ }
399
+ ]
400
+ ],
401
+ "sigilContinue.noInterpol.R": [
402
+ // Ignore escaped sigil end
403
+ [/(^|[^\\])\\@sigilEndDelimiter/, "regexp"],
404
+ [
405
+ /(@sigilEndDelimiter)@sigilModifiers/,
406
+ {
407
+ cases: {
408
+ "$1==$S5": { token: "regexp.delimiter", next: "@pop" },
409
+ "@default": "regexp"
410
+ }
411
+ }
412
+ ],
413
+ { include: "@regexpContent" }
414
+ ],
415
+ // Fallback to the generic sigil by default
416
+ "sigilStart.interpol": [
417
+ [
418
+ /~([a-z]|[A-Z]+)@sigilStartDelimiter/,
419
+ {
420
+ token: "sigil.delimiter",
421
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
422
+ }
423
+ ]
424
+ ],
425
+ "sigilContinue.interpol": [
426
+ [
427
+ /(@sigilEndDelimiter)@sigilModifiers/,
428
+ {
429
+ cases: {
430
+ "$1==$S5": { token: "sigil.delimiter", next: "@pop" },
431
+ "@default": "sigil"
432
+ }
433
+ }
434
+ ],
435
+ { include: "@sigilContentInterpol" }
436
+ ],
437
+ "sigilStart.noInterpol": [
438
+ [
439
+ /~([a-z]|[A-Z]+)@sigilStartDelimiter/,
440
+ {
441
+ token: "sigil.delimiter",
442
+ switchTo: "@sigilContinue.$S2.$S3.$S4.$S5"
443
+ }
444
+ ]
445
+ ],
446
+ "sigilContinue.noInterpol": [
447
+ // Ignore escaped sigil end
448
+ [/(^|[^\\])\\@sigilEndDelimiter/, "sigil"],
449
+ [
450
+ /(@sigilEndDelimiter)@sigilModifiers/,
451
+ {
452
+ cases: {
453
+ "$1==$S5": { token: "sigil.delimiter", next: "@pop" },
454
+ "@default": "sigil"
455
+ }
456
+ }
457
+ ],
458
+ { include: "@sigilContent" }
459
+ ],
460
+ // Attributes
461
+ attributes: [
462
+ // Module @doc* attributes - tokenized as comments
463
+ [
464
+ /\@(module|type)?doc (~[sS])?"""/,
465
+ {
466
+ token: "comment.block.documentation",
467
+ next: "@doubleQuotedHeredocDocstring"
468
+ }
469
+ ],
470
+ [
471
+ /\@(module|type)?doc (~[sS])?'''/,
472
+ {
473
+ token: "comment.block.documentation",
474
+ next: "@singleQuotedHeredocDocstring"
475
+ }
476
+ ],
477
+ [
478
+ /\@(module|type)?doc (~[sS])?"/,
479
+ {
480
+ token: "comment.block.documentation",
481
+ next: "@doubleQuotedStringDocstring"
482
+ }
483
+ ],
484
+ [
485
+ /\@(module|type)?doc (~[sS])?'/,
486
+ {
487
+ token: "comment.block.documentation",
488
+ next: "@singleQuotedStringDocstring"
489
+ }
490
+ ],
491
+ [/\@(module|type)?doc false/, "comment.block.documentation"],
492
+ // Module attributes
493
+ [/\@(@variableName)/, "variable"]
494
+ ],
495
+ doubleQuotedHeredocDocstring: [
496
+ [/"""/, { token: "comment.block.documentation", next: "@pop" }],
497
+ { include: "@docstringContent" }
498
+ ],
499
+ singleQuotedHeredocDocstring: [
500
+ [/'''/, { token: "comment.block.documentation", next: "@pop" }],
501
+ { include: "@docstringContent" }
502
+ ],
503
+ doubleQuotedStringDocstring: [
504
+ [/"/, { token: "comment.block.documentation", next: "@pop" }],
505
+ { include: "@docstringContent" }
506
+ ],
507
+ singleQuotedStringDocstring: [
508
+ [/'/, { token: "comment.block.documentation", next: "@pop" }],
509
+ { include: "@docstringContent" }
510
+ ],
511
+ // Operators, punctuation, brackets
512
+ symbols: [
513
+ // Code point operator (either with regular character ?a or an escaped one ?\n)
514
+ [/\?(\\.|[^\\\s])/, "number.constant"],
515
+ // Anonymous function arguments
516
+ [/&\d+/, "operator"],
517
+ // Bitshift operators (must go before delimiters, so that << >> don't match first)
518
+ [/<<<|>>>/, "operator"],
519
+ // Delimiter pairs
520
+ [/[()\[\]\{\}]|<<|>>/, "@brackets"],
521
+ // Triple dot is a valid name (must go before operators, so that .. doesn't match instead)
522
+ [/\.\.\./, "identifier"],
523
+ // Punctuation => (must go before operators, so it's not tokenized as = then >)
524
+ [/=>/, "punctuation"],
525
+ // Operators
526
+ [/@operator/, "operator"],
527
+ // Punctuation
528
+ [/[:;,.%]/, "punctuation"]
529
+ ],
530
+ // Generic helpers
531
+ stringContentInterpol: [
532
+ { include: "@interpolation" },
533
+ { include: "@escapeChar" },
534
+ { include: "@stringContent" }
535
+ ],
536
+ stringContent: [[/./, "string"]],
537
+ stringConstantContentInterpol: [
538
+ { include: "@interpolation" },
539
+ { include: "@escapeChar" },
540
+ { include: "@stringConstantContent" }
541
+ ],
542
+ stringConstantContent: [[/./, "constant"]],
543
+ regexpContentInterpol: [
544
+ { include: "@interpolation" },
545
+ { include: "@escapeChar" },
546
+ { include: "@regexpContent" }
547
+ ],
548
+ regexpContent: [
549
+ // # may be a regular regexp char, so we use a heuristic
550
+ // assuming a # surrounded by whitespace is actually a comment.
551
+ [/(\s)(#)(\s.*)$/, ["white", "comment.punctuation", "comment"]],
552
+ [/./, "regexp"]
553
+ ],
554
+ sigilContentInterpol: [
555
+ { include: "@interpolation" },
556
+ { include: "@escapeChar" },
557
+ { include: "@sigilContent" }
558
+ ],
559
+ sigilContent: [[/./, "sigil"]],
560
+ docstringContent: [[/./, "comment.block.documentation"]],
561
+ escapeChar: [[/@escape/, "constant.character.escape"]],
562
+ interpolation: [[/#{/, { token: "delimiter.bracket.embed", next: "@interpolationContinue" }]],
563
+ interpolationContinue: [
564
+ [/}/, { token: "delimiter.bracket.embed", next: "@pop" }],
565
+ // Interpolation brackets may contain arbitrary code,
566
+ // so we simply match against all the root rules,
567
+ // until we reach interpolation end (the above matches).
568
+ { include: "@root" }
569
+ ]
570
+ }
571
+ };
572
+ export {
573
+ e as conf,
574
+ t as language
575
+ };
Binary file