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,41 @@
1
+ Prism.languages.erlang = {
2
+ 'comment': /%.+/,
3
+ 'string': /"(?:\\?.)*?"/,
4
+ 'quoted-function': {
5
+ pattern: /'(?:\\.|[^'\\])+'(?=\()/,
6
+ alias: 'function'
7
+ },
8
+ 'quoted-atom': {
9
+ pattern: /'(?:\\.|[^'\\])+'/,
10
+ alias: 'atom'
11
+ },
12
+ 'boolean': /\b(?:true|false)\b/,
13
+ 'keyword': /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,
14
+ 'number': [
15
+ /\$\\?./,
16
+ /\d+#[a-z0-9]+/i,
17
+ /(?:\b|-)\d*\.?\d+([Ee][+-]?\d+)?\b/
18
+ ],
19
+ 'function': /\b[a-z][\w@]*(?=\()/,
20
+ 'variable': {
21
+ // Look-behind is used to prevent wrong highlighting of atoms containing "@"
22
+ pattern: /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,
23
+ lookbehind: true
24
+ },
25
+ 'operator': [
26
+ /[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,
27
+ {
28
+ // We don't want to match <<
29
+ pattern: /(^|[^<])<(?!<)/,
30
+ lookbehind: true
31
+ },
32
+ {
33
+ // We don't want to match >>
34
+ pattern: /(^|[^>])>(?!>)/,
35
+ lookbehind: true
36
+ }
37
+ ],
38
+ 'atom': /\b[a-z][\w@]*/,
39
+ 'punctuation': /[()[\]{}:;,.#|]|<<|>>/
40
+
41
+ };
@@ -0,0 +1,37 @@
1
+ Prism.languages.fortran = {
2
+ 'quoted-number': {
3
+ pattern: /[BOZ](['"])[A-F0-9]+\1/i,
4
+ alias: 'number'
5
+ },
6
+ 'string': {
7
+ pattern: /(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,
8
+ inside: {
9
+ 'comment': {
10
+ pattern: /(&(?:\r\n?|\n)\s*)!.*/,
11
+ lookbehind: true
12
+ }
13
+ }
14
+ },
15
+ 'comment': /!.*/,
16
+ 'boolean': /\.(?:TRUE|FALSE)\.(?:_\w+)?/i,
17
+ 'number': /(?:\b|[+-])(?:\d+(?:\.\d*)?|\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,
18
+ 'keyword': [
19
+ // Types
20
+ /\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,
21
+ // END statements
22
+ /\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,
23
+ // Statements
24
+ /\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,
25
+ // Others
26
+ /\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i
27
+ ],
28
+ 'operator': [
29
+ /\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,
30
+ {
31
+ // Use lookbehind to prevent confusion with (/ /)
32
+ pattern: /(^|(?!\().)\/(?!\))/,
33
+ lookbehind: true
34
+ }
35
+ ],
36
+ 'punctuation': /\(\/|\/\)|[(),;:&]/
37
+ };
@@ -0,0 +1,33 @@
1
+ Prism.languages.fsharp = Prism.languages.extend('clike', {
2
+ 'comment': [
3
+ {
4
+ pattern: /(^|[^\\])\(\*[\w\W]*?\*\)/,
5
+ lookbehind: true
6
+ },
7
+ {
8
+ pattern: /(^|[^\\:])\/\/.*/,
9
+ lookbehind: true
10
+ }
11
+ ],
12
+ 'keyword': /\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,
13
+ 'string': /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\\1|\\?(?!\1)[\s\S])*\1)B?/,
14
+ 'number': [
15
+ /\b-?0x[\da-fA-F]+(un|lf|LF)?\b/,
16
+ /\b-?0b[01]+(y|uy)?\b/,
17
+ /\b-?(\d*\.?\d+|\d+\.)([fFmM]|[eE][+-]?\d+)?\b/,
18
+ /\b-?\d+(y|uy|s|us|l|u|ul|L|UL|I)?\b/
19
+ ]
20
+ });
21
+ Prism.languages.insertBefore('fsharp', 'keyword', {
22
+ 'preprocessor': {
23
+ pattern: /^[^\r\n\S]*#.*/m,
24
+ alias: 'property',
25
+ inside: {
26
+ 'directive': {
27
+ pattern: /(\s*#)\b(else|endif|if|light|line|nowarn)\b/,
28
+ lookbehind: true,
29
+ alias: 'keyword'
30
+ }
31
+ }
32
+ }
33
+ });
@@ -0,0 +1,78 @@
1
+ Prism.languages.gherkin = {
2
+ 'pystring': {
3
+ pattern: /("""|''')[\s\S]+?\1/,
4
+ alias: 'string'
5
+ },
6
+ 'comment': {
7
+ pattern: /((^|\r?\n|\r)[ \t]*)#.*/,
8
+ lookbehind: true
9
+ },
10
+ 'tag': {
11
+ pattern: /((^|\r?\n|\r)[ \t]*)@\S*/,
12
+ lookbehind: true
13
+ },
14
+ 'feature': {
15
+ pattern: /((^|\r?\n|\r)[ \t]*)(Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):([^:]+(?:\r?\n|\r|$))*/,
16
+ lookbehind: true,
17
+ inside: {
18
+ 'important': {
19
+ pattern: /(:)[^\r\n]+/,
20
+ lookbehind: true
21
+ },
22
+ keyword: /[^:\r\n]+:/
23
+ }
24
+ },
25
+ 'scenario': {
26
+ pattern: /((^|\r?\n|\r)[ \t]*)(Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/,
27
+ lookbehind: true,
28
+ inside: {
29
+ 'important': {
30
+ pattern: /(:)[^\r\n]*/,
31
+ lookbehind: true
32
+ },
33
+ keyword: /[^:\r\n]+:/
34
+ }
35
+ },
36
+ 'table-body': {
37
+ pattern: /((?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*)+/,
38
+ lookbehind: true,
39
+ inside: {
40
+ 'outline': {
41
+ pattern: /<[^>]+?>/,
42
+ alias: 'variable'
43
+ },
44
+ 'td': {
45
+ pattern: /\s*[^\s|][^|]*/,
46
+ alias: 'string'
47
+ },
48
+ 'punctuation': /\|/
49
+ }
50
+ },
51
+ 'table-head': {
52
+ pattern: /((?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*)/,
53
+ inside: {
54
+ 'th': {
55
+ pattern: /\s*[^\s|][^|]*/,
56
+ alias: 'variable'
57
+ },
58
+ 'punctuation': /\|/
59
+ }
60
+ },
61
+ 'atrule': {
62
+ pattern: /((?:\r?\n|\r)[ \t]+)('ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t]+)/,
63
+ lookbehind: true
64
+ },
65
+ 'string': {
66
+ pattern: /("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/,
67
+ inside: {
68
+ 'outline': {
69
+ pattern: /<[^>]+?>/,
70
+ alias: 'variable'
71
+ }
72
+ }
73
+ },
74
+ 'outline': {
75
+ pattern: /<[^>]+?>/,
76
+ alias: 'variable'
77
+ }
78
+ };
@@ -0,0 +1,68 @@
1
+ Prism.languages.git = {
2
+ /*
3
+ * A simple one line comment like in a git status command
4
+ * For instance:
5
+ * $ git status
6
+ * # On branch infinite-scroll
7
+ * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,
8
+ * # and have 1 and 2 different commits each, respectively.
9
+ * nothing to commit (working directory clean)
10
+ */
11
+ 'comment': /^#.*/m,
12
+
13
+ /*
14
+ * Regexp to match the changed lines in a git diff output. Check the example below.
15
+ */
16
+ 'deleted': /^[-–].*/m,
17
+ 'inserted': /^\+.*/m,
18
+
19
+ /*
20
+ * a string (double and simple quote)
21
+ */
22
+ 'string': /("|')(\\?.)*?\1/m,
23
+
24
+ /*
25
+ * a git command. It starts with a random prompt finishing by a $, then "git" then some other parameters
26
+ * For instance:
27
+ * $ git add file.txt
28
+ */
29
+ 'command': {
30
+ pattern: /^.*\$ git .*$/m,
31
+ inside: {
32
+ /*
33
+ * A git command can contain a parameter starting by a single or a double dash followed by a string
34
+ * For instance:
35
+ * $ git diff --cached
36
+ * $ git log -p
37
+ */
38
+ 'parameter': /\s(--|-)\w+/m
39
+ }
40
+ },
41
+
42
+ /*
43
+ * Coordinates displayed in a git diff command
44
+ * For instance:
45
+ * $ git diff
46
+ * diff --git file.txt file.txt
47
+ * index 6214953..1d54a52 100644
48
+ * --- file.txt
49
+ * +++ file.txt
50
+ * @@ -1 +1,2 @@
51
+ * -Here's my tetx file
52
+ * +Here's my text file
53
+ * +And this is the second line
54
+ */
55
+ 'coord': /^@@.*@@$/m,
56
+
57
+ /*
58
+ * Match a "commit [SHA1]" line in a git log output.
59
+ * For instance:
60
+ * $ git log
61
+ * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09
62
+ * Author: lgiraudel
63
+ * Date: Mon Feb 17 11:18:34 2014 +0100
64
+ *
65
+ * Add of a new line
66
+ */
67
+ 'commit_sha1': /^commit \w{40}$/m
68
+ };
@@ -0,0 +1,16 @@
1
+ Prism.languages.glsl = Prism.languages.extend('clike', {
2
+ 'comment': [
3
+ /\/\*[\w\W]*?\*\//,
4
+ /\/\/(?:\\(?:\r\n|[\s\S])|.)*/
5
+ ],
6
+ 'number': /\b(?:0x[\da-f]+|(?:\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?)[ulf]*\b/i,
7
+ 'keyword': /\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/
8
+ });
9
+
10
+ Prism.languages.insertBefore('glsl', 'comment', {
11
+ 'preprocessor': {
12
+ pattern: /(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,
13
+ lookbehind: true,
14
+ alias: 'builtin'
15
+ }
16
+ });
@@ -0,0 +1,9 @@
1
+ Prism.languages.go = Prism.languages.extend('clike', {
2
+ 'keyword': /\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,
3
+ 'builtin': /\b(bool|byte|complex(64|128)|error|float(32|64)|rune|string|u?int(8|16|32|64|)|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(ln)?|real|recover)\b/,
4
+ 'boolean': /\b(_|iota|nil|true|false)\b/,
5
+ 'operator': /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,
6
+ 'number': /\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i,
7
+ 'string': /("|'|`)(\\?.|\r|\n)*?\1/
8
+ });
9
+ delete Prism.languages.go['class-name'];
@@ -0,0 +1,65 @@
1
+ Prism.languages.groovy = Prism.languages.extend('clike', {
2
+ 'keyword': /\b(as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,
3
+ 'string': [
4
+ {
5
+ pattern: /("""|''')[\W\w]*?\1|(\$\/)(\$\/\$|[\W\w])*?\/\$/,
6
+ greedy: true
7
+ },
8
+ {
9
+ pattern: /("|'|\/)(?:\\?.)*?\1/,
10
+ greedy: true
11
+ },
12
+ ],
13
+ 'number': /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,
14
+ 'operator': {
15
+ pattern: /(^|[^.])(~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
16
+ lookbehind: true
17
+ },
18
+ 'punctuation': /\.+|[{}[\];(),:$]/
19
+ });
20
+
21
+ Prism.languages.insertBefore('groovy', 'string', {
22
+ 'shebang': {
23
+ pattern: /#!.+/,
24
+ alias: 'comment'
25
+ }
26
+ });
27
+
28
+ Prism.languages.insertBefore('groovy', 'punctuation', {
29
+ 'spock-block': /\b(setup|given|when|then|and|cleanup|expect|where):/
30
+ });
31
+
32
+ Prism.languages.insertBefore('groovy', 'function', {
33
+ 'annotation': {
34
+ alias: 'punctuation',
35
+ pattern: /(^|[^.])@\w+/,
36
+ lookbehind: true
37
+ }
38
+ });
39
+
40
+ // Handle string interpolation
41
+ Prism.hooks.add('wrap', function(env) {
42
+ if (env.language === 'groovy' && env.type === 'string') {
43
+ var delimiter = env.content[0];
44
+
45
+ if (delimiter != "'") {
46
+ var pattern = /([^\\])(\$(\{.*?\}|[\w\.]+))/;
47
+ if (delimiter === '$') {
48
+ pattern = /([^\$])(\$(\{.*?\}|[\w\.]+))/;
49
+ }
50
+
51
+ // To prevent double HTML-ecoding we have to decode env.content first
52
+ env.content = env.content.replace(/&amp;/g, '&').replace(/&lt;/g, '<');
53
+
54
+ env.content = Prism.highlight(env.content, {
55
+ 'expression': {
56
+ pattern: pattern,
57
+ lookbehind: true,
58
+ inside: Prism.languages.groovy
59
+ }
60
+ });
61
+
62
+ env.classes.push(delimiter === '/' ? 'regex' : 'gstring');
63
+ }
64
+ }
65
+ });
@@ -0,0 +1,154 @@
1
+ /* TODO
2
+ Handle multiline code after tag
3
+ %foo= some |
4
+ multiline |
5
+ code |
6
+ */
7
+
8
+ (function(Prism) {
9
+
10
+ Prism.languages.haml = {
11
+ // Multiline stuff should appear before the rest
12
+
13
+ 'multiline-comment': {
14
+ pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*((?:\r?\n|\r)\2[\t ]+.+)*/,
15
+ lookbehind: true,
16
+ alias: 'comment'
17
+ },
18
+
19
+ 'multiline-code': [
20
+ {
21
+ pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*((?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*((?:\r?\n|\r)\2[\t ]+.+)/,
22
+ lookbehind: true,
23
+ inside: {
24
+ rest: Prism.languages.ruby
25
+ }
26
+ },
27
+ {
28
+ pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*((?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,
29
+ lookbehind: true,
30
+ inside: {
31
+ rest: Prism.languages.ruby
32
+ }
33
+ }
34
+ ],
35
+
36
+ // See at the end of the file for known filters
37
+ 'filter': {
38
+ pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+((?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,
39
+ lookbehind: true,
40
+ inside: {
41
+ 'filter-name': {
42
+ pattern: /^:[\w-]+/,
43
+ alias: 'variable'
44
+ }
45
+ }
46
+ },
47
+
48
+ 'markup': {
49
+ pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/,
50
+ lookbehind: true,
51
+ inside: {
52
+ rest: Prism.languages.markup
53
+ }
54
+ },
55
+ 'doctype': {
56
+ pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,
57
+ lookbehind: true
58
+ },
59
+ 'tag': {
60
+ // Allows for one nested group of braces
61
+ pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,
62
+ lookbehind: true,
63
+ inside: {
64
+ 'attributes': [
65
+ {
66
+ // Lookbehind tries to prevent interpolations for breaking it all
67
+ // Allows for one nested group of braces
68
+ pattern: /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,
69
+ lookbehind: true,
70
+ inside: {
71
+ rest: Prism.languages.ruby
72
+ }
73
+ },
74
+ {
75
+ pattern: /\([^)]+\)/,
76
+ inside: {
77
+ 'attr-value': {
78
+ pattern: /(=\s*)(?:"(?:\\?.)*?"|[^)\s]+)/,
79
+ lookbehind: true
80
+ },
81
+ 'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/,
82
+ 'punctuation': /[=(),]/
83
+ }
84
+ },
85
+ {
86
+ pattern: /\[[^\]]+\]/,
87
+ inside: {
88
+ rest: Prism.languages.ruby
89
+ }
90
+ }
91
+ ],
92
+ 'punctuation': /[<>]/
93
+ }
94
+ },
95
+ 'code': {
96
+ pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,
97
+ lookbehind: true,
98
+ inside: {
99
+ rest: Prism.languages.ruby
100
+ }
101
+ },
102
+ // Interpolations in plain text
103
+ 'interpolation': {
104
+ pattern: /#\{[^}]+\}/,
105
+ inside: {
106
+ 'delimiter': {
107
+ pattern: /^#\{|\}$/,
108
+ alias: 'punctuation'
109
+ },
110
+ rest: Prism.languages.ruby
111
+ }
112
+ },
113
+ 'punctuation': {
114
+ pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,
115
+ lookbehind: true
116
+ }
117
+ };
118
+
119
+ var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}((?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+';
120
+
121
+ // Non exhaustive list of available filters and associated languages
122
+ var filters = [
123
+ 'css',
124
+ {filter:'coffee',language:'coffeescript'},
125
+ 'erb',
126
+ 'javascript',
127
+ 'less',
128
+ 'markdown',
129
+ 'ruby',
130
+ 'scss',
131
+ 'textile'
132
+ ];
133
+ var all_filters = {};
134
+ for (var i = 0, l = filters.length; i < l; i++) {
135
+ var filter = filters[i];
136
+ filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
137
+ if (Prism.languages[filter.language]) {
138
+ all_filters['filter-' + filter.filter] = {
139
+ pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter)),
140
+ lookbehind: true,
141
+ inside: {
142
+ 'filter-name': {
143
+ pattern: /^:[\w-]+/,
144
+ alias: 'variable'
145
+ },
146
+ rest: Prism.languages[filter.language]
147
+ }
148
+ }
149
+ }
150
+ }
151
+
152
+ Prism.languages.insertBefore('haml', 'filter', all_filters);
153
+
154
+ }(Prism));