highlighting 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +52 -0
- data/app/helpers/syntax_helper.rb +2 -0
- data/lib/highlighting.rb +6 -0
- data/lib/highlighting/version.rb +3 -0
- data/vendor/assets/javascripts/prism-abap.js +48 -0
- data/vendor/assets/javascripts/prism-abap.min.js +1 -0
- data/vendor/assets/javascripts/prism-actionscript.js +17 -0
- data/vendor/assets/javascripts/prism-actionscript.min.js +1 -0
- data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/prism-apacheconf.min.js +1 -0
- data/vendor/assets/javascripts/prism-apl.js +29 -0
- data/vendor/assets/javascripts/prism-apl.min.js +1 -0
- data/vendor/assets/javascripts/prism-applescript.js +20 -0
- data/vendor/assets/javascripts/prism-applescript.min.js +1 -0
- data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
- data/vendor/assets/javascripts/prism-asciidoc.min.js +1 -0
- data/vendor/assets/javascripts/prism-aspnet.js +36 -0
- data/vendor/assets/javascripts/prism-aspnet.min.js +1 -0
- data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
- data/vendor/assets/javascripts/prism-autohotkey.min.js +1 -0
- data/vendor/assets/javascripts/prism-autoit.js +33 -0
- data/vendor/assets/javascripts/prism-autoit.min.js +1 -0
- data/vendor/assets/javascripts/prism-bash.js +78 -0
- data/vendor/assets/javascripts/prism-bash.min.js +1 -0
- data/vendor/assets/javascripts/prism-basic.js +14 -0
- data/vendor/assets/javascripts/prism-basic.min.js +1 -0
- data/vendor/assets/javascripts/prism-batch.js +99 -0
- data/vendor/assets/javascripts/prism-batch.min.js +1 -0
- data/vendor/assets/javascripts/prism-bison.js +39 -0
- data/vendor/assets/javascripts/prism-bison.min.js +1 -0
- data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
- data/vendor/assets/javascripts/prism-brainfuck.min.js +1 -0
- data/vendor/assets/javascripts/prism-c.js +33 -0
- data/vendor/assets/javascripts/prism-c.min.js +1 -0
- data/vendor/assets/javascripts/prism-clike.js +26 -0
- data/vendor/assets/javascripts/prism-clike.min.js +1 -0
- data/vendor/assets/javascripts/prism-coffeescript.js +83 -0
- data/vendor/assets/javascripts/prism-coffeescript.min.js +1 -0
- data/vendor/assets/javascripts/prism-core.js +434 -0
- data/vendor/assets/javascripts/prism-core.min.js +1 -0
- data/vendor/assets/javascripts/prism-cpp.js +12 -0
- data/vendor/assets/javascripts/prism-cpp.min.js +1 -0
- data/vendor/assets/javascripts/prism-crystal.js +53 -0
- data/vendor/assets/javascripts/prism-crystal.min.js +1 -0
- data/vendor/assets/javascripts/prism-csharp.js +24 -0
- data/vendor/assets/javascripts/prism-csharp.min.js +1 -0
- data/vendor/assets/javascripts/prism-css-extras.js +15 -0
- data/vendor/assets/javascripts/prism-css-extras.min.js +1 -0
- data/vendor/assets/javascripts/prism-css.js +48 -0
- data/vendor/assets/javascripts/prism-css.min.js +1 -0
- data/vendor/assets/javascripts/prism-d.js +64 -0
- data/vendor/assets/javascripts/prism-d.min.js +1 -0
- data/vendor/assets/javascripts/prism-dart.js +18 -0
- data/vendor/assets/javascripts/prism-dart.min.js +1 -0
- data/vendor/assets/javascripts/prism-diff.js +20 -0
- data/vendor/assets/javascripts/prism-diff.min.js +1 -0
- data/vendor/assets/javascripts/prism-docker.js +9 -0
- data/vendor/assets/javascripts/prism-docker.min.js +1 -0
- data/vendor/assets/javascripts/prism-eiffel.js +24 -0
- data/vendor/assets/javascripts/prism-eiffel.min.js +1 -0
- data/vendor/assets/javascripts/prism-elixir.js +90 -0
- data/vendor/assets/javascripts/prism-elixir.min.js +1 -0
- data/vendor/assets/javascripts/prism-erlang.js +41 -0
- data/vendor/assets/javascripts/prism-erlang.min.js +1 -0
- data/vendor/assets/javascripts/prism-fortran.js +37 -0
- data/vendor/assets/javascripts/prism-fortran.min.js +1 -0
- data/vendor/assets/javascripts/prism-fsharp.js +33 -0
- data/vendor/assets/javascripts/prism-fsharp.min.js +1 -0
- data/vendor/assets/javascripts/prism-gherkin.js +78 -0
- data/vendor/assets/javascripts/prism-gherkin.min.js +1 -0
- data/vendor/assets/javascripts/prism-git.js +68 -0
- data/vendor/assets/javascripts/prism-git.min.js +1 -0
- data/vendor/assets/javascripts/prism-glsl.js +16 -0
- data/vendor/assets/javascripts/prism-glsl.min.js +1 -0
- data/vendor/assets/javascripts/prism-go.js +9 -0
- data/vendor/assets/javascripts/prism-go.min.js +1 -0
- data/vendor/assets/javascripts/prism-groovy.js +51 -0
- data/vendor/assets/javascripts/prism-groovy.min.js +1 -0
- data/vendor/assets/javascripts/prism-haml.js +154 -0
- data/vendor/assets/javascripts/prism-haml.min.js +1 -0
- data/vendor/assets/javascripts/prism-handlebars.js +83 -0
- data/vendor/assets/javascripts/prism-handlebars.min.js +1 -0
- data/vendor/assets/javascripts/prism-haskell.js +32 -0
- data/vendor/assets/javascripts/prism-haskell.min.js +1 -0
- data/vendor/assets/javascripts/prism-haxe.js +43 -0
- data/vendor/assets/javascripts/prism-haxe.min.js +1 -0
- data/vendor/assets/javascripts/prism-http.js +50 -0
- data/vendor/assets/javascripts/prism-http.min.js +1 -0
- data/vendor/assets/javascripts/prism-icon.js +17 -0
- data/vendor/assets/javascripts/prism-icon.min.js +1 -0
- data/vendor/assets/javascripts/prism-inform7.js +58 -0
- data/vendor/assets/javascripts/prism-inform7.min.js +1 -0
- data/vendor/assets/javascripts/prism-ini.js +11 -0
- data/vendor/assets/javascripts/prism-ini.min.js +1 -0
- data/vendor/assets/javascripts/prism-j.js +22 -0
- data/vendor/assets/javascripts/prism-j.min.js +1 -0
- data/vendor/assets/javascripts/prism-jade.js +198 -0
- data/vendor/assets/javascripts/prism-jade.min.js +1 -0
- data/vendor/assets/javascripts/prism-java.js +8 -0
- data/vendor/assets/javascripts/prism-java.min.js +1 -0
- data/vendor/assets/javascripts/prism-javascript.js +45 -0
- data/vendor/assets/javascripts/prism-javascript.min.js +1 -0
- data/vendor/assets/javascripts/prism-jsx.js +24 -0
- data/vendor/assets/javascripts/prism-jsx.min.js +1 -0
- data/vendor/assets/javascripts/prism-julia.js +12 -0
- data/vendor/assets/javascripts/prism-julia.min.js +1 -0
- data/vendor/assets/javascripts/prism-keyman.js +14 -0
- data/vendor/assets/javascripts/prism-keyman.min.js +1 -0
- data/vendor/assets/javascripts/prism-kotlin.js +68 -0
- data/vendor/assets/javascripts/prism-kotlin.min.js +1 -0
- data/vendor/assets/javascripts/prism-latex.js +61 -0
- data/vendor/assets/javascripts/prism-latex.min.js +1 -0
- data/vendor/assets/javascripts/prism-less.js +60 -0
- data/vendor/assets/javascripts/prism-less.min.js +1 -0
- data/vendor/assets/javascripts/prism-lolcode.js +54 -0
- data/vendor/assets/javascripts/prism-lolcode.min.js +1 -0
- data/vendor/assets/javascripts/prism-lua.js +17 -0
- data/vendor/assets/javascripts/prism-lua.min.js +1 -0
- data/vendor/assets/javascripts/prism-makefile.js +31 -0
- data/vendor/assets/javascripts/prism-makefile.min.js +1 -0
- data/vendor/assets/javascripts/prism-markdown.js +120 -0
- data/vendor/assets/javascripts/prism-markdown.min.js +1 -0
- data/vendor/assets/javascripts/prism-markup.js +46 -0
- data/vendor/assets/javascripts/prism-markup.min.js +1 -0
- data/vendor/assets/javascripts/prism-matlab.js +14 -0
- data/vendor/assets/javascripts/prism-matlab.min.js +1 -0
- data/vendor/assets/javascripts/prism-mel.js +39 -0
- data/vendor/assets/javascripts/prism-mel.min.js +1 -0
- data/vendor/assets/javascripts/prism-mizar.js +12 -0
- data/vendor/assets/javascripts/prism-mizar.min.js +1 -0
- data/vendor/assets/javascripts/prism-monkey.js +25 -0
- data/vendor/assets/javascripts/prism-monkey.min.js +1 -0
- data/vendor/assets/javascripts/prism-nasm.js +24 -0
- data/vendor/assets/javascripts/prism-nasm.min.js +1 -0
- data/vendor/assets/javascripts/prism-nginx.js +11 -0
- data/vendor/assets/javascripts/prism-nginx.min.js +1 -0
- data/vendor/assets/javascripts/prism-nim.js +30 -0
- data/vendor/assets/javascripts/prism-nim.min.js +1 -0
- data/vendor/assets/javascripts/prism-nix.js +39 -0
- data/vendor/assets/javascripts/prism-nix.min.js +1 -0
- data/vendor/assets/javascripts/prism-nsis.js +19 -0
- data/vendor/assets/javascripts/prism-nsis.min.js +1 -0
- data/vendor/assets/javascripts/prism-objectivec.js +5 -0
- data/vendor/assets/javascripts/prism-objectivec.min.js +1 -0
- data/vendor/assets/javascripts/prism-ocaml.js +21 -0
- data/vendor/assets/javascripts/prism-ocaml.min.js +1 -0
- data/vendor/assets/javascripts/prism-oz.js +21 -0
- data/vendor/assets/javascripts/prism-oz.min.js +1 -0
- data/vendor/assets/javascripts/prism-parigp.js +27 -0
- data/vendor/assets/javascripts/prism-parigp.min.js +1 -0
- data/vendor/assets/javascripts/prism-parser.js +66 -0
- data/vendor/assets/javascripts/prism-parser.min.js +1 -0
- data/vendor/assets/javascripts/prism-pascal.js +50 -0
- data/vendor/assets/javascripts/prism-pascal.min.js +1 -0
- data/vendor/assets/javascripts/prism-perl.js +140 -0
- data/vendor/assets/javascripts/prism-perl.min.js +1 -0
- data/vendor/assets/javascripts/prism-php-extras.js +11 -0
- data/vendor/assets/javascripts/prism-php-extras.min.js +1 -0
- data/vendor/assets/javascripts/prism-php.js +110 -0
- data/vendor/assets/javascripts/prism-php.min.js +1 -0
- data/vendor/assets/javascripts/prism-powershell.js +48 -0
- data/vendor/assets/javascripts/prism-powershell.min.js +1 -0
- data/vendor/assets/javascripts/prism-processing.js +18 -0
- data/vendor/assets/javascripts/prism-processing.min.js +1 -0
- data/vendor/assets/javascripts/prism-prolog.js +17 -0
- data/vendor/assets/javascripts/prism-prolog.min.js +1 -0
- data/vendor/assets/javascripts/prism-puppet.js +131 -0
- data/vendor/assets/javascripts/prism-puppet.min.js +1 -0
- data/vendor/assets/javascripts/prism-pure.js +77 -0
- data/vendor/assets/javascripts/prism-pure.min.js +1 -0
- data/vendor/assets/javascripts/prism-python.js +24 -0
- data/vendor/assets/javascripts/prism-python.min.js +1 -0
- data/vendor/assets/javascripts/prism-q.js +44 -0
- data/vendor/assets/javascripts/prism-q.min.js +1 -0
- data/vendor/assets/javascripts/prism-qore.js +17 -0
- data/vendor/assets/javascripts/prism-qore.min.js +1 -0
- data/vendor/assets/javascripts/prism-r.js +19 -0
- data/vendor/assets/javascripts/prism-r.min.js +1 -0
- data/vendor/assets/javascripts/prism-rest.js +205 -0
- data/vendor/assets/javascripts/prism-rest.min.js +1 -0
- data/vendor/assets/javascripts/prism-rip.js +28 -0
- data/vendor/assets/javascripts/prism-rip.min.js +1 -0
- data/vendor/assets/javascripts/prism-roboconf.js +27 -0
- data/vendor/assets/javascripts/prism-roboconf.min.js +1 -0
- data/vendor/assets/javascripts/prism-ruby.js +110 -0
- data/vendor/assets/javascripts/prism-ruby.min.js +1 -0
- data/vendor/assets/javascripts/prism-rust.js +53 -0
- data/vendor/assets/javascripts/prism-rust.min.js +1 -0
- data/vendor/assets/javascripts/prism-sas.js +31 -0
- data/vendor/assets/javascripts/prism-sas.min.js +1 -0
- data/vendor/assets/javascripts/prism-sass.js +73 -0
- data/vendor/assets/javascripts/prism-sass.min.js +1 -0
- data/vendor/assets/javascripts/prism-scala.js +9 -0
- data/vendor/assets/javascripts/prism-scala.min.js +1 -0
- data/vendor/assets/javascripts/prism-scheme.js +26 -0
- data/vendor/assets/javascripts/prism-scheme.min.js +1 -0
- data/vendor/assets/javascripts/prism-scss.js +60 -0
- data/vendor/assets/javascripts/prism-scss.min.js +1 -0
- data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
- data/vendor/assets/javascripts/prism-smalltalk.min.js +1 -0
- data/vendor/assets/javascripts/prism-smarty.js +127 -0
- data/vendor/assets/javascripts/prism-smarty.min.js +1 -0
- data/vendor/assets/javascripts/prism-sql.js +17 -0
- data/vendor/assets/javascripts/prism-sql.min.js +1 -0
- data/vendor/assets/javascripts/prism-stylus.js +102 -0
- data/vendor/assets/javascripts/prism-stylus.min.js +1 -0
- data/vendor/assets/javascripts/prism-swift.js +24 -0
- data/vendor/assets/javascripts/prism-swift.min.js +1 -0
- data/vendor/assets/javascripts/prism-tcl.js +43 -0
- data/vendor/assets/javascripts/prism-tcl.min.js +1 -0
- data/vendor/assets/javascripts/prism-textile.js +254 -0
- data/vendor/assets/javascripts/prism-textile.min.js +1 -0
- data/vendor/assets/javascripts/prism-twig.js +46 -0
- data/vendor/assets/javascripts/prism-twig.min.js +1 -0
- data/vendor/assets/javascripts/prism-typescript.js +3 -0
- data/vendor/assets/javascripts/prism-typescript.min.js +1 -0
- data/vendor/assets/javascripts/prism-verilog.js +17 -0
- data/vendor/assets/javascripts/prism-verilog.min.js +1 -0
- data/vendor/assets/javascripts/prism-vhdl.js +23 -0
- data/vendor/assets/javascripts/prism-vhdl.min.js +1 -0
- data/vendor/assets/javascripts/prism-vim.js +10 -0
- data/vendor/assets/javascripts/prism-vim.min.js +1 -0
- data/vendor/assets/javascripts/prism-wiki.js +81 -0
- data/vendor/assets/javascripts/prism-wiki.min.js +1 -0
- data/vendor/assets/javascripts/prism-yaml.js +44 -0
- data/vendor/assets/javascripts/prism-yaml.min.js +1 -0
- data/vendor/assets/javascripts/prism.js +708 -0
- data/vendor/assets/stylesheets/prism-coy.css +235 -0
- data/vendor/assets/stylesheets/prism-dark.css +128 -0
- data/vendor/assets/stylesheets/prism-funky.css +117 -0
- data/vendor/assets/stylesheets/prism-okaidia.css +121 -0
- data/vendor/assets/stylesheets/prism-tomorrow.css +121 -0
- data/vendor/assets/stylesheets/prism-twilight.css +201 -0
- data/vendor/assets/stylesheets/prism.css +137 -0
- metadata +306 -0
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.parser=Prism.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.\{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},"function":{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),Prism.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,"function":Prism.languages.parser.function,"boolean":/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,escape:Prism.languages.parser.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:Prism.languages.parser.punctuation}}}),Prism.languages.insertBefore("inside","punctuation",{expression:Prism.languages.parser.expression,keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,"function":Prism.languages.parser.function,escape:Prism.languages.parser.escape,"parser-punctuation":{pattern:Prism.languages.parser.punctuation,alias:"punctuation"}},Prism.languages.parser.tag.inside["attr-value"]);
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// Based on Free Pascal
|
2
|
+
|
3
|
+
/* TODO
|
4
|
+
Support inline asm ?
|
5
|
+
*/
|
6
|
+
|
7
|
+
Prism.languages.pascal = {
|
8
|
+
'comment': [
|
9
|
+
/\(\*[\s\S]+?\*\)/,
|
10
|
+
/\{[\s\S]+?\}/,
|
11
|
+
/\/\/.*/
|
12
|
+
],
|
13
|
+
'string': /(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,
|
14
|
+
'keyword': [
|
15
|
+
{
|
16
|
+
// Turbo Pascal
|
17
|
+
pattern: /(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,
|
18
|
+
lookbehind: true
|
19
|
+
},
|
20
|
+
{
|
21
|
+
// Free Pascal
|
22
|
+
pattern: /(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,
|
23
|
+
lookbehind: true
|
24
|
+
},
|
25
|
+
{
|
26
|
+
// Object Pascal
|
27
|
+
pattern: /(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,
|
28
|
+
lookbehind: true
|
29
|
+
},
|
30
|
+
{
|
31
|
+
// Modifiers
|
32
|
+
pattern: /(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,
|
33
|
+
lookbehind: true
|
34
|
+
}
|
35
|
+
],
|
36
|
+
'number': [
|
37
|
+
// Hexadecimal, octal and binary
|
38
|
+
/[+-]?(?:[&%]\d+|\$[a-f\d]+)/i,
|
39
|
+
// Decimal
|
40
|
+
/([+-]|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?/i
|
41
|
+
],
|
42
|
+
'operator': [
|
43
|
+
/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,
|
44
|
+
{
|
45
|
+
pattern: /(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,
|
46
|
+
lookbehind: true
|
47
|
+
}
|
48
|
+
],
|
49
|
+
'punctuation': /\(\.|\.\)|[()\[\]:;,.]/
|
50
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:/(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/[+-]?(?:[&%]\d+|\$[a-f\d]+)/i,/([+-]|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/};
|
@@ -0,0 +1,140 @@
|
|
1
|
+
Prism.languages.perl = {
|
2
|
+
'comment': [
|
3
|
+
{
|
4
|
+
// POD
|
5
|
+
pattern: /(^\s*)=\w+[\s\S]*?=cut.*/m,
|
6
|
+
lookbehind: true
|
7
|
+
},
|
8
|
+
{
|
9
|
+
pattern: /(^|[^\\$])#.*/,
|
10
|
+
lookbehind: true
|
11
|
+
}
|
12
|
+
],
|
13
|
+
// TODO Could be nice to handle Heredoc too.
|
14
|
+
'string': [
|
15
|
+
// q/.../
|
16
|
+
/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,
|
17
|
+
|
18
|
+
// q a...a
|
19
|
+
/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:[^\\]|\\[\s\S])*?\1/,
|
20
|
+
|
21
|
+
// q(...)
|
22
|
+
/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,
|
23
|
+
|
24
|
+
// q{...}
|
25
|
+
/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,
|
26
|
+
|
27
|
+
// q[...]
|
28
|
+
/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,
|
29
|
+
|
30
|
+
// q<...>
|
31
|
+
/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,
|
32
|
+
|
33
|
+
// "...", `...`
|
34
|
+
/("|`)(?:[^\\]|\\[\s\S])*?\1/,
|
35
|
+
|
36
|
+
// '...'
|
37
|
+
// FIXME Multi-line single-quoted strings are not supported as they would break variables containing '
|
38
|
+
/'(?:[^'\\\r\n]|\\.)*'/
|
39
|
+
],
|
40
|
+
'regex': [
|
41
|
+
// m/.../
|
42
|
+
/\b(?:m|qr)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[msixpodualngc]*/,
|
43
|
+
|
44
|
+
// m a...a
|
45
|
+
/\b(?:m|qr)\s+([a-zA-Z0-9])(?:[^\\]|\\.)*?\1[msixpodualngc]*/,
|
46
|
+
|
47
|
+
// m(...)
|
48
|
+
/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,
|
49
|
+
|
50
|
+
// m{...}
|
51
|
+
/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,
|
52
|
+
|
53
|
+
// m[...]
|
54
|
+
/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,
|
55
|
+
|
56
|
+
// m<...>
|
57
|
+
/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,
|
58
|
+
|
59
|
+
// The lookbehinds prevent -s from breaking
|
60
|
+
// FIXME We don't handle change of separator like s(...)[...]
|
61
|
+
// s/.../.../
|
62
|
+
{
|
63
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\2(?:[^\\]|\\[\s\S])*?\2[msixpodualngcer]*/,
|
64
|
+
lookbehind: true
|
65
|
+
},
|
66
|
+
|
67
|
+
// s a...a...a
|
68
|
+
{
|
69
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:[^\\]|\\[\s\S])*?\2(?:[^\\]|\\[\s\S])*?\2[msixpodualngcer]*/,
|
70
|
+
lookbehind: true
|
71
|
+
},
|
72
|
+
|
73
|
+
// s(...)(...)
|
74
|
+
{
|
75
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,
|
76
|
+
lookbehind: true
|
77
|
+
},
|
78
|
+
|
79
|
+
// s{...}{...}
|
80
|
+
{
|
81
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,
|
82
|
+
lookbehind: true
|
83
|
+
},
|
84
|
+
|
85
|
+
// s[...][...]
|
86
|
+
{
|
87
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,
|
88
|
+
lookbehind: true
|
89
|
+
},
|
90
|
+
|
91
|
+
// s<...><...>
|
92
|
+
{
|
93
|
+
pattern: /(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,
|
94
|
+
lookbehind: true
|
95
|
+
},
|
96
|
+
|
97
|
+
// /.../
|
98
|
+
// The look-ahead tries to prevent two divisions on
|
99
|
+
// the same line from being highlighted as regex.
|
100
|
+
// This does not support multi-line regex.
|
101
|
+
/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/
|
102
|
+
],
|
103
|
+
|
104
|
+
// FIXME Not sure about the handling of ::, ', and #
|
105
|
+
'variable': [
|
106
|
+
// ${^POSTMATCH}
|
107
|
+
/[&*$@%]\{\^[A-Z]+\}/,
|
108
|
+
// $^V
|
109
|
+
/[&*$@%]\^[A-Z_]/,
|
110
|
+
// ${...}
|
111
|
+
/[&*$@%]#?(?=\{)/,
|
112
|
+
// $foo
|
113
|
+
/[&*$@%]#?((::)*'?(?!\d)[\w$]+)+(::)*/i,
|
114
|
+
// $1
|
115
|
+
/[&*$@%]\d+/,
|
116
|
+
// $_, @_, %!
|
117
|
+
// The negative lookahead prevents from breaking the %= operator
|
118
|
+
/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/
|
119
|
+
],
|
120
|
+
'filehandle': {
|
121
|
+
// <>, <FOO>, _
|
122
|
+
pattern: /<(?![<=])\S*>|\b_\b/,
|
123
|
+
alias: 'symbol'
|
124
|
+
},
|
125
|
+
'vstring': {
|
126
|
+
// v1.2, 1.2.3
|
127
|
+
pattern: /v\d+(\.\d+)*|\d+(\.\d+){2,}/,
|
128
|
+
alias: 'string'
|
129
|
+
},
|
130
|
+
'function': {
|
131
|
+
pattern: /sub [a-z0-9_]+/i,
|
132
|
+
inside: {
|
133
|
+
keyword: /sub/
|
134
|
+
}
|
135
|
+
},
|
136
|
+
'keyword': /\b(any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/,
|
137
|
+
'number': /\b-?(0x[\dA-Fa-f](_?[\dA-Fa-f])*|0b[01](_?[01])*|(\d(_?\d)*)?\.?\d(_?\d)*([Ee][+-]?\d+)?)\b/,
|
138
|
+
'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,
|
139
|
+
'punctuation': /[{}[\];(),:]/
|
140
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.perl={comment:[{pattern:/(^\s*)=\w+[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:[^\\]|\\[\s\S])*?\1/,/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,/("|`)(?:[^\\]|\\[\s\S])*?\1/,/'(?:[^'\\\r\n]|\\.)*'/],regex:[/\b(?:m|qr)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[msixpodualngc]*/,/\b(?:m|qr)\s+([a-zA-Z0-9])(?:[^\\]|\\.)*?\1[msixpodualngc]*/,/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\2(?:[^\\]|\\[\s\S])*?\2[msixpodualngcer]*/,lookbehind:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:[^\\]|\\[\s\S])*?\2(?:[^\\]|\\[\s\S])*?\2[msixpodualngcer]*/,lookbehind:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0},/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?((::)*'?(?!\d)[\w$]+)+(::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(\.\d+)*|\d+(\.\d+){2,}/,alias:"string"},"function":{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b-?(0x[\dA-Fa-f](_?[\dA-Fa-f])*|0b[01](_?[01])*|(\d(_?\d)*)?\.?\d(_?\d)*([Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Prism.languages.insertBefore('php', 'variable', {
|
2
|
+
'this': /\$this\b/,
|
3
|
+
'global': /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/,
|
4
|
+
'scope': {
|
5
|
+
pattern: /\b[\w\\]+::/,
|
6
|
+
inside: {
|
7
|
+
keyword: /(static|self|parent)/,
|
8
|
+
punctuation: /(::|\\)/
|
9
|
+
}
|
10
|
+
}
|
11
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.insertBefore("php","variable",{"this":/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/(static|self|parent)/,punctuation:/(::|\\)/}}});
|
@@ -0,0 +1,110 @@
|
|
1
|
+
/**
|
2
|
+
* Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/
|
3
|
+
* Modified by Miles Johnson: http://milesj.me
|
4
|
+
*
|
5
|
+
* Supports the following:
|
6
|
+
* - Extends clike syntax
|
7
|
+
* - Support for PHP 5.3+ (namespaces, traits, generators, etc)
|
8
|
+
* - Smarter constant and function matching
|
9
|
+
*
|
10
|
+
* Adds the following new token classes:
|
11
|
+
* constant, delimiter, variable, function, package
|
12
|
+
*/
|
13
|
+
|
14
|
+
Prism.languages.php = Prism.languages.extend('clike', {
|
15
|
+
'keyword': /\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,
|
16
|
+
'constant': /\b[A-Z0-9_]{2,}\b/,
|
17
|
+
'comment': {
|
18
|
+
pattern: /(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,
|
19
|
+
lookbehind: true
|
20
|
+
}
|
21
|
+
});
|
22
|
+
|
23
|
+
// Shell-like comments are matched after strings, because they are less
|
24
|
+
// common than strings containing hashes...
|
25
|
+
Prism.languages.insertBefore('php', 'class-name', {
|
26
|
+
'shell-comment': {
|
27
|
+
pattern: /(^|[^\\])#.*/,
|
28
|
+
lookbehind: true,
|
29
|
+
alias: 'comment'
|
30
|
+
}
|
31
|
+
});
|
32
|
+
|
33
|
+
Prism.languages.insertBefore('php', 'keyword', {
|
34
|
+
'delimiter': /\?>|<\?(?:php)?/i,
|
35
|
+
'variable': /\$\w+\b/i,
|
36
|
+
'package': {
|
37
|
+
pattern: /(\\|namespace\s+|use\s+)[\w\\]+/,
|
38
|
+
lookbehind: true,
|
39
|
+
inside: {
|
40
|
+
punctuation: /\\/
|
41
|
+
}
|
42
|
+
}
|
43
|
+
});
|
44
|
+
|
45
|
+
// Must be defined after the function pattern
|
46
|
+
Prism.languages.insertBefore('php', 'operator', {
|
47
|
+
'property': {
|
48
|
+
pattern: /(->)[\w]+/,
|
49
|
+
lookbehind: true
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
53
|
+
// Add HTML support of the markup language exists
|
54
|
+
if (Prism.languages.markup) {
|
55
|
+
|
56
|
+
// Tokenize all inline PHP blocks that are wrapped in <?php ?>
|
57
|
+
// This allows for easy PHP + markup highlighting
|
58
|
+
Prism.hooks.add('before-highlight', function(env) {
|
59
|
+
if (env.language !== 'php') {
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
|
63
|
+
env.tokenStack = [];
|
64
|
+
|
65
|
+
env.backupCode = env.code;
|
66
|
+
env.code = env.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/ig, function(match) {
|
67
|
+
env.tokenStack.push(match);
|
68
|
+
|
69
|
+
return '{{{PHP' + env.tokenStack.length + '}}}';
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
73
|
+
// Restore env.code for other plugins (e.g. line-numbers)
|
74
|
+
Prism.hooks.add('before-insert', function(env) {
|
75
|
+
if (env.language === 'php') {
|
76
|
+
env.code = env.backupCode;
|
77
|
+
delete env.backupCode;
|
78
|
+
}
|
79
|
+
});
|
80
|
+
|
81
|
+
// Re-insert the tokens after highlighting
|
82
|
+
Prism.hooks.add('after-highlight', function(env) {
|
83
|
+
if (env.language !== 'php') {
|
84
|
+
return;
|
85
|
+
}
|
86
|
+
|
87
|
+
for (var i = 0, t; t = env.tokenStack[i]; i++) {
|
88
|
+
// The replace prevents $$, $&, $`, $', $n, $nn from being interpreted as special patterns
|
89
|
+
env.highlightedCode = env.highlightedCode.replace('{{{PHP' + (i + 1) + '}}}', Prism.highlight(t, env.grammar, 'php').replace(/\$/g, '$$$$'));
|
90
|
+
}
|
91
|
+
|
92
|
+
env.element.innerHTML = env.highlightedCode;
|
93
|
+
});
|
94
|
+
|
95
|
+
// Wrap tokens in classes that are missing them
|
96
|
+
Prism.hooks.add('wrap', function(env) {
|
97
|
+
if (env.language === 'php' && env.type === 'markup') {
|
98
|
+
env.content = env.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g, "<span class=\"token php\">$1</span>");
|
99
|
+
}
|
100
|
+
});
|
101
|
+
|
102
|
+
// Add the rules before all others
|
103
|
+
Prism.languages.insertBefore('php', 'comment', {
|
104
|
+
'markup': {
|
105
|
+
pattern: /<[^?]\/?(.*?)>/,
|
106
|
+
inside: Prism.languages.markup
|
107
|
+
},
|
108
|
+
'php': /\{\{\{PHP[0-9]+\}\}\}/
|
109
|
+
});
|
110
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.php=Prism.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0}}),Prism.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),Prism.languages.insertBefore("php","keyword",{delimiter:/\?>|<\?(?:php)?/i,variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),Prism.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),Prism.languages.markup&&(Prism.hooks.add("before-highlight",function(e){"php"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/gi,function(a){return e.tokenStack.push(a),"{{{PHP"+e.tokenStack.length+"}}}"}))}),Prism.hooks.add("before-insert",function(e){"php"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),Prism.hooks.add("after-highlight",function(e){if("php"===e.language){for(var a,n=0;a=e.tokenStack[n];n++)e.highlightedCode=e.highlightedCode.replace("{{{PHP"+(n+1)+"}}}",Prism.highlight(a,e.grammar,"php").replace(/\$/g,"$$$$"));e.element.innerHTML=e.highlightedCode}}),Prism.hooks.add("wrap",function(e){"php"===e.language&&"markup"===e.type&&(e.content=e.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'<span class="token php">$1</span>'))}),Prism.languages.insertBefore("php","comment",{markup:{pattern:/<[^?]\/?(.*?)>/,inside:Prism.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/}));
|
@@ -0,0 +1,48 @@
|
|
1
|
+
Prism.languages.powershell = {
|
2
|
+
'comment': [
|
3
|
+
{
|
4
|
+
pattern: /(^|[^`])<#[\w\W]*?#>/,
|
5
|
+
lookbehind: true
|
6
|
+
},
|
7
|
+
{
|
8
|
+
pattern: /(^|[^`])#.+/,
|
9
|
+
lookbehind: true
|
10
|
+
}
|
11
|
+
],
|
12
|
+
'string': [
|
13
|
+
{
|
14
|
+
pattern: /"(`?[\w\W])*?"/,
|
15
|
+
inside: {
|
16
|
+
'function': {
|
17
|
+
pattern: /[^`]\$\(.*?\)/,
|
18
|
+
// Populated at end of file
|
19
|
+
inside: {}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
},
|
23
|
+
/'([^']|'')*'/
|
24
|
+
],
|
25
|
+
// Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices
|
26
|
+
'namespace': /\[[a-z][\w\W]*?\]/i,
|
27
|
+
'boolean': /\$(true|false)\b/i,
|
28
|
+
'variable': /\$\w+\b/i,
|
29
|
+
// Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example
|
30
|
+
// Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" }
|
31
|
+
// Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" }
|
32
|
+
'function': [
|
33
|
+
/\b(Add-(Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(Csv|Json|StringData)|Convert-Path|ConvertTo-(Csv|Html|Json|Xml)|Copy-(Item|ItemProperty)|Debug-Process|Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(Custom|List|Table|Wide)|Get-(Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(Command|Object)|Move-(Item|ItemProperty)|New-(Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(Job|PSSession)|Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(Computer|Service)|Restore-Computer|Resume-(Job|Service)|Save-Help|Select-(Object|String|Xml)|Send-MailMessage|Set-(Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(Job|Process|Service|Sleep|Transaction)|Stop-(Computer|Job|Process|Service)|Suspend-(Job|Service)|Tee-Object|Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(Event|PSSessionConfiguration)|Update-(FormatData|Help|List|TypeData)|Use-Transaction|Wait-(Event|Job|Process)|Where-Object|Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i,
|
34
|
+
/\b(ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i
|
35
|
+
],
|
36
|
+
// per http://technet.microsoft.com/en-us/library/hh847744.aspx
|
37
|
+
'keyword': /\b(Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,
|
38
|
+
'operator': {
|
39
|
+
pattern: /(\W?)(!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(and|x?or)|(Not)?(Like|Match|Contains|In)|Replace|Join|is(Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,
|
40
|
+
lookbehind: true
|
41
|
+
},
|
42
|
+
'punctuation': /[|{}[\];(),.]/
|
43
|
+
};
|
44
|
+
|
45
|
+
// Variable interpolation inside strings, and nested expressions
|
46
|
+
Prism.languages.powershell.string[0].inside.boolean = Prism.languages.powershell.boolean;
|
47
|
+
Prism.languages.powershell.string[0].inside.variable = Prism.languages.powershell.variable;
|
48
|
+
Prism.languages.powershell.string[0].inside.function.inside = Prism.util.clone(Prism.languages.powershell);
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\w\W]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.+/,lookbehind:!0}],string:[{pattern:/"(`?[\w\W])*?"/,inside:{"function":{pattern:/[^`]\$\(.*?\)/,inside:{}}}},/'([^']|'')*'/],namespace:/\[[a-z][\w\W]*?\]/i,"boolean":/\$(true|false)\b/i,variable:/\$\w+\b/i,"function":[/\b(Add-(Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(Csv|Json|StringData)|Convert-Path|ConvertTo-(Csv|Html|Json|Xml)|Copy-(Item|ItemProperty)|Debug-Process|Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(Custom|List|Table|Wide)|Get-(Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(Command|Object)|Move-(Item|ItemProperty)|New-(Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(Job|PSSession)|Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(Computer|Service)|Restore-Computer|Resume-(Job|Service)|Save-Help|Select-(Object|String|Xml)|Send-MailMessage|Set-(Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(Job|Process|Service|Sleep|Transaction)|Stop-(Computer|Job|Process|Service)|Suspend-(Job|Service)|Tee-Object|Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(Event|PSSessionConfiguration)|Update-(FormatData|Help|List|TypeData)|Use-Transaction|Wait-(Event|Job|Process)|Where-Object|Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i,/\b(ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(and|x?or)|(Not)?(Like|Match|Contains|In)|Replace|Join|is(Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},Prism.languages.powershell.string[0].inside.boolean=Prism.languages.powershell.boolean,Prism.languages.powershell.string[0].inside.variable=Prism.languages.powershell.variable,Prism.languages.powershell.string[0].inside.function.inside=Prism.util.clone(Prism.languages.powershell);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Prism.languages.processing = Prism.languages.extend('clike', {
|
2
|
+
'keyword': /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,
|
3
|
+
'operator': /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/
|
4
|
+
});
|
5
|
+
Prism.languages.insertBefore('processing', 'number', {
|
6
|
+
// Special case: XML is a type
|
7
|
+
'constant': /\b(?!XML\b)[A-Z][A-Z\d_]+\b/,
|
8
|
+
'type': {
|
9
|
+
pattern: /\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/,
|
10
|
+
alias: 'variable'
|
11
|
+
}
|
12
|
+
});
|
13
|
+
|
14
|
+
// Spaces are allowed between function name and parenthesis
|
15
|
+
Prism.languages.processing['function'].pattern = /[a-z0-9_]+(?=\s*\()/i;
|
16
|
+
|
17
|
+
// Class-names is not styled by default
|
18
|
+
Prism.languages.processing['class-name'].alias = 'variable';
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.processing=Prism.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),Prism.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/,alias:"variable"}}),Prism.languages.processing["function"].pattern=/[a-z0-9_]+(?=\s*\()/i,Prism.languages.processing["class-name"].alias="variable";
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Prism.languages.prolog = {
|
2
|
+
// Syntax depends on the implementation
|
3
|
+
'comment': [
|
4
|
+
/%.+/,
|
5
|
+
/\/\*[\s\S]*?\*\//
|
6
|
+
],
|
7
|
+
// Depending on the implementation, strings may allow escaped newlines and quote-escape
|
8
|
+
'string': /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
9
|
+
'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
|
10
|
+
'variable': /\b[A-Z_]\w*/,
|
11
|
+
// FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?
|
12
|
+
'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/,
|
13
|
+
'number': /\b\d+\.?\d*/,
|
14
|
+
// Custom operators are allowed
|
15
|
+
'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
|
16
|
+
'punctuation': /[(){}\[\],]/
|
17
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,"function":/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/};
|
@@ -0,0 +1,131 @@
|
|
1
|
+
(function (Prism) {
|
2
|
+
Prism.languages.puppet = {
|
3
|
+
'heredoc': [
|
4
|
+
// Matches the content of a quoted heredoc string (subject to interpolation)
|
5
|
+
{
|
6
|
+
pattern: /(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,
|
7
|
+
lookbehind: true,
|
8
|
+
alias: 'string',
|
9
|
+
inside: {
|
10
|
+
// Matches the end tag
|
11
|
+
'punctuation': /(?=\S).*\S(?= *$)/
|
12
|
+
// See interpolation below
|
13
|
+
}
|
14
|
+
},
|
15
|
+
// Matches the content of an unquoted heredoc string (no interpolation)
|
16
|
+
{
|
17
|
+
pattern: /(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,
|
18
|
+
lookbehind: true,
|
19
|
+
alias: 'string',
|
20
|
+
inside: {
|
21
|
+
// Matches the end tag
|
22
|
+
'punctuation': /(?=\S).*\S(?= *$)/
|
23
|
+
}
|
24
|
+
},
|
25
|
+
// Matches the start tag of heredoc strings
|
26
|
+
{
|
27
|
+
pattern: /@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,
|
28
|
+
alias: 'string',
|
29
|
+
inside: {
|
30
|
+
'punctuation': {
|
31
|
+
pattern: /(\().+?(?=\))/,
|
32
|
+
lookbehind: true
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
],
|
37
|
+
'multiline-comment': {
|
38
|
+
pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
|
39
|
+
lookbehind: true,
|
40
|
+
alias: 'comment'
|
41
|
+
},
|
42
|
+
'regex': {
|
43
|
+
// Must be prefixed with the keyword "node" or a non-word char
|
44
|
+
pattern: /((?:\bnode\s+|[^\s\w\\]\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,
|
45
|
+
lookbehind: true,
|
46
|
+
inside: {
|
47
|
+
// Extended regexes must have the x flag. They can contain single-line comments.
|
48
|
+
'extended-regex': {
|
49
|
+
pattern: /^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,
|
50
|
+
inside: {
|
51
|
+
'comment': /#.*/
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
},
|
56
|
+
'comment': {
|
57
|
+
pattern: /(^|[^\\])#.*/,
|
58
|
+
lookbehind: true
|
59
|
+
},
|
60
|
+
'string': {
|
61
|
+
// Allow for one nested level of double quotes inside interpolation
|
62
|
+
pattern: /(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|(?!\1)[^\\]|\\[\s\S])*\1/,
|
63
|
+
inside: {
|
64
|
+
'double-quoted': {
|
65
|
+
pattern: /^"[\s\S]*"$/,
|
66
|
+
inside: {
|
67
|
+
// See interpolation below
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
},
|
72
|
+
'variable': {
|
73
|
+
pattern: /\$(?:::)?\w+(?:::\w+)*/,
|
74
|
+
inside: {
|
75
|
+
'punctuation': /::/
|
76
|
+
}
|
77
|
+
},
|
78
|
+
'attr-name': /(?:\w+|\*)(?=\s*=>)/,
|
79
|
+
'function': [
|
80
|
+
{
|
81
|
+
pattern: /(\.)(?!\d)\w+/,
|
82
|
+
lookbehind: true
|
83
|
+
},
|
84
|
+
/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/
|
85
|
+
],
|
86
|
+
'number': /\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,
|
87
|
+
'boolean': /\b(?:true|false)\b/,
|
88
|
+
// Includes words reserved for future use
|
89
|
+
'keyword': /\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,
|
90
|
+
'datatype': {
|
91
|
+
pattern: /\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,
|
92
|
+
alias: 'symbol'
|
93
|
+
},
|
94
|
+
'operator': /=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,
|
95
|
+
'punctuation': /[\[\]{}().,;]|:+/
|
96
|
+
};
|
97
|
+
|
98
|
+
var interpolation = [
|
99
|
+
{
|
100
|
+
// Allow for one nested level of braces inside interpolation
|
101
|
+
pattern: /(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,
|
102
|
+
lookbehind: true,
|
103
|
+
inside: {
|
104
|
+
'short-variable': {
|
105
|
+
// Negative look-ahead prevent wrong highlighting of functions
|
106
|
+
pattern: /(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,
|
107
|
+
lookbehind: true,
|
108
|
+
alias: 'variable',
|
109
|
+
inside: {
|
110
|
+
'punctuation': /::/
|
111
|
+
}
|
112
|
+
},
|
113
|
+
'delimiter': {
|
114
|
+
pattern: /^\$/,
|
115
|
+
alias: 'variable'
|
116
|
+
},
|
117
|
+
rest: Prism.util.clone(Prism.languages.puppet)
|
118
|
+
}
|
119
|
+
},
|
120
|
+
{
|
121
|
+
pattern: /(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,
|
122
|
+
lookbehind: true,
|
123
|
+
alias: 'variable',
|
124
|
+
inside: {
|
125
|
+
'punctuation': /::/
|
126
|
+
}
|
127
|
+
}
|
128
|
+
];
|
129
|
+
Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation;
|
130
|
+
Prism.languages.puppet['string'].inside['double-quoted'].inside.interpolation = interpolation;
|
131
|
+
}(Prism));
|