|
5 | 5 | * constant, builtin, variable, symbol, regex
|
6 | 6 | */
|
7 | 7 | Prism.languages.ruby = Prism.languages.extend('clike', {
|
8 |
| - 'comment': /#(?!\{[^\r\n]*?\})[^\r\n]*(\r?\n|$)/, |
9 |
| - 'keyword': /\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/, |
10 |
| - 'builtin': /\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/, |
11 |
| - 'constant': /\b[A-Z][a-zA-Z_0-9]*[?!]?\b/ |
| 8 | + 'comment': /#(?!\{[^\r\n]*?\}).*/, |
| 9 | + 'keyword': /\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/ |
12 | 10 | });
|
13 | 11 |
|
14 | 12 | Prism.languages.insertBefore('ruby', 'keyword', {
|
15 | 13 | 'regex': {
|
16 | 14 | pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
|
17 | 15 | lookbehind: true
|
18 | 16 | },
|
19 |
| - 'variable': /[@$]+\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/, |
20 |
| - 'symbol': /:\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/ |
| 17 | + 'variable': /[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/, |
| 18 | + 'symbol': /:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/ |
| 19 | +}); |
| 20 | + |
| 21 | +Prism.languages.insertBefore('ruby', 'number', { |
| 22 | + 'builtin': /\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/, |
| 23 | + 'constant': /\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/ |
21 | 24 | });
|
22 | 25 |
|
23 | 26 | Prism.languages.ruby.string = {
|
24 |
| - pattern: /("|')(#\{[^}]+\}|\\\n|\\?.)*?\1/, |
| 27 | + pattern: /("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/, |
25 | 28 | inside: {
|
26 | 29 | 'interpolation': {
|
27 | 30 | pattern: /#\{[^}]+\}/,
|
|
0 commit comments