sun-form-v3 1.0.75 → 1.0.76

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/dist/{index-CcTbw1Tq.js → index-DFhw3AXw.js} +38766 -67043
  2. package/dist/{javascript-L09o5l7-.js → javascript-Cg8yvIbj.js} +1 -1
  3. package/dist/style.css +1 -1
  4. package/dist/sun-form-v3.es.js +1 -1
  5. package/dist/sun-form-v3.umd.js +220 -1394
  6. package/dist/{tsMode-D2yB4q_y.js → tsMode-DC3WlIAp.js} +1 -1
  7. package/dist/{typescript-B66xIknh.js → typescript-qB7JvgzD.js} +1 -1
  8. package/package.json +3 -1
  9. package/dist/abap-DfvySaIJ.js +0 -1404
  10. package/dist/apex-B__0irD3.js +0 -332
  11. package/dist/azcli-CDMGhRmx.js +0 -74
  12. package/dist/bat-0Mk8aqzx.js +0 -106
  13. package/dist/bicep-BBi_I06Z.js +0 -108
  14. package/dist/cameligo-D0G_Zm6X.js +0 -180
  15. package/dist/clojure-o2ZKLeMp.js +0 -767
  16. package/dist/coffee-DOQff5VC.js +0 -238
  17. package/dist/cpp-CQGJnWhD.js +0 -395
  18. package/dist/csharp-C1jLsHl8.js +0 -332
  19. package/dist/csp-C_ttMQaW.js +0 -59
  20. package/dist/css-BC202kVV.js +0 -193
  21. package/dist/cssMode-CyjUDoDD.js +0 -1541
  22. package/dist/cypher-DwtEH7Fi.js +0 -269
  23. package/dist/dart-D9XknsP2.js +0 -287
  24. package/dist/dockerfile-DgsNjqqa.js +0 -136
  25. package/dist/ecl-BAMCHBl6.js +0 -462
  26. package/dist/elixir-CegIttP8.js +0 -575
  27. package/dist/flow9-9608t7UV.js +0 -148
  28. package/dist/freemarker2-CzU8Y7TO.js +0 -995
  29. package/dist/fsharp-CCtt9-1_.js +0 -223
  30. package/dist/go-CGUIPbct.js +0 -224
  31. package/dist/graphql-BNRIFFIn.js +0 -157
  32. package/dist/handlebars-DcPibhdm.js +0 -425
  33. package/dist/hcl-C__KLIXe.js +0 -189
  34. package/dist/html-B8maI1wg.js +0 -314
  35. package/dist/htmlMode-D8HgQk11.js +0 -1551
  36. package/dist/ini-CeKYn_zA.js +0 -77
  37. package/dist/java-Dm24deQl.js +0 -238
  38. package/dist/jsonMode-dkd7Mp3R.js +0 -1957
  39. package/dist/julia-BImNW7VE.js +0 -517
  40. package/dist/kotlin-BfE79GEb.js +0 -259
  41. package/dist/less-DglNOcaC.js +0 -168
  42. package/dist/lexon-BA0dRz9Q.js +0 -163
  43. package/dist/liquid-CkWglRzZ.js +0 -246
  44. package/dist/lua-DMkWzJcm.js +0 -168
  45. package/dist/m3-sA-5shO8.js +0 -216
  46. package/dist/markdown-OYRB1igA.js +0 -235
  47. package/dist/mdx-CCaTXl1c.js +0 -171
  48. package/dist/mips-rRzkJ_7G.js +0 -204
  49. package/dist/msdax-DoVJdUhd.js +0 -381
  50. package/dist/mysql-Ty44IHXo.js +0 -884
  51. package/dist/objective-c-VUfyhYrA.js +0 -189
  52. package/dist/pascal-DkASiYyw.js +0 -257
  53. package/dist/pascaligo-p-ELPlVO.js +0 -170
  54. package/dist/perl-Cjl1FxLZ.js +0 -632
  55. package/dist/pgsql-DjVenF7s.js +0 -857
  56. package/dist/php-CwvGzZOO.js +0 -506
  57. package/dist/pla-Br1iaBIV.js +0 -143
  58. package/dist/postiats-BaeP8zZY.js +0 -913
  59. package/dist/powerquery-CLCshuo8.js +0 -896
  60. package/dist/powershell-CZV50w5N.js +0 -245
  61. package/dist/protobuf-MV3XTewJ.js +0 -426
  62. package/dist/pug-DkDg4c4l.js +0 -408
  63. package/dist/python-4CtoY8go.js +0 -282
  64. package/dist/qsharp-BAtiKA97.js +0 -291
  65. package/dist/r-8ocrd-h-.js +0 -249
  66. package/dist/razor-DwoBjqQV.js +0 -556
  67. package/dist/redis-9sZiddxc.js +0 -308
  68. package/dist/redshift-DQfTOGC0.js +0 -815
  69. package/dist/restructuredtext-DXU-vkgr.js +0 -180
  70. package/dist/ruby-DotfqwMf.js +0 -517
  71. package/dist/rust-BIauJ5KN.js +0 -349
  72. package/dist/sb-CmWMvDEV.js +0 -121
  73. package/dist/scala-C81brEbk.js +0 -376
  74. package/dist/scheme-D0pcFz2x.js +0 -114
  75. package/dist/scss-BOdN2fGG.js +0 -268
  76. package/dist/shell-6E09eAkU.js +0 -227
  77. package/dist/solidity-CWStzA1K.js +0 -1373
  78. package/dist/sophia-76Sb6CWe.js +0 -205
  79. package/dist/sparql-BmZTkOWT.js +0 -207
  80. package/dist/sql-Cs9TBAW5.js +0 -859
  81. package/dist/st-B-rqE1Bu.js +0 -422
  82. package/dist/swift-Btsj6YxQ.js +0 -318
  83. package/dist/systemverilog-B3RHBRa2.js +0 -582
  84. package/dist/tcl-Dpj776pn.js +0 -238
  85. package/dist/twig-Bb9JmBsE.js +0 -398
  86. package/dist/typespec-CDWeg3SU.js +0 -123
  87. package/dist/vb-DEXnYwEI.js +0 -378
  88. package/dist/wgsl-D602c1lx.js +0 -445
  89. package/dist/xml-H71lCcfm.js +0 -101
  90. package/dist/yaml-DvTcXNYB.js +0 -212
