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.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/lib/prism-rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/prism-abap.js +48 -0
  4. data/vendor/assets/javascripts/prism-actionscript.js +17 -0
  5. data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
  6. data/vendor/assets/javascripts/prism-apl.js +29 -0
  7. data/vendor/assets/javascripts/prism-applescript.js +20 -0
  8. data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
  9. data/vendor/assets/javascripts/prism-aspnet.js +36 -0
  10. data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
  11. data/vendor/assets/javascripts/prism-autoit.js +33 -0
  12. data/vendor/assets/javascripts/prism-bash.js +80 -0
  13. data/vendor/assets/javascripts/prism-basic.js +14 -0
  14. data/vendor/assets/javascripts/prism-batch.js +99 -0
  15. data/vendor/assets/javascripts/prism-bison.js +39 -0
  16. data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
  17. data/vendor/assets/javascripts/prism-bro.js +50 -0
  18. data/vendor/assets/javascripts/prism-c.js +33 -0
  19. data/vendor/assets/javascripts/prism-clike.js +29 -0
  20. data/vendor/assets/javascripts/prism-coffeescript.js +91 -0
  21. data/vendor/assets/javascripts/prism-cpp.js +12 -0
  22. data/vendor/assets/javascripts/prism-crystal.js +53 -0
  23. data/vendor/assets/javascripts/prism-csharp.js +32 -0
  24. data/vendor/assets/javascripts/prism-css-extras.js +15 -0
  25. data/vendor/assets/javascripts/prism-css.js +48 -0
  26. data/vendor/assets/javascripts/prism-d.js +64 -0
  27. data/vendor/assets/javascripts/prism-dart.js +18 -0
  28. data/vendor/assets/javascripts/prism-diff.js +20 -0
  29. data/vendor/assets/javascripts/prism-docker.js +9 -0
  30. data/vendor/assets/javascripts/prism-eiffel.js +24 -0
  31. data/vendor/assets/javascripts/prism-elixir.js +90 -0
  32. data/vendor/assets/javascripts/prism-erlang.js +41 -0
  33. data/vendor/assets/javascripts/prism-fortran.js +37 -0
  34. data/vendor/assets/javascripts/prism-fsharp.js +33 -0
  35. data/vendor/assets/javascripts/prism-gherkin.js +78 -0
  36. data/vendor/assets/javascripts/prism-git.js +68 -0
  37. data/vendor/assets/javascripts/prism-glsl.js +16 -0
  38. data/vendor/assets/javascripts/prism-go.js +9 -0
  39. data/vendor/assets/javascripts/prism-groovy.js +65 -0
  40. data/vendor/assets/javascripts/prism-haml.js +154 -0
  41. data/vendor/assets/javascripts/prism-handlebars.js +83 -0
  42. data/vendor/assets/javascripts/prism-haskell.js +35 -0
  43. data/vendor/assets/javascripts/prism-haxe.js +43 -0
  44. data/vendor/assets/javascripts/prism-http.js +50 -0
  45. data/vendor/assets/javascripts/prism-icon.js +17 -0
  46. data/vendor/assets/javascripts/prism-inform7.js +58 -0
  47. data/vendor/assets/javascripts/prism-ini.js +11 -0
  48. data/vendor/assets/javascripts/prism-j.js +22 -0
  49. data/vendor/assets/javascripts/prism-jade.js +198 -0
  50. data/vendor/assets/javascripts/prism-java.js +16 -0
  51. data/vendor/assets/javascripts/prism-javascript.js +47 -0
  52. data/vendor/assets/javascripts/prism-json.js +11 -0
  53. data/vendor/assets/javascripts/prism-jsx.js +27 -0
  54. data/vendor/assets/javascripts/prism-julia.js +12 -0
  55. data/vendor/assets/javascripts/prism-keyman.js +14 -0
  56. data/vendor/assets/javascripts/prism-kotlin.js +62 -0
  57. data/vendor/assets/javascripts/prism-latex.js +61 -0
  58. data/vendor/assets/javascripts/prism-less.js +60 -0
  59. data/vendor/assets/javascripts/prism-lolcode.js +54 -0
  60. data/vendor/assets/javascripts/prism-lua.js +20 -0
  61. data/vendor/assets/javascripts/prism-makefile.js +31 -0
  62. data/vendor/assets/javascripts/prism-markdown.js +120 -0
  63. data/vendor/assets/javascripts/prism-markup.js +46 -0
  64. data/vendor/assets/javascripts/prism-matlab.js +14 -0
  65. data/vendor/assets/javascripts/prism-mel.js +39 -0
  66. data/vendor/assets/javascripts/prism-mizar.js +12 -0
  67. data/vendor/assets/javascripts/prism-monkey.js +25 -0
  68. data/vendor/assets/javascripts/prism-nasm.js +24 -0
  69. data/vendor/assets/javascripts/prism-nginx.js +11 -0
  70. data/vendor/assets/javascripts/prism-nim.js +30 -0
  71. data/vendor/assets/javascripts/prism-nix.js +39 -0
  72. data/vendor/assets/javascripts/prism-normalize-whitespace.js +3 -1
  73. data/vendor/assets/javascripts/prism-nsis.js +19 -0
  74. data/vendor/assets/javascripts/prism-objectivec.js +5 -0
  75. data/vendor/assets/javascripts/prism-ocaml.js +21 -0
  76. data/vendor/assets/javascripts/prism-oz.js +21 -0
  77. data/vendor/assets/javascripts/prism-parigp.js +27 -0
  78. data/vendor/assets/javascripts/prism-parser.js +66 -0
  79. data/vendor/assets/javascripts/prism-pascal.js +50 -0
  80. data/vendor/assets/javascripts/prism-perl.js +140 -0
  81. data/vendor/assets/javascripts/prism-php-extras.js +11 -0
  82. data/vendor/assets/javascripts/prism-php.js +110 -0
  83. data/vendor/assets/javascripts/prism-powershell.js +52 -0
  84. data/vendor/assets/javascripts/prism-processing.js +18 -0
  85. data/vendor/assets/javascripts/prism-prolog.js +17 -0
  86. data/vendor/assets/javascripts/prism-protobuf.js +8 -0
  87. data/vendor/assets/javascripts/prism-puppet.js +131 -0
  88. data/vendor/assets/javascripts/prism-pure.js +77 -0
  89. data/vendor/assets/javascripts/prism-python.js +27 -0
  90. data/vendor/assets/javascripts/prism-q.js +44 -0
  91. data/vendor/assets/javascripts/prism-qore.js +17 -0
  92. data/vendor/assets/javascripts/prism-r.js +19 -0
  93. data/vendor/assets/javascripts/prism-rest.js +205 -0
  94. data/vendor/assets/javascripts/prism-rip.js +28 -0
  95. data/vendor/assets/javascripts/prism-roboconf.js +27 -0
  96. data/vendor/assets/javascripts/prism-ruby.js +110 -0
  97. data/vendor/assets/javascripts/prism-rust.js +53 -0
  98. data/vendor/assets/javascripts/prism-sas.js +31 -0
  99. data/vendor/assets/javascripts/prism-sass.js +73 -0
  100. data/vendor/assets/javascripts/prism-scala.js +18 -0
  101. data/vendor/assets/javascripts/prism-scheme.js +26 -0
  102. data/vendor/assets/javascripts/prism-scss.js +60 -0
  103. data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
  104. data/vendor/assets/javascripts/prism-smarty.js +127 -0
  105. data/vendor/assets/javascripts/prism-sql.js +17 -0
  106. data/vendor/assets/javascripts/prism-stylus.js +102 -0
  107. data/vendor/assets/javascripts/prism-swift.js +25 -0
  108. data/vendor/assets/javascripts/prism-tcl.js +43 -0
  109. data/vendor/assets/javascripts/prism-textile.js +254 -0
  110. data/vendor/assets/javascripts/prism-twig.js +46 -0
  111. data/vendor/assets/javascripts/prism-typescript.js +3 -0
  112. data/vendor/assets/javascripts/prism-verilog.js +17 -0
  113. data/vendor/assets/javascripts/prism-vhdl.js +23 -0
  114. data/vendor/assets/javascripts/prism-vim.js +10 -0
  115. data/vendor/assets/javascripts/prism-wiki.js +81 -0
  116. data/vendor/assets/javascripts/prism-yaml.js +44 -0
  117. data/vendor/assets/javascripts/prism.js +37 -308
  118. data/vendor/assets/stylesheets/prism-vs.css +139 -0
  119. metadata +120 -163
  120. data/vendor/assets/javascripts/prism-abap.min.js +0 -1
  121. data/vendor/assets/javascripts/prism-actionscript.min.js +0 -1
  122. data/vendor/assets/javascripts/prism-apacheconf.min.js +0 -1
  123. data/vendor/assets/javascripts/prism-apl.min.js +0 -1
  124. data/vendor/assets/javascripts/prism-applescript.min.js +0 -1
  125. data/vendor/assets/javascripts/prism-asciidoc.min.js +0 -1
  126. data/vendor/assets/javascripts/prism-aspnet.min.js +0 -1
  127. data/vendor/assets/javascripts/prism-autohotkey.min.js +0 -1
  128. data/vendor/assets/javascripts/prism-autoit.min.js +0 -1
  129. data/vendor/assets/javascripts/prism-bash.min.js +0 -1
  130. data/vendor/assets/javascripts/prism-basic.min.js +0 -1
  131. data/vendor/assets/javascripts/prism-batch.min.js +0 -1
  132. data/vendor/assets/javascripts/prism-bison.min.js +0 -1
  133. data/vendor/assets/javascripts/prism-brainfuck.min.js +0 -1
  134. data/vendor/assets/javascripts/prism-bro.min.js +0 -1
  135. data/vendor/assets/javascripts/prism-c.min.js +0 -1
  136. data/vendor/assets/javascripts/prism-clike.min.js +0 -1
  137. data/vendor/assets/javascripts/prism-coffeescript.min.js +0 -1
  138. data/vendor/assets/javascripts/prism-core.min.js +0 -1
  139. data/vendor/assets/javascripts/prism-cpp.min.js +0 -1
  140. data/vendor/assets/javascripts/prism-crystal.min.js +0 -1
  141. data/vendor/assets/javascripts/prism-csharp.min.js +0 -1
  142. data/vendor/assets/javascripts/prism-css-extras.min.js +0 -1
  143. data/vendor/assets/javascripts/prism-css.min.js +0 -1
  144. data/vendor/assets/javascripts/prism-d.min.js +0 -1
  145. data/vendor/assets/javascripts/prism-dart.min.js +0 -1
  146. data/vendor/assets/javascripts/prism-diff.min.js +0 -1
  147. data/vendor/assets/javascripts/prism-docker.min.js +0 -1
  148. data/vendor/assets/javascripts/prism-eiffel.min.js +0 -1
  149. data/vendor/assets/javascripts/prism-elixir.min.js +0 -1
  150. data/vendor/assets/javascripts/prism-erlang.min.js +0 -1
  151. data/vendor/assets/javascripts/prism-fortran.min.js +0 -1
  152. data/vendor/assets/javascripts/prism-fsharp.min.js +0 -1
  153. data/vendor/assets/javascripts/prism-gherkin.min.js +0 -1
  154. data/vendor/assets/javascripts/prism-git.min.js +0 -1
  155. data/vendor/assets/javascripts/prism-glsl.min.js +0 -1
  156. data/vendor/assets/javascripts/prism-go.min.js +0 -1
  157. data/vendor/assets/javascripts/prism-groovy.min.js +0 -1
  158. data/vendor/assets/javascripts/prism-haml.min.js +0 -1
  159. data/vendor/assets/javascripts/prism-handlebars.min.js +0 -1
  160. data/vendor/assets/javascripts/prism-haskell.min.js +0 -1
  161. data/vendor/assets/javascripts/prism-haxe.min.js +0 -1
  162. data/vendor/assets/javascripts/prism-http.min.js +0 -1
  163. data/vendor/assets/javascripts/prism-icon.min.js +0 -1
  164. data/vendor/assets/javascripts/prism-inform7.min.js +0 -1
  165. data/vendor/assets/javascripts/prism-ini.min.js +0 -1
  166. data/vendor/assets/javascripts/prism-j.min.js +0 -1
  167. data/vendor/assets/javascripts/prism-jade.min.js +0 -1
  168. data/vendor/assets/javascripts/prism-java.min.js +0 -1
  169. data/vendor/assets/javascripts/prism-javascript.min.js +0 -1
  170. data/vendor/assets/javascripts/prism-json.min.js +0 -1
  171. data/vendor/assets/javascripts/prism-jsx.min.js +0 -1
  172. data/vendor/assets/javascripts/prism-julia.min.js +0 -1
  173. data/vendor/assets/javascripts/prism-keyman.min.js +0 -1
  174. data/vendor/assets/javascripts/prism-kotlin.min.js +0 -1
  175. data/vendor/assets/javascripts/prism-latex.min.js +0 -1
  176. data/vendor/assets/javascripts/prism-less.min.js +0 -1
  177. data/vendor/assets/javascripts/prism-lolcode.min.js +0 -1
  178. data/vendor/assets/javascripts/prism-lua.min.js +0 -1
  179. data/vendor/assets/javascripts/prism-makefile.min.js +0 -1
  180. data/vendor/assets/javascripts/prism-markdown.min.js +0 -1
  181. data/vendor/assets/javascripts/prism-markup.min.js +0 -1
  182. data/vendor/assets/javascripts/prism-matlab.min.js +0 -1
  183. data/vendor/assets/javascripts/prism-mel.min.js +0 -1
  184. data/vendor/assets/javascripts/prism-mizar.min.js +0 -1
  185. data/vendor/assets/javascripts/prism-monkey.min.js +0 -1
  186. data/vendor/assets/javascripts/prism-nasm.min.js +0 -1
  187. data/vendor/assets/javascripts/prism-nginx.min.js +0 -1
  188. data/vendor/assets/javascripts/prism-nim.min.js +0 -1
  189. data/vendor/assets/javascripts/prism-nix.min.js +0 -1
  190. data/vendor/assets/javascripts/prism-nsis.min.js +0 -1
  191. data/vendor/assets/javascripts/prism-objectivec.min.js +0 -1
  192. data/vendor/assets/javascripts/prism-ocaml.min.js +0 -1
  193. data/vendor/assets/javascripts/prism-oz.min.js +0 -1
  194. data/vendor/assets/javascripts/prism-parigp.min.js +0 -1
  195. data/vendor/assets/javascripts/prism-parser.min.js +0 -1
  196. data/vendor/assets/javascripts/prism-pascal.min.js +0 -1
  197. data/vendor/assets/javascripts/prism-perl.min.js +0 -1
  198. data/vendor/assets/javascripts/prism-php-extras.min.js +0 -1
  199. data/vendor/assets/javascripts/prism-php.min.js +0 -1
  200. data/vendor/assets/javascripts/prism-powershell.min.js +0 -1
  201. data/vendor/assets/javascripts/prism-processing.min.js +0 -1
  202. data/vendor/assets/javascripts/prism-prolog.min.js +0 -1
  203. data/vendor/assets/javascripts/prism-protobuf.min.js +0 -1
  204. data/vendor/assets/javascripts/prism-puppet.min.js +0 -1
  205. data/vendor/assets/javascripts/prism-pure.min.js +0 -1
  206. data/vendor/assets/javascripts/prism-python.min.js +0 -1
  207. data/vendor/assets/javascripts/prism-q.min.js +0 -1
  208. data/vendor/assets/javascripts/prism-qore.min.js +0 -1
  209. data/vendor/assets/javascripts/prism-r.min.js +0 -1
  210. data/vendor/assets/javascripts/prism-rest.min.js +0 -1
  211. data/vendor/assets/javascripts/prism-rip.min.js +0 -1
  212. data/vendor/assets/javascripts/prism-roboconf.min.js +0 -1
  213. data/vendor/assets/javascripts/prism-ruby.min.js +0 -1
  214. data/vendor/assets/javascripts/prism-rust.min.js +0 -1
  215. data/vendor/assets/javascripts/prism-sas.min.js +0 -1
  216. data/vendor/assets/javascripts/prism-sass.min.js +0 -1
  217. data/vendor/assets/javascripts/prism-scala.min.js +0 -1
  218. data/vendor/assets/javascripts/prism-scheme.min.js +0 -1
  219. data/vendor/assets/javascripts/prism-scss.min.js +0 -1
  220. data/vendor/assets/javascripts/prism-smalltalk.min.js +0 -1
  221. data/vendor/assets/javascripts/prism-smarty.min.js +0 -1
  222. data/vendor/assets/javascripts/prism-sql.min.js +0 -1
  223. data/vendor/assets/javascripts/prism-stylus.min.js +0 -1
  224. data/vendor/assets/javascripts/prism-swift.min.js +0 -1
  225. data/vendor/assets/javascripts/prism-tcl.min.js +0 -1
  226. data/vendor/assets/javascripts/prism-textile.min.js +0 -1
  227. data/vendor/assets/javascripts/prism-twig.min.js +0 -1
  228. data/vendor/assets/javascripts/prism-typescript.min.js +0 -1
  229. data/vendor/assets/javascripts/prism-verilog.min.js +0 -1
  230. data/vendor/assets/javascripts/prism-vhdl.min.js +0 -1
  231. data/vendor/assets/javascripts/prism-vim.min.js +0 -1
  232. data/vendor/assets/javascripts/prism-wiki.min.js +0 -1
  233. data/vendor/assets/javascripts/prism-yaml.min.js +0 -1
