prism-rails 1.19.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +22 -1
  4. data/lib/prism-rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/languages/prism-abap.js +17 -17
  6. data/vendor/assets/javascripts/languages/prism-abnf.js +3 -3
  7. data/vendor/assets/javascripts/languages/prism-actionscript.js +6 -2
  8. data/vendor/assets/javascripts/languages/prism-ada.js +9 -6
  9. data/vendor/assets/javascripts/languages/prism-agda.js +24 -0
  10. data/vendor/assets/javascripts/languages/prism-al.js +25 -0
  11. data/vendor/assets/javascripts/languages/prism-antlr4.js +1 -1
  12. data/vendor/assets/javascripts/languages/prism-apacheconf.js +3 -3
  13. data/vendor/assets/javascripts/languages/prism-apex.js +65 -0
  14. data/vendor/assets/javascripts/languages/prism-apl.js +3 -3
  15. data/vendor/assets/javascripts/languages/prism-applescript.js +5 -8
  16. data/vendor/assets/javascripts/languages/prism-aql.js +14 -6
  17. data/vendor/assets/javascripts/languages/prism-arduino.js +5 -3
  18. data/vendor/assets/javascripts/languages/prism-arff.js +1 -1
  19. data/vendor/assets/javascripts/languages/prism-armasm.js +49 -0
  20. data/vendor/assets/javascripts/languages/prism-arturo.js +105 -0
  21. data/vendor/assets/javascripts/languages/prism-asciidoc.js +13 -13
  22. data/vendor/assets/javascripts/languages/prism-asm6502.js +15 -14
  23. data/vendor/assets/javascripts/languages/prism-asmatmel.js +43 -0
  24. data/vendor/assets/javascripts/languages/prism-aspnet.js +6 -6
  25. data/vendor/assets/javascripts/languages/prism-autohotkey.js +31 -14
  26. data/vendor/assets/javascripts/languages/prism-autoit.js +16 -16
  27. data/vendor/assets/javascripts/languages/prism-avisynth.js +188 -0
  28. data/vendor/assets/javascripts/languages/prism-avro-idl.js +50 -0
  29. data/vendor/assets/javascripts/languages/prism-awk.js +32 -0
  30. data/vendor/assets/javascripts/languages/prism-bash.js +60 -22
  31. data/vendor/assets/javascripts/languages/prism-basic.js +4 -4
  32. data/vendor/assets/javascripts/languages/prism-batch.js +10 -10
  33. data/vendor/assets/javascripts/languages/prism-bbcode.js +3 -1
  34. data/vendor/assets/javascripts/languages/prism-bbj.js +19 -0
  35. data/vendor/assets/javascripts/languages/prism-bicep.js +77 -0
  36. data/vendor/assets/javascripts/languages/prism-birb.js +23 -0
  37. data/vendor/assets/javascripts/languages/prism-bison.js +2 -2
  38. data/vendor/assets/javascripts/languages/prism-bqn.js +63 -0
  39. data/vendor/assets/javascripts/languages/prism-brainfuck.js +1 -1
  40. data/vendor/assets/javascripts/languages/prism-brightscript.js +2 -2
  41. data/vendor/assets/javascripts/languages/prism-bro.js +9 -20
  42. data/vendor/assets/javascripts/languages/prism-bsl.js +75 -0
  43. data/vendor/assets/javascripts/languages/prism-c.js +53 -14
  44. data/vendor/assets/javascripts/languages/prism-cfscript.js +44 -0
  45. data/vendor/assets/javascripts/languages/prism-chaiscript.js +60 -0
  46. data/vendor/assets/javascripts/languages/prism-cil.js +5 -5
  47. data/vendor/assets/javascripts/languages/prism-cilkc.js +8 -0
  48. data/vendor/assets/javascripts/languages/prism-cilkcpp.js +9 -0
  49. data/vendor/assets/javascripts/languages/prism-clike.js +7 -6
  50. data/vendor/assets/javascripts/languages/prism-clojure.js +20 -5
  51. data/vendor/assets/javascripts/languages/prism-cmake.js +7 -7
  52. data/vendor/assets/javascripts/languages/prism-cobol.js +53 -0
  53. data/vendor/assets/javascripts/languages/prism-coffeescript.js +79 -75
  54. data/vendor/assets/javascripts/languages/prism-concurnas.js +33 -20
  55. data/vendor/assets/javascripts/languages/prism-cooklang.js +146 -0
  56. data/vendor/assets/javascripts/languages/prism-coq.js +54 -0
  57. data/vendor/assets/javascripts/languages/prism-core.js +1087 -451
  58. data/vendor/assets/javascripts/languages/prism-cpp.js +99 -21
  59. data/vendor/assets/javascripts/languages/prism-crystal.js +36 -30
  60. data/vendor/assets/javascripts/languages/prism-csharp.js +343 -58
  61. data/vendor/assets/javascripts/languages/prism-cshtml.js +199 -0
  62. data/vendor/assets/javascripts/languages/prism-csp.js +67 -16
  63. data/vendor/assets/javascripts/languages/prism-css-extras.js +27 -16
  64. data/vendor/assets/javascripts/languages/prism-css.js +28 -26
  65. data/vendor/assets/javascripts/languages/prism-csv.js +6 -0
  66. data/vendor/assets/javascripts/languages/prism-cue.js +84 -0
  67. data/vendor/assets/javascripts/languages/prism-cypher.js +36 -0
  68. data/vendor/assets/javascripts/languages/prism-d.js +15 -10
  69. data/vendor/assets/javascripts/languages/prism-dart.js +76 -21
  70. data/vendor/assets/javascripts/languages/prism-dataweave.js +41 -0
  71. data/vendor/assets/javascripts/languages/prism-dax.js +27 -0
  72. data/vendor/assets/javascripts/languages/prism-dhall.js +69 -0
  73. data/vendor/assets/javascripts/languages/prism-diff.js +15 -5
  74. data/vendor/assets/javascripts/languages/prism-django.js +8 -8
  75. data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +3 -3
  76. data/vendor/assets/javascripts/languages/prism-docker.js +98 -11
  77. data/vendor/assets/javascripts/languages/prism-dot.js +76 -0
  78. data/vendor/assets/javascripts/languages/prism-ebnf.js +2 -2
  79. data/vendor/assets/javascripts/languages/prism-editorconfig.js +26 -0
  80. data/vendor/assets/javascripts/languages/prism-eiffel.js +5 -8
  81. data/vendor/assets/javascripts/languages/prism-ejs.js +4 -2
  82. data/vendor/assets/javascripts/languages/prism-elixir.js +21 -12
  83. data/vendor/assets/javascripts/languages/prism-elm.js +16 -15
  84. data/vendor/assets/javascripts/languages/prism-erb.js +12 -7
  85. data/vendor/assets/javascripts/languages/prism-erlang.js +6 -6
  86. data/vendor/assets/javascripts/languages/prism-excel-formula.js +66 -0
  87. data/vendor/assets/javascripts/languages/prism-factor.js +8 -8
  88. data/vendor/assets/javascripts/languages/prism-false.js +32 -0
  89. data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +2 -2
  90. data/vendor/assets/javascripts/languages/prism-flow.js +5 -5
  91. data/vendor/assets/javascripts/languages/prism-fortran.js +6 -6
  92. data/vendor/assets/javascripts/languages/prism-fsharp.js +20 -12
  93. data/vendor/assets/javascripts/languages/prism-ftl.js +12 -11
  94. data/vendor/assets/javascripts/languages/prism-gap.js +54 -0
  95. data/vendor/assets/javascripts/languages/prism-gcode.js +4 -3
  96. data/vendor/assets/javascripts/languages/prism-gdscript.js +2 -2
  97. data/vendor/assets/javascripts/languages/prism-gedcom.js +6 -6
  98. data/vendor/assets/javascripts/languages/prism-gettext.js +43 -0
  99. data/vendor/assets/javascripts/languages/prism-gherkin.js +7 -7
  100. data/vendor/assets/javascripts/languages/prism-git.js +3 -3
  101. data/vendor/assets/javascripts/languages/prism-glsl.js +2 -15
  102. data/vendor/assets/javascripts/languages/prism-gml.js +5 -5
  103. data/vendor/assets/javascripts/languages/prism-gn.js +51 -0
  104. data/vendor/assets/javascripts/languages/prism-go-module.js +24 -0
  105. data/vendor/assets/javascripts/languages/prism-go.js +21 -5
  106. data/vendor/assets/javascripts/languages/prism-gradle.js +63 -0
  107. data/vendor/assets/javascripts/languages/prism-graphql.js +187 -7
  108. data/vendor/assets/javascripts/languages/prism-groovy.js +56 -58
  109. data/vendor/assets/javascripts/languages/prism-haml.js +23 -16
  110. data/vendor/assets/javascripts/languages/prism-handlebars.js +10 -7
  111. data/vendor/assets/javascripts/languages/prism-haskell.js +42 -14
  112. data/vendor/assets/javascripts/languages/prism-haxe.js +54 -21
  113. data/vendor/assets/javascripts/languages/prism-hcl.js +12 -14
  114. data/vendor/assets/javascripts/languages/prism-hlsl.js +20 -0
  115. data/vendor/assets/javascripts/languages/prism-hoon.js +14 -0
  116. data/vendor/assets/javascripts/languages/prism-hpkp.js +4 -10
  117. data/vendor/assets/javascripts/languages/prism-hsts.js +4 -10
  118. data/vendor/assets/javascripts/languages/prism-http.js +91 -17
  119. data/vendor/assets/javascripts/languages/prism-ichigojam.js +5 -5
  120. data/vendor/assets/javascripts/languages/prism-icon.js +2 -2
  121. data/vendor/assets/javascripts/languages/prism-icu-message-format.js +148 -0
  122. data/vendor/assets/javascripts/languages/prism-idris.js +19 -0
  123. data/vendor/assets/javascripts/languages/prism-iecst.js +32 -0
  124. data/vendor/assets/javascripts/languages/prism-ignore.js +23 -0
  125. data/vendor/assets/javascripts/languages/prism-inform7.js +10 -10
  126. data/vendor/assets/javascripts/languages/prism-ini.js +39 -8
  127. data/vendor/assets/javascripts/languages/prism-io.js +10 -19
  128. data/vendor/assets/javascripts/languages/prism-j.js +7 -4
  129. data/vendor/assets/javascripts/languages/prism-java.js +80 -19
  130. data/vendor/assets/javascripts/languages/prism-javadoc.js +59 -31
  131. data/vendor/assets/javascripts/languages/prism-javadoclike.js +2 -2
  132. data/vendor/assets/javascripts/languages/prism-javascript.js +98 -17
  133. data/vendor/assets/javascripts/languages/prism-javastacktrace.js +63 -14
  134. data/vendor/assets/javascripts/languages/prism-jexl.js +14 -0
  135. data/vendor/assets/javascripts/languages/prism-jolie.js +23 -37
  136. data/vendor/assets/javascripts/languages/prism-jq.js +8 -6
  137. data/vendor/assets/javascripts/languages/prism-js-extras.js +34 -3
  138. data/vendor/assets/javascripts/languages/prism-js-templates.js +5 -2
  139. data/vendor/assets/javascripts/languages/prism-jsdoc.js +15 -10
  140. data/vendor/assets/javascripts/languages/prism-json.js +13 -5
  141. data/vendor/assets/javascripts/languages/prism-json5.js +3 -3
  142. data/vendor/assets/javascripts/languages/prism-jsonp.js +1 -1
  143. data/vendor/assets/javascripts/languages/prism-jsstacktrace.js +49 -0
  144. data/vendor/assets/javascripts/languages/prism-jsx.js +123 -104
  145. data/vendor/assets/javascripts/languages/prism-julia.js +31 -9
  146. data/vendor/assets/javascripts/languages/prism-keepalived.js +51 -0
  147. data/vendor/assets/javascripts/languages/prism-keyman.js +43 -13
  148. data/vendor/assets/javascripts/languages/prism-kotlin.js +56 -30
  149. data/vendor/assets/javascripts/languages/prism-kumir.js +106 -0
  150. data/vendor/assets/javascripts/languages/prism-kusto.js +44 -0
  151. data/vendor/assets/javascripts/languages/prism-latex.js +6 -6
  152. data/vendor/assets/javascripts/languages/prism-latte.js +11 -17
  153. data/vendor/assets/javascripts/languages/prism-less.js +5 -5
  154. data/vendor/assets/javascripts/languages/prism-lilypond.js +3 -3
  155. data/vendor/assets/javascripts/languages/prism-linker-script.js +30 -0
  156. data/vendor/assets/javascripts/languages/prism-liquid.js +62 -8
  157. data/vendor/assets/javascripts/languages/prism-lisp.js +41 -41
  158. data/vendor/assets/javascripts/languages/prism-livescript.js +3 -3
  159. data/vendor/assets/javascripts/languages/prism-llvm.js +19 -0
  160. data/vendor/assets/javascripts/languages/prism-log.js +120 -0
  161. data/vendor/assets/javascripts/languages/prism-lolcode.js +9 -9
  162. data/vendor/assets/javascripts/languages/prism-lua.js +3 -3
  163. data/vendor/assets/javascripts/languages/prism-magma.js +35 -0
  164. data/vendor/assets/javascripts/languages/prism-makefile.js +17 -17
  165. data/vendor/assets/javascripts/languages/prism-markdown.js +103 -32
  166. data/vendor/assets/javascripts/languages/prism-markup-templating.js +2 -1
  167. data/vendor/assets/javascripts/languages/prism-markup.js +95 -12
  168. data/vendor/assets/javascripts/languages/prism-mata.js +50 -0
  169. data/vendor/assets/javascripts/languages/prism-matlab.js +4 -4
  170. data/vendor/assets/javascripts/languages/prism-maxscript.js +91 -0
  171. data/vendor/assets/javascripts/languages/prism-mel.js +24 -21
  172. data/vendor/assets/javascripts/languages/prism-mermaid.js +113 -0
  173. data/vendor/assets/javascripts/languages/prism-metafont.js +84 -0
  174. data/vendor/assets/javascripts/languages/prism-mizar.js +3 -3
  175. data/vendor/assets/javascripts/languages/prism-mongodb.js +97 -0
  176. data/vendor/assets/javascripts/languages/prism-monkey.js +16 -18
  177. data/vendor/assets/javascripts/languages/prism-moonscript.js +1 -1
  178. data/vendor/assets/javascripts/languages/prism-n1ql.js +14 -8
  179. data/vendor/assets/javascripts/languages/prism-n4js.js +2 -2
  180. data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +3 -3
  181. data/vendor/assets/javascripts/languages/prism-naniscript.js +170 -0
  182. data/vendor/assets/javascripts/languages/prism-nasm.js +4 -4
  183. data/vendor/assets/javascripts/languages/prism-neon.js +5 -6
  184. data/vendor/assets/javascripts/languages/prism-nevod.js +125 -0
  185. data/vendor/assets/javascripts/languages/prism-nginx.js +54 -11
  186. data/vendor/assets/javascripts/languages/prism-nim.js +23 -12
  187. data/vendor/assets/javascripts/languages/prism-nix.js +10 -13
  188. data/vendor/assets/javascripts/languages/prism-nsis.js +10 -9
  189. data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -2
  190. data/vendor/assets/javascripts/languages/prism-ocaml.js +32 -15
  191. data/vendor/assets/javascripts/languages/prism-odin.js +99 -0
  192. data/vendor/assets/javascripts/languages/prism-opencl.js +19 -12
  193. data/vendor/assets/javascripts/languages/prism-openqasm.js +23 -0
  194. data/vendor/assets/javascripts/languages/prism-oz.js +11 -8
  195. data/vendor/assets/javascripts/languages/prism-parigp.js +4 -4
  196. data/vendor/assets/javascripts/languages/prism-parser.js +3 -3
  197. data/vendor/assets/javascripts/languages/prism-pascal.js +24 -8
  198. data/vendor/assets/javascripts/languages/prism-pascaligo.js +7 -7
  199. data/vendor/assets/javascripts/languages/prism-pcaxis.js +2 -2
  200. data/vendor/assets/javascripts/languages/prism-peoplecode.js +42 -0
  201. data/vendor/assets/javascripts/languages/prism-perl.js +153 -188
  202. data/vendor/assets/javascripts/languages/prism-php-extras.js +8 -5
  203. data/vendor/assets/javascripts/languages/prism-php.js +275 -63
  204. data/vendor/assets/javascripts/languages/prism-phpdoc.js +1 -1
  205. data/vendor/assets/javascripts/languages/prism-plant-uml.js +103 -0
  206. data/vendor/assets/javascripts/languages/prism-plsql.js +16 -25
  207. data/vendor/assets/javascripts/languages/prism-powerquery.js +55 -0
  208. data/vendor/assets/javascripts/languages/prism-powershell.js +16 -18
  209. data/vendor/assets/javascripts/languages/prism-processing.js +6 -9
  210. data/vendor/assets/javascripts/languages/prism-prolog.js +7 -8
  211. data/vendor/assets/javascripts/languages/prism-promql.js +99 -0
  212. data/vendor/assets/javascripts/languages/prism-properties.js +9 -5
  213. data/vendor/assets/javascripts/languages/prism-protobuf.js +16 -9
  214. data/vendor/assets/javascripts/languages/prism-psl.js +35 -0
  215. data/vendor/assets/javascripts/languages/prism-pug.js +28 -21
  216. data/vendor/assets/javascripts/languages/prism-puppet.js +6 -6
  217. data/vendor/assets/javascripts/languages/prism-pure.js +9 -6
  218. data/vendor/assets/javascripts/languages/prism-purebasic.js +70 -0
  219. data/vendor/assets/javascripts/languages/prism-purescript.js +31 -0
  220. data/vendor/assets/javascripts/languages/prism-python.js +12 -11
  221. data/vendor/assets/javascripts/languages/prism-q.js +4 -4
  222. data/vendor/assets/javascripts/languages/prism-qml.js +9 -6
  223. data/vendor/assets/javascripts/languages/prism-qore.js +5 -5
  224. data/vendor/assets/javascripts/languages/prism-qsharp.js +132 -0
  225. data/vendor/assets/javascripts/languages/prism-r.js +5 -5
  226. data/vendor/assets/javascripts/languages/prism-racket.js +18 -0
  227. data/vendor/assets/javascripts/languages/prism-reason.js +5 -8
  228. data/vendor/assets/javascripts/languages/prism-regex.js +54 -47
  229. data/vendor/assets/javascripts/languages/prism-rego.js +30 -0
  230. data/vendor/assets/javascripts/languages/prism-renpy.js +12 -12
  231. data/vendor/assets/javascripts/languages/prism-rescript.js +60 -0
  232. data/vendor/assets/javascripts/languages/prism-rest.js +16 -16
  233. data/vendor/assets/javascripts/languages/prism-rip.js +22 -16
  234. data/vendor/assets/javascripts/languages/prism-roboconf.js +3 -3
  235. data/vendor/assets/javascripts/languages/prism-robotframework.js +5 -5
  236. data/vendor/assets/javascripts/languages/prism-ruby.js +127 -88
  237. data/vendor/assets/javascripts/languages/prism-rust.js +120 -60
  238. data/vendor/assets/javascripts/languages/prism-sas.js +62 -38
  239. data/vendor/assets/javascripts/languages/prism-sass.js +15 -10
  240. data/vendor/assets/javascripts/languages/prism-scala.js +36 -3
  241. data/vendor/assets/javascripts/languages/prism-scheme.js +120 -33
  242. data/vendor/assets/javascripts/languages/prism-scss.js +11 -7
  243. data/vendor/assets/javascripts/languages/prism-shell-session.js +42 -26
  244. data/vendor/assets/javascripts/languages/prism-smali.js +87 -0
  245. data/vendor/assets/javascripts/languages/prism-smalltalk.js +12 -5
  246. data/vendor/assets/javascripts/languages/prism-smarty.js +91 -47
  247. data/vendor/assets/javascripts/languages/prism-sml.js +68 -0
  248. data/vendor/assets/javascripts/languages/prism-solidity.js +3 -1
  249. data/vendor/assets/javascripts/languages/prism-solution-file.js +2 -2
  250. data/vendor/assets/javascripts/languages/prism-soy.js +9 -9
  251. data/vendor/assets/javascripts/languages/prism-sparql.js +8 -8
  252. data/vendor/assets/javascripts/languages/prism-splunk-spl.js +3 -3
  253. data/vendor/assets/javascripts/languages/prism-sqf.js +7 -7
  254. data/vendor/assets/javascripts/languages/prism-sql.js +12 -4
  255. data/vendor/assets/javascripts/languages/prism-squirrel.js +47 -0
  256. data/vendor/assets/javascripts/languages/prism-stan.js +65 -0
  257. data/vendor/assets/javascripts/languages/prism-stata.js +76 -0
  258. data/vendor/assets/javascripts/languages/prism-stylus.js +48 -16
  259. data/vendor/assets/javascripts/languages/prism-supercollider.js +36 -0
  260. data/vendor/assets/javascripts/languages/prism-swift.js +143 -20
  261. data/vendor/assets/javascripts/languages/prism-systemd.js +74 -0
  262. data/vendor/assets/javascripts/languages/prism-t4-templating.js +2 -2
  263. data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -1
  264. data/vendor/assets/javascripts/languages/prism-tap.js +13 -11
  265. data/vendor/assets/javascripts/languages/prism-tcl.js +8 -8
  266. data/vendor/assets/javascripts/languages/prism-textile.js +55 -29
  267. data/vendor/assets/javascripts/languages/prism-toml.js +14 -8
  268. data/vendor/assets/javascripts/languages/prism-tremor.js +72 -0
  269. data/vendor/assets/javascripts/languages/prism-tsx.js +15 -2
  270. data/vendor/assets/javascripts/languages/prism-tt2.js +7 -7
  271. data/vendor/assets/javascripts/languages/prism-turtle.js +4 -4
  272. data/vendor/assets/javascripts/languages/prism-twig.js +38 -40
  273. data/vendor/assets/javascripts/languages/prism-typescript.js +59 -6
  274. data/vendor/assets/javascripts/languages/prism-typoscript.js +80 -0
  275. data/vendor/assets/javascripts/languages/prism-unrealscript.js +42 -0
  276. data/vendor/assets/javascripts/languages/prism-uorazor.js +48 -0
  277. data/vendor/assets/javascripts/languages/prism-uri.js +96 -0
  278. data/vendor/assets/javascripts/languages/prism-v.js +81 -0
  279. data/vendor/assets/javascripts/languages/prism-vala.js +20 -10
  280. data/vendor/assets/javascripts/languages/prism-vbnet.js +11 -4
  281. data/vendor/assets/javascripts/languages/prism-velocity.js +6 -6
  282. data/vendor/assets/javascripts/languages/prism-verilog.js +14 -8
  283. data/vendor/assets/javascripts/languages/prism-vhdl.js +7 -4
  284. data/vendor/assets/javascripts/languages/prism-vim.js +4 -4
  285. data/vendor/assets/javascripts/languages/prism-visual-basic.js +9 -14
  286. data/vendor/assets/javascripts/languages/prism-warpscript.js +21 -0
  287. data/vendor/assets/javascripts/languages/prism-wasm.js +3 -3
  288. data/vendor/assets/javascripts/languages/prism-web-idl.js +101 -0
  289. data/vendor/assets/javascripts/languages/prism-wgsl.js +69 -0
  290. data/vendor/assets/javascripts/languages/prism-wiki.js +4 -4
  291. data/vendor/assets/javascripts/languages/prism-wolfram.js +29 -0
  292. data/vendor/assets/javascripts/languages/prism-wren.js +100 -0
  293. data/vendor/assets/javascripts/languages/prism-xeora.js +8 -8
  294. data/vendor/assets/javascripts/languages/prism-xml-doc.js +40 -0
  295. data/vendor/assets/javascripts/languages/prism-xojo.js +9 -8
  296. data/vendor/assets/javascripts/languages/prism-xquery.js +7 -7
  297. data/vendor/assets/javascripts/languages/prism-yaml.js +19 -12
  298. data/vendor/assets/javascripts/languages/prism-yang.js +20 -0
  299. data/vendor/assets/javascripts/languages/prism-zig.js +19 -15
  300. data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +60 -65
  301. data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +199 -67
  302. data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +212 -112
  303. data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +128 -43
  304. data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +23 -8
  305. data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -6
  306. data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +19 -12
  307. data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +3 -2
  308. data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +169 -63
  309. data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +5 -3
  310. data/vendor/assets/javascripts/prism-plugin/prism-highlight-keywords.js +10 -13
  311. data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +29 -12
  312. data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +179 -82
  313. data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +53 -26
  314. data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +217 -84
  315. data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +152 -68
  316. data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +53 -47
  317. data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +203 -164
  318. data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +61 -52
  319. data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +16 -16
  320. data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +4 -5
  321. data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +147 -21
  322. data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +9 -8
  323. data/vendor/assets/javascripts/prism-plugin/prism-treeview.js +70 -0
  324. data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +41 -23
  325. data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +133 -148
  326. data/vendor/assets/javascripts/prism.js +96 -4
  327. data/vendor/assets/stylesheets/prism-plugin/prism-autolinker.min.css +1 -0
  328. data/vendor/assets/stylesheets/prism-plugin/prism-command-line.css +11 -1
  329. data/vendor/assets/stylesheets/prism-plugin/prism-command-line.min.css +1 -0
  330. data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.min.css +1 -0
  331. data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +26 -2
  332. data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.min.css +1 -0
  333. data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +21 -0
  334. data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.min.css +1 -0
  335. data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +0 -1
  336. data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.min.css +1 -0
  337. data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.min.css +1 -0
  338. data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +1 -0
  339. data/vendor/assets/stylesheets/prism-plugin/prism-previewers.min.css +1 -0
  340. data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.min.css +1 -0
  341. data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +13 -12
  342. data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.min.css +1 -0
  343. data/vendor/assets/stylesheets/prism-plugin/prism-treeview.css +168 -0
  344. data/vendor/assets/stylesheets/prism-plugin/prism-treeview.min.css +1 -0
  345. data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.min.css +1 -0
  346. data/vendor/assets/stylesheets/prism-plugin/prism-wpd.min.css +1 -0
  347. data/vendor/assets/stylesheets/prism-theme/prism-base16-ateliersulphurpool.light.css +3 -3
  348. data/vendor/assets/stylesheets/prism-theme/prism-cb.css +5 -35
  349. data/vendor/assets/stylesheets/prism-theme/prism-coldark-cold.css +317 -0
  350. data/vendor/assets/stylesheets/prism-theme/prism-coldark-dark.css +317 -0
  351. data/vendor/assets/stylesheets/prism-theme/prism-coy-without-shadows.css +140 -0
  352. data/vendor/assets/stylesheets/prism-theme/prism-coy.css +5 -12
  353. data/vendor/assets/stylesheets/prism-theme/prism-coy.min.css +1 -0
  354. data/vendor/assets/stylesheets/prism-theme/prism-dark.min.css +1 -0
  355. data/vendor/assets/stylesheets/prism-theme/prism-duotone-dark.css +3 -3
  356. data/vendor/assets/stylesheets/prism-theme/prism-duotone-earth.css +3 -3
  357. data/vendor/assets/stylesheets/prism-theme/prism-duotone-forest.css +3 -3
  358. data/vendor/assets/stylesheets/prism-theme/prism-duotone-light.css +3 -3
  359. data/vendor/assets/stylesheets/prism-theme/prism-duotone-sea.css +3 -3
  360. data/vendor/assets/stylesheets/prism-theme/prism-duotone-space.css +3 -3
  361. data/vendor/assets/stylesheets/prism-theme/prism-funky.min.css +1 -0
  362. data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-dark.css +143 -0
  363. data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-light.css +143 -0
  364. data/vendor/assets/stylesheets/prism-theme/prism-holi-theme.css +119 -0
  365. data/vendor/assets/stylesheets/prism-theme/prism-laserwave.css +133 -0
  366. data/vendor/assets/stylesheets/prism-theme/prism-lucario.css +122 -0
  367. data/vendor/assets/stylesheets/prism-theme/prism-night-owl.css +158 -0
  368. data/vendor/assets/stylesheets/prism-theme/prism-okaidia.css +1 -1
  369. data/vendor/assets/stylesheets/prism-theme/prism-okaidia.min.css +1 -0
  370. data/vendor/assets/stylesheets/prism-theme/prism-one-dark.css +440 -0
  371. data/vendor/assets/stylesheets/prism-theme/prism-one-light.css +428 -0
  372. data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +3 -7
  373. data/vendor/assets/stylesheets/prism-theme/prism-solarized-dark-atom.css +143 -0
  374. data/vendor/assets/stylesheets/prism-theme/prism-solarizedlight.min.css +1 -0
  375. data/vendor/assets/stylesheets/prism-theme/prism-tomorrow.min.css +1 -0
  376. data/vendor/assets/stylesheets/prism-theme/prism-twilight.css +3 -33
  377. data/vendor/assets/stylesheets/prism-theme/prism-twilight.min.css +1 -0
  378. data/vendor/assets/stylesheets/prism-theme/prism-vs.css +7 -3
  379. data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +108 -49
  380. data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +3 -30
  381. data/vendor/assets/stylesheets/prism-theme/prism-z-touch.css +160 -0
  382. data/vendor/assets/stylesheets/prism.css +1 -0
  383. metadata +133 -6
