History

Update Prism.js with Ruby syntax

Thibaut committed 12 years ago

Commit 49de7361 parent 7784b7d1 file · +29 −22Browse files

Unified · Split

assets/javascripts/vendor/prism.js+29−22
@@ -336,7 +336,7 @@ Token.stringify = function(o, language, parent) { · 335 unmodified lines
336336 // return;
337337 // }
338338
339−// Get current script and highlight
339+// // Get current script and highlight
340340 // var script = document.getElementsByTagName('script');
341341
342342 // script = script[script.length - 1];
@@ -349,7 +349,7 @@ Token.stringify = function(o, language, parent) { · 6 unmodified lines
349349 // }
350350 // }
351351
352−})();
352+})();;
353353 Prism.languages.markup = {
354354 'comment': /<!--[\w\W]*?-->/g,
355355 'prolog': /<\?.+?\?>/,
@@ -390,7 +390,7 @@ Prism.hooks.add('wrap', function(env) { · 34 unmodified lines
390390 if (env.type === 'entity') {
391391 env.attributes['title'] = env.content.replace(/&/, '&');
392392 }
393−});
393+});;
394394 Prism.languages.css = {
395395 'comment': /\/\*[\w\W]*?\*\//g,
396396 'atrule': {
@@ -422,22 +422,6 @@ if (Prism.languages.markup) { · 25 unmodified lines
422422 }
423423 });
424424 };
425−Prism.languages.css.selector = {
426− pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
427− inside: {
428− 'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,
429− 'pseudo-class': /:[-\w]+(?:\(.*\))?/g,
430− 'class': /\.[-:\.\w]+/g,
431− 'id': /#[-:\.\w]+/g
432− }
433−};
434−
435−Prism.languages.insertBefore('css', 'ignore', {
436− 'hexcode': /#[\da-f]{3,6}/gi,
437− 'entity': /\\[\da-f]{1,8}/gi,
438− 'number': /[\d%\.]+/g,
439− 'function': /(attr|calc|cross-fade|cycle|element|hsla?|image|lang|linear-gradient|matrix3d|matrix|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgba?|rotatex|rotatey|rotatez|rotate3d|rotate|scalex|scaley|scalez|scale3d|scale|skewx|skewy|skew|steps|translatex|translatey|translatez|translate3d|translate|url|var)/ig
440−});
441425 Prism.languages.clike = {
442426 'comment': {
443427 pattern: /(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,
@@ -464,7 +448,7 @@ Prism.languages.clike = { · 20 unmodified lines
464448 'ignore': /&(lt|gt|amp);/gi,
465449 'punctuation': /[{}[\];(),.:]/g
466450 };
467−
451+;
468452 Prism.languages.javascript = Prism.languages.extend('clike', {
469453 'keyword': /\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|throw|catch|finally|null|break|continue)\b/g,
470454 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g
@@ -490,8 +474,8 @@ if (Prism.languages.markup) { · 19 unmodified lines
490474 }
491475 }
492476 });
493−};
494−
477+}
478+;
495479 Prism.languages.coffeescript = Prism.languages.extend('javascript', {
496480 'block-comment': /([#]{3}\s*\r?\n(.*\s*\r*\n*)\s*?\r?\n[#]{3})/g,
497481 'comment': /(\s|^)([#]{1}[^#^\r^\n]{2,}?(\r?\n|$))/g,
@@ -508,3 +492,26 @@ Prism.languages.insertBefore('coffeescript', 'keyword', { · 10 unmodified lines
508492 },
509493 'attr-name': /[_?a-z-|A-Z-]+(\s*:)| @[_?$?a-z-|A-Z-]+(\s*)| /g
510494 });
495+;
496+/**
497+ * Original by Samuel Flores
498+ *
499+ * Adds the following new token classes:
500+ * constant, builtin, variable, symbol, regex
501+ */
502+Prism.languages.ruby = Prism.languages.extend('clike', {
503+ 'comment': /#[^\r\n]*(\r?\n|$)/g,
504+ '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/g,
505+ '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/,
506+ 'constant': /\b[A-Z][a-zA-Z_0-9]*[?!]?\b/g
507+});
508+
509+Prism.languages.insertBefore('ruby', 'keyword', {
510+ 'regex': {
511+ pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,
512+ lookbehind: true
513+ },
514+ 'variable': /[@$&]+\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/g,
515+ 'symbol': /:\b[a-zA-Z_][a-zA-Z_0-9]*[?!]?\b/g
516+});
517+;