@pb33f/cowboy-components 0.1.4 → 0.1.6

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 (98) hide show
  1. package/dist/components/editor/editor.d.ts +0 -5
  2. package/dist/components/editor/editor.js +19 -14
  3. package/dist/components/paginator/paginator-navigator.d.ts +1 -1
  4. package/dist/components/the-doctor/the-doctor.d.ts +2 -1
  5. package/dist/components/the-doctor/the-doctor.js +5 -4
  6. package/dist/cowboy-components.d.ts +2 -0
  7. package/dist/cowboy-components.js +2 -0
  8. package/dist/cowboy-components.umd.cjs +229 -2097
  9. package/dist/style.css +1 -1
  10. package/package.json +3 -3
  11. package/dist/abap-DXvTa7XC.js +0 -1404
  12. package/dist/apex-DsQH3mjJ.js +0 -332
  13. package/dist/assets/css.worker-B_qZXUzt.js +0 -84
  14. package/dist/assets/html.worker-D3WUrk8Q.js +0 -458
  15. package/dist/assets/json.worker-CAhUaBo4.js +0 -42
  16. package/dist/azcli-Cir32SBk.js +0 -74
  17. package/dist/bat-BsNExolo.js +0 -106
  18. package/dist/bicep-2KcKzeQF.js +0 -108
  19. package/dist/cameligo-D0ezznwE.js +0 -180
  20. package/dist/clojure-DxYzAIlu.js +0 -767
  21. package/dist/coffee-DgiPTF3g.js +0 -238
  22. package/dist/cowboy-components-BOuaCruy.js +0 -114388
  23. package/dist/cpp-Bq-GnYlH.js +0 -407
  24. package/dist/csharp-IDcibKAT.js +0 -332
  25. package/dist/csp-QdYr8JWa.js +0 -59
  26. package/dist/css-C-wMMefI.js +0 -193
  27. package/dist/cssMode-Cvbhe77l.js +0 -1541
  28. package/dist/cypher-BfBo9yir.js +0 -269
  29. package/dist/dart-Cv3rVfv_.js +0 -287
  30. package/dist/dockerfile-DyCXBGhV.js +0 -136
  31. package/dist/ecl-COP_iObm.js +0 -462
  32. package/dist/elixir-DoEhbk9F.js +0 -575
  33. package/dist/flow9-DuHGSNW1.js +0 -148
  34. package/dist/freemarker2-DmhDQrVn.js +0 -995
  35. package/dist/fsharp-Dv9PDxVO.js +0 -223
  36. package/dist/go-CcdAeqiK.js +0 -224
  37. package/dist/graphql-CoRm4b1H.js +0 -157
  38. package/dist/handlebars-DWUSy2Nn.js +0 -425
  39. package/dist/hcl-BSgAhV5f.js +0 -189
  40. package/dist/html-BTxdvu8o.js +0 -314
  41. package/dist/htmlMode-DeG-6tqP.js +0 -1551
  42. package/dist/ini-ewx9HLIq.js +0 -77
  43. package/dist/java-B5lwcbTy.js +0 -238
  44. package/dist/javascript-CQTBmqTv.js +0 -76
  45. package/dist/jsonMode-DJhhXlcK.js +0 -1958
  46. package/dist/julia-NCcg_P_q.js +0 -517
  47. package/dist/kotlin-BYlnmGrb.js +0 -259
  48. package/dist/less-DG4tqgOo.js +0 -168
  49. package/dist/lexon-CTTPcJLv.js +0 -163
  50. package/dist/liquid-OuSl50Zm.js +0 -246
  51. package/dist/lua-CxQ1RWuo.js +0 -168
  52. package/dist/m3-mHFfpmgx.js +0 -216
  53. package/dist/markdown-Dh6sYULt.js +0 -235
  54. package/dist/mdx-Cs8POpae.js +0 -171
  55. package/dist/mips-CNUcjHD1.js +0 -204
  56. package/dist/msdax-ZvxFeKvs.js +0 -381
  57. package/dist/mysql-COjg31sJ.js +0 -884
  58. package/dist/objective-c-BqrCFBhT.js +0 -189
  59. package/dist/pascal-CUpkilAS.js +0 -257
  60. package/dist/pascaligo-nJfvRJ7x.js +0 -170
  61. package/dist/perl-CWsX6Ysg.js +0 -632
  62. package/dist/pgsql-DwgpEXC8.js +0 -857
  63. package/dist/php-CrbKyd62.js +0 -506
  64. package/dist/pla-JxXT6Kb-.js +0 -143
  65. package/dist/postiats-BOdnTRGv.js +0 -913
  66. package/dist/powerquery-DTkwcXGH.js +0 -896
  67. package/dist/powershell-Cx53dGpt.js +0 -245
  68. package/dist/protobuf-Dp9vE-l-.js +0 -426
  69. package/dist/pug-BSjKVjwP.js +0 -408
  70. package/dist/python-BsXAz21q.js +0 -282
  71. package/dist/qsharp-C5P1RxY3.js +0 -291
  72. package/dist/r-sEMYnclc.js +0 -249
  73. package/dist/razor-CXJ9MZn4.js +0 -556
  74. package/dist/redis-DbzUc-fU.js +0 -308
  75. package/dist/redshift-nrLijj1O.js +0 -815
  76. package/dist/restructuredtext-CIbGUl6T.js +0 -180
  77. package/dist/ruby-JcYJisWg.js +0 -517
  78. package/dist/rust-BgbFBFXH.js +0 -349
  79. package/dist/sb-hRFFChi7.js +0 -121
  80. package/dist/scala-Cs0yVo3Q.js +0 -376
  81. package/dist/scheme-l_0jNtxy.js +0 -114
  82. package/dist/scss-C4l7ZIRR.js +0 -268
  83. package/dist/shell-ikLk_l24.js +0 -227
  84. package/dist/solidity-4GxCaH9e.js +0 -1373
  85. package/dist/sophia-tX0WEZsZ.js +0 -205
  86. package/dist/sparql-D7ky-uMk.js +0 -207
  87. package/dist/sql-CqEfBVGS.js +0 -859
  88. package/dist/st-CNWQPqyI.js +0 -422
  89. package/dist/swift-C_fDfC0d.js +0 -318
  90. package/dist/systemverilog-gAvsEtN_.js +0 -582
  91. package/dist/tcl-KbBChuA6.js +0 -238
  92. package/dist/tsMode-C-mwN8lz.js +0 -886
  93. package/dist/twig-Bb652BpM.js +0 -398
  94. package/dist/typescript-CamPbG-s.js +0 -349
  95. package/dist/vb-2e5hSeUh.js +0 -378
  96. package/dist/wgsl-CYSDq0zg.js +0 -445
  97. package/dist/xml-CrDvxVsf.js +0 -101
  98. package/dist/yaml-xGWjZwPI.js +0 -212
@@ -1,180 +0,0 @@
1
- /*!-----------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.46.0(21007360cad28648bdf46282a2592cb47c3a7a6f)
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.46.0(21007360cad28648bdf46282a2592cb47c3a7a6f)
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
- };