@@ -1,180 +0,0 @@
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
- brackets: [
9
- ["{", "}"],
10
- ["[", "]"],
11
- ["(", ")"]
12
- ],
13
- autoClosingPairs: [
14
- { open: "{", close: "}" },
15
- { open: "[", close: "]" },
16
- { open: "(", close: ")" },
17
- { open: "<", close: ">", notIn: ["string"] }
18
- ],
19
- surroundingPairs: [
20
- { open: "(", close: ")" },
21
- { open: "[", close: "]" },
22
- { open: "`", close: "`" }
23
- ],
24
- folding: {
25
- markers: {
26
- start: new RegExp("^\\s*<!--\\s*#?region\\b.*-->"),
27
- end: new RegExp("^\\s*<!--\\s*#?endregion\\b.*-->")
28
- }
29
- }
30
- }, n = {
31
- defaultToken: "",
32
- tokenPostfix: ".rst",
33
- control: /[\\`*_\[\]{}()#+\-\.!]/,
34
- escapes: /\\(?:@control)/,
35
- empty: [
36
- "area",
37
- "base",
38
- "basefont",
39
- "br",
40
- "col",
41
- "frame",
42
- "hr",
43
- "img",
44
- "input",
45
- "isindex",
46
- "link",
47
- "meta",
48
- "param"
49
- ],
50
- alphanumerics: /[A-Za-z0-9]/,
51
- simpleRefNameWithoutBq: /(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,
52
- simpleRefName: /(?:`@phrase`|@simpleRefNameWithoutBq)/,
53
- phrase: /@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,
54
- citationName: /[A-Za-z][A-Za-z0-9-_.]*/,
55
- blockLiteralStart: /(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,
56
- precedingChars: /(?:[ -:/'"<([{])/,
57
- followingChars: /(?:[ -.,:;!?/'")\]}>]|$)/,
58
- punctuation: /(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,
59
- tokenizer: {
60
- root: [
61
- //sections
62
- [/^(@punctuation{3,}$){1,1}?/, "keyword"],
63
- //line-blocks
64
- //No rules on it
65
- //bullet-lists
66
- [/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/, "keyword"],
67
- //literal-blocks
68
- [/([ ]::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"],
69
- [/(::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"],
70
- { include: "@tables" },
71
- { include: "@explicitMarkupBlocks" },
72
- { include: "@inlineMarkup" }
73
- ],
74
- explicitMarkupBlocks: [
75
- //citations
76
- { include: "@citations" },
77
- //footnotes
78
- { include: "@footnotes" },
79
- //directives
80
- [
81
- /^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,
82
- [{ token: "", next: "subsequentLines" }, "keyword", "", ""]
83
- ],
84
- //hyperlink-targets
85
- [
86
- /^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,
87
- [{ token: "", next: "hyperlinks" }, "", "", "string.link", "", "", "string.link"]
88
- ],
89
- //anonymous-hyperlinks
90
- [
91
- /^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,
92
- [{ token: "", next: "subsequentLines" }, "", "", "", "string.link"]
93
- ],
94
- [/^(__\s+)(.+)/, ["", "string.link"]],
95
- //substitution-definitions
96
- [
97
- /^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,
98
- [{ token: "", next: "subsequentLines" }, "", "string.link", "", "keyword", ""],
99
- "@rawBlocks"
100
- ],
101
- [/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/, ["", "string.link", ""]],
102
- //comments
103
- [/^(\.\.)([ ].*)$/, [{ token: "", next: "@comments" }, "comment"]]
104
- ],
105
- inlineMarkup: [
106
- { include: "@citationsReference" },
107
- { include: "@footnotesReference" },
108
- //hyperlink-references
109
- [/(@simpleRefName)(_{1,2})/, ["string.link", ""]],
110
- //embedded-uris-and-aliases
111
- [/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/, ["", "string.link", "", "string.link", "", "", ""]],
112
- //emphasis
113
- [/\*\*([^\\*]|\*(?!\*))+\*\*/, "strong"],
114
- [/\*[^*]+\*/, "emphasis"],
115
- //inline-literals
116
- [/(``)((?:[^`]|\`(?!`))+)(``)/, ["", "keyword", ""]],
117
- [/(__\s+)(.+)/, ["", "keyword"]],
118
- //interpreted-text
119
- [/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/, ["", "keyword", "", "", ""]],
120
- [/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/, ["", "", "", "keyword", ""]],
121
- [/(`)([^`]+)(`)/, ""],
122
- //inline-internal-targets
123
- [/(_`)(@phrase)(`)/, ["", "string.link", ""]]
124
- ],
125
- citations: [
126
- [
127
- /^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,
128
- [{ token: "", next: "@subsequentLines" }, "string.link", "", ""]
129
- ]
130
- ],
131
- citationsReference: [[/(\[)(@citationName)(\]_)/, ["", "string.link", ""]]],
132
- footnotes: [
133
- [
134
- /^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,
135
- [{ token: "", next: "@subsequentLines" }, "string.link", ""]
136
- ],
137
- [
138
- /^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,
139
- [{ token: "", next: "@subsequentLines" }, "string.link", "", ""]
140
- ],
141
- [
142
- /^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,
143
- [{ token: "", next: "@subsequentLines" }, "string.link", "", ""]
144
- ]
145
- ],
146
- footnotesReference: [
147
- [/(\[)([0-9]+)(\])(_)/, ["", "string.link", "", ""]],
148
- [/(\[)(#@simpleRefName?)(\])(_)/, ["", "string.link", "", ""]],
149
- [/(\[)(\*)(\])(_)/, ["", "string.link", "", ""]]
150
- ],
151
- blankLineOfLiteralBlocks: [
152
- [/^$/, "", "@subsequentLinesOfLiteralBlocks"],
153
- [/^.*$/, "", "@pop"]
154
- ],
155
- subsequentLinesOfLiteralBlocks: [
156
- [/(@blockLiteralStart+)(.*)/, ["keyword", ""]],
157
- [/^(?!blockLiteralStart)/, "", "@popall"]
158
- ],
159
- subsequentLines: [
160
- [/^[\s]+.*/, ""],
161
- [/^(?!\s)/, "", "@pop"]
162
- ],
163
- hyperlinks: [
164
- [/^[\s]+.*/, "string.link"],
165
- [/^(?!\s)/, "", "@pop"]
166
- ],
167
- comments: [
168
- [/^[\s]+.*/, "comment"],
169
- [/^(?!\s)/, "", "@pop"]
170
- ],
171
- tables: [
172
- [/\+-[+-]+/, "keyword"],
173
- [/\+=[+=]+/, "keyword"]
174
- ]
175
- }
176
- };
177
- export {
178
- e as conf,
179
- n as language
180
- };
@@ -1,517 +0,0 @@
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
- blockComment: ["=begin", "=end"]
11
- },
12
- brackets: [
13
- ["(", ")"],
14
- ["{", "}"],
15
- ["[", "]"]
16
- ],
17
- autoClosingPairs: [
18
- { open: "{", close: "}" },
19
- { open: "[", close: "]" },
20
- { open: "(", close: ")" },
21
- { open: '"', close: '"' },
22
- { open: "'", close: "'" }
23
- ],
24
- surroundingPairs: [
25
- { open: "{", close: "}" },
26
- { open: "[", close: "]" },
27
- { open: "(", close: ")" },
28
- { open: '"', close: '"' },
29
- { open: "'", close: "'" }
30
- ],
31
- indentationRules: {
32
- increaseIndentPattern: new RegExp(
33
- `^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`
34
- ),
35
- decreaseIndentPattern: new RegExp(
36
- "^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)"
37
- )
38
- }
39
- }, t = {
40
- tokenPostfix: ".ruby",
41
- keywords: [
42
- "__LINE__",
43
- "__ENCODING__",
44
- "__FILE__",
45
- "BEGIN",
46
- "END",
47
- "alias",
48
- "and",
49
- "begin",
50
- "break",
51
- "case",
52
- "class",
53
- "def",
54
- "defined?",
55
- "do",
56
- "else",
57
- "elsif",
58
- "end",
59
- "ensure",
60
- "for",
61
- "false",
62
- "if",
63
- "in",
64
- "module",
65
- "next",
66
- "nil",
67
- "not",
68
- "or",
69
- "redo",
70
- "rescue",
71
- "retry",
72
- "return",
73
- "self",
74
- "super",
75
- "then",
76
- "true",
77
- "undef",
78
- "unless",
79
- "until",
80
- "when",
81
- "while",
82
- "yield"
83
- ],
84
- keywordops: ["::", "..", "...", "?", ":", "=>"],
85
- builtins: [
86
- "require",
87
- "public",
88
- "private",
89
- "include",
90
- "extend",
91
- "attr_reader",
92
- "protected",
93
- "private_class_method",
94
- "protected_class_method",
95
- "new"
96
- ],
97
- // these are closed by 'end' (if, while and until are handled separately)
98
- declarations: [
99
- "module",
100
- "class",
101
- "def",
102
- "case",
103
- "do",
104
- "begin",
105
- "for",
106
- "if",
107
- "while",
108
- "until",
109
- "unless"
110
- ],
111
- linedecls: ["def", "case", "do", "begin", "for", "if", "while", "until", "unless"],
112
- operators: [
113
- "^",
114
- "&",
115
- "|",
116
- "<=>",
117
- "==",
118
- "===",
119
- "!~",
120
- "=~",
121
- ">",
122
- ">=",
123
- "<",
124
- "<=",
125
- "<<",
126
- ">>",
127
- "+",
128
- "-",
129
- "*",
130
- "/",
131
- "%",
132
- "**",
133
- "~",
134
- "+@",
135
- "-@",
136
- "[]",
137
- "[]=",
138
- "`",
139
- "+=",
140
- "-=",
141
- "*=",
142
- "**=",
143
- "/=",
144
- "^=",
145
- "%=",
146
- "<<=",
147
- ">>=",
148
- "&=",
149
- "&&=",
150
- "||=",
151
- "|="
152
- ],
153
- brackets: [
154
- { open: "(", close: ")", token: "delimiter.parenthesis" },
155
- { open: "{", close: "}", token: "delimiter.curly" },
156
- { open: "[", close: "]", token: "delimiter.square" }
157
- ],
158
- // we include these common regular expressions
159
- symbols: /[=><!~?:&|+\-*\/\^%\.]+/,
160
- // escape sequences
161
- escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,
162
- escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,
163
- decpart: /\d(_?\d)*/,
164
- decimal: /0|@decpart/,
165
- delim: /[^a-zA-Z0-9\s\n\r]/,
166
- heredelim: /(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,
167
- regexpctl: /[(){}\[\]\$\^|\-*+?\.]/,
168
- regexpesc: /\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,
169
- // The main tokenizer for our languages
170
- tokenizer: {
171
- // Main entry.
172
- // root.<decl> where decl is the current opening declaration (like 'class')
173
- root: [
174
- // identifiers and keywords
175
- // most complexity here is due to matching 'end' correctly with declarations.
176
- // We distinguish a declaration that comes first on a line, versus declarations further on a line (which are most likey modifiers)
177
- [
178
- /^(\s*)([a-z_]\w*[!?=]?)/,
179
- [
180
- "white",
181
- {
182
- cases: {
183
- "for|until|while": {
184
- token: "keyword.$2",
185
- next: "@dodecl.$2"
186
- },
187
- "@declarations": {
188
- token: "keyword.$2",
189
- next: "@root.$2"
190
- },
191
- end: { token: "keyword.$S2", next: "@pop" },
192
- "@keywords": "keyword",
193
- "@builtins": "predefined",
194
- "@default": "identifier"
195
- }
196
- }
197
- ]
198
- ],
199
- [
200
- /[a-z_]\w*[!?=]?/,
201
- {
202
- cases: {
203
- "if|unless|while|until": {
204
- token: "keyword.$0x",
205
- next: "@modifier.$0x"
206
- },
207
- for: { token: "keyword.$2", next: "@dodecl.$2" },
208
- "@linedecls": { token: "keyword.$0", next: "@root.$0" },
209
- end: { token: "keyword.$S2", next: "@pop" },
210
- "@keywords": "keyword",
211
- "@builtins": "predefined",
212
- "@default": "identifier"
213
- }
214
- }
215
- ],
216
- [/[A-Z][\w]*[!?=]?/, "constructor.identifier"],
217
- // constant
218
- [/\$[\w]*/, "global.constant"],
219
- // global
220
- [/@[\w]*/, "namespace.instance.identifier"],
221
- // instance
222
- [/@@@[\w]*/, "namespace.class.identifier"],
223
- // class
224
- // here document
225
- [/<<[-~](@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }],
226
- [/[ \t\r\n]+<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }],
227
- [/^<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }],
228
- // whitespace
229
- { include: "@whitespace" },
230
- // strings
231
- [/"/, { token: "string.d.delim", next: '@dstring.d."' }],
232
- [/'/, { token: "string.sq.delim", next: "@sstring.sq" }],
233
- // % literals. For efficiency, rematch in the 'pstring' state
234
- [/%([rsqxwW]|Q?)/, { token: "@rematch", next: "pstring" }],
235
- // commands and symbols
236
- [/`/, { token: "string.x.delim", next: "@dstring.x.`" }],
237
- [/:(\w|[$@])\w*[!?=]?/, "string.s"],
238
- [/:"/, { token: "string.s.delim", next: '@dstring.s."' }],
239
- [/:'/, { token: "string.s.delim", next: "@sstring.s" }],
240
- // regular expressions. Lookahead for a (not escaped) closing forwardslash on the same line
241
- [/\/(?=(\\\/|[^\/\n])+\/)/, { token: "regexp.delim", next: "@regexp" }],
242
- // delimiters and operators
243
- [/[{}()\[\]]/, "@brackets"],
244
- [
245
- /@symbols/,
246
- {
247
- cases: {
248
- "@keywordops": "keyword",
249
- "@operators": "operator",
250
- "@default": ""
251
- }
252
- }
253
- ],
254
- [/[;,]/, "delimiter"],
255
- // numbers
256
- [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, "number.hex"],
257
- [/0[_oO][0-7](_?[0-7])*/, "number.octal"],
258
- [/0[bB][01](_?[01])*/, "number.binary"],
259
- [/0[dD]@decpart/, "number"],
260
- [
261
- /@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,
262
- {
263
- cases: {
264
- $1: "number.float",
265
- "@default": "number"
266
- }
267
- }
268
- ]
269
- ],
270
- // used to not treat a 'do' as a block opener if it occurs on the same
271
- // line as a 'do' statement: 'while|until|for'
272
- // dodecl.<decl> where decl is the declarations started, like 'while'
273
- dodecl: [
274
- [/^/, { token: "", switchTo: "@root.$S2" }],
275
- // get out of do-skipping mode on a new line
276
- [
277
- /[a-z_]\w*[!?=]?/,
278
- {
279
- cases: {
280
- end: { token: "keyword.$S2", next: "@pop" },
281
- // end on same line
282
- do: { token: "keyword", switchTo: "@root.$S2" },
283
- // do on same line: not an open bracket here
284
- "@linedecls": {
285
- token: "@rematch",
286
- switchTo: "@root.$S2"
287
- },
288
- // other declaration on same line: rematch
289
- "@keywords": "keyword",
290
- "@builtins": "predefined",
291
- "@default": "identifier"
292
- }
293
- }
294
- ],
295
- { include: "@root" }
296
- ],
297
- // used to prevent potential modifiers ('if|until|while|unless') to match
298
- // with 'end' keywords.
299
- // modifier.<decl>x where decl is the declaration starter, like 'if'
300
- modifier: [
301
- [/^/, "", "@pop"],
302
- // it was a modifier: get out of modifier mode on a new line
303
- [
304
- /[a-z_]\w*[!?=]?/,
305
- {
306
- cases: {
307
- end: { token: "keyword.$S2", next: "@pop" },
308
- // end on same line
309
- "then|else|elsif|do": {
310
- token: "keyword",
311
- switchTo: "@root.$S2"
312
- },
313
- // real declaration and not a modifier
314
- "@linedecls": {
315
- token: "@rematch",
316
- switchTo: "@root.$S2"
317
- },
318
- // other declaration => not a modifier
319
- "@keywords": "keyword",
320
- "@builtins": "predefined",
321
- "@default": "identifier"
322
- }
323
- }
324
- ],
325
- { include: "@root" }
326
- ],
327
- // single quote strings (also used for symbols)
328
- // sstring.<kind> where kind is 'sq' (single quote) or 's' (symbol)
329
- sstring: [
330
- [/[^\\']+/, "string.$S2"],
331
- [/\\\\|\\'|\\$/, "string.$S2.escape"],
332
- [/\\./, "string.$S2.invalid"],
333
- [/'/, { token: "string.$S2.delim", next: "@pop" }]
334
- ],
335
- // double quoted "string".
336
- // dstring.<kind>.<delim> where kind is 'd' (double quoted), 'x' (command), or 's' (symbol)
337
- // and delim is the ending delimiter (" or `)
338
- dstring: [
339
- [/[^\\`"#]+/, "string.$S2"],
340
- [/#/, "string.$S2.escape", "@interpolated"],
341
- [/\\$/, "string.$S2.escape"],
342
- [/@escapes/, "string.$S2.escape"],
343
- [/\\./, "string.$S2.escape.invalid"],
344
- [
345
- /[`"]/,
346
- {
347
- cases: {
348
- "$#==$S3": { token: "string.$S2.delim", next: "@pop" },
349
- "@default": "string.$S2"
350
- }
351
- }
352
- ]
353
- ],
354
- // literal documents
355
- // heredoc.<close> where close is the closing delimiter
356
- heredoc: [
357
- [
358
- /^(\s*)(@heredelim)$/,
359
- {
360
- cases: {
361
- "$2==$S2": ["string.heredoc", { token: "string.heredoc.delimiter", next: "@pop" }],
362
- "@default": ["string.heredoc", "string.heredoc"]
363
- }
364
- }
365
- ],
366
- [/.*/, "string.heredoc"]
367
- ],
368
- // interpolated sequence
369
- interpolated: [
370
- [/\$\w*/, "global.constant", "@pop"],
371
- [/@\w*/, "namespace.class.identifier", "@pop"],
372
- [/@@@\w*/, "namespace.instance.identifier", "@pop"],
373
- [
374
- /[{]/,
375
- {
376
- token: "string.escape.curly",
377
- switchTo: "@interpolated_compound"
378
- }
379
- ],
380
- ["", "", "@pop"]
381
- // just a # is interpreted as a #
382
- ],
383
- // any code
384
- interpolated_compound: [
385
- [/[}]/, { token: "string.escape.curly", next: "@pop" }],
386
- { include: "@root" }
387
- ],
388
- // %r quoted regexp
389
- // pregexp.<open>.<close> where open/close are the open/close delimiter
390
- pregexp: [
391
- { include: "@whitespace" },
392
- // turns out that you can quote using regex control characters, aargh!
393
- // for example; %r|kgjgaj| is ok (even though | is used for alternation)
394
- // so, we need to match those first
395
- [
396
- /[^\(\{\[\\]/,
397
- {
398
- cases: {
399
- "$#==$S3": { token: "regexp.delim", next: "@pop" },
400
- "$#==$S2": { token: "regexp.delim", next: "@push" },
401
- // nested delimiters are allowed..
402
- "~[)}\\]]": "@brackets.regexp.escape.control",
403
- "~@regexpctl": "regexp.escape.control",
404
- "@default": "regexp"
405
- }
406
- }
407
- ],
408
- { include: "@regexcontrol" }
409
- ],
410
- // We match regular expression quite precisely
411
- regexp: [
412
- { include: "@regexcontrol" },
413
- [/[^\\\/]/, "regexp"],
414
- ["/[ixmp]*", { token: "regexp.delim" }, "@pop"]
415
- ],
416
- regexcontrol: [
417
- [
418
- /(\{)(\d+(?:,\d*)?)(\})/,
419
- [
420
- "@brackets.regexp.escape.control",
421
- "regexp.escape.control",
422
- "@brackets.regexp.escape.control"
423
- ]
424
- ],
425
- [
426
- /(\[)(\^?)/,
427
- ["@brackets.regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }]
428
- ],
429
- [/(\()(\?[:=!])/, ["@brackets.regexp.escape.control", "regexp.escape.control"]],
430
- [/\(\?#/, { token: "regexp.escape.control", next: "@regexpcomment" }],
431
- [/[()]/, "@brackets.regexp.escape.control"],
432
- [/@regexpctl/, "regexp.escape.control"],
433
- [/\\$/, "regexp.escape"],
434
- [/@regexpesc/, "regexp.escape"],
435
- [/\\\./, "regexp.invalid"],
436
- [/#/, "regexp.escape", "@interpolated"]
437
- ],
438
- regexrange: [
439
- [/-/, "regexp.escape.control"],
440
- [/\^/, "regexp.invalid"],
441
- [/\\$/, "regexp.escape"],
442
- [/@regexpesc/, "regexp.escape"],
443
- [/[^\]]/, "regexp"],
444
- [/\]/, "@brackets.regexp.escape.control", "@pop"]
445
- ],
446
- regexpcomment: [
447
- [/[^)]+/, "comment"],
448
- [/\)/, { token: "regexp.escape.control", next: "@pop" }]
449
- ],
450
- // % quoted strings
451
- // A bit repetitive since we need to often special case the kind of ending delimiter
452
- pstring: [
453
- [/%([qws])\(/, { token: "string.$1.delim", switchTo: "@qstring.$1.(.)" }],
454
- [/%([qws])\[/, { token: "string.$1.delim", switchTo: "@qstring.$1.[.]" }],
455
- [/%([qws])\{/, { token: "string.$1.delim", switchTo: "@qstring.$1.{.}" }],
456
- [/%([qws])</, { token: "string.$1.delim", switchTo: "@qstring.$1.<.>" }],
457
- [/%([qws])(@delim)/, { token: "string.$1.delim", switchTo: "@qstring.$1.$2.$2" }],
458
- [/%r\(/, { token: "regexp.delim", switchTo: "@pregexp.(.)" }],
459
- [/%r\[/, { token: "regexp.delim", switchTo: "@pregexp.[.]" }],
460
- [/%r\{/, { token: "regexp.delim", switchTo: "@pregexp.{.}" }],
461
- [/%r</, { token: "regexp.delim", switchTo: "@pregexp.<.>" }],
462
- [/%r(@delim)/, { token: "regexp.delim", switchTo: "@pregexp.$1.$1" }],
463
- [/%(x|W|Q?)\(/, { token: "string.$1.delim", switchTo: "@qqstring.$1.(.)" }],
464
- [/%(x|W|Q?)\[/, { token: "string.$1.delim", switchTo: "@qqstring.$1.[.]" }],
465
- [/%(x|W|Q?)\{/, { token: "string.$1.delim", switchTo: "@qqstring.$1.{.}" }],
466
- [/%(x|W|Q?)</, { token: "string.$1.delim", switchTo: "@qqstring.$1.<.>" }],
467
- [/%(x|W|Q?)(@delim)/, { token: "string.$1.delim", switchTo: "@qqstring.$1.$2.$2" }],
468
- [/%([rqwsxW]|Q?)./, { token: "invalid", next: "@pop" }],
469
- // recover
470
- [/./, { token: "invalid", next: "@pop" }]
471
- // recover
472
- ],
473
- // non-expanded quoted string.
474
- // qstring.<kind>.<open>.<close>
475
- // kind = q|w|s (single quote, array, symbol)
476
- // open = open delimiter
477
- // close = close delimiter
478
- qstring: [
479
- [/\\$/, "string.$S2.escape"],
480
- [/\\./, "string.$S2.escape"],
481
- [
482
- /./,
483
- {
484
- cases: {
485
- "$#==$S4": { token: "string.$S2.delim", next: "@pop" },
486
- "$#==$S3": { token: "string.$S2.delim", next: "@push" },
487
- // nested delimiters are allowed..
488
- "@default": "string.$S2"
489
- }
490
- }
491
- ]
492
- ],
493
- // expanded quoted string.
494
- // qqstring.<kind>.<open>.<close>
495
- // kind = Q|W|x (double quote, array, command)
496
- // open = open delimiter
497
- // close = close delimiter
498
- qqstring: [[/#/, "string.$S2.escape", "@interpolated"], { include: "@qstring" }],
499
- // whitespace & comments
500
- whitespace: [
501
- [/[ \t\r\n]+/, ""],
502
- [/^\s*=begin\b/, "comment", "@comment"],
503
- [/#.*$/, "comment"]
504
- ],
505
- comment: [
506
- [/[^=]+/, "comment"],
507
- [/^\s*=begin\b/, "comment.invalid"],
508
- // nested comment
509
- [/^\s*=end\b.*/, "comment", "@pop"],
510
- [/[=]/, "comment"]
511
- ]
512
- }
513
- };
514
- export {
515
- e as conf,
516
- t as language
517
- };