prism-rails 1.6.0.3 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +3 -0
- data/README.md +88 -44
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/languages/index.js +82 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-abap.js +2 -2
- data/vendor/assets/javascripts/languages/prism-abnf.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-actionscript.js +3 -5
- data/vendor/assets/javascripts/{prism → languages}/prism-ada.js +2 -2
- data/vendor/assets/javascripts/languages/prism-antlr4.js +65 -0
- data/vendor/assets/javascripts/languages/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-apl.js +8 -5
- data/vendor/assets/javascripts/{prism → languages}/prism-applescript.js +3 -3
- data/vendor/assets/javascripts/languages/prism-aql.js +41 -0
- data/vendor/assets/javascripts/languages/prism-arduino.js +5 -0
- data/vendor/assets/javascripts/languages/prism-arff.js +10 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-asciidoc.js +23 -60
- data/vendor/assets/javascripts/languages/prism-asm6502.js +28 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-aspnet.js +22 -10
- data/vendor/assets/javascripts/languages/prism-autohotkey.js +27 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-autoit.js +1 -0
- data/vendor/assets/javascripts/languages/prism-bash.js +197 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-basic.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-batch.js +0 -0
- data/vendor/assets/javascripts/languages/prism-bbcode.js +27 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-bison.js +0 -0
- data/vendor/assets/javascripts/languages/prism-bnf.js +21 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-brainfuck.js +0 -0
- data/vendor/assets/javascripts/languages/prism-brightscript.js +44 -0
- data/vendor/assets/javascripts/languages/prism-bro.js +48 -0
- data/vendor/assets/javascripts/languages/prism-c.js +41 -0
- data/vendor/assets/javascripts/languages/prism-cil.js +27 -0
- data/vendor/assets/javascripts/languages/prism-clike.js +30 -0
- data/vendor/assets/javascripts/languages/prism-clojure.js +16 -0
- data/vendor/assets/javascripts/languages/prism-cmake.js +29 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-coffeescript.js +6 -5
- data/vendor/assets/javascripts/languages/prism-concurnas.js +48 -0
- data/vendor/assets/javascripts/languages/prism-core.js +627 -0
- data/vendor/assets/javascripts/languages/prism-cpp.js +21 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-crystal.js +5 -7
- data/vendor/assets/javascripts/languages/prism-csharp.js +81 -0
- data/vendor/assets/javascripts/languages/prism-csp.js +25 -0
- data/vendor/assets/javascripts/languages/prism-css-extras.js +109 -0
- data/vendor/assets/javascripts/languages/prism-css.js +62 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-d.js +49 -34
- data/vendor/assets/javascripts/{prism → languages}/prism-dart.js +8 -2
- data/vendor/assets/javascripts/languages/prism-diff.js +54 -0
- data/vendor/assets/javascripts/languages/prism-django.js +60 -0
- data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +33 -0
- data/vendor/assets/javascripts/languages/prism-docker.js +11 -0
- data/vendor/assets/javascripts/languages/prism-ebnf.js +22 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-eiffel.js +20 -7
- data/vendor/assets/javascripts/languages/prism-ejs.js +24 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-elixir.js +14 -15
- data/vendor/assets/javascripts/languages/prism-elm.js +44 -0
- data/vendor/assets/javascripts/languages/prism-erb.js +20 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-erlang.js +7 -4
- data/vendor/assets/javascripts/languages/prism-etlua.js +23 -0
- data/vendor/assets/javascripts/languages/prism-factor.js +403 -0
- data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +35 -0
- data/vendor/assets/javascripts/languages/prism-flow.js +35 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-fortran.js +5 -2
- data/vendor/assets/javascripts/languages/prism-fsharp.js +67 -0
- data/vendor/assets/javascripts/languages/prism-ftl.js +97 -0
- data/vendor/assets/javascripts/languages/prism-gcode.js +15 -0
- data/vendor/assets/javascripts/languages/prism-gdscript.js +27 -0
- data/vendor/assets/javascripts/languages/prism-gedcom.js +28 -0
- data/vendor/assets/javascripts/languages/prism-gherkin.js +85 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-git.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-glsl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-gml.js +7 -0
- data/vendor/assets/javascripts/languages/prism-go.js +12 -0
- data/vendor/assets/javascripts/languages/prism-graphql.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-groovy.js +12 -10
- data/vendor/assets/javascripts/{prism → languages}/prism-haml.js +14 -26
- data/vendor/assets/javascripts/languages/prism-handlebars.js +37 -0
- data/vendor/assets/javascripts/languages/prism-haskell.js +38 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-haxe.js +4 -2
- data/vendor/assets/javascripts/languages/prism-hcl.js +65 -0
- data/vendor/assets/javascripts/languages/prism-hpkp.js +20 -0
- data/vendor/assets/javascripts/languages/prism-hsts.js +20 -0
- data/vendor/assets/javascripts/languages/prism-http.js +77 -0
- data/vendor/assets/javascripts/languages/prism-ichigojam.js +15 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-icon.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-inform7.js +6 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-ini.js +2 -2
- data/vendor/assets/javascripts/languages/prism-io.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-j.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-jade.js +0 -0
- data/vendor/assets/javascripts/languages/prism-java.js +63 -0
- data/vendor/assets/javascripts/languages/prism-javadoc.js +54 -0
- data/vendor/assets/javascripts/languages/prism-javadoclike.js +87 -0
- data/vendor/assets/javascripts/languages/prism-javascript.js +91 -0
- data/vendor/assets/javascripts/languages/prism-javastacktrace.js +93 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-jolie.js +9 -10
- data/vendor/assets/javascripts/languages/prism-jq.js +67 -0
- data/vendor/assets/javascripts/languages/prism-js-extras.js +104 -0
- data/vendor/assets/javascripts/languages/prism-js-templates.js +346 -0
- data/vendor/assets/javascripts/languages/prism-jsdoc.js +73 -0
- data/vendor/assets/javascripts/languages/prism-json.js +19 -0
- data/vendor/assets/javascripts/languages/prism-json5.js +23 -0
- data/vendor/assets/javascripts/languages/prism-jsonp.js +7 -0
- data/vendor/assets/javascripts/languages/prism-jsx.js +126 -0
- data/vendor/assets/javascripts/languages/prism-julia.js +13 -0
- data/vendor/assets/javascripts/languages/prism-keyman.js +14 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-kotlin.js +6 -6
- data/vendor/assets/javascripts/{prism → languages}/prism-latex.js +16 -13
- data/vendor/assets/javascripts/languages/prism-latte.js +69 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-less.js +3 -9
- data/vendor/assets/javascripts/languages/prism-lilypond.js +69 -0
- data/vendor/assets/javascripts/languages/prism-liquid.js +12 -0
- data/vendor/assets/javascripts/languages/prism-lisp.js +197 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-livescript.js +19 -18
- data/vendor/assets/javascripts/{prism → languages}/prism-lolcode.js +3 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-lua.js +0 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-makefile.js +5 -2
- data/vendor/assets/javascripts/languages/prism-markdown.js +344 -0
- data/vendor/assets/javascripts/languages/prism-markup-templating.js +123 -0
- data/vendor/assets/javascripts/languages/prism-markup.js +103 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-matlab.js +5 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-mel.js +7 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-mizar.js +0 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-monkey.js +9 -3
- data/vendor/assets/javascripts/languages/prism-moonscript.js +57 -0
- data/vendor/assets/javascripts/languages/prism-n1ql.js +18 -0
- data/vendor/assets/javascripts/languages/prism-n4js.js +14 -0
- data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +9 -0
- data/vendor/assets/javascripts/languages/prism-nasm.js +24 -0
- data/vendor/assets/javascripts/languages/prism-neon.js +41 -0
- data/vendor/assets/javascripts/languages/prism-nginx.js +11 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-nim.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-nix.js +2 -1
- data/vendor/assets/javascripts/languages/prism-nsis.js +29 -0
- data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -0
- data/vendor/assets/javascripts/languages/prism-ocaml.js +41 -0
- data/vendor/assets/javascripts/languages/prism-opencl.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-oz.js +6 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-parigp.js +4 -1
- data/vendor/assets/javascripts/languages/prism-parser.js +73 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-pascal.js +9 -4
- data/vendor/assets/javascripts/languages/prism-pascaligo.js +62 -0
- data/vendor/assets/javascripts/languages/prism-pcaxis.js +53 -0
- data/vendor/assets/javascripts/languages/prism-perl.js +191 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-php-extras.js +3 -3
- data/vendor/assets/javascripts/languages/prism-php.js +130 -0
- data/vendor/assets/javascripts/languages/prism-phpdoc.js +27 -0
- data/vendor/assets/javascripts/languages/prism-plsql.js +26 -0
- data/vendor/assets/javascripts/languages/prism-powershell.js +60 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-processing.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-prolog.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-properties.js +2 -2
- data/vendor/assets/javascripts/languages/prism-protobuf.js +36 -0
- data/vendor/assets/javascripts/languages/prism-pug.js +181 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-puppet.js +7 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-pure.js +19 -17
- data/vendor/assets/javascripts/languages/prism-python.js +64 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-q.js +13 -6
- data/vendor/assets/javascripts/languages/prism-qml.js +58 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-qore.js +7 -4
- data/vendor/assets/javascripts/{prism → languages}/prism-r.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-reason.js +4 -8
- data/vendor/assets/javascripts/languages/prism-regex.js +97 -0
- data/vendor/assets/javascripts/languages/prism-renpy.js +29 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-rest.js +4 -4
- data/vendor/assets/javascripts/{prism → languages}/prism-rip.js +7 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-roboconf.js +0 -0
- data/vendor/assets/javascripts/languages/prism-robotframework.js +104 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-ruby.js +49 -15
- data/vendor/assets/javascripts/languages/prism-rust.js +68 -0
- data/vendor/assets/javascripts/languages/prism-sas.js +302 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-sass.js +1 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-scala.js +10 -11
- data/vendor/assets/javascripts/languages/prism-scheme.js +33 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-scss.js +18 -16
- data/vendor/assets/javascripts/languages/prism-shell-session.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-smalltalk.js +9 -9
- data/vendor/assets/javascripts/languages/prism-smarty.js +87 -0
- data/vendor/assets/javascripts/languages/prism-solidity.js +20 -0
- data/vendor/assets/javascripts/languages/prism-solution-file.js +51 -0
- data/vendor/assets/javascripts/languages/prism-soy.js +96 -0
- data/vendor/assets/javascripts/languages/prism-sparql.js +18 -0
- data/vendor/assets/javascripts/languages/prism-splunk-spl.js +24 -0
- data/vendor/assets/javascripts/languages/prism-sqf.js +34 -0
- data/vendor/assets/javascripts/languages/prism-sql.js +24 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-stylus.js +16 -7
- data/vendor/assets/javascripts/languages/prism-swift.js +25 -0
- data/vendor/assets/javascripts/languages/prism-t4-cs.js +1 -0
- data/vendor/assets/javascripts/languages/prism-t4-templating.js +49 -0
- data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -0
- data/vendor/assets/javascripts/languages/prism-tap.js +20 -0
- data/vendor/assets/javascripts/languages/prism-tcl.js +46 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-textile.js +35 -32
- data/vendor/assets/javascripts/languages/prism-toml.js +43 -0
- data/vendor/assets/javascripts/languages/prism-tsx.js +2 -0
- data/vendor/assets/javascripts/languages/prism-tt2.js +53 -0
- data/vendor/assets/javascripts/languages/prism-turtle.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-twig.js +8 -8
- data/vendor/assets/javascripts/languages/prism-typescript.js +7 -0
- data/vendor/assets/javascripts/languages/prism-vala.js +74 -0
- data/vendor/assets/javascripts/languages/prism-vbnet.js +15 -0
- data/vendor/assets/javascripts/languages/prism-velocity.js +72 -0
- data/vendor/assets/javascripts/languages/prism-verilog.js +20 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-vhdl.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-vim.js +1 -1
- data/vendor/assets/javascripts/languages/prism-visual-basic.js +34 -0
- data/vendor/assets/javascripts/languages/prism-wasm.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-wiki.js +7 -6
- data/vendor/assets/javascripts/languages/prism-xeora.js +114 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-xojo.js +1 -1
- data/vendor/assets/javascripts/languages/prism-xquery.js +162 -0
- data/vendor/assets/javascripts/languages/prism-yaml.js +76 -0
- data/vendor/assets/javascripts/languages/prism-zig.js +97 -0
- data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +13 -8
- data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +306 -95
- data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +96 -38
- data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +10 -10
- data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +89 -23
- data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -2
- data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +83 -0
- data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +19 -0
- data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +53 -41
- data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +125 -0
- data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +88 -0
- data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +124 -69
- data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +4 -2
- data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +195 -115
- data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +154 -43
- data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +184 -0
- data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +29 -11
- data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +703 -0
- data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +2 -2
- data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +83 -18
- data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +190 -19
- data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +53 -8
- data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +11 -7
- data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +12 -12
- data/vendor/assets/javascripts/prism.js +210 -127
- data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.css +13 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +9 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +5 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +4 -3
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.css +29 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +242 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.css +7 -6
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +21 -15
- data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.css +4 -4
- data/vendor/assets/stylesheets/prism-theme/prism-a11y-dark.css +161 -0
- data/vendor/assets/stylesheets/{prism-atom-dark.css → prism-theme/prism-atom-dark.css} +10 -13
- data/vendor/assets/stylesheets/prism-theme/prism-autolinker.css +3 -0
- data/vendor/assets/stylesheets/{prism-base16-ateliersulphurpool.light.css → prism-theme/prism-base16-ateliersulphurpool.light.css} +57 -53
- data/vendor/assets/stylesheets/{prism-cb.css → prism-theme/prism-cb.css} +27 -27
- data/vendor/assets/stylesheets/prism-theme/prism-command-line.css +33 -0
- data/vendor/assets/stylesheets/{prism-coy.css → prism-theme/prism-coy.css} +14 -9
- data/vendor/assets/stylesheets/prism-theme/prism-darcula.css +159 -0
- data/vendor/assets/stylesheets/{prism-dark.css → prism-theme/prism-dark.css} +2 -1
- data/vendor/assets/stylesheets/prism-theme/prism-dracula.css +122 -0
- data/vendor/assets/stylesheets/{prism-duotone-dark.css → prism-theme/prism-duotone-dark.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-earth.css → prism-theme/prism-duotone-earth.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-forest.css → prism-theme/prism-duotone-forest.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-light.css → prism-theme/prism-duotone-light.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-sea.css → prism-theme/prism-duotone-sea.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-space.css → prism-theme/prism-duotone-space.css} +55 -51
- data/vendor/assets/stylesheets/{prism-funky.css → prism-theme/prism-funky.css} +16 -2
- data/vendor/assets/stylesheets/{prism-ghcolors.css → prism-theme/prism-ghcolors.css} +47 -44
- data/vendor/assets/stylesheets/prism-theme/prism-hopscotch.css +132 -0
- data/vendor/assets/stylesheets/prism-theme/prism-line-highlight.css +49 -0
- data/vendor/assets/stylesheets/prism-theme/prism-line-numbers.css +41 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-dark.css +205 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-light.css +207 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-oceanic.css +210 -0
- data/vendor/assets/stylesheets/prism-theme/prism-nord.css +124 -0
- data/vendor/assets/stylesheets/{prism-okaidia.css → prism-theme/prism-okaidia.css} +4 -2
- data/vendor/assets/stylesheets/prism-theme/prism-pojoaque.css +151 -0
- data/vendor/assets/stylesheets/prism-theme/prism-previewers.css +242 -0
- data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +200 -0
- data/vendor/assets/stylesheets/prism-theme/prism-show-invisibles.css +34 -0
- data/vendor/assets/stylesheets/{prism-show-language.css → prism-theme/prism-show-language.css} +0 -0
- data/vendor/assets/stylesheets/{prism-solarizedlight.css → prism-theme/prism-solarizedlight.css} +5 -3
- data/vendor/assets/stylesheets/prism-theme/prism-synthwave84.css +140 -0
- data/vendor/assets/stylesheets/{prism-tomorrow.css → prism-theme/prism-tomorrow.css} +1 -0
- data/vendor/assets/stylesheets/{prism-toolbar.css → prism-theme/prism-toolbar.css} +15 -15
- data/vendor/assets/stylesheets/{prism-twilight.css → prism-theme/prism-twilight.css} +2 -1
- data/vendor/assets/stylesheets/prism-theme/prism-unescaped-markup.css +10 -0
- data/vendor/assets/stylesheets/{prism-vs.css → prism-theme/prism-vs.css} +62 -55
- data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +216 -0
- data/vendor/assets/stylesheets/prism-theme/prism-wpd.css +11 -0
- data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +189 -0
- data/vendor/assets/stylesheets/prism.css +5 -3
- metadata +262 -148
- data/vendor/assets/javascripts/prism/prism-apacheconf.js +0 -47
- data/vendor/assets/javascripts/prism/prism-autohotkey.js +0 -27
- data/vendor/assets/javascripts/prism/prism-bash.js +0 -80
- data/vendor/assets/javascripts/prism/prism-bro.js +0 -50
- data/vendor/assets/javascripts/prism/prism-c.js +0 -33
- data/vendor/assets/javascripts/prism/prism-clike.js +0 -29
- data/vendor/assets/javascripts/prism/prism-core.js +0 -511
- data/vendor/assets/javascripts/prism/prism-cpp.js +0 -12
- data/vendor/assets/javascripts/prism/prism-csharp.js +0 -32
- data/vendor/assets/javascripts/prism/prism-css-extras.js +0 -16
- data/vendor/assets/javascripts/prism/prism-css.js +0 -51
- data/vendor/assets/javascripts/prism/prism-diff.js +0 -20
- data/vendor/assets/javascripts/prism/prism-docker.js +0 -9
- data/vendor/assets/javascripts/prism/prism-fsharp.js +0 -33
- data/vendor/assets/javascripts/prism/prism-gherkin.js +0 -78
- data/vendor/assets/javascripts/prism/prism-go.js +0 -9
- data/vendor/assets/javascripts/prism/prism-graphql.js +0 -24
- data/vendor/assets/javascripts/prism/prism-handlebars.js +0 -83
- data/vendor/assets/javascripts/prism/prism-haskell.js +0 -35
- data/vendor/assets/javascripts/prism/prism-http.js +0 -50
- data/vendor/assets/javascripts/prism/prism-java.js +0 -16
- data/vendor/assets/javascripts/prism/prism-javascript.js +0 -48
- data/vendor/assets/javascripts/prism/prism-json.js +0 -11
- data/vendor/assets/javascripts/prism/prism-jsx.js +0 -27
- data/vendor/assets/javascripts/prism/prism-julia.js +0 -12
- data/vendor/assets/javascripts/prism/prism-keyman.js +0 -14
- data/vendor/assets/javascripts/prism/prism-markdown.js +0 -120
- data/vendor/assets/javascripts/prism/prism-markup.js +0 -46
- data/vendor/assets/javascripts/prism/prism-nasm.js +0 -24
- data/vendor/assets/javascripts/prism/prism-nginx.js +0 -11
- data/vendor/assets/javascripts/prism/prism-nsis.js +0 -26
- data/vendor/assets/javascripts/prism/prism-objectivec.js +0 -5
- data/vendor/assets/javascripts/prism/prism-ocaml.js +0 -21
- data/vendor/assets/javascripts/prism/prism-parser.js +0 -66
- data/vendor/assets/javascripts/prism/prism-perl.js +0 -140
- data/vendor/assets/javascripts/prism/prism-php.js +0 -111
- data/vendor/assets/javascripts/prism/prism-powershell.js +0 -52
- data/vendor/assets/javascripts/prism/prism-protobuf.js +0 -8
- data/vendor/assets/javascripts/prism/prism-python.js +0 -27
- data/vendor/assets/javascripts/prism/prism-rust.js +0 -53
- data/vendor/assets/javascripts/prism/prism-sas.js +0 -31
- data/vendor/assets/javascripts/prism/prism-scheme.js +0 -26
- data/vendor/assets/javascripts/prism/prism-smarty.js +0 -127
- data/vendor/assets/javascripts/prism/prism-sql.js +0 -17
- data/vendor/assets/javascripts/prism/prism-swift.js +0 -25
- data/vendor/assets/javascripts/prism/prism-tcl.js +0 -43
- data/vendor/assets/javascripts/prism/prism-typescript.js +0 -5
- data/vendor/assets/javascripts/prism/prism-verilog.js +0 -17
- data/vendor/assets/javascripts/prism/prism-yaml.js +0 -44
- data/vendor/assets/stylesheets/prism-hopscotch.css +0 -124
- data/vendor/assets/stylesheets/prism-pojoaque.css +0 -134
- data/vendor/assets/stylesheets/prism-xonokai.css +0 -164
@@ -1,18 +1,17 @@
|
|
1
1
|
Prism.languages.jolie = Prism.languages.extend('clike', {
|
2
|
-
'keyword': /\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|
|
2
|
+
'keyword': /\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,
|
3
3
|
'builtin': /\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,
|
4
|
-
'number':
|
5
|
-
'operator':
|
4
|
+
'number': /(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?l?/i,
|
5
|
+
'operator': /-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,
|
6
6
|
'symbol': /[|;@]/,
|
7
7
|
'punctuation': /[,.]/,
|
8
8
|
'string': {
|
9
|
-
pattern: /(["'])(
|
9
|
+
pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
10
10
|
greedy: true
|
11
|
-
}
|
11
|
+
}
|
12
12
|
});
|
13
13
|
|
14
14
|
delete Prism.languages.jolie['class-name'];
|
15
|
-
delete Prism.languages.jolie['function'];
|
16
15
|
|
17
16
|
Prism.languages.insertBefore( 'jolie', 'keyword', {
|
18
17
|
'function':
|
@@ -24,7 +23,7 @@ Prism.languages.insertBefore( 'jolie', 'keyword', {
|
|
24
23
|
pattern: /(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,
|
25
24
|
lookbehind: true,
|
26
25
|
inside: {
|
27
|
-
'
|
26
|
+
'with-extension': {
|
28
27
|
pattern: /\bwith\s+\w+/,
|
29
28
|
inside: {
|
30
29
|
'keyword' : /\bwith\b/
|
@@ -46,11 +45,11 @@ Prism.languages.insertBefore( 'jolie', 'keyword', {
|
|
46
45
|
pattern: /,/
|
47
46
|
},
|
48
47
|
'function': {
|
49
|
-
pattern: /\w+/
|
48
|
+
pattern: /\w+/
|
50
49
|
},
|
51
50
|
'symbol': {
|
52
|
-
pattern: /=>/
|
51
|
+
pattern: /=>/
|
53
52
|
}
|
54
53
|
}
|
55
54
|
}
|
56
|
-
});
|
55
|
+
});
|
@@ -0,0 +1,67 @@
|
|
1
|
+
(function (Prism) {
|
2
|
+
|
3
|
+
var interpolation = /\\\((?:[^()]|\([^()]*\))*\)/.source;
|
4
|
+
var string = RegExp(/"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g, interpolation));
|
5
|
+
var stringInterpolation = {
|
6
|
+
'interpolation': {
|
7
|
+
pattern: RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + interpolation),
|
8
|
+
lookbehind: true,
|
9
|
+
inside: {
|
10
|
+
'content': {
|
11
|
+
pattern: /^(\\\()[\s\S]+(?=\)$)/,
|
12
|
+
lookbehind: true,
|
13
|
+
inside: null // see below
|
14
|
+
},
|
15
|
+
'punctuation': /^\\\(|\)$/
|
16
|
+
}
|
17
|
+
}
|
18
|
+
};
|
19
|
+
|
20
|
+
var jq = Prism.languages.jq = {
|
21
|
+
'comment': /#.*/,
|
22
|
+
'property': {
|
23
|
+
pattern: RegExp(string.source + /(?=\s*:(?!:))/.source),
|
24
|
+
greedy: true,
|
25
|
+
inside: stringInterpolation
|
26
|
+
},
|
27
|
+
'string': {
|
28
|
+
pattern: string,
|
29
|
+
greedy: true,
|
30
|
+
inside: stringInterpolation
|
31
|
+
},
|
32
|
+
|
33
|
+
'function': {
|
34
|
+
pattern: /(\bdef\s+)[a-z_]\w+/i,
|
35
|
+
lookbehind: true
|
36
|
+
},
|
37
|
+
|
38
|
+
'variable': /\B\$\w+/,
|
39
|
+
'property-literal': {
|
40
|
+
pattern: /[a-z_]\w*(?=\s*:(?!:))/i,
|
41
|
+
alias: 'property'
|
42
|
+
},
|
43
|
+
'keyword': /\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,
|
44
|
+
'boolean': /\b(?:true|false)\b/,
|
45
|
+
'number': /(?:\b\d+\.|\B\.)?\d+(?:[eE][+-]?\d+)?\b/,
|
46
|
+
|
47
|
+
'operator': [
|
48
|
+
{
|
49
|
+
pattern: /\|=?/,
|
50
|
+
alias: 'pipe'
|
51
|
+
},
|
52
|
+
/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|or|not)\b/
|
53
|
+
],
|
54
|
+
'c-style-function': {
|
55
|
+
pattern: /\b[a-z_]\w*(?=\s*\()/i,
|
56
|
+
alias: 'function'
|
57
|
+
},
|
58
|
+
'punctuation': /::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,
|
59
|
+
'dot': {
|
60
|
+
pattern: /\./,
|
61
|
+
alias: 'important'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
stringInterpolation.interpolation.inside.content.inside = jq;
|
66
|
+
|
67
|
+
}(Prism));
|
@@ -0,0 +1,104 @@
|
|
1
|
+
(function (Prism) {
|
2
|
+
|
3
|
+
Prism.languages.insertBefore('javascript', 'function-variable', {
|
4
|
+
'method-variable': {
|
5
|
+
pattern: RegExp('(\\.\\s*)' + Prism.languages.javascript['function-variable'].pattern.source),
|
6
|
+
lookbehind: true,
|
7
|
+
alias: ['function-variable', 'method', 'function', 'property-access']
|
8
|
+
}
|
9
|
+
});
|
10
|
+
|
11
|
+
Prism.languages.insertBefore('javascript', 'function', {
|
12
|
+
'method': {
|
13
|
+
pattern: RegExp('(\\.\\s*)' + Prism.languages.javascript['function'].source),
|
14
|
+
lookbehind: true,
|
15
|
+
alias: ['function', 'property-access']
|
16
|
+
}
|
17
|
+
});
|
18
|
+
|
19
|
+
Prism.languages.insertBefore('javascript', 'constant', {
|
20
|
+
'known-class-name': [
|
21
|
+
{
|
22
|
+
// standard built-ins
|
23
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
|
24
|
+
pattern: /\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,
|
25
|
+
alias: 'class-name'
|
26
|
+
},
|
27
|
+
{
|
28
|
+
// errors
|
29
|
+
pattern: /\b(?:[A-Z]\w*)Error\b/,
|
30
|
+
alias: 'class-name'
|
31
|
+
}
|
32
|
+
]
|
33
|
+
});
|
34
|
+
|
35
|
+
Prism.languages.javascript['keyword'].unshift(
|
36
|
+
{
|
37
|
+
pattern: /\b(?:as|default|export|from|import)\b/,
|
38
|
+
alias: 'module'
|
39
|
+
},
|
40
|
+
{
|
41
|
+
pattern: /\bnull\b/,
|
42
|
+
alias: ['null', 'nil']
|
43
|
+
},
|
44
|
+
{
|
45
|
+
pattern: /\bundefined\b/,
|
46
|
+
alias: 'nil'
|
47
|
+
}
|
48
|
+
);
|
49
|
+
|
50
|
+
Prism.languages.insertBefore('javascript', 'operator', {
|
51
|
+
'spread': {
|
52
|
+
pattern: /\.{3}/,
|
53
|
+
alias: 'operator'
|
54
|
+
},
|
55
|
+
'arrow': {
|
56
|
+
pattern: /=>/,
|
57
|
+
alias: 'operator'
|
58
|
+
}
|
59
|
+
});
|
60
|
+
|
61
|
+
Prism.languages.insertBefore('javascript', 'punctuation', {
|
62
|
+
'property-access': {
|
63
|
+
pattern: /(\.\s*)#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,
|
64
|
+
lookbehind: true
|
65
|
+
},
|
66
|
+
'maybe-class-name': {
|
67
|
+
pattern: /(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,
|
68
|
+
lookbehind: true
|
69
|
+
},
|
70
|
+
'dom': {
|
71
|
+
// this contains only a few commonly used DOM variables
|
72
|
+
pattern: /\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,
|
73
|
+
alias: 'variable'
|
74
|
+
},
|
75
|
+
'console': {
|
76
|
+
pattern: /\bconsole(?=\s*\.)/,
|
77
|
+
alias: 'class-name'
|
78
|
+
}
|
79
|
+
});
|
80
|
+
|
81
|
+
|
82
|
+
// add 'maybe-class-name' to tokens which might be a class name
|
83
|
+
var maybeClassNameTokens = ['function', 'function-variable', 'method', 'method-variable', 'property-access'];
|
84
|
+
|
85
|
+
for (var i = 0; i < maybeClassNameTokens.length; i++) {
|
86
|
+
var token = maybeClassNameTokens[i];
|
87
|
+
var value = Prism.languages.javascript[token];
|
88
|
+
|
89
|
+
// convert regex to object
|
90
|
+
if (Prism.util.type(value) === 'RegExp') {
|
91
|
+
value = Prism.languages.javascript[token] = {
|
92
|
+
pattern: value
|
93
|
+
};
|
94
|
+
}
|
95
|
+
|
96
|
+
// keep in mind that we don't support arrays
|
97
|
+
|
98
|
+
var inside = value.inside || {};
|
99
|
+
value.inside = inside;
|
100
|
+
|
101
|
+
inside['maybe-class-name'] = /^[A-Z][\s\S]*/;
|
102
|
+
}
|
103
|
+
|
104
|
+
}(Prism));
|
@@ -0,0 +1,346 @@
|
|
1
|
+
(function (Prism) {
|
2
|
+
|
3
|
+
var templateString = Prism.languages.javascript['template-string'];
|
4
|
+
|
5
|
+
// see the pattern in prism-javascript.js
|
6
|
+
var templateLiteralPattern = templateString.pattern.source;
|
7
|
+
var interpolationObject = templateString.inside['interpolation'];
|
8
|
+
var interpolationPunctuationObject = interpolationObject.inside['interpolation-punctuation'];
|
9
|
+
var interpolationPattern = interpolationObject.pattern.source;
|
10
|
+
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Creates a new pattern to match a template string with a special tag.
|
14
|
+
*
|
15
|
+
* This will return `undefined` if there is no grammar with the given language id.
|
16
|
+
*
|
17
|
+
* @param {string} language The language id of the embedded language. E.g. `markdown`.
|
18
|
+
* @param {string} tag The regex pattern to match the tag.
|
19
|
+
* @returns {object | undefined}
|
20
|
+
* @example
|
21
|
+
* createTemplate('css', /\bcss/.source);
|
22
|
+
*/
|
23
|
+
function createTemplate(language, tag) {
|
24
|
+
if (!Prism.languages[language]) {
|
25
|
+
return undefined;
|
26
|
+
}
|
27
|
+
|
28
|
+
return {
|
29
|
+
pattern: RegExp('((?:' + tag + ')\\s*)' + templateLiteralPattern),
|
30
|
+
lookbehind: true,
|
31
|
+
greedy: true,
|
32
|
+
inside: {
|
33
|
+
'template-punctuation': {
|
34
|
+
pattern: /^`|`$/,
|
35
|
+
alias: 'string'
|
36
|
+
},
|
37
|
+
'embedded-code': {
|
38
|
+
pattern: /[\s\S]+/,
|
39
|
+
alias: language
|
40
|
+
}
|
41
|
+
}
|
42
|
+
};
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
Prism.languages.javascript['template-string'] = [
|
47
|
+
// styled-jsx:
|
48
|
+
// css`a { color: #25F; }`
|
49
|
+
// styled-components:
|
50
|
+
// styled.h1`color: red;`
|
51
|
+
createTemplate('css', /\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),
|
52
|
+
|
53
|
+
// html`<p></p>`
|
54
|
+
// div.innerHTML = `<p></p>`
|
55
|
+
createTemplate('html', /\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),
|
56
|
+
|
57
|
+
// svg`<path fill="#fff" d="M55.37 ..."/>`
|
58
|
+
createTemplate('svg', /\bsvg/.source),
|
59
|
+
|
60
|
+
// md`# h1`, markdown`## h2`
|
61
|
+
createTemplate('markdown', /\b(?:md|markdown)/.source),
|
62
|
+
|
63
|
+
// gql`...`, graphql`...`, graphql.experimental`...`
|
64
|
+
createTemplate('graphql', /\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),
|
65
|
+
|
66
|
+
// vanilla template string
|
67
|
+
templateString
|
68
|
+
].filter(Boolean);
|
69
|
+
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Returns a specific placeholder literal for the given language.
|
73
|
+
*
|
74
|
+
* @param {number} counter
|
75
|
+
* @param {string} language
|
76
|
+
* @returns {string}
|
77
|
+
*/
|
78
|
+
function getPlaceholder(counter, language) {
|
79
|
+
return '___' + language.toUpperCase() + '_' + counter + '___';
|
80
|
+
}
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.
|
84
|
+
*
|
85
|
+
* @param {string} code
|
86
|
+
* @param {any} grammar
|
87
|
+
* @param {string} language
|
88
|
+
* @returns {(string|Token)[]}
|
89
|
+
*/
|
90
|
+
function tokenizeWithHooks(code, grammar, language) {
|
91
|
+
var env = {
|
92
|
+
code: code,
|
93
|
+
grammar: grammar,
|
94
|
+
language: language
|
95
|
+
};
|
96
|
+
Prism.hooks.run('before-tokenize', env);
|
97
|
+
env.tokens = Prism.tokenize(env.code, env.grammar);
|
98
|
+
Prism.hooks.run('after-tokenize', env);
|
99
|
+
return env.tokens;
|
100
|
+
}
|
101
|
+
|
102
|
+
/**
|
103
|
+
* Returns the token of the given JavaScript interpolation expression.
|
104
|
+
*
|
105
|
+
* @param {string} expression The code of the expression. E.g. `"${42}"`
|
106
|
+
* @returns {Token}
|
107
|
+
*/
|
108
|
+
function tokenizeInterpolationExpression(expression) {
|
109
|
+
var tempGrammar = {};
|
110
|
+
tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject;
|
111
|
+
|
112
|
+
/** @type {Array} */
|
113
|
+
var tokens = Prism.tokenize(expression, tempGrammar);
|
114
|
+
if (tokens.length === 3) {
|
115
|
+
/**
|
116
|
+
* The token array will look like this
|
117
|
+
* [
|
118
|
+
* ["interpolation-punctuation", "${"]
|
119
|
+
* "..." // JavaScript expression of the interpolation
|
120
|
+
* ["interpolation-punctuation", "}"]
|
121
|
+
* ]
|
122
|
+
*/
|
123
|
+
|
124
|
+
var args = [1, 1];
|
125
|
+
args.push.apply(args, tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript'));
|
126
|
+
|
127
|
+
tokens.splice.apply(tokens, args);
|
128
|
+
}
|
129
|
+
|
130
|
+
return new Prism.Token('interpolation', tokens, interpolationObject.alias, expression);
|
131
|
+
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Tokenizes the given code with support for JavaScript interpolation expressions mixed in.
|
135
|
+
*
|
136
|
+
* This function has 3 phases:
|
137
|
+
*
|
138
|
+
* 1. Replace all JavaScript interpolation expression with a placeholder.
|
139
|
+
* The placeholder will have the syntax of a identify of the target language.
|
140
|
+
* 2. Tokenize the code with placeholders.
|
141
|
+
* 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.
|
142
|
+
* The insertion only works if a placeholder hasn't been "ripped apart" meaning that the placeholder has been
|
143
|
+
* tokenized as two tokens by the grammar of the embedded language.
|
144
|
+
*
|
145
|
+
* @param {string} code
|
146
|
+
* @param {object} grammar
|
147
|
+
* @param {string} language
|
148
|
+
* @returns {Token}
|
149
|
+
*/
|
150
|
+
function tokenizeEmbedded(code, grammar, language) {
|
151
|
+
// 1. First filter out all interpolations
|
152
|
+
|
153
|
+
// because they might be escaped, we need a lookbehind, so we use Prism
|
154
|
+
/** @type {(Token|string)[]} */
|
155
|
+
var _tokens = Prism.tokenize(code, {
|
156
|
+
'interpolation': {
|
157
|
+
pattern: RegExp(interpolationPattern),
|
158
|
+
lookbehind: true
|
159
|
+
}
|
160
|
+
});
|
161
|
+
|
162
|
+
// replace all interpolations with a placeholder which is not in the code already
|
163
|
+
var placeholderCounter = 0;
|
164
|
+
/** @type {Object<string, string>} */
|
165
|
+
var placeholderMap = {};
|
166
|
+
var embeddedCode = _tokens.map(function (token) {
|
167
|
+
if (typeof token === 'string') {
|
168
|
+
return token;
|
169
|
+
} else {
|
170
|
+
var interpolationExpression = token.content;
|
171
|
+
|
172
|
+
var placeholder;
|
173
|
+
while (code.indexOf(placeholder = getPlaceholder(placeholderCounter++, language)) !== -1) { }
|
174
|
+
placeholderMap[placeholder] = interpolationExpression;
|
175
|
+
return placeholder;
|
176
|
+
}
|
177
|
+
}).join('');
|
178
|
+
|
179
|
+
|
180
|
+
// 2. Tokenize the embedded code
|
181
|
+
|
182
|
+
var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language);
|
183
|
+
|
184
|
+
|
185
|
+
// 3. Re-insert the interpolation
|
186
|
+
|
187
|
+
var placeholders = Object.keys(placeholderMap);
|
188
|
+
placeholderCounter = 0;
|
189
|
+
|
190
|
+
/**
|
191
|
+
*
|
192
|
+
* @param {(Token|string)[]} tokens
|
193
|
+
* @returns {void}
|
194
|
+
*/
|
195
|
+
function walkTokens(tokens) {
|
196
|
+
for (var i = 0; i < tokens.length; i++) {
|
197
|
+
if (placeholderCounter >= placeholders.length) {
|
198
|
+
return;
|
199
|
+
}
|
200
|
+
|
201
|
+
var token = tokens[i];
|
202
|
+
|
203
|
+
if (typeof token === 'string' || typeof token.content === 'string') {
|
204
|
+
var placeholder = placeholders[placeholderCounter];
|
205
|
+
var s = typeof token === 'string' ? token : /** @type {string} */ (token.content);
|
206
|
+
|
207
|
+
var index = s.indexOf(placeholder);
|
208
|
+
if (index !== -1) {
|
209
|
+
++placeholderCounter;
|
210
|
+
|
211
|
+
var before = s.substring(0, index);
|
212
|
+
var middle = tokenizeInterpolationExpression(placeholderMap[placeholder]);
|
213
|
+
var after = s.substring(index + placeholder.length);
|
214
|
+
|
215
|
+
var replacement = [];
|
216
|
+
if (before) {
|
217
|
+
replacement.push(before);
|
218
|
+
}
|
219
|
+
replacement.push(middle);
|
220
|
+
if (after) {
|
221
|
+
var afterTokens = [after];
|
222
|
+
walkTokens(afterTokens);
|
223
|
+
replacement.push.apply(replacement, afterTokens);
|
224
|
+
}
|
225
|
+
|
226
|
+
if (typeof token === 'string') {
|
227
|
+
tokens.splice.apply(tokens, [i, 1].concat(replacement));
|
228
|
+
i += replacement.length - 1;
|
229
|
+
} else {
|
230
|
+
token.content = replacement;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
} else {
|
234
|
+
var content = token.content;
|
235
|
+
if (Array.isArray(content)) {
|
236
|
+
walkTokens(content);
|
237
|
+
} else {
|
238
|
+
walkTokens([content]);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
}
|
242
|
+
}
|
243
|
+
walkTokens(embeddedTokens);
|
244
|
+
|
245
|
+
return new Prism.Token(language, embeddedTokens, 'language-' + language, code);
|
246
|
+
}
|
247
|
+
|
248
|
+
/**
|
249
|
+
* The languages for which JS templating will handle tagged template literals.
|
250
|
+
*
|
251
|
+
* JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.
|
252
|
+
*/
|
253
|
+
var supportedLanguages = {
|
254
|
+
'javascript': true,
|
255
|
+
'js': true,
|
256
|
+
'typescript': true,
|
257
|
+
'ts': true,
|
258
|
+
'jsx': true,
|
259
|
+
'tsx': true,
|
260
|
+
};
|
261
|
+
Prism.hooks.add('after-tokenize', function (env) {
|
262
|
+
if (!(env.language in supportedLanguages)) {
|
263
|
+
return;
|
264
|
+
}
|
265
|
+
|
266
|
+
/**
|
267
|
+
* Finds and tokenizes all template strings with an embedded languages.
|
268
|
+
*
|
269
|
+
* @param {(Token | string)[]} tokens
|
270
|
+
* @returns {void}
|
271
|
+
*/
|
272
|
+
function findTemplateStrings(tokens) {
|
273
|
+
for (var i = 0, l = tokens.length; i < l; i++) {
|
274
|
+
var token = tokens[i];
|
275
|
+
|
276
|
+
if (typeof token === 'string') {
|
277
|
+
continue;
|
278
|
+
}
|
279
|
+
|
280
|
+
var content = token.content;
|
281
|
+
if (!Array.isArray(content)) {
|
282
|
+
if (typeof content !== 'string') {
|
283
|
+
findTemplateStrings([content]);
|
284
|
+
}
|
285
|
+
continue;
|
286
|
+
}
|
287
|
+
|
288
|
+
if (token.type === 'template-string') {
|
289
|
+
/**
|
290
|
+
* A JavaScript template-string token will look like this:
|
291
|
+
*
|
292
|
+
* ["template-string", [
|
293
|
+
* ["template-punctuation", "`"],
|
294
|
+
* (
|
295
|
+
* An array of "string" and "interpolation" tokens. This is the simple string case.
|
296
|
+
* or
|
297
|
+
* ["embedded-code", "..."] This is the token containing the embedded code.
|
298
|
+
* It also has an alias which is the language of the embedded code.
|
299
|
+
* ),
|
300
|
+
* ["template-punctuation", "`"]
|
301
|
+
* ]]
|
302
|
+
*/
|
303
|
+
|
304
|
+
var embedded = content[1];
|
305
|
+
if (content.length === 3 && typeof embedded !== 'string' && embedded.type === 'embedded-code') {
|
306
|
+
// get string content
|
307
|
+
var code = stringContent(embedded);
|
308
|
+
|
309
|
+
var alias = embedded.alias;
|
310
|
+
var language = Array.isArray(alias) ? alias[0] : alias;
|
311
|
+
|
312
|
+
var grammar = Prism.languages[language];
|
313
|
+
if (!grammar) {
|
314
|
+
// the embedded language isn't registered.
|
315
|
+
continue;
|
316
|
+
}
|
317
|
+
|
318
|
+
content[1] = tokenizeEmbedded(code, grammar, language);
|
319
|
+
}
|
320
|
+
} else {
|
321
|
+
findTemplateStrings(content);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
}
|
325
|
+
|
326
|
+
findTemplateStrings(env.tokens);
|
327
|
+
});
|
328
|
+
|
329
|
+
|
330
|
+
/**
|
331
|
+
* Returns the string content of a token or token stream.
|
332
|
+
*
|
333
|
+
* @param {string | Token | (string | Token)[]} value
|
334
|
+
* @returns {string}
|
335
|
+
*/
|
336
|
+
function stringContent(value) {
|
337
|
+
if (typeof value === 'string') {
|
338
|
+
return value;
|
339
|
+
} else if (Array.isArray(value)) {
|
340
|
+
return value.map(stringContent).join('');
|
341
|
+
} else {
|
342
|
+
return stringContent(value.content);
|
343
|
+
}
|
344
|
+
}
|
345
|
+
|
346
|
+
}(Prism));
|