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,32 +1,108 @@
1
1
  (function () {
2
2
 
3
- if (typeof self === 'undefined' || !self.Prism || !self.document) {
3
+ if (typeof Prism === 'undefined' || typeof document === 'undefined') {
4
4
  return;
5
5
  }
6
6
 
7
7
  /**
8
8
  * Plugin name which is used as a class name for <pre> which is activating the plugin
9
- * @type {String}
9
+ *
10
+ * @type {string}
10
11
  */
11
12
  var PLUGIN_NAME = 'line-numbers';
12
13
 
13
14
  /**
14
15
  * Regular expression used for determining line breaks
16
+ *
15
17
  * @type {RegExp}
16
18
  */
17
19
  var NEW_LINE_EXP = /\n(?!$)/g;
18
20
 
21
+
19
22
  /**
20
- * Resizes line numbers spans according to height of line of code
21
- * @param {Element} element <pre> element
23
+ * Global exports
22
24
  */
23
- var _resizeElement = function (element) {
24
- var codeStyles = getStyles(element);
25
- var whiteSpace = codeStyles['white-space'];
25
+ var config = Prism.plugins.lineNumbers = {
26
+ /**
27
+ * Get node for provided line number
28
+ *
29
+ * @param {Element} element pre element
30
+ * @param {number} number line number
31
+ * @returns {Element|undefined}
32
+ */
33
+ getLine: function (element, number) {
34
+ if (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {
35
+ return;
36
+ }
37
+
38
+ var lineNumberRows = element.querySelector('.line-numbers-rows');
39
+ if (!lineNumberRows) {
40
+ return;
41
+ }
42
+ var lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;
43
+ var lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);
44
+
45
+ if (number < lineNumberStart) {
46
+ number = lineNumberStart;
47
+ }
48
+ if (number > lineNumberEnd) {
49
+ number = lineNumberEnd;
50
+ }
26
51
 
27
- if (whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line') {
52
+ var lineIndex = number - lineNumberStart;
53
+
54
+ return lineNumberRows.children[lineIndex];
55
+ },
56
+
57
+ /**
58
+ * Resizes the line numbers of the given element.
59
+ *
60
+ * This function will not add line numbers. It will only resize existing ones.
61
+ *
62
+ * @param {HTMLElement} element A `<pre>` element with line numbers.
63
+ * @returns {void}
64
+ */
65
+ resize: function (element) {
66
+ resizeElements([element]);
67
+ },
68
+
69
+ /**
70
+ * Whether the plugin can assume that the units font sizes and margins are not depended on the size of
71
+ * the current viewport.
72
+ *
73
+ * Setting this to `true` will allow the plugin to do certain optimizations for better performance.
74
+ *
75
+ * Set this to `false` if you use any of the following CSS units: `vh`, `vw`, `vmin`, `vmax`.
76
+ *
77
+ * @type {boolean}
78
+ */
79
+ assumeViewportIndependence: true
80
+ };
81
+
82
+ /**
83
+ * Resizes the given elements.
84
+ *
85
+ * @param {HTMLElement[]} elements
86
+ */
87
+ function resizeElements(elements) {
88
+ elements = elements.filter(function (e) {
89
+ var codeStyles = getStyles(e);
90
+ var whiteSpace = codeStyles['white-space'];
91
+ return whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line';
92
+ });
93
+
94
+ if (elements.length == 0) {
95
+ return;
96
+ }
97
+
98
+ var infos = elements.map(function (element) {
28
99
  var codeElement = element.querySelector('code');
29
100
  var lineNumbersWrapper = element.querySelector('.line-numbers-rows');
101
+ if (!codeElement || !lineNumbersWrapper) {
102
+ return undefined;
103
+ }
104
+
105
+ /** @type {HTMLElement} */
30
106
  var lineNumberSizer = element.querySelector('.line-numbers-sizer');
31
107
  var codeLines = codeElement.textContent.split(NEW_LINE_EXP);
32
108
 
@@ -37,33 +113,85 @@
37
113
  codeElement.appendChild(lineNumberSizer);
38
114
  }
39
115
 
116
+ lineNumberSizer.innerHTML = '0';
40
117
  lineNumberSizer.style.display = 'block';
41
118
 
42
- codeLines.forEach(function (line, lineNumber) {
43
- lineNumberSizer.textContent = line || '\n';
44
- var lineSize = lineNumberSizer.getBoundingClientRect().height;
45
- lineNumbersWrapper.children[lineNumber].style.height = lineSize + 'px';
119
+ var oneLinerHeight = lineNumberSizer.getBoundingClientRect().height;
120
+ lineNumberSizer.innerHTML = '';
121
+
122
+ return {
123
+ element: element,
124
+ lines: codeLines,
125
+ lineHeights: [],
126
+ oneLinerHeight: oneLinerHeight,
127
+ sizer: lineNumberSizer,
128
+ };
129
+ }).filter(Boolean);
130
+
131
+ infos.forEach(function (info) {
132
+ var lineNumberSizer = info.sizer;
133
+ var lines = info.lines;
134
+ var lineHeights = info.lineHeights;
135
+ var oneLinerHeight = info.oneLinerHeight;
136
+
137
+ lineHeights[lines.length - 1] = undefined;
138
+ lines.forEach(function (line, index) {
139
+ if (line && line.length > 1) {
140
+ var e = lineNumberSizer.appendChild(document.createElement('span'));
141
+ e.style.display = 'block';
142
+ e.textContent = line;
143
+ } else {
144
+ lineHeights[index] = oneLinerHeight;
145
+ }
46
146
  });
147
+ });
148
+
149
+ infos.forEach(function (info) {
150
+ var lineNumberSizer = info.sizer;
151
+ var lineHeights = info.lineHeights;
152
+
153
+ var childIndex = 0;
154
+ for (var i = 0; i < lineHeights.length; i++) {
155
+ if (lineHeights[i] === undefined) {
156
+ lineHeights[i] = lineNumberSizer.children[childIndex++].getBoundingClientRect().height;
157
+ }
158
+ }
159
+ });
160
+
161
+ infos.forEach(function (info) {
162
+ var lineNumberSizer = info.sizer;
163
+ var wrapper = info.element.querySelector('.line-numbers-rows');
47
164
 
48
- lineNumberSizer.textContent = '';
49
165
  lineNumberSizer.style.display = 'none';
50
- }
51
- };
166
+ lineNumberSizer.innerHTML = '';
167
+
168
+ info.lineHeights.forEach(function (height, lineNumber) {
169
+ wrapper.children[lineNumber].style.height = height + 'px';
170
+ });
171
+ });
172
+ }
52
173
 
53
174
  /**
54
175
  * Returns style declarations for the element
176
+ *
55
177
  * @param {Element} element
56
178
  */
57
- var getStyles = function (element) {
179
+ function getStyles(element) {
58
180
  if (!element) {
59
181
  return null;
60
182
  }
61
183
 
62
184
  return window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);
63
- };
185
+ }
64
186
 
187
+ var lastWidth = undefined;
65
188
  window.addEventListener('resize', function () {
66
- Array.prototype.forEach.call(document.querySelectorAll('pre.' + PLUGIN_NAME), _resizeElement);
189
+ if (config.assumeViewportIndependence && lastWidth === window.innerWidth) {
190
+ return;
191
+ }
192
+ lastWidth = window.innerWidth;
193
+
194
+ resizeElements(Array.prototype.slice.call(document.querySelectorAll('pre.' + PLUGIN_NAME)));
67
195
  });
68
196
 
69
197
  Prism.hooks.add('complete', function (env) {
@@ -71,8 +199,8 @@
71
199
  return;
72
200
  }
73
201
 
74
- var code = env.element;
75
- var pre = code.parentNode;
202
+ var code = /** @type {Element} */ (env.element);
203
+ var pre = /** @type {HTMLElement} */ (code.parentNode);
76
204
 
77
205
  // works only for <code> wrapped inside <pre> (not inline)
78
206
  if (!pre || !/pre/i.test(pre.nodeName)) {
@@ -84,27 +212,15 @@
84
212
  return;
85
213
  }
86
214
 
87
- var addLineNumbers = false;
88
- var lineNumbersRegex = /(?:^|\s)line-numbers(?:\s|$)/;
89
-
90
- for (var element = code; element; element = element.parentNode) {
91
- if (lineNumbersRegex.test(element.className)) {
92
- addLineNumbers = true;
93
- break;
94
- }
95
- }
96
-
97
215
  // only add line numbers if <code> or one of its ancestors has the `line-numbers` class
98
- if (!addLineNumbers) {
216
+ if (!Prism.util.isActive(code, PLUGIN_NAME)) {
99
217
  return;
100
218
  }
101
219
 
102
220
  // Remove the class 'line-numbers' from the <code>
103
- code.className = code.className.replace(lineNumbersRegex, ' ');
221
+ code.classList.remove(PLUGIN_NAME);
104
222
  // Add the class 'line-numbers' to the <pre>
105
- if (!lineNumbersRegex.test(pre.className)) {
106
- pre.className += ' line-numbers';
107
- }
223
+ pre.classList.add(PLUGIN_NAME);
108
224
 
109
225
  var match = env.code.match(NEW_LINE_EXP);
110
226
  var linesNum = match ? match.length + 1 : 1;
@@ -123,7 +239,7 @@
123
239
 
124
240
  env.element.appendChild(lineNumbersWrapper);
125
241
 
126
- _resizeElement(pre);
242
+ resizeElements([pre]);
127
243
 
128
244
  Prism.hooks.run('line-numbers', env);
129
245
  });
@@ -133,36 +249,4 @@
133
249
  env.plugins.lineNumbers = true;
134
250
  });
135
251
 
136
- /**
137
- * Global exports
138
- */
139
- Prism.plugins.lineNumbers = {
140
- /**
141
- * Get node for provided line number
142
- * @param {Element} element pre element
143
- * @param {Number} number line number
144
- * @return {Element|undefined}
145
- */
146
- getLine: function (element, number) {
147
- if (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {
148
- return;
149
- }
150
-
151
- var lineNumberRows = element.querySelector('.line-numbers-rows');
152
- var lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;
153
- var lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);
154
-
155
- if (number < lineNumberStart) {
156
- number = lineNumberStart;
157
- }
158
- if (number > lineNumberEnd) {
159
- number = lineNumberEnd;
160
- }
161
-
162
- var lineIndex = number - lineNumberStart;
163
-
164
- return lineNumberRows.children[lineIndex];
165
- }
166
- };
167
-
168
252
  }());