@@ -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,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,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,52 @@
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
+ greedy: true,
16
+ inside: {
17
+ 'function': {
18
+ pattern: /[^`]\$\(.*?\)/,
19
+ // Populated at end of file
20
+ inside: {}
21
+ }
22
+ }
23
+ },
24
+ {
25
+ pattern: /'([^']|'')*'/,
26
+ greedy: true
27
+ }
28
+ ],
29
+ // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices
30
+ 'namespace': /\[[a-z][\w\W]*?\]/i,
31
+ 'boolean': /\$(true|false)\b/i,
32
+ 'variable': /\$\w+\b/i,
33
+ // Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example
34
+ // Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" }
35
+ // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" }
36
+ 'function': [
37
+ /\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,
38
+ /\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
39
+ ],
40
+ // per http://technet.microsoft.com/en-us/library/hh847744.aspx
41
+ '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,
42
+ 'operator': {
43
+ 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,
44
+ lookbehind: true
45
+ },
46
+ 'punctuation': /[|{}[\];(),.]/
47
+ };
48
+
49
+ // Variable interpolation inside strings, and nested expressions
50
+ Prism.languages.powershell.string[0].inside.boolean = Prism.languages.powershell.boolean;
51
+ Prism.languages.powershell.string[0].inside.variable = Prism.languages.powershell.variable;
52
+ 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,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,8 @@
1
+ Prism.languages.protobuf = Prism.languages.extend('clike', {
2
+ keyword: /\b(package|import|message|enum)\b/,
3
+ builtin: /\b(required|repeated|optional|reserved)\b/,
4
+ primitive: {
5
+ pattern: /\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,
6
+ alias: 'symbol'
7
+ }
8
+ });
@@ -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));