@@ -1,33 +1,120 @@
1
- Prism.languages.scheme = {
2
- 'comment': /;.*/,
3
- 'string': {
4
- pattern: /"(?:[^"\\]|\\.)*"|'[^()#'\s]+/,
5
- greedy: true
6
- },
7
- 'character': {
8
- pattern: /#\\(?:[ux][a-fA-F\d]+|[a-zA-Z]+|\S)/,
9
- alias: 'string'
10
- },
11
- 'keyword': {
12
- pattern: /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)(?=[()\s])/,
13
- lookbehind: true
14
- },
15
- 'builtin': {
16
- pattern: /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)(?=[()\s])/,
17
- lookbehind: true
18
- },
19
- 'number': {
20
- pattern: /([\s()])[-+]?(?:\d+\/\d+|\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?)\b/,
21
- lookbehind: true
22
- },
23
- 'boolean': /#[tf]/,
24
- 'operator': {
25
- pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)(?=\s|$)/,
26
- lookbehind: true
27
- },
28
- 'function': {
29
- pattern: /(\()[^()'\s]+(?=[()\s)]|$)/,
30
- lookbehind: true
31
- },
32
- 'punctuation': /[()']/
33
- };
1
+ (function (Prism) {
2
+ Prism.languages.scheme = {
3
+ // this supports "normal" single-line comments:
4
+ // ; comment
5
+ // and (potentially nested) multiline comments:
6
+ // #| comment #| nested |# still comment |#
7
+ // (only 1 level of nesting is supported)
8
+ 'comment': /;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,
9
+ 'string': {
10
+ pattern: /"(?:[^"\\]|\\.)*"/,
11
+ greedy: true
12
+ },
13
+ 'symbol': {
14
+ pattern: /'[^()\[\]#'\s]+/,
15
+ greedy: true
16
+ },
17
+ 'char': {
18
+ pattern: /#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,
19
+ greedy: true
20
+ },
21
+ 'lambda-parameter': [
22
+ // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30
23
+ {
24
+ pattern: /((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,
25
+ lookbehind: true
26
+ },
27
+ {
28
+ pattern: /((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,
29
+ lookbehind: true
30
+ }
31
+ ],
32
+ 'keyword': {
33
+ pattern: /((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,
34
+ lookbehind: true
35
+ },
36
+ 'builtin': {
37
+ // all functions of the base library of R7RS plus some of built-ins of R5Rs
38
+ pattern: /((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,
39
+ lookbehind: true
40
+ },
41
+ 'operator': {
42
+ pattern: /((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,
43
+ lookbehind: true
44
+ },
45
+ 'number': {
46
+ // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).
47
+ //
48
+ // <number> := <num 2>|<num 8>|<num 10>|<num 16>
49
+ // <num R> := <prefix R><complex R>
50
+ // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>
51
+ // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\.0)?i
52
+ // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\.0
53
+ // <ureal R> := <uint R>(?:\/<uint R>)?
54
+ // | <decimal R>
55
+ //
56
+ // <decimal 10> := (?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?
57
+ // <uint R> := <digit R>+
58
+ // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>
59
+ // <radix 2> := #b
60
+ // <radix 8> := #o
61
+ // <radix 10> := (?:#d)?
62
+ // <radix 16> := #x
63
+ // <digit 2> := [01]
64
+ // <digit 8> := [0-7]
65
+ // <digit 10> := \d
66
+ // <digit 16> := [0-9a-f]
67
+ //
68
+ // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all
69
+ // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)
70
+ // pattern:
71
+ pattern: RegExp(SortedBNF({
72
+ '<ureal dec>': /\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:[esfdl][+-]?\d+)?/.source,
73
+ '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\.0/.source,
74
+ '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\.0)?i/.source,
75
+ '<complex dec>': /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/.source,
76
+ '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,
77
+
78
+ '<ureal box>': /[0-9a-f]+(?:\/[0-9a-f]+)?/.source,
79
+ '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\.0/.source,
80
+ '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\.0)?i/.source,
81
+ '<complex box>': /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/.source,
82
+ '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/.source,
83
+
84
+ '<number>': /(^|[()\[\]\s])(?:<num dec>|<num box>)(?=[()\[\]\s]|$)/.source,
85
+ }), 'i'),
86
+ lookbehind: true
87
+ },
88
+ 'boolean': {
89
+ pattern: /(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,
90
+ lookbehind: true
91
+ },
92
+ 'function': {
93
+ pattern: /((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,
94
+ lookbehind: true
95
+ },
96
+ 'identifier': {
97
+ pattern: /(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,
98
+ lookbehind: true,
99
+ greedy: true
100
+ },
101
+ 'punctuation': /[()\[\]']/
102
+ };
103
+
104
+ /**
105
+ * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.
106
+ *
107
+ * @param {Record<string, string>} grammar
108
+ * @returns {string}
109
+ */
110
+ function SortedBNF(grammar) {
111
+ for (var key in grammar) {
112
+ grammar[key] = grammar[key].replace(/<[\w\s]+>/g, function (key) {
113
+ return '(?:' + grammar[key].trim() + ')';
114
+ });
115
+ }
116
+ // return the last item
117
+ return grammar[key];
118
+ }
119
+
120
+ }(Prism));
@@ -4,7 +4,7 @@ Prism.languages.scss = Prism.languages.extend('css', {
4
4
  lookbehind: true
5
5
  },
6
6
  'atrule': {
7
- pattern: /@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,
7
+ pattern: /@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,
8
8
  inside: {
9
9
  'rule': /@[\w-]+/
10
10
  // See rest below
@@ -21,7 +21,7 @@ Prism.languages.scss = Prism.languages.extend('css', {
21
21
  // this one was hard to do, so please be careful if you edit this one :)
22
22
  'selector': {
23
23
  // Initial look-ahead is used to prevent matching of blank selectors
24
- pattern: /(?=\S)[^@;{}()]?(?:[^@;{}()]|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,
24
+ pattern: /(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,
25
25
  inside: {
26
26
  'parent': {
27
27
  pattern: /&/,
@@ -32,7 +32,7 @@ Prism.languages.scss = Prism.languages.extend('css', {
32
32
  }
33
33
  },
34
34
  'property': {
35
- pattern: /(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/,
35
+ pattern: /(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,
36
36
  inside: {
37
37
  'variable': /\$[-\w]+|#\{\$[-\w]+\}/
38
38
  }
@@ -41,9 +41,9 @@ Prism.languages.scss = Prism.languages.extend('css', {
41
41
 
42
42
  Prism.languages.insertBefore('scss', 'atrule', {
43
43
  'keyword': [
44
- /@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,
44
+ /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,
45
45
  {
46
- pattern: /( +)(?:from|through)(?= )/,
46
+ pattern: /( )(?:from|through)(?= )/,
47
47
  lookbehind: true
48
48
  }
49
49
  ]
@@ -55,6 +55,10 @@ Prism.languages.insertBefore('scss', 'important', {
55
55
  });
56
56
 
57
57
  Prism.languages.insertBefore('scss', 'function', {
58
+ 'module-modifier': {
59
+ pattern: /\b(?:as|hide|show|with)\b/i,
60
+ alias: 'keyword'
61
+ },
58
62
  'placeholder': {
59
63
  pattern: /%[-\w]+/,
60
64
  alias: 'selector'
@@ -63,13 +67,13 @@ Prism.languages.insertBefore('scss', 'function', {
63
67
  pattern: /\B!(?:default|optional)\b/i,
64
68
  alias: 'keyword'
65
69
  },
66
- 'boolean': /\b(?:true|false)\b/,
70
+ 'boolean': /\b(?:false|true)\b/,
67
71
  'null': {
68
72
  pattern: /\bnull\b/,
69
73
  alias: 'keyword'
70
74
  },
71
75
  'operator': {
72
- pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,
76
+ pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,
73
77
  lookbehind: true
74
78
  }
75
79
  });
@@ -5,50 +5,66 @@
5
5
 
6
6
  var strings = [
7
7
  // normal string
8
- // 1 capturing group
9
- /(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/.source,
8
+ /"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,
9
+ /'[^']*'/.source,
10
+ /\$'(?:[^'\\]|\\[\s\S])*'/.source,
10
11
 
11
12
  // here doc
12
- // 1 capturing group
13
- /<<-?\s*(\w+?)\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\2/.source,
14
-
15
- // here doc quoted
16
- // 2 capturing group
17
- /<<-?\s*(["'])(\w+)\3\s*(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\4/.source
13
+ // 2 capturing groups
14
+ /<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source
18
15
  ].join('|');
19
16
 
20
17
  Prism.languages['shell-session'] = {
21
- 'info': {
22
- // foo@bar:~/files$ exit
23
- // foo@bar$ exit
24
- pattern: /^(?:[^\r\n$#*!]+)(?=[$#])/m,
25
- alias: 'punctuation',
26
- inside: {
27
- 'path': {
28
- pattern: /(:)[\s\S]+/,
29
- lookbehind: true
30
- },
31
- 'user': /^[^\s@:$#*!/\\]+@[^\s@:$#*!/\\]+(?=:|$)/,
32
- 'punctuation': /:/
33
- }
34
- },
35
18
  'command': {
36
- pattern: RegExp(/[$#](?:[^\r\n'"<]|<<str>>)+/.source.replace(/<<str>>/g, strings)),
19
+ pattern: RegExp(
20
+ // user info
21
+ /^/.source +
22
+ '(?:' +
23
+ (
24
+ // <user> ":" ( <path> )?
25
+ /[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source +
26
+ '|' +
27
+ // <path>
28
+ // Since the path pattern is quite general, we will require it to start with a special character to
29
+ // prevent false positives.
30
+ /[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source
31
+ ) +
32
+ ')?' +
33
+ // shell symbol
34
+ /[$#%](?=\s)/.source +
35
+ // bash command
36
+ /(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<<str>>)+/.source.replace(/<<str>>/g, function () { return strings; }),
37
+ 'm'
38
+ ),
37
39
  greedy: true,
38
40
  inside: {
41
+ 'info': {
42
+ // foo@bar:~/files$ exit
43
+ // foo@bar$ exit
44
+ // ~/files$ exit
45
+ pattern: /^[^#$%]+/,
46
+ alias: 'punctuation',
47
+ inside: {
48
+ 'user': /^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,
49
+ 'punctuation': /:/,
50
+ 'path': /[\s\S]+/
51
+ }
52
+ },
39
53
  'bash': {
40
- pattern: /(^[$#]\s*)[\s\S]+/,
54
+ pattern: /(^[$#%]\s*)\S[\s\S]*/,
41
55
  lookbehind: true,
42
56
  alias: 'language-bash',
43
57
  inside: Prism.languages.bash
44
58
  },
45
59
  'shell-symbol': {
46
- pattern: /^[$#]/,
60
+ pattern: /^[$#%]/,
47
61
  alias: 'important'
48
62
  }
49
63
  }
50
64
  },
51
- 'output': /.(?:.*(?:\r\n?|\n|.$))*/
65
+ 'output': /.(?:.*(?:[\r\n]|.$))*/
52
66
  };
53
67
 
68
+ Prism.languages['sh-session'] = Prism.languages['shellsession'] = Prism.languages['shell-session'];
69
+
54
70
  }(Prism));
@@ -0,0 +1,87 @@
1
+ // Test files for the parser itself:
2
+ // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest
3
+
4
+ Prism.languages.smali = {
5
+ 'comment': /#.*/,
6
+ 'string': {
7
+ pattern: /"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,
8
+ greedy: true
9
+ },
10
+
11
+ 'class-name': {
12
+ pattern: /(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,
13
+ lookbehind: true,
14
+ inside: {
15
+ 'class-name': {
16
+ pattern: /(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,
17
+ lookbehind: true
18
+ },
19
+ 'namespace': {
20
+ pattern: /^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,
21
+ lookbehind: true,
22
+ inside: {
23
+ 'punctuation': /\//
24
+ }
25
+ },
26
+ 'builtin': /^L/
27
+ }
28
+ },
29
+ 'builtin': [
30
+ {
31
+ // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types
32
+ pattern: /([();\[])[BCDFIJSVZ]+/,
33
+ lookbehind: true
34
+ },
35
+ {
36
+ // e.g. .field mWifiOnUid:I
37
+ pattern: /([\w$>]:)[BCDFIJSVZ]/,
38
+ lookbehind: true
39
+ }
40
+ ],
41
+ 'keyword': [
42
+ {
43
+ pattern: /(\.end\s+)[\w-]+/,
44
+ lookbehind: true
45
+ },
46
+ {
47
+ pattern: /(^|[^\w.-])\.(?!\d)[\w-]+/,
48
+ lookbehind: true
49
+ },
50
+ {
51
+ pattern: /(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,
52
+ lookbehind: true
53
+ }
54
+ ],
55
+ 'function': {
56
+ pattern: /(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,
57
+ lookbehind: true
58
+ },
59
+
60
+ 'field': {
61
+ pattern: /[\w$]+(?=:)/,
62
+ alias: 'variable'
63
+ },
64
+ 'register': {
65
+ pattern: /(^|[^\w.-])[vp]\d(?![\w.-])/,
66
+ lookbehind: true,
67
+ alias: 'variable'
68
+ },
69
+
70
+ 'boolean': {
71
+ pattern: /(^|[^\w.-])(?:false|true)(?![\w.-])/,
72
+ lookbehind: true
73
+ },
74
+ 'number': {
75
+ pattern: /(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,
76
+ lookbehind: true
77
+ },
78
+
79
+ 'label': {
80
+ pattern: /(:)\w+/,
81
+ lookbehind: true,
82
+ alias: 'property'
83
+ },
84
+
85
+ 'operator': /->|\.\.|[\[=]/,
86
+ 'punctuation': /[{}(),;:]/
87
+ };
@@ -1,10 +1,16 @@
1
1
  Prism.languages.smalltalk = {
2
- 'comment': /"(?:""|[^"])*"/,
3
- 'character': {
2
+ 'comment': {
3
+ pattern: /"(?:""|[^"])*"/,
4
+ greedy: true
5
+ },
6
+ 'char': {
4
7
  pattern: /\$./,
5
- alias: 'string'
8
+ greedy: true
9
+ },
10
+ 'string': {
11
+ pattern: /'(?:''|[^'])*'/,
12
+ greedy: true
6
13
  },
7
- 'string': /'(?:''|[^'])*'/,
8
14
  'symbol': /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,
9
15
  'block-arguments': {
10
16
  pattern: /(\[\s*):[^\[|]*\|/,
@@ -21,7 +27,8 @@ Prism.languages.smalltalk = {
21
27
  'punctuation': /\|/
22
28
  }
23
29
  },
24
- 'keyword': /\b(?:nil|true|false|self|super|new)\b/,
30
+ 'keyword': /\b(?:new|nil|self|super)\b/,
31
+ 'boolean': /\b(?:false|true)\b/,
25
32
  'number': [
26
33
  /\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,
27
34
  /\b\d+(?:\.\d+)?(?:e-?\d+)?/
@@ -1,23 +1,67 @@
1
- /* TODO
2
- Add support for variables inside double quoted strings
3
- Add support for {php}
4
- */
5
-
6
- (function(Prism) {
1
+ (function (Prism) {
7
2
 
8
3
  Prism.languages.smarty = {
9
- 'comment': /\{\*[\s\S]*?\*\}/,
4
+ 'comment': {
5
+ pattern: /^\{\*[\s\S]*?\*\}/,
6
+ greedy: true
7
+ },
8
+ 'embedded-php': {
9
+ pattern: /^\{php\}[\s\S]*?\{\/php\}/,
10
+ greedy: true,
11
+ inside: {
12
+ 'smarty': {
13
+ pattern: /^\{php\}|\{\/php\}$/,
14
+ inside: null // see below
15
+ },
16
+ 'php': {
17
+ pattern: /[\s\S]+/,
18
+ alias: 'language-php',
19
+ inside: Prism.languages.php
20
+ }
21
+ }
22
+ },
23
+ 'string': [
24
+ {
25
+ pattern: /"(?:\\.|[^"\\\r\n])*"/,
26
+ greedy: true,
27
+ inside: {
28
+ 'interpolation': {
29
+ pattern: /\{[^{}]*\}|`[^`]*`/,
30
+ inside: {
31
+ 'interpolation-punctuation': {
32
+ pattern: /^[{`]|[`}]$/,
33
+ alias: 'punctuation'
34
+ },
35
+ 'expression': {
36
+ pattern: /[\s\S]+/,
37
+ inside: null // see below
38
+ }
39
+ }
40
+ },
41
+ 'variable': /\$\w+/
42
+ }
43
+ },
44
+ {
45
+ pattern: /'(?:\\.|[^'\\\r\n])*'/,
46
+ greedy: true
47
+ },
48
+ ],
49
+ 'keyword': {
50
+ pattern: /(^\{\/?)[a-z_]\w*\b(?!\()/i,
51
+ lookbehind: true,
52
+ greedy: true
53
+ },
10
54
  'delimiter': {
11
- pattern: /^\{|\}$/i,
55
+ pattern: /^\{\/?|\}$/,
56
+ greedy: true,
12
57
  alias: 'punctuation'
13
58
  },
14
- 'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
15
- 'number': /\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,
59
+ 'number': /\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,
16
60
  'variable': [
17
61
  /\$(?!\d)\w+/,
18
62
  /#(?!\d)\w+#/,
19
63
  {
20
- pattern: /(\.|->)(?!\d)\w+/,
64
+ pattern: /(\.|->|\w\s*=)(?!\d)\w+\b(?!\()/,
21
65
  lookbehind: true
22
66
  },
23
67
  {
@@ -25,52 +69,52 @@
25
69
  lookbehind: true
26
70
  }
27
71
  ],
28
- 'function': [
29
- {
30
- pattern: /(\|\s*)@?(?!\d)\w+/,
31
- lookbehind: true
32
- },
33
- /^\/?(?!\d)\w+/,
34
- /(?!\d)\w+(?=\()/
35
- ],
36
- 'attr-name': {
37
- // Value is made optional because it may have already been tokenized
38
- pattern: /\w+\s*=\s*(?:(?!\d)\w+)?/,
39
- inside: {
40
- "variable": {
41
- pattern: /(=\s*)(?!\d)\w+/,
42
- lookbehind: true
43
- },
44
- "operator": /=/
45
- }
72
+ 'function': {
73
+ pattern: /(\|\s*)@?[a-z_]\w*|\b[a-z_]\w*(?=\()/i,
74
+ lookbehind: true
46
75
  },
47
- 'punctuation': [
48
- /[\[\]().,:`]|->/
49
- ],
76
+ 'attr-name': /\b[a-z_]\w*(?=\s*=)/i,
77
+ 'boolean': /\b(?:false|no|off|on|true|yes)\b/,
78
+ 'punctuation': /[\[\](){}.,:`]|->/,
50
79
  'operator': [
51
80
  /[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,
52
81
  /\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,
53
- /\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/
54
- ],
55
- 'keyword': /\b(?:false|off|on|no|true|yes)\b/
82
+ /\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\b/
83
+ ]
56
84
  };
57
85
 
86
+ Prism.languages.smarty['embedded-php'].inside.smarty.inside = Prism.languages.smarty;
87
+ Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside = Prism.languages.smarty;
88
+
89
+ var string = /"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/;
90
+ var smartyPattern = RegExp(
91
+ // comments
92
+ /\{\*[\s\S]*?\*\}/.source +
93
+ '|' +
94
+ // php tags
95
+ /\{php\}[\s\S]*?\{\/php\}/.source +
96
+ '|' +
97
+ // smarty blocks
98
+ /\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>|\{(?:[^{}"']|<str>)*\})*\})*\}/.source
99
+ .replace(/<str>/g, function () { return string.source; }),
100
+ 'g'
101
+ );
102
+
58
103
  // Tokenize all inline Smarty expressions
59
- Prism.hooks.add('before-tokenize', function(env) {
60
- var smartyPattern = /\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g;
61
- var smartyLitteralStart = '{literal}';
62
- var smartyLitteralEnd = '{/literal}';
63
- var smartyLitteralMode = false;
104
+ Prism.hooks.add('before-tokenize', function (env) {
105
+ var smartyLiteralStart = '{literal}';
106
+ var smartyLiteralEnd = '{/literal}';
107
+ var smartyLiteralMode = false;
64
108
 
65
109
  Prism.languages['markup-templating'].buildPlaceholders(env, 'smarty', smartyPattern, function (match) {
66
110
  // Smarty tags inside {literal} block are ignored
67
- if(match === smartyLitteralEnd) {
68
- smartyLitteralMode = false;
111
+ if (match === smartyLiteralEnd) {
112
+ smartyLiteralMode = false;
69
113
  }
70
114
 
71
- if(!smartyLitteralMode) {
72
- if(match === smartyLitteralStart) {
73
- smartyLitteralMode = true;
115
+ if (!smartyLiteralMode) {
116
+ if (match === smartyLiteralStart) {
117
+ smartyLiteralMode = true;
74
118
  }
75
119
 
76
120
  return true;
@@ -80,8 +124,8 @@
80
124
  });
81
125
 
82
126
  // Re-insert the tokens after tokenizing
83
- Prism.hooks.add('after-tokenize', function(env) {
127
+ Prism.hooks.add('after-tokenize', function (env) {
84
128
  Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty');
85
129
  });
86
130
 
87
- }(Prism));
131
+ }(Prism));
@@ -0,0 +1,68 @@
1
+ // https://smlfamily.github.io/sml97-defn.pdf
2
+ // https://people.mpi-sws.org/~rossberg/sml.html
3
+ (function (Prism) {
4
+
5
+ var keywords = /\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i;
6
+
7
+ Prism.languages.sml = {
8
+ // allow one level of nesting
9
+ 'comment': /\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,
10
+ 'string': {
11
+ pattern: /#?"(?:[^"\\]|\\.)*"/,
12
+ greedy: true
13
+ },
14
+
15
+ 'class-name': [
16
+ {
17
+ // This is only an approximation since the real grammar is context-free
18
+ //
19
+ // Why the main loop so complex?
20
+ // The main loop is approximately the same as /(?:\s*(?:[*,]|->)\s*<TERMINAL>)*/ which is, obviously, a lot
21
+ // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be
22
+ // followed by a long identifier.
23
+ pattern: RegExp(
24
+ /((?:^|[^:]):\s*)<TERMINAL>(?:\s*(?:(?:\*|->)\s*<TERMINAL>|,\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\s+<LONG-ID>)))*/.source
25
+ .replace(/<NOT-LAST>/g, function () { return /\s*(?:[*,]|->)/.source; })
26
+ .replace(/<TERMINAL>/g, function () {
27
+ return /(?:'[\w']*|<LONG-ID>|\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+<LONG-ID>)*/.source;
28
+ })
29
+ .replace(/<LONG-ID>/g, function () { return /(?!<KEYWORD>)[a-z\d_][\w'.]*/.source; })
30
+ .replace(/<KEYWORD>/g, function () { return keywords.source; }),
31
+ 'i'
32
+ ),
33
+ lookbehind: true,
34
+ greedy: true,
35
+ inside: null // see below
36
+ },
37
+ {
38
+ pattern: /((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,
39
+ lookbehind: true
40
+ }
41
+ ],
42
+ 'function': {
43
+ pattern: /((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,
44
+ lookbehind: true
45
+ },
46
+
47
+ 'keyword': keywords,
48
+ 'variable': {
49
+ pattern: /(^|[^\w'])'[\w']*/,
50
+ lookbehind: true,
51
+ },
52
+
53
+ 'number': /~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,
54
+ 'word': {
55
+ pattern: /\b0w(?:\d+|x[\da-f]+)\b/i,
56
+ alias: 'constant'
57
+ },
58
+
59
+ 'boolean': /\b(?:false|true)\b/i,
60
+ 'operator': /\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,
61
+ 'punctuation': /[(){}\[\].:,;]/
62
+ };
63
+
64
+ Prism.languages.sml['class-name'][0].inside = Prism.languages.sml;
65
+
66
+ Prism.languages.smlnj = Prism.languages.sml;
67
+
68
+ }(Prism));