@@ -1,16 +1,17 @@
1
1
  (function () {
2
2
 
3
- if (typeof self === 'undefined' || !self.Prism || !self.document) {
3
+ if (typeof Prism === 'undefined' || typeof document === 'undefined') {
4
4
  return;
5
5
  }
6
6
 
7
- var MATCH_ALL_CLASS = /(?:^|\s)match-braces(?:\s|$)/;
8
-
9
- var BRACE_HOVER_CLASS = /(?:^|\s)brace-hover(?:\s|$)/;
10
- var BRACE_SELECTED_CLASS = /(?:^|\s)brace-selected(?:\s|$)/;
11
-
12
- var NO_BRACE_HOVER_CLASS = /(?:^|\s)no-brace-hover(?:\s|$)/;
13
- var NO_BRACE_SELECT_CLASS = /(?:^|\s)no-brace-select(?:\s|$)/;
7
+ function mapClassName(name) {
8
+ var customClass = Prism.plugins.customClass;
9
+ if (customClass) {
10
+ return customClass.apply(name, 'none');
11
+ } else {
12
+ return name;
13
+ }
14
+ }
14
15
 
15
16
  var PARTNER = {
16
17
  '(': ')',
@@ -18,17 +19,26 @@
18
19
  '{': '}',
19
20
  };
20
21
 
22
+ // The names for brace types.
23
+ // These names have two purposes: 1) they can be used for styling and 2) they are used to pair braces. Only braces
24
+ // of the same type are paired.
21
25
  var NAMES = {
22
26
  '(': 'brace-round',
23
27
  '[': 'brace-square',
24
28
  '{': 'brace-curly',
25
29
  };
26
30
 
31
+ // A map for brace aliases.
32
+ // This is useful for when some braces have a prefix/suffix as part of the punctuation token.
33
+ var BRACE_ALIAS_MAP = {
34
+ '${': '{', // JS template punctuation (e.g. `foo ${bar + 1}`)
35
+ };
36
+
27
37
  var LEVEL_WARP = 12;
28
38
 
29
39
  var pairIdCounter = 0;
30
40
 
31
- var BRACE_ID_PATTERN = /^(pair-\d+-)(open|close)$/;
41
+ var BRACE_ID_PATTERN = /^(pair-\d+-)(close|open)$/;
32
42
 
33
43
  /**
34
44
  * Returns the brace partner given one brace of a brace pair.
@@ -45,36 +55,32 @@
45
55
  * @this {HTMLElement}
46
56
  */
47
57
  function hoverBrace() {
48
- for (var parent = this.parentElement; parent; parent = parent.parentElement) {
49
- if (NO_BRACE_HOVER_CLASS.test(parent.className)) {
50
- return;
51
- }
58
+ if (!Prism.util.isActive(this, 'brace-hover', true)) {
59
+ return;
52
60
  }
53
61
 
54
- [this, getPartnerBrace(this)].forEach(function (ele) {
55
- ele.className = (ele.className.replace(BRACE_HOVER_CLASS, ' ') + ' brace-hover').replace(/\s+/g, ' ');
62
+ [this, getPartnerBrace(this)].forEach(function (e) {
63
+ e.classList.add(mapClassName('brace-hover'));
56
64
  });
57
65
  }
58
66
  /**
59
67
  * @this {HTMLElement}
60
68
  */
61
69
  function leaveBrace() {
62
- [this, getPartnerBrace(this)].forEach(function (ele) {
63
- ele.className = ele.className.replace(BRACE_HOVER_CLASS, ' ');
70
+ [this, getPartnerBrace(this)].forEach(function (e) {
71
+ e.classList.remove(mapClassName('brace-hover'));
64
72
  });
65
73
  }
66
74
  /**
67
75
  * @this {HTMLElement}
68
76
  */
69
77
  function clickBrace() {
70
- for (var parent = this.parentElement; parent; parent = parent.parentElement) {
71
- if (NO_BRACE_SELECT_CLASS.test(parent.className)) {
72
- return;
73
- }
78
+ if (!Prism.util.isActive(this, 'brace-select', true)) {
79
+ return;
74
80
  }
75
81
 
76
- [this, getPartnerBrace(this)].forEach(function (ele) {
77
- ele.className = (ele.className.replace(BRACE_SELECTED_CLASS, ' ') + ' brace-selected').replace(/\s+/g, ' ');
82
+ [this, getPartnerBrace(this)].forEach(function (e) {
83
+ e.classList.add(mapClassName('brace-selected'));
78
84
  });
79
85
  }
80
86
 
@@ -91,11 +97,8 @@
91
97
  // find the braces to match
92
98
  /** @type {string[]} */
93
99
  var toMatch = [];
94
- for (var ele = code; ele; ele = ele.parentElement) {
95
- if (MATCH_ALL_CLASS.test(ele.className)) {
96
- toMatch.push('(', '[', '{');
97
- break;
98
- }
100
+ if (Prism.util.isActive(code, 'match-braces')) {
101
+ toMatch.push('(', '[', '{');
99
102
  }
100
103
 
101
104
  if (toMatch.length == 0) {
@@ -108,22 +111,25 @@
108
111
  pre.addEventListener('mousedown', function removeBraceSelected() {
109
112
  // the code element might have been replaced
110
113
  var code = pre.querySelector('code');
111
- Array.prototype.slice.call(code.querySelectorAll('.brace-selected')).forEach(function (element) {
112
- element.className = element.className.replace(BRACE_SELECTED_CLASS, ' ');
114
+ var className = mapClassName('brace-selected');
115
+ Array.prototype.slice.call(code.querySelectorAll('.' + className)).forEach(function (e) {
116
+ e.classList.remove(className);
113
117
  });
114
118
  });
115
119
  Object.defineProperty(pre, '__listenerAdded', { value: true });
116
120
  }
117
121
 
118
122
  /** @type {HTMLSpanElement[]} */
119
- var punctuation = Array.prototype.slice.call(code.querySelectorAll('span.token.punctuation'));
123
+ var punctuation = Array.prototype.slice.call(
124
+ code.querySelectorAll('span.' + mapClassName('token') + '.' + mapClassName('punctuation'))
125
+ );
120
126
 
121
127
  /** @type {{ index: number, open: boolean, element: HTMLElement }[]} */
122
128
  var allBraces = [];
123
129
 
124
130
  toMatch.forEach(function (open) {
125
131
  var close = PARTNER[open];
126
- var name = NAMES[open];
132
+ var name = mapClassName(NAMES[open]);
127
133
 
128
134
  /** @type {[number, number][]} */
129
135
  var pairs = [];
@@ -134,15 +140,16 @@
134
140
  var element = punctuation[i];
135
141
  if (element.childElementCount == 0) {
136
142
  var text = element.textContent;
143
+ text = BRACE_ALIAS_MAP[text] || text;
137
144
  if (text === open) {
138
145
  allBraces.push({ index: i, open: true, element: element });
139
- element.className += ' ' + name;
140
- element.className += ' brace-open';
146
+ element.classList.add(name);
147
+ element.classList.add(mapClassName('brace-open'));
141
148
  openStack.push(i);
142
149
  } else if (text === close) {
143
150
  allBraces.push({ index: i, open: false, element: element });
144
- element.className += ' ' + name;
145
- element.className += ' brace-close';
151
+ element.classList.add(name);
152
+ element.classList.add(mapClassName('brace-close'));
146
153
  if (openStack.length) {
147
154
  pairs.push([i, openStack.pop()]);
148
155
  }
@@ -153,16 +160,16 @@
153
160
  pairs.forEach(function (pair) {
154
161
  var pairId = 'pair-' + (pairIdCounter++) + '-';
155
162
 
156
- var openEle = punctuation[pair[0]];
157
- var closeEle = punctuation[pair[1]];
163
+ var opening = punctuation[pair[0]];
164
+ var closing = punctuation[pair[1]];
158
165
 
159
- openEle.id = pairId + 'open';
160
- closeEle.id = pairId + 'close';
166
+ opening.id = pairId + 'open';
167
+ closing.id = pairId + 'close';
161
168
 
162
- [openEle, closeEle].forEach(function (ele) {
163
- ele.addEventListener('mouseenter', hoverBrace);
164
- ele.addEventListener('mouseleave', leaveBrace);
165
- ele.addEventListener('click', clickBrace);
169
+ [opening, closing].forEach(function (e) {
170
+ e.addEventListener('mouseenter', hoverBrace);
171
+ e.addEventListener('mouseleave', leaveBrace);
172
+ e.addEventListener('click', clickBrace);
166
173
  });
167
174
  });
168
175
  });
@@ -171,14 +178,13 @@
171
178
  allBraces.sort(function (a, b) { return a.index - b.index; });
172
179
  allBraces.forEach(function (brace) {
173
180
  if (brace.open) {
174
- brace.element.className += ' brace-level-' + (level % LEVEL_WARP + 1);
181
+ brace.element.classList.add(mapClassName('brace-level-' + (level % LEVEL_WARP + 1)));
175
182
  level++;
176
183
  } else {
177
184
  level = Math.max(0, level - 1);
178
- brace.element.className += ' brace-level-' + (level % LEVEL_WARP + 1);
185
+ brace.element.classList.add(mapClassName('brace-level-' + (level % LEVEL_WARP + 1)));
179
186
  }
180
187
  });
181
-
182
188
  });
183
189
 
184
190
  }());