prism-rails 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/prism-abap.js +48 -0
- data/vendor/assets/javascripts/prism-actionscript.js +17 -0
- data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/prism-apl.js +29 -0
- data/vendor/assets/javascripts/prism-applescript.js +20 -0
- data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
- data/vendor/assets/javascripts/prism-aspnet.js +36 -0
- data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
- data/vendor/assets/javascripts/prism-autoit.js +33 -0
- data/vendor/assets/javascripts/prism-bash.js +80 -0
- data/vendor/assets/javascripts/prism-basic.js +14 -0
- data/vendor/assets/javascripts/prism-batch.js +99 -0
- data/vendor/assets/javascripts/prism-bison.js +39 -0
- data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
- data/vendor/assets/javascripts/prism-bro.js +50 -0
- data/vendor/assets/javascripts/prism-c.js +33 -0
- data/vendor/assets/javascripts/prism-clike.js +29 -0
- data/vendor/assets/javascripts/prism-coffeescript.js +91 -0
- data/vendor/assets/javascripts/prism-cpp.js +12 -0
- data/vendor/assets/javascripts/prism-crystal.js +53 -0
- data/vendor/assets/javascripts/prism-csharp.js +32 -0
- data/vendor/assets/javascripts/prism-css-extras.js +15 -0
- data/vendor/assets/javascripts/prism-css.js +48 -0
- data/vendor/assets/javascripts/prism-d.js +64 -0
- data/vendor/assets/javascripts/prism-dart.js +18 -0
- data/vendor/assets/javascripts/prism-diff.js +20 -0
- data/vendor/assets/javascripts/prism-docker.js +9 -0
- data/vendor/assets/javascripts/prism-eiffel.js +24 -0
- data/vendor/assets/javascripts/prism-elixir.js +90 -0
- data/vendor/assets/javascripts/prism-erlang.js +41 -0
- data/vendor/assets/javascripts/prism-fortran.js +37 -0
- data/vendor/assets/javascripts/prism-fsharp.js +33 -0
- data/vendor/assets/javascripts/prism-gherkin.js +78 -0
- data/vendor/assets/javascripts/prism-git.js +68 -0
- data/vendor/assets/javascripts/prism-glsl.js +16 -0
- data/vendor/assets/javascripts/prism-go.js +9 -0
- data/vendor/assets/javascripts/prism-groovy.js +65 -0
- data/vendor/assets/javascripts/prism-haml.js +154 -0
- data/vendor/assets/javascripts/prism-handlebars.js +83 -0
- data/vendor/assets/javascripts/prism-haskell.js +35 -0
- data/vendor/assets/javascripts/prism-haxe.js +43 -0
- data/vendor/assets/javascripts/prism-http.js +50 -0
- data/vendor/assets/javascripts/prism-icon.js +17 -0
- data/vendor/assets/javascripts/prism-inform7.js +58 -0
- data/vendor/assets/javascripts/prism-ini.js +11 -0
- data/vendor/assets/javascripts/prism-j.js +22 -0
- data/vendor/assets/javascripts/prism-jade.js +198 -0
- data/vendor/assets/javascripts/prism-java.js +16 -0
- data/vendor/assets/javascripts/prism-javascript.js +47 -0
- data/vendor/assets/javascripts/prism-json.js +11 -0
- data/vendor/assets/javascripts/prism-jsx.js +27 -0
- data/vendor/assets/javascripts/prism-julia.js +12 -0
- data/vendor/assets/javascripts/prism-keyman.js +14 -0
- data/vendor/assets/javascripts/prism-kotlin.js +62 -0
- data/vendor/assets/javascripts/prism-latex.js +61 -0
- data/vendor/assets/javascripts/prism-less.js +60 -0
- data/vendor/assets/javascripts/prism-lolcode.js +54 -0
- data/vendor/assets/javascripts/prism-lua.js +20 -0
- data/vendor/assets/javascripts/prism-makefile.js +31 -0
- data/vendor/assets/javascripts/prism-markdown.js +120 -0
- data/vendor/assets/javascripts/prism-markup.js +46 -0
- data/vendor/assets/javascripts/prism-matlab.js +14 -0
- data/vendor/assets/javascripts/prism-mel.js +39 -0
- data/vendor/assets/javascripts/prism-mizar.js +12 -0
- data/vendor/assets/javascripts/prism-monkey.js +25 -0
- data/vendor/assets/javascripts/prism-nasm.js +24 -0
- data/vendor/assets/javascripts/prism-nginx.js +11 -0
- data/vendor/assets/javascripts/prism-nim.js +30 -0
- data/vendor/assets/javascripts/prism-nix.js +39 -0
- data/vendor/assets/javascripts/prism-normalize-whitespace.js +3 -1
- data/vendor/assets/javascripts/prism-nsis.js +19 -0
- data/vendor/assets/javascripts/prism-objectivec.js +5 -0
- data/vendor/assets/javascripts/prism-ocaml.js +21 -0
- data/vendor/assets/javascripts/prism-oz.js +21 -0
- data/vendor/assets/javascripts/prism-parigp.js +27 -0
- data/vendor/assets/javascripts/prism-parser.js +66 -0
- data/vendor/assets/javascripts/prism-pascal.js +50 -0
- data/vendor/assets/javascripts/prism-perl.js +140 -0
- data/vendor/assets/javascripts/prism-php-extras.js +11 -0
- data/vendor/assets/javascripts/prism-php.js +110 -0
- data/vendor/assets/javascripts/prism-powershell.js +52 -0
- data/vendor/assets/javascripts/prism-processing.js +18 -0
- data/vendor/assets/javascripts/prism-prolog.js +17 -0
- data/vendor/assets/javascripts/prism-protobuf.js +8 -0
- data/vendor/assets/javascripts/prism-puppet.js +131 -0
- data/vendor/assets/javascripts/prism-pure.js +77 -0
- data/vendor/assets/javascripts/prism-python.js +27 -0
- data/vendor/assets/javascripts/prism-q.js +44 -0
- data/vendor/assets/javascripts/prism-qore.js +17 -0
- data/vendor/assets/javascripts/prism-r.js +19 -0
- data/vendor/assets/javascripts/prism-rest.js +205 -0
- data/vendor/assets/javascripts/prism-rip.js +28 -0
- data/vendor/assets/javascripts/prism-roboconf.js +27 -0
- data/vendor/assets/javascripts/prism-ruby.js +110 -0
- data/vendor/assets/javascripts/prism-rust.js +53 -0
- data/vendor/assets/javascripts/prism-sas.js +31 -0
- data/vendor/assets/javascripts/prism-sass.js +73 -0
- data/vendor/assets/javascripts/prism-scala.js +18 -0
- data/vendor/assets/javascripts/prism-scheme.js +26 -0
- data/vendor/assets/javascripts/prism-scss.js +60 -0
- data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
- data/vendor/assets/javascripts/prism-smarty.js +127 -0
- data/vendor/assets/javascripts/prism-sql.js +17 -0
- data/vendor/assets/javascripts/prism-stylus.js +102 -0
- data/vendor/assets/javascripts/prism-swift.js +25 -0
- data/vendor/assets/javascripts/prism-tcl.js +43 -0
- data/vendor/assets/javascripts/prism-textile.js +254 -0
- data/vendor/assets/javascripts/prism-twig.js +46 -0
- data/vendor/assets/javascripts/prism-typescript.js +3 -0
- data/vendor/assets/javascripts/prism-verilog.js +17 -0
- data/vendor/assets/javascripts/prism-vhdl.js +23 -0
- data/vendor/assets/javascripts/prism-vim.js +10 -0
- data/vendor/assets/javascripts/prism-wiki.js +81 -0
- data/vendor/assets/javascripts/prism-yaml.js +44 -0
- data/vendor/assets/javascripts/prism.js +37 -308
- data/vendor/assets/stylesheets/prism-vs.css +139 -0
- metadata +120 -163
- data/vendor/assets/javascripts/prism-abap.min.js +0 -1
- data/vendor/assets/javascripts/prism-actionscript.min.js +0 -1
- data/vendor/assets/javascripts/prism-apacheconf.min.js +0 -1
- data/vendor/assets/javascripts/prism-apl.min.js +0 -1
- data/vendor/assets/javascripts/prism-applescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-asciidoc.min.js +0 -1
- data/vendor/assets/javascripts/prism-aspnet.min.js +0 -1
- data/vendor/assets/javascripts/prism-autohotkey.min.js +0 -1
- data/vendor/assets/javascripts/prism-autoit.min.js +0 -1
- data/vendor/assets/javascripts/prism-bash.min.js +0 -1
- data/vendor/assets/javascripts/prism-basic.min.js +0 -1
- data/vendor/assets/javascripts/prism-batch.min.js +0 -1
- data/vendor/assets/javascripts/prism-bison.min.js +0 -1
- data/vendor/assets/javascripts/prism-brainfuck.min.js +0 -1
- data/vendor/assets/javascripts/prism-bro.min.js +0 -1
- data/vendor/assets/javascripts/prism-c.min.js +0 -1
- data/vendor/assets/javascripts/prism-clike.min.js +0 -1
- data/vendor/assets/javascripts/prism-coffeescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-core.min.js +0 -1
- data/vendor/assets/javascripts/prism-cpp.min.js +0 -1
- data/vendor/assets/javascripts/prism-crystal.min.js +0 -1
- data/vendor/assets/javascripts/prism-csharp.min.js +0 -1
- data/vendor/assets/javascripts/prism-css-extras.min.js +0 -1
- data/vendor/assets/javascripts/prism-css.min.js +0 -1
- data/vendor/assets/javascripts/prism-d.min.js +0 -1
- data/vendor/assets/javascripts/prism-dart.min.js +0 -1
- data/vendor/assets/javascripts/prism-diff.min.js +0 -1
- data/vendor/assets/javascripts/prism-docker.min.js +0 -1
- data/vendor/assets/javascripts/prism-eiffel.min.js +0 -1
- data/vendor/assets/javascripts/prism-elixir.min.js +0 -1
- data/vendor/assets/javascripts/prism-erlang.min.js +0 -1
- data/vendor/assets/javascripts/prism-fortran.min.js +0 -1
- data/vendor/assets/javascripts/prism-fsharp.min.js +0 -1
- data/vendor/assets/javascripts/prism-gherkin.min.js +0 -1
- data/vendor/assets/javascripts/prism-git.min.js +0 -1
- data/vendor/assets/javascripts/prism-glsl.min.js +0 -1
- data/vendor/assets/javascripts/prism-go.min.js +0 -1
- data/vendor/assets/javascripts/prism-groovy.min.js +0 -1
- data/vendor/assets/javascripts/prism-haml.min.js +0 -1
- data/vendor/assets/javascripts/prism-handlebars.min.js +0 -1
- data/vendor/assets/javascripts/prism-haskell.min.js +0 -1
- data/vendor/assets/javascripts/prism-haxe.min.js +0 -1
- data/vendor/assets/javascripts/prism-http.min.js +0 -1
- data/vendor/assets/javascripts/prism-icon.min.js +0 -1
- data/vendor/assets/javascripts/prism-inform7.min.js +0 -1
- data/vendor/assets/javascripts/prism-ini.min.js +0 -1
- data/vendor/assets/javascripts/prism-j.min.js +0 -1
- data/vendor/assets/javascripts/prism-jade.min.js +0 -1
- data/vendor/assets/javascripts/prism-java.min.js +0 -1
- data/vendor/assets/javascripts/prism-javascript.min.js +0 -1
- data/vendor/assets/javascripts/prism-json.min.js +0 -1
- data/vendor/assets/javascripts/prism-jsx.min.js +0 -1
- data/vendor/assets/javascripts/prism-julia.min.js +0 -1
- data/vendor/assets/javascripts/prism-keyman.min.js +0 -1
- data/vendor/assets/javascripts/prism-kotlin.min.js +0 -1
- data/vendor/assets/javascripts/prism-latex.min.js +0 -1
- data/vendor/assets/javascripts/prism-less.min.js +0 -1
- data/vendor/assets/javascripts/prism-lolcode.min.js +0 -1
- data/vendor/assets/javascripts/prism-lua.min.js +0 -1
- data/vendor/assets/javascripts/prism-makefile.min.js +0 -1
- data/vendor/assets/javascripts/prism-markdown.min.js +0 -1
- data/vendor/assets/javascripts/prism-markup.min.js +0 -1
- data/vendor/assets/javascripts/prism-matlab.min.js +0 -1
- data/vendor/assets/javascripts/prism-mel.min.js +0 -1
- data/vendor/assets/javascripts/prism-mizar.min.js +0 -1
- data/vendor/assets/javascripts/prism-monkey.min.js +0 -1
- data/vendor/assets/javascripts/prism-nasm.min.js +0 -1
- data/vendor/assets/javascripts/prism-nginx.min.js +0 -1
- data/vendor/assets/javascripts/prism-nim.min.js +0 -1
- data/vendor/assets/javascripts/prism-nix.min.js +0 -1
- data/vendor/assets/javascripts/prism-nsis.min.js +0 -1
- data/vendor/assets/javascripts/prism-objectivec.min.js +0 -1
- data/vendor/assets/javascripts/prism-ocaml.min.js +0 -1
- data/vendor/assets/javascripts/prism-oz.min.js +0 -1
- data/vendor/assets/javascripts/prism-parigp.min.js +0 -1
- data/vendor/assets/javascripts/prism-parser.min.js +0 -1
- data/vendor/assets/javascripts/prism-pascal.min.js +0 -1
- data/vendor/assets/javascripts/prism-perl.min.js +0 -1
- data/vendor/assets/javascripts/prism-php-extras.min.js +0 -1
- data/vendor/assets/javascripts/prism-php.min.js +0 -1
- data/vendor/assets/javascripts/prism-powershell.min.js +0 -1
- data/vendor/assets/javascripts/prism-processing.min.js +0 -1
- data/vendor/assets/javascripts/prism-prolog.min.js +0 -1
- data/vendor/assets/javascripts/prism-protobuf.min.js +0 -1
- data/vendor/assets/javascripts/prism-puppet.min.js +0 -1
- data/vendor/assets/javascripts/prism-pure.min.js +0 -1
- data/vendor/assets/javascripts/prism-python.min.js +0 -1
- data/vendor/assets/javascripts/prism-q.min.js +0 -1
- data/vendor/assets/javascripts/prism-qore.min.js +0 -1
- data/vendor/assets/javascripts/prism-r.min.js +0 -1
- data/vendor/assets/javascripts/prism-rest.min.js +0 -1
- data/vendor/assets/javascripts/prism-rip.min.js +0 -1
- data/vendor/assets/javascripts/prism-roboconf.min.js +0 -1
- data/vendor/assets/javascripts/prism-ruby.min.js +0 -1
- data/vendor/assets/javascripts/prism-rust.min.js +0 -1
- data/vendor/assets/javascripts/prism-sas.min.js +0 -1
- data/vendor/assets/javascripts/prism-sass.min.js +0 -1
- data/vendor/assets/javascripts/prism-scala.min.js +0 -1
- data/vendor/assets/javascripts/prism-scheme.min.js +0 -1
- data/vendor/assets/javascripts/prism-scss.min.js +0 -1
- data/vendor/assets/javascripts/prism-smalltalk.min.js +0 -1
- data/vendor/assets/javascripts/prism-smarty.min.js +0 -1
- data/vendor/assets/javascripts/prism-sql.min.js +0 -1
- data/vendor/assets/javascripts/prism-stylus.min.js +0 -1
- data/vendor/assets/javascripts/prism-swift.min.js +0 -1
- data/vendor/assets/javascripts/prism-tcl.min.js +0 -1
- data/vendor/assets/javascripts/prism-textile.min.js +0 -1
- data/vendor/assets/javascripts/prism-twig.min.js +0 -1
- data/vendor/assets/javascripts/prism-typescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-verilog.min.js +0 -1
- data/vendor/assets/javascripts/prism-vhdl.min.js +0 -1
- data/vendor/assets/javascripts/prism-vim.min.js +0 -1
- data/vendor/assets/javascripts/prism-wiki.min.js +0 -1
- data/vendor/assets/javascripts/prism-yaml.min.js +0 -1
@@ -0,0 +1,110 @@
|
|
1
|
+
/**
|
2
|
+
* Original by Samuel Flores
|
3
|
+
*
|
4
|
+
* Adds the following new token classes:
|
5
|
+
* constant, builtin, variable, symbol, regex
|
6
|
+
*/
|
7
|
+
(function(Prism) {
|
8
|
+
Prism.languages.ruby = Prism.languages.extend('clike', {
|
9
|
+
'comment': /#(?!\{[^\r\n]*?\}).*/,
|
10
|
+
'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/
|
11
|
+
});
|
12
|
+
|
13
|
+
var interpolation = {
|
14
|
+
pattern: /#\{[^}]+\}/,
|
15
|
+
inside: {
|
16
|
+
'delimiter': {
|
17
|
+
pattern: /^#\{|\}$/,
|
18
|
+
alias: 'tag'
|
19
|
+
},
|
20
|
+
rest: Prism.util.clone(Prism.languages.ruby)
|
21
|
+
}
|
22
|
+
};
|
23
|
+
|
24
|
+
Prism.languages.insertBefore('ruby', 'keyword', {
|
25
|
+
'regex': [
|
26
|
+
{
|
27
|
+
pattern: /%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,
|
28
|
+
inside: {
|
29
|
+
'interpolation': interpolation
|
30
|
+
}
|
31
|
+
},
|
32
|
+
{
|
33
|
+
pattern: /%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,
|
34
|
+
inside: {
|
35
|
+
'interpolation': interpolation
|
36
|
+
}
|
37
|
+
},
|
38
|
+
{
|
39
|
+
// Here we need to specifically allow interpolation
|
40
|
+
pattern: /%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,
|
41
|
+
inside: {
|
42
|
+
'interpolation': interpolation
|
43
|
+
}
|
44
|
+
},
|
45
|
+
{
|
46
|
+
pattern: /%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,
|
47
|
+
inside: {
|
48
|
+
'interpolation': interpolation
|
49
|
+
}
|
50
|
+
},
|
51
|
+
{
|
52
|
+
pattern: /%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,
|
53
|
+
inside: {
|
54
|
+
'interpolation': interpolation
|
55
|
+
}
|
56
|
+
},
|
57
|
+
{
|
58
|
+
pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
|
59
|
+
lookbehind: true
|
60
|
+
}
|
61
|
+
],
|
62
|
+
'variable': /[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,
|
63
|
+
'symbol': /:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/
|
64
|
+
});
|
65
|
+
|
66
|
+
Prism.languages.insertBefore('ruby', 'number', {
|
67
|
+
'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/,
|
68
|
+
'constant': /\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/
|
69
|
+
});
|
70
|
+
|
71
|
+
Prism.languages.ruby.string = [
|
72
|
+
{
|
73
|
+
pattern: /%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,
|
74
|
+
inside: {
|
75
|
+
'interpolation': interpolation
|
76
|
+
}
|
77
|
+
},
|
78
|
+
{
|
79
|
+
pattern: /%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,
|
80
|
+
inside: {
|
81
|
+
'interpolation': interpolation
|
82
|
+
}
|
83
|
+
},
|
84
|
+
{
|
85
|
+
// Here we need to specifically allow interpolation
|
86
|
+
pattern: /%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,
|
87
|
+
inside: {
|
88
|
+
'interpolation': interpolation
|
89
|
+
}
|
90
|
+
},
|
91
|
+
{
|
92
|
+
pattern: /%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,
|
93
|
+
inside: {
|
94
|
+
'interpolation': interpolation
|
95
|
+
}
|
96
|
+
},
|
97
|
+
{
|
98
|
+
pattern: /%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,
|
99
|
+
inside: {
|
100
|
+
'interpolation': interpolation
|
101
|
+
}
|
102
|
+
},
|
103
|
+
{
|
104
|
+
pattern: /("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,
|
105
|
+
inside: {
|
106
|
+
'interpolation': interpolation
|
107
|
+
}
|
108
|
+
}
|
109
|
+
];
|
110
|
+
}(Prism));
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/* TODO
|
2
|
+
Add support for Markdown notation inside doc comments
|
3
|
+
Add support for nested block comments...
|
4
|
+
Match closure params even when not followed by dash or brace
|
5
|
+
Add better support for macro definition
|
6
|
+
*/
|
7
|
+
|
8
|
+
Prism.languages.rust = {
|
9
|
+
'comment': [
|
10
|
+
{
|
11
|
+
pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
|
12
|
+
lookbehind: true
|
13
|
+
},
|
14
|
+
{
|
15
|
+
pattern: /(^|[^\\:])\/\/.*/,
|
16
|
+
lookbehind: true
|
17
|
+
}
|
18
|
+
],
|
19
|
+
'string': [
|
20
|
+
/b?r(#*)"(?:\\?.)*?"\1/,
|
21
|
+
/b?("|')(?:\\?.)*?\1/
|
22
|
+
],
|
23
|
+
'keyword': /\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,
|
24
|
+
|
25
|
+
'attribute': {
|
26
|
+
pattern: /#!?\[.+?\]/,
|
27
|
+
alias: 'attr-name'
|
28
|
+
},
|
29
|
+
|
30
|
+
'function': [
|
31
|
+
/[a-z0-9_]+(?=\s*\()/i,
|
32
|
+
// Macros can use parens or brackets
|
33
|
+
/[a-z0-9_]+!(?=\s*\(|\[)/i
|
34
|
+
],
|
35
|
+
'macro-rules': {
|
36
|
+
pattern: /[a-z0-9_]+!/i,
|
37
|
+
alias: 'function'
|
38
|
+
},
|
39
|
+
|
40
|
+
// Hex, oct, bin, dec numbers with visual separators and type suffix
|
41
|
+
'number': /\b-?(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(_?\d)*)?\.?\d(_?\d)*([Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,
|
42
|
+
|
43
|
+
// Closure params should not be confused with bitwise OR |
|
44
|
+
'closure-params': {
|
45
|
+
pattern: /\|[^|]*\|(?=\s*[{-])/,
|
46
|
+
inside: {
|
47
|
+
'punctuation': /[\|:,]/,
|
48
|
+
'operator': /[&*]/
|
49
|
+
}
|
50
|
+
},
|
51
|
+
'punctuation': /[{}[\];(),:]|\.+|->/,
|
52
|
+
'operator': /[-+*\/%!^=]=?|@|&[&=]?|\|[|=]?|<<?=?|>>?=?/
|
53
|
+
};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Prism.languages.sas = {
|
2
|
+
'datalines': {
|
3
|
+
pattern: /^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,
|
4
|
+
alias: 'string',
|
5
|
+
inside: {
|
6
|
+
'keyword': {
|
7
|
+
pattern: /^(\s*)(?:(?:data)?lines|cards)/i,
|
8
|
+
lookbehind: true
|
9
|
+
},
|
10
|
+
'punctuation': /;/
|
11
|
+
}
|
12
|
+
},
|
13
|
+
'comment': [
|
14
|
+
{
|
15
|
+
pattern: /(^\s*|;\s*)\*.*;/m,
|
16
|
+
lookbehind: true
|
17
|
+
},
|
18
|
+
/\/\*[\s\S]+?\*\//
|
19
|
+
],
|
20
|
+
'datetime': {
|
21
|
+
// '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt
|
22
|
+
pattern: /'[^']+'(?:dt?|t)\b/i,
|
23
|
+
alias: 'number'
|
24
|
+
},
|
25
|
+
'string': /(["'])(?:\1\1|(?!\1)[\s\S])*\1/,
|
26
|
+
'keyword': /\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,
|
27
|
+
// Decimal (1.2e23), hexadecimal (0c1x)
|
28
|
+
'number': /(?:\B-|\b)(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,
|
29
|
+
'operator': /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,
|
30
|
+
'punctuation': /[$%@.(){}\[\];,\\]/
|
31
|
+
};
|
@@ -0,0 +1,73 @@
|
|
1
|
+
(function(Prism) {
|
2
|
+
Prism.languages.sass = Prism.languages.extend('css', {
|
3
|
+
// Sass comments don't need to be closed, only indented
|
4
|
+
'comment': {
|
5
|
+
pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,
|
6
|
+
lookbehind: true
|
7
|
+
}
|
8
|
+
});
|
9
|
+
|
10
|
+
Prism.languages.insertBefore('sass', 'atrule', {
|
11
|
+
// We want to consume the whole line
|
12
|
+
'atrule-line': {
|
13
|
+
// Includes support for = and + shortcuts
|
14
|
+
pattern: /^(?:[ \t]*)[@+=].+/m,
|
15
|
+
inside: {
|
16
|
+
'atrule': /(?:@[\w-]+|[+=])/m
|
17
|
+
}
|
18
|
+
}
|
19
|
+
});
|
20
|
+
delete Prism.languages.sass.atrule;
|
21
|
+
|
22
|
+
|
23
|
+
var variable = /((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i;
|
24
|
+
var operator = [
|
25
|
+
/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,
|
26
|
+
{
|
27
|
+
pattern: /(\s+)-(?=\s)/,
|
28
|
+
lookbehind: true
|
29
|
+
}
|
30
|
+
];
|
31
|
+
|
32
|
+
Prism.languages.insertBefore('sass', 'property', {
|
33
|
+
// We want to consume the whole line
|
34
|
+
'variable-line': {
|
35
|
+
pattern: /^[ \t]*\$.+/m,
|
36
|
+
inside: {
|
37
|
+
'punctuation': /:/,
|
38
|
+
'variable': variable,
|
39
|
+
'operator': operator
|
40
|
+
}
|
41
|
+
},
|
42
|
+
// We want to consume the whole line
|
43
|
+
'property-line': {
|
44
|
+
pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,
|
45
|
+
inside: {
|
46
|
+
'property': [
|
47
|
+
/[^:\s]+(?=\s*:)/,
|
48
|
+
{
|
49
|
+
pattern: /(:)[^:\s]+/,
|
50
|
+
lookbehind: true
|
51
|
+
}
|
52
|
+
],
|
53
|
+
'punctuation': /:/,
|
54
|
+
'variable': variable,
|
55
|
+
'operator': operator,
|
56
|
+
'important': Prism.languages.sass.important
|
57
|
+
}
|
58
|
+
}
|
59
|
+
});
|
60
|
+
delete Prism.languages.sass.property;
|
61
|
+
delete Prism.languages.sass.important;
|
62
|
+
|
63
|
+
// Now that whole lines for other patterns are consumed,
|
64
|
+
// what's left should be selectors
|
65
|
+
delete Prism.languages.sass.selector;
|
66
|
+
Prism.languages.insertBefore('sass', 'punctuation', {
|
67
|
+
'selector': {
|
68
|
+
pattern: /([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,
|
69
|
+
lookbehind: true
|
70
|
+
}
|
71
|
+
});
|
72
|
+
|
73
|
+
}(Prism));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Prism.languages.scala = Prism.languages.extend('java', {
|
2
|
+
'keyword': /<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,
|
3
|
+
'string': [
|
4
|
+
{
|
5
|
+
pattern: /"""[\W\w]*?"""/,
|
6
|
+
greedy: true
|
7
|
+
},
|
8
|
+
{
|
9
|
+
pattern: /("|')(?:\\\\|\\?[^\\\r\n])*?\1/,
|
10
|
+
greedy: true
|
11
|
+
},
|
12
|
+
],
|
13
|
+
'builtin': /\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,
|
14
|
+
'number': /\b(?:0x[\da-f]*\.?[\da-f]+|\d*\.?\d+e?\d*[dfl]?)\b/i,
|
15
|
+
'symbol': /'[^\d\s\\]\w*/
|
16
|
+
});
|
17
|
+
delete Prism.languages.scala['class-name'];
|
18
|
+
delete Prism.languages.scala['function'];
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Prism.languages.scheme = {
|
2
|
+
'comment' : /;.*/,
|
3
|
+
'string' : /"(?:[^"\\\r\n]|\\.)*?"|'[^('\s]*/,
|
4
|
+
'keyword' : {
|
5
|
+
pattern : /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,
|
6
|
+
lookbehind : true
|
7
|
+
},
|
8
|
+
'builtin' : {
|
9
|
+
pattern : /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,
|
10
|
+
lookbehind : true
|
11
|
+
},
|
12
|
+
'number' : {
|
13
|
+
pattern: /(\s|\))[-+]?[0-9]*\.?[0-9]+(?:\s*[-+]\s*[0-9]*\.?[0-9]+i)?\b/,
|
14
|
+
lookbehind: true
|
15
|
+
},
|
16
|
+
'boolean' : /#[tf]/,
|
17
|
+
'operator': {
|
18
|
+
pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)/,
|
19
|
+
lookbehind: true
|
20
|
+
},
|
21
|
+
'function' : {
|
22
|
+
pattern : /(\()[^\s()]*(?=\s)/,
|
23
|
+
lookbehind : true
|
24
|
+
},
|
25
|
+
'punctuation' : /[()]/
|
26
|
+
};
|
@@ -0,0 +1,60 @@
|
|
1
|
+
Prism.languages.scss = Prism.languages.extend('css', {
|
2
|
+
'comment': {
|
3
|
+
pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,
|
4
|
+
lookbehind: true
|
5
|
+
},
|
6
|
+
'atrule': {
|
7
|
+
pattern: /@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,
|
8
|
+
inside: {
|
9
|
+
'rule': /@[\w-]+/
|
10
|
+
// See rest below
|
11
|
+
}
|
12
|
+
},
|
13
|
+
// url, compassified
|
14
|
+
'url': /(?:[-a-z]+-)*url(?=\()/i,
|
15
|
+
// CSS selector regex is not appropriate for Sass
|
16
|
+
// since there can be lot more things (var, @ directive, nesting..)
|
17
|
+
// a selector must start at the end of a property or after a brace (end of other rules or nesting)
|
18
|
+
// it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable
|
19
|
+
// the end of a selector is found when there is no rules in it ( {} or {\s}) or if there is a property (because an interpolated var
|
20
|
+
// can "pass" as a selector- e.g: proper#{$erty})
|
21
|
+
// this one was hard to do, so please be careful if you edit this one :)
|
22
|
+
'selector': {
|
23
|
+
// Initial look-ahead is used to prevent matching of blank selectors
|
24
|
+
pattern: /(?=\S)[^@;\{\}\(\)]?([^@;\{\}\(\)]|&|#\{\$[-_\w]+\})+(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/m,
|
25
|
+
inside: {
|
26
|
+
'placeholder': /%[-_\w]+/
|
27
|
+
}
|
28
|
+
}
|
29
|
+
});
|
30
|
+
|
31
|
+
Prism.languages.insertBefore('scss', 'atrule', {
|
32
|
+
'keyword': [
|
33
|
+
/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,
|
34
|
+
{
|
35
|
+
pattern: /( +)(?:from|through)(?= )/,
|
36
|
+
lookbehind: true
|
37
|
+
}
|
38
|
+
]
|
39
|
+
});
|
40
|
+
|
41
|
+
Prism.languages.insertBefore('scss', 'property', {
|
42
|
+
// var and interpolated vars
|
43
|
+
'variable': /\$[-_\w]+|#\{\$[-_\w]+\}/
|
44
|
+
});
|
45
|
+
|
46
|
+
Prism.languages.insertBefore('scss', 'function', {
|
47
|
+
'placeholder': {
|
48
|
+
pattern: /%[-_\w]+/,
|
49
|
+
alias: 'selector'
|
50
|
+
},
|
51
|
+
'statement': /\B!(?:default|optional)\b/i,
|
52
|
+
'boolean': /\b(?:true|false)\b/,
|
53
|
+
'null': /\bnull\b/,
|
54
|
+
'operator': {
|
55
|
+
pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,
|
56
|
+
lookbehind: true
|
57
|
+
}
|
58
|
+
});
|
59
|
+
|
60
|
+
Prism.languages.scss['atrule'].inside.rest = Prism.util.clone(Prism.languages.scss);
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Prism.languages.smalltalk = {
|
2
|
+
'comment': /"(?:""|[^"])+"/,
|
3
|
+
'string': /'(?:''|[^'])+'/,
|
4
|
+
'symbol': /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,
|
5
|
+
'block-arguments': {
|
6
|
+
pattern: /(\[\s*):[^\[|]*?\|/,
|
7
|
+
lookbehind: true,
|
8
|
+
inside: {
|
9
|
+
'variable': /:[\da-z]+/i,
|
10
|
+
'punctuation': /\|/
|
11
|
+
}
|
12
|
+
},
|
13
|
+
'temporary-variables': {
|
14
|
+
pattern: /\|[^|]+\|/,
|
15
|
+
inside: {
|
16
|
+
'variable': /[\da-z]+/i,
|
17
|
+
'punctuation': /\|/
|
18
|
+
}
|
19
|
+
},
|
20
|
+
'keyword': /\b(?:nil|true|false|self|super|new)\b/,
|
21
|
+
'character': {
|
22
|
+
pattern: /\$./,
|
23
|
+
alias: 'string'
|
24
|
+
},
|
25
|
+
'number': [
|
26
|
+
/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,
|
27
|
+
/(?:\B-|\b)\d+(?:\.\d+)?(?:e-?\d+)?/
|
28
|
+
],
|
29
|
+
'operator': /[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,
|
30
|
+
'punctuation': /[.;:?\[\](){}]/
|
31
|
+
};
|
@@ -0,0 +1,127 @@
|
|
1
|
+
/* TODO
|
2
|
+
Add support for variables inside double quoted strings
|
3
|
+
Add support for {php}
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function(Prism) {
|
7
|
+
|
8
|
+
var smarty_pattern = /\{\*[\w\W]+?\*\}|\{[\w\W]+?\}/g;
|
9
|
+
var smarty_litteral_start = '{literal}';
|
10
|
+
var smarty_litteral_end = '{/literal}';
|
11
|
+
var smarty_litteral_mode = false;
|
12
|
+
|
13
|
+
Prism.languages.smarty = Prism.languages.extend('markup', {
|
14
|
+
'smarty': {
|
15
|
+
pattern: smarty_pattern,
|
16
|
+
inside: {
|
17
|
+
'delimiter': {
|
18
|
+
pattern: /^\{|\}$/i,
|
19
|
+
alias: 'punctuation'
|
20
|
+
},
|
21
|
+
'string': /(["'])(?:\\?.)*?\1/,
|
22
|
+
'number': /\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][-+]?\d+)?)\b/,
|
23
|
+
'variable': [
|
24
|
+
/\$(?!\d)\w+/,
|
25
|
+
/#(?!\d)\w+#/,
|
26
|
+
{
|
27
|
+
pattern: /(\.|->)(?!\d)\w+/,
|
28
|
+
lookbehind: true
|
29
|
+
},
|
30
|
+
{
|
31
|
+
pattern: /(\[)(?!\d)\w+(?=\])/,
|
32
|
+
lookbehind: true
|
33
|
+
}
|
34
|
+
],
|
35
|
+
'function': [
|
36
|
+
{
|
37
|
+
pattern: /(\|\s*)@?(?!\d)\w+/,
|
38
|
+
lookbehind: true
|
39
|
+
},
|
40
|
+
/^\/?(?!\d)\w+/,
|
41
|
+
/(?!\d)\w+(?=\()/
|
42
|
+
],
|
43
|
+
'attr-name': {
|
44
|
+
// Value is made optional because it may have already been tokenized
|
45
|
+
pattern: /\w+\s*=\s*(?:(?!\d)\w+)?/,
|
46
|
+
inside: {
|
47
|
+
"variable": {
|
48
|
+
pattern: /(=\s*)(?!\d)\w+/,
|
49
|
+
lookbehind: true
|
50
|
+
},
|
51
|
+
"operator": /=/
|
52
|
+
}
|
53
|
+
},
|
54
|
+
'punctuation': [
|
55
|
+
/[\[\]().,:`]|\->/
|
56
|
+
],
|
57
|
+
'operator': [
|
58
|
+
/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,
|
59
|
+
/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,
|
60
|
+
/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/
|
61
|
+
],
|
62
|
+
'keyword': /\b(?:false|off|on|no|true|yes)\b/
|
63
|
+
}
|
64
|
+
}
|
65
|
+
});
|
66
|
+
|
67
|
+
// Comments are inserted at top so that they can
|
68
|
+
// surround markup
|
69
|
+
Prism.languages.insertBefore('smarty', 'tag', {
|
70
|
+
'smarty-comment': {
|
71
|
+
pattern: /\{\*[\w\W]*?\*\}/,
|
72
|
+
alias: ['smarty','comment']
|
73
|
+
}
|
74
|
+
});
|
75
|
+
|
76
|
+
// Tokenize all inline Smarty expressions
|
77
|
+
Prism.hooks.add('before-highlight', function(env) {
|
78
|
+
if (env.language !== 'smarty') {
|
79
|
+
return;
|
80
|
+
}
|
81
|
+
|
82
|
+
env.tokenStack = [];
|
83
|
+
|
84
|
+
env.backupCode = env.code;
|
85
|
+
env.code = env.code.replace(smarty_pattern, function(match) {
|
86
|
+
|
87
|
+
// Smarty tags inside {literal} block are ignored
|
88
|
+
if(match === smarty_litteral_end) {
|
89
|
+
smarty_litteral_mode = false;
|
90
|
+
}
|
91
|
+
|
92
|
+
if(!smarty_litteral_mode) {
|
93
|
+
if(match === smarty_litteral_start) {
|
94
|
+
smarty_litteral_mode = true;
|
95
|
+
}
|
96
|
+
env.tokenStack.push(match);
|
97
|
+
|
98
|
+
return '___SMARTY' + env.tokenStack.length + '___';
|
99
|
+
}
|
100
|
+
return match;
|
101
|
+
});
|
102
|
+
});
|
103
|
+
|
104
|
+
// Restore env.code for other plugins (e.g. line-numbers)
|
105
|
+
Prism.hooks.add('before-insert', function(env) {
|
106
|
+
if (env.language === 'smarty') {
|
107
|
+
env.code = env.backupCode;
|
108
|
+
delete env.backupCode;
|
109
|
+
}
|
110
|
+
});
|
111
|
+
|
112
|
+
// Re-insert the tokens after highlighting
|
113
|
+
// and highlight them with defined grammar
|
114
|
+
Prism.hooks.add('after-highlight', function(env) {
|
115
|
+
if (env.language !== 'smarty') {
|
116
|
+
return;
|
117
|
+
}
|
118
|
+
|
119
|
+
for (var i = 0, t; t = env.tokenStack[i]; i++) {
|
120
|
+
// The replace prevents $$, $&, $`, $', $n, $nn from being interpreted as special patterns
|
121
|
+
env.highlightedCode = env.highlightedCode.replace('___SMARTY' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'smarty').replace(/\$/g, '$$$$'));
|
122
|
+
}
|
123
|
+
|
124
|
+
env.element.innerHTML = env.highlightedCode;
|
125
|
+
});
|
126
|
+
|
127
|
+
}(Prism));
|