Skip to content

Commit dd4989f

Browse files
committed
Ruby: Code cleaning, handle \r\n and \r, fix some regexps
1 parent 135ee9d commit dd4989f

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

components/prism-ruby.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,26 @@
55
* constant, builtin, variable, symbol, regex
66
*/
77
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/
1210
});
1311

1412
Prism.languages.insertBefore('ruby', 'keyword', {
1513
'regex': {
1614
pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
1715
lookbehind: true
1816
},
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)/
2124
});
2225

2326
Prism.languages.ruby.string = {
24-
pattern: /("|')(#\{[^}]+\}|\\\n|\\?.)*?\1/,
27+
pattern: /("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,
2528
inside: {
2629
'interpolation': {
2730
pattern: /#\{[^}]+\}/,

components/prism-ruby.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)