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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +22 -1
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/languages/prism-abap.js +17 -17
- data/vendor/assets/javascripts/languages/prism-abnf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-actionscript.js +6 -2
- data/vendor/assets/javascripts/languages/prism-ada.js +9 -6
- data/vendor/assets/javascripts/languages/prism-agda.js +24 -0
- data/vendor/assets/javascripts/languages/prism-al.js +25 -0
- data/vendor/assets/javascripts/languages/prism-antlr4.js +1 -1
- data/vendor/assets/javascripts/languages/prism-apacheconf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-apex.js +65 -0
- data/vendor/assets/javascripts/languages/prism-apl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-applescript.js +5 -8
- data/vendor/assets/javascripts/languages/prism-aql.js +14 -6
- data/vendor/assets/javascripts/languages/prism-arduino.js +5 -3
- data/vendor/assets/javascripts/languages/prism-arff.js +1 -1
- data/vendor/assets/javascripts/languages/prism-armasm.js +49 -0
- data/vendor/assets/javascripts/languages/prism-arturo.js +105 -0
- data/vendor/assets/javascripts/languages/prism-asciidoc.js +13 -13
- data/vendor/assets/javascripts/languages/prism-asm6502.js +15 -14
- data/vendor/assets/javascripts/languages/prism-asmatmel.js +43 -0
- data/vendor/assets/javascripts/languages/prism-aspnet.js +6 -6
- data/vendor/assets/javascripts/languages/prism-autohotkey.js +31 -14
- data/vendor/assets/javascripts/languages/prism-autoit.js +16 -16
- data/vendor/assets/javascripts/languages/prism-avisynth.js +188 -0
- data/vendor/assets/javascripts/languages/prism-avro-idl.js +50 -0
- data/vendor/assets/javascripts/languages/prism-awk.js +32 -0
- data/vendor/assets/javascripts/languages/prism-bash.js +60 -22
- data/vendor/assets/javascripts/languages/prism-basic.js +4 -4
- data/vendor/assets/javascripts/languages/prism-batch.js +10 -10
- data/vendor/assets/javascripts/languages/prism-bbcode.js +3 -1
- data/vendor/assets/javascripts/languages/prism-bbj.js +19 -0
- data/vendor/assets/javascripts/languages/prism-bicep.js +77 -0
- data/vendor/assets/javascripts/languages/prism-birb.js +23 -0
- data/vendor/assets/javascripts/languages/prism-bison.js +2 -2
- data/vendor/assets/javascripts/languages/prism-bqn.js +63 -0
- data/vendor/assets/javascripts/languages/prism-brainfuck.js +1 -1
- data/vendor/assets/javascripts/languages/prism-brightscript.js +2 -2
- data/vendor/assets/javascripts/languages/prism-bro.js +9 -20
- data/vendor/assets/javascripts/languages/prism-bsl.js +75 -0
- data/vendor/assets/javascripts/languages/prism-c.js +53 -14
- data/vendor/assets/javascripts/languages/prism-cfscript.js +44 -0
- data/vendor/assets/javascripts/languages/prism-chaiscript.js +60 -0
- data/vendor/assets/javascripts/languages/prism-cil.js +5 -5
- data/vendor/assets/javascripts/languages/prism-cilkc.js +8 -0
- data/vendor/assets/javascripts/languages/prism-cilkcpp.js +9 -0
- data/vendor/assets/javascripts/languages/prism-clike.js +7 -6
- data/vendor/assets/javascripts/languages/prism-clojure.js +20 -5
- data/vendor/assets/javascripts/languages/prism-cmake.js +7 -7
- data/vendor/assets/javascripts/languages/prism-cobol.js +53 -0
- data/vendor/assets/javascripts/languages/prism-coffeescript.js +79 -75
- data/vendor/assets/javascripts/languages/prism-concurnas.js +33 -20
- data/vendor/assets/javascripts/languages/prism-cooklang.js +146 -0
- data/vendor/assets/javascripts/languages/prism-coq.js +54 -0
- data/vendor/assets/javascripts/languages/prism-core.js +1087 -451
- data/vendor/assets/javascripts/languages/prism-cpp.js +99 -21
- data/vendor/assets/javascripts/languages/prism-crystal.js +36 -30
- data/vendor/assets/javascripts/languages/prism-csharp.js +343 -58
- data/vendor/assets/javascripts/languages/prism-cshtml.js +199 -0
- data/vendor/assets/javascripts/languages/prism-csp.js +67 -16
- data/vendor/assets/javascripts/languages/prism-css-extras.js +27 -16
- data/vendor/assets/javascripts/languages/prism-css.js +28 -26
- data/vendor/assets/javascripts/languages/prism-csv.js +6 -0
- data/vendor/assets/javascripts/languages/prism-cue.js +84 -0
- data/vendor/assets/javascripts/languages/prism-cypher.js +36 -0
- data/vendor/assets/javascripts/languages/prism-d.js +15 -10
- data/vendor/assets/javascripts/languages/prism-dart.js +76 -21
- data/vendor/assets/javascripts/languages/prism-dataweave.js +41 -0
- data/vendor/assets/javascripts/languages/prism-dax.js +27 -0
- data/vendor/assets/javascripts/languages/prism-dhall.js +69 -0
- data/vendor/assets/javascripts/languages/prism-diff.js +15 -5
- data/vendor/assets/javascripts/languages/prism-django.js +8 -8
- data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +3 -3
- data/vendor/assets/javascripts/languages/prism-docker.js +98 -11
- data/vendor/assets/javascripts/languages/prism-dot.js +76 -0
- data/vendor/assets/javascripts/languages/prism-ebnf.js +2 -2
- data/vendor/assets/javascripts/languages/prism-editorconfig.js +26 -0
- data/vendor/assets/javascripts/languages/prism-eiffel.js +5 -8
- data/vendor/assets/javascripts/languages/prism-ejs.js +4 -2
- data/vendor/assets/javascripts/languages/prism-elixir.js +21 -12
- data/vendor/assets/javascripts/languages/prism-elm.js +16 -15
- data/vendor/assets/javascripts/languages/prism-erb.js +12 -7
- data/vendor/assets/javascripts/languages/prism-erlang.js +6 -6
- data/vendor/assets/javascripts/languages/prism-excel-formula.js +66 -0
- data/vendor/assets/javascripts/languages/prism-factor.js +8 -8
- data/vendor/assets/javascripts/languages/prism-false.js +32 -0
- data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +2 -2
- data/vendor/assets/javascripts/languages/prism-flow.js +5 -5
- data/vendor/assets/javascripts/languages/prism-fortran.js +6 -6
- data/vendor/assets/javascripts/languages/prism-fsharp.js +20 -12
- data/vendor/assets/javascripts/languages/prism-ftl.js +12 -11
- data/vendor/assets/javascripts/languages/prism-gap.js +54 -0
- data/vendor/assets/javascripts/languages/prism-gcode.js +4 -3
- data/vendor/assets/javascripts/languages/prism-gdscript.js +2 -2
- data/vendor/assets/javascripts/languages/prism-gedcom.js +6 -6
- data/vendor/assets/javascripts/languages/prism-gettext.js +43 -0
- data/vendor/assets/javascripts/languages/prism-gherkin.js +7 -7
- data/vendor/assets/javascripts/languages/prism-git.js +3 -3
- data/vendor/assets/javascripts/languages/prism-glsl.js +2 -15
- data/vendor/assets/javascripts/languages/prism-gml.js +5 -5
- data/vendor/assets/javascripts/languages/prism-gn.js +51 -0
- data/vendor/assets/javascripts/languages/prism-go-module.js +24 -0
- data/vendor/assets/javascripts/languages/prism-go.js +21 -5
- data/vendor/assets/javascripts/languages/prism-gradle.js +63 -0
- data/vendor/assets/javascripts/languages/prism-graphql.js +187 -7
- data/vendor/assets/javascripts/languages/prism-groovy.js +56 -58
- data/vendor/assets/javascripts/languages/prism-haml.js +23 -16
- data/vendor/assets/javascripts/languages/prism-handlebars.js +10 -7
- data/vendor/assets/javascripts/languages/prism-haskell.js +42 -14
- data/vendor/assets/javascripts/languages/prism-haxe.js +54 -21
- data/vendor/assets/javascripts/languages/prism-hcl.js +12 -14
- data/vendor/assets/javascripts/languages/prism-hlsl.js +20 -0
- data/vendor/assets/javascripts/languages/prism-hoon.js +14 -0
- data/vendor/assets/javascripts/languages/prism-hpkp.js +4 -10
- data/vendor/assets/javascripts/languages/prism-hsts.js +4 -10
- data/vendor/assets/javascripts/languages/prism-http.js +91 -17
- data/vendor/assets/javascripts/languages/prism-ichigojam.js +5 -5
- data/vendor/assets/javascripts/languages/prism-icon.js +2 -2
- data/vendor/assets/javascripts/languages/prism-icu-message-format.js +148 -0
- data/vendor/assets/javascripts/languages/prism-idris.js +19 -0
- data/vendor/assets/javascripts/languages/prism-iecst.js +32 -0
- data/vendor/assets/javascripts/languages/prism-ignore.js +23 -0
- data/vendor/assets/javascripts/languages/prism-inform7.js +10 -10
- data/vendor/assets/javascripts/languages/prism-ini.js +39 -8
- data/vendor/assets/javascripts/languages/prism-io.js +10 -19
- data/vendor/assets/javascripts/languages/prism-j.js +7 -4
- data/vendor/assets/javascripts/languages/prism-java.js +80 -19
- data/vendor/assets/javascripts/languages/prism-javadoc.js +59 -31
- data/vendor/assets/javascripts/languages/prism-javadoclike.js +2 -2
- data/vendor/assets/javascripts/languages/prism-javascript.js +98 -17
- data/vendor/assets/javascripts/languages/prism-javastacktrace.js +63 -14
- data/vendor/assets/javascripts/languages/prism-jexl.js +14 -0
- data/vendor/assets/javascripts/languages/prism-jolie.js +23 -37
- data/vendor/assets/javascripts/languages/prism-jq.js +8 -6
- data/vendor/assets/javascripts/languages/prism-js-extras.js +34 -3
- data/vendor/assets/javascripts/languages/prism-js-templates.js +5 -2
- data/vendor/assets/javascripts/languages/prism-jsdoc.js +15 -10
- data/vendor/assets/javascripts/languages/prism-json.js +13 -5
- data/vendor/assets/javascripts/languages/prism-json5.js +3 -3
- data/vendor/assets/javascripts/languages/prism-jsonp.js +1 -1
- data/vendor/assets/javascripts/languages/prism-jsstacktrace.js +49 -0
- data/vendor/assets/javascripts/languages/prism-jsx.js +123 -104
- data/vendor/assets/javascripts/languages/prism-julia.js +31 -9
- data/vendor/assets/javascripts/languages/prism-keepalived.js +51 -0
- data/vendor/assets/javascripts/languages/prism-keyman.js +43 -13
- data/vendor/assets/javascripts/languages/prism-kotlin.js +56 -30
- data/vendor/assets/javascripts/languages/prism-kumir.js +106 -0
- data/vendor/assets/javascripts/languages/prism-kusto.js +44 -0
- data/vendor/assets/javascripts/languages/prism-latex.js +6 -6
- data/vendor/assets/javascripts/languages/prism-latte.js +11 -17
- data/vendor/assets/javascripts/languages/prism-less.js +5 -5
- data/vendor/assets/javascripts/languages/prism-lilypond.js +3 -3
- data/vendor/assets/javascripts/languages/prism-linker-script.js +30 -0
- data/vendor/assets/javascripts/languages/prism-liquid.js +62 -8
- data/vendor/assets/javascripts/languages/prism-lisp.js +41 -41
- data/vendor/assets/javascripts/languages/prism-livescript.js +3 -3
- data/vendor/assets/javascripts/languages/prism-llvm.js +19 -0
- data/vendor/assets/javascripts/languages/prism-log.js +120 -0
- data/vendor/assets/javascripts/languages/prism-lolcode.js +9 -9
- data/vendor/assets/javascripts/languages/prism-lua.js +3 -3
- data/vendor/assets/javascripts/languages/prism-magma.js +35 -0
- data/vendor/assets/javascripts/languages/prism-makefile.js +17 -17
- data/vendor/assets/javascripts/languages/prism-markdown.js +103 -32
- data/vendor/assets/javascripts/languages/prism-markup-templating.js +2 -1
- data/vendor/assets/javascripts/languages/prism-markup.js +95 -12
- data/vendor/assets/javascripts/languages/prism-mata.js +50 -0
- data/vendor/assets/javascripts/languages/prism-matlab.js +4 -4
- data/vendor/assets/javascripts/languages/prism-maxscript.js +91 -0
- data/vendor/assets/javascripts/languages/prism-mel.js +24 -21
- data/vendor/assets/javascripts/languages/prism-mermaid.js +113 -0
- data/vendor/assets/javascripts/languages/prism-metafont.js +84 -0
- data/vendor/assets/javascripts/languages/prism-mizar.js +3 -3
- data/vendor/assets/javascripts/languages/prism-mongodb.js +97 -0
- data/vendor/assets/javascripts/languages/prism-monkey.js +16 -18
- data/vendor/assets/javascripts/languages/prism-moonscript.js +1 -1
- data/vendor/assets/javascripts/languages/prism-n1ql.js +14 -8
- data/vendor/assets/javascripts/languages/prism-n4js.js +2 -2
- data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-naniscript.js +170 -0
- data/vendor/assets/javascripts/languages/prism-nasm.js +4 -4
- data/vendor/assets/javascripts/languages/prism-neon.js +5 -6
- data/vendor/assets/javascripts/languages/prism-nevod.js +125 -0
- data/vendor/assets/javascripts/languages/prism-nginx.js +54 -11
- data/vendor/assets/javascripts/languages/prism-nim.js +23 -12
- data/vendor/assets/javascripts/languages/prism-nix.js +10 -13
- data/vendor/assets/javascripts/languages/prism-nsis.js +10 -9
- data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -2
- data/vendor/assets/javascripts/languages/prism-ocaml.js +32 -15
- data/vendor/assets/javascripts/languages/prism-odin.js +99 -0
- data/vendor/assets/javascripts/languages/prism-opencl.js +19 -12
- data/vendor/assets/javascripts/languages/prism-openqasm.js +23 -0
- data/vendor/assets/javascripts/languages/prism-oz.js +11 -8
- data/vendor/assets/javascripts/languages/prism-parigp.js +4 -4
- data/vendor/assets/javascripts/languages/prism-parser.js +3 -3
- data/vendor/assets/javascripts/languages/prism-pascal.js +24 -8
- data/vendor/assets/javascripts/languages/prism-pascaligo.js +7 -7
- data/vendor/assets/javascripts/languages/prism-pcaxis.js +2 -2
- data/vendor/assets/javascripts/languages/prism-peoplecode.js +42 -0
- data/vendor/assets/javascripts/languages/prism-perl.js +153 -188
- data/vendor/assets/javascripts/languages/prism-php-extras.js +8 -5
- data/vendor/assets/javascripts/languages/prism-php.js +275 -63
- data/vendor/assets/javascripts/languages/prism-phpdoc.js +1 -1
- data/vendor/assets/javascripts/languages/prism-plant-uml.js +103 -0
- data/vendor/assets/javascripts/languages/prism-plsql.js +16 -25
- data/vendor/assets/javascripts/languages/prism-powerquery.js +55 -0
- data/vendor/assets/javascripts/languages/prism-powershell.js +16 -18
- data/vendor/assets/javascripts/languages/prism-processing.js +6 -9
- data/vendor/assets/javascripts/languages/prism-prolog.js +7 -8
- data/vendor/assets/javascripts/languages/prism-promql.js +99 -0
- data/vendor/assets/javascripts/languages/prism-properties.js +9 -5
- data/vendor/assets/javascripts/languages/prism-protobuf.js +16 -9
- data/vendor/assets/javascripts/languages/prism-psl.js +35 -0
- data/vendor/assets/javascripts/languages/prism-pug.js +28 -21
- data/vendor/assets/javascripts/languages/prism-puppet.js +6 -6
- data/vendor/assets/javascripts/languages/prism-pure.js +9 -6
- data/vendor/assets/javascripts/languages/prism-purebasic.js +70 -0
- data/vendor/assets/javascripts/languages/prism-purescript.js +31 -0
- data/vendor/assets/javascripts/languages/prism-python.js +12 -11
- data/vendor/assets/javascripts/languages/prism-q.js +4 -4
- data/vendor/assets/javascripts/languages/prism-qml.js +9 -6
- data/vendor/assets/javascripts/languages/prism-qore.js +5 -5
- data/vendor/assets/javascripts/languages/prism-qsharp.js +132 -0
- data/vendor/assets/javascripts/languages/prism-r.js +5 -5
- data/vendor/assets/javascripts/languages/prism-racket.js +18 -0
- data/vendor/assets/javascripts/languages/prism-reason.js +5 -8
- data/vendor/assets/javascripts/languages/prism-regex.js +54 -47
- data/vendor/assets/javascripts/languages/prism-rego.js +30 -0
- data/vendor/assets/javascripts/languages/prism-renpy.js +12 -12
- data/vendor/assets/javascripts/languages/prism-rescript.js +60 -0
- data/vendor/assets/javascripts/languages/prism-rest.js +16 -16
- data/vendor/assets/javascripts/languages/prism-rip.js +22 -16
- data/vendor/assets/javascripts/languages/prism-roboconf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-robotframework.js +5 -5
- data/vendor/assets/javascripts/languages/prism-ruby.js +127 -88
- data/vendor/assets/javascripts/languages/prism-rust.js +120 -60
- data/vendor/assets/javascripts/languages/prism-sas.js +62 -38
- data/vendor/assets/javascripts/languages/prism-sass.js +15 -10
- data/vendor/assets/javascripts/languages/prism-scala.js +36 -3
- data/vendor/assets/javascripts/languages/prism-scheme.js +120 -33
- data/vendor/assets/javascripts/languages/prism-scss.js +11 -7
- data/vendor/assets/javascripts/languages/prism-shell-session.js +42 -26
- data/vendor/assets/javascripts/languages/prism-smali.js +87 -0
- data/vendor/assets/javascripts/languages/prism-smalltalk.js +12 -5
- data/vendor/assets/javascripts/languages/prism-smarty.js +91 -47
- data/vendor/assets/javascripts/languages/prism-sml.js +68 -0
- data/vendor/assets/javascripts/languages/prism-solidity.js +3 -1
- data/vendor/assets/javascripts/languages/prism-solution-file.js +2 -2
- data/vendor/assets/javascripts/languages/prism-soy.js +9 -9
- data/vendor/assets/javascripts/languages/prism-sparql.js +8 -8
- data/vendor/assets/javascripts/languages/prism-splunk-spl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-sqf.js +7 -7
- data/vendor/assets/javascripts/languages/prism-sql.js +12 -4
- data/vendor/assets/javascripts/languages/prism-squirrel.js +47 -0
- data/vendor/assets/javascripts/languages/prism-stan.js +65 -0
- data/vendor/assets/javascripts/languages/prism-stata.js +76 -0
- data/vendor/assets/javascripts/languages/prism-stylus.js +48 -16
- data/vendor/assets/javascripts/languages/prism-supercollider.js +36 -0
- data/vendor/assets/javascripts/languages/prism-swift.js +143 -20
- data/vendor/assets/javascripts/languages/prism-systemd.js +74 -0
- data/vendor/assets/javascripts/languages/prism-t4-templating.js +2 -2
- data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -1
- data/vendor/assets/javascripts/languages/prism-tap.js +13 -11
- data/vendor/assets/javascripts/languages/prism-tcl.js +8 -8
- data/vendor/assets/javascripts/languages/prism-textile.js +55 -29
- data/vendor/assets/javascripts/languages/prism-toml.js +14 -8
- data/vendor/assets/javascripts/languages/prism-tremor.js +72 -0
- data/vendor/assets/javascripts/languages/prism-tsx.js +15 -2
- data/vendor/assets/javascripts/languages/prism-tt2.js +7 -7
- data/vendor/assets/javascripts/languages/prism-turtle.js +4 -4
- data/vendor/assets/javascripts/languages/prism-twig.js +38 -40
- data/vendor/assets/javascripts/languages/prism-typescript.js +59 -6
- data/vendor/assets/javascripts/languages/prism-typoscript.js +80 -0
- data/vendor/assets/javascripts/languages/prism-unrealscript.js +42 -0
- data/vendor/assets/javascripts/languages/prism-uorazor.js +48 -0
- data/vendor/assets/javascripts/languages/prism-uri.js +96 -0
- data/vendor/assets/javascripts/languages/prism-v.js +81 -0
- data/vendor/assets/javascripts/languages/prism-vala.js +20 -10
- data/vendor/assets/javascripts/languages/prism-vbnet.js +11 -4
- data/vendor/assets/javascripts/languages/prism-velocity.js +6 -6
- data/vendor/assets/javascripts/languages/prism-verilog.js +14 -8
- data/vendor/assets/javascripts/languages/prism-vhdl.js +7 -4
- data/vendor/assets/javascripts/languages/prism-vim.js +4 -4
- data/vendor/assets/javascripts/languages/prism-visual-basic.js +9 -14
- data/vendor/assets/javascripts/languages/prism-warpscript.js +21 -0
- data/vendor/assets/javascripts/languages/prism-wasm.js +3 -3
- data/vendor/assets/javascripts/languages/prism-web-idl.js +101 -0
- data/vendor/assets/javascripts/languages/prism-wgsl.js +69 -0
- data/vendor/assets/javascripts/languages/prism-wiki.js +4 -4
- data/vendor/assets/javascripts/languages/prism-wolfram.js +29 -0
- data/vendor/assets/javascripts/languages/prism-wren.js +100 -0
- data/vendor/assets/javascripts/languages/prism-xeora.js +8 -8
- data/vendor/assets/javascripts/languages/prism-xml-doc.js +40 -0
- data/vendor/assets/javascripts/languages/prism-xojo.js +9 -8
- data/vendor/assets/javascripts/languages/prism-xquery.js +7 -7
- data/vendor/assets/javascripts/languages/prism-yaml.js +19 -12
- data/vendor/assets/javascripts/languages/prism-yang.js +20 -0
- data/vendor/assets/javascripts/languages/prism-zig.js +19 -15
- data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +60 -65
- data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +199 -67
- data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +212 -112
- data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +128 -43
- data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +23 -8
- data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -6
- data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +19 -12
- data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +3 -2
- data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +169 -63
- data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +5 -3
- data/vendor/assets/javascripts/prism-plugin/prism-highlight-keywords.js +10 -13
- data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +29 -12
- data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +179 -82
- data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +53 -26
- data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +217 -84
- data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +152 -68
- data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +53 -47
- data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +203 -164
- data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +61 -52
- data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +16 -16
- data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +4 -5
- data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +147 -21
- data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +9 -8
- data/vendor/assets/javascripts/prism-plugin/prism-treeview.js +70 -0
- data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +41 -23
- data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +133 -148
- data/vendor/assets/javascripts/prism.js +96 -4
- data/vendor/assets/stylesheets/prism-plugin/prism-autolinker.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-command-line.css +11 -1
- data/vendor/assets/stylesheets/prism-plugin/prism-command-line.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +26 -2
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +21 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +0 -1
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +13 -12
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-treeview.css +168 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-treeview.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-wpd.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-base16-ateliersulphurpool.light.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-cb.css +5 -35
- data/vendor/assets/stylesheets/prism-theme/prism-coldark-cold.css +317 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coldark-dark.css +317 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coy-without-shadows.css +140 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coy.css +5 -12
- data/vendor/assets/stylesheets/prism-theme/prism-coy.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-dark.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-dark.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-earth.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-forest.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-light.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-sea.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-space.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-funky.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-dark.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-light.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-holi-theme.css +119 -0
- data/vendor/assets/stylesheets/prism-theme/prism-laserwave.css +133 -0
- data/vendor/assets/stylesheets/prism-theme/prism-lucario.css +122 -0
- data/vendor/assets/stylesheets/prism-theme/prism-night-owl.css +158 -0
- data/vendor/assets/stylesheets/prism-theme/prism-okaidia.css +1 -1
- data/vendor/assets/stylesheets/prism-theme/prism-okaidia.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-one-dark.css +440 -0
- data/vendor/assets/stylesheets/prism-theme/prism-one-light.css +428 -0
- data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +3 -7
- data/vendor/assets/stylesheets/prism-theme/prism-solarized-dark-atom.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-solarizedlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-tomorrow.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-twilight.css +3 -33
- data/vendor/assets/stylesheets/prism-theme/prism-twilight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-vs.css +7 -3
- data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +108 -49
- data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +3 -30
- data/vendor/assets/stylesheets/prism-theme/prism-z-touch.css +160 -0
- data/vendor/assets/stylesheets/prism.css +1 -0
- metadata +133 -6
@@ -1,21 +1,99 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
'
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
1
|
+
(function (Prism) {
|
2
|
+
|
3
|
+
var keyword = /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/;
|
4
|
+
var modName = /\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g, function () { return keyword.source; });
|
5
|
+
|
6
|
+
Prism.languages.cpp = Prism.languages.extend('c', {
|
7
|
+
'class-name': [
|
8
|
+
{
|
9
|
+
pattern: RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source
|
10
|
+
.replace(/<keyword>/g, function () { return keyword.source; })),
|
11
|
+
lookbehind: true
|
12
|
+
},
|
13
|
+
// This is intended to capture the class name of method implementations like:
|
14
|
+
// void foo::bar() const {}
|
15
|
+
// However! The `foo` in the above example could also be a namespace, so we only capture the class name if
|
16
|
+
// it starts with an uppercase letter. This approximation should give decent results.
|
17
|
+
/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,
|
18
|
+
// This will capture the class name before destructors like:
|
19
|
+
// Foo::~Foo() {}
|
20
|
+
/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,
|
21
|
+
// This also intends to capture the class name of method implementations but here the class has template
|
22
|
+
// parameters, so it can't be a namespace (until C++ adds generic namespaces).
|
23
|
+
/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/
|
24
|
+
],
|
25
|
+
'keyword': keyword,
|
26
|
+
'number': {
|
27
|
+
pattern: /(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,
|
28
|
+
greedy: true
|
29
|
+
},
|
30
|
+
'operator': />>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,
|
31
|
+
'boolean': /\b(?:false|true)\b/
|
32
|
+
});
|
33
|
+
|
34
|
+
Prism.languages.insertBefore('cpp', 'string', {
|
35
|
+
'module': {
|
36
|
+
// https://en.cppreference.com/w/cpp/language/modules
|
37
|
+
pattern: RegExp(
|
38
|
+
/(\b(?:import|module)\s+)/.source +
|
39
|
+
'(?:' +
|
40
|
+
// header-name
|
41
|
+
/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source +
|
42
|
+
'|' +
|
43
|
+
// module name or partition or both
|
44
|
+
/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g, function () { return modName; }) +
|
45
|
+
')'
|
46
|
+
),
|
47
|
+
lookbehind: true,
|
48
|
+
greedy: true,
|
49
|
+
inside: {
|
50
|
+
'string': /^[<"][\s\S]+/,
|
51
|
+
'operator': /:/,
|
52
|
+
'punctuation': /\./
|
53
|
+
}
|
54
|
+
},
|
55
|
+
'raw-string': {
|
56
|
+
pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,
|
57
|
+
alias: 'string',
|
58
|
+
greedy: true
|
59
|
+
}
|
60
|
+
});
|
61
|
+
|
62
|
+
Prism.languages.insertBefore('cpp', 'keyword', {
|
63
|
+
'generic-function': {
|
64
|
+
pattern: /\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,
|
65
|
+
inside: {
|
66
|
+
'function': /^\w+/,
|
67
|
+
'generic': {
|
68
|
+
pattern: /<[\s\S]+/,
|
69
|
+
alias: 'class-name',
|
70
|
+
inside: Prism.languages.cpp
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
});
|
75
|
+
|
76
|
+
Prism.languages.insertBefore('cpp', 'operator', {
|
77
|
+
'double-colon': {
|
78
|
+
pattern: /::/,
|
79
|
+
alias: 'punctuation'
|
80
|
+
}
|
81
|
+
});
|
82
|
+
|
83
|
+
Prism.languages.insertBefore('cpp', 'class-name', {
|
84
|
+
// the base clause is an optional list of parent classes
|
85
|
+
// https://en.cppreference.com/w/cpp/language/class
|
86
|
+
'base-clause': {
|
87
|
+
pattern: /(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,
|
88
|
+
lookbehind: true,
|
89
|
+
greedy: true,
|
90
|
+
inside: Prism.languages.extend('cpp', {})
|
91
|
+
}
|
92
|
+
});
|
93
|
+
|
94
|
+
Prism.languages.insertBefore('inside', 'double-colon', {
|
95
|
+
// All untokenized words that are not namespaces should be class names
|
96
|
+
'class-name': /\b[a-z_]\w*\b(?!\s*::)/i
|
97
|
+
}, Prism.languages.cpp['base-clause']);
|
98
|
+
|
99
|
+
}(Prism));
|
@@ -1,51 +1,57 @@
|
|
1
|
-
(function(Prism) {
|
1
|
+
(function (Prism) {
|
2
2
|
Prism.languages.crystal = Prism.languages.extend('ruby', {
|
3
|
-
keyword: [
|
4
|
-
/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|
|
3
|
+
'keyword': [
|
4
|
+
/\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\b/,
|
5
5
|
{
|
6
6
|
pattern: /(\.\s*)(?:is_a|responds_to)\?/,
|
7
7
|
lookbehind: true
|
8
8
|
}
|
9
9
|
],
|
10
|
-
|
11
|
-
|
10
|
+
'number': /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/,
|
11
|
+
'operator': [
|
12
|
+
/->/,
|
13
|
+
Prism.languages.ruby.operator,
|
14
|
+
],
|
15
|
+
'punctuation': /[(){}[\].,;\\]/,
|
12
16
|
});
|
13
17
|
|
14
|
-
Prism.languages.insertBefore('crystal', 'string', {
|
15
|
-
attribute: {
|
16
|
-
pattern: /@\[
|
17
|
-
alias: 'attr-name',
|
18
|
+
Prism.languages.insertBefore('crystal', 'string-literal', {
|
19
|
+
'attribute': {
|
20
|
+
pattern: /@\[.*?\]/,
|
18
21
|
inside: {
|
19
|
-
delimiter: {
|
22
|
+
'delimiter': {
|
20
23
|
pattern: /^@\[|\]$/,
|
21
|
-
alias: '
|
24
|
+
alias: 'punctuation'
|
22
25
|
},
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
delimiter: {
|
32
|
-
pattern: /^\{\{|\}\}$/,
|
33
|
-
alias: 'tag'
|
26
|
+
'attribute': {
|
27
|
+
pattern: /^(\s*)\w+/,
|
28
|
+
lookbehind: true,
|
29
|
+
alias: 'class-name'
|
30
|
+
},
|
31
|
+
'args': {
|
32
|
+
pattern: /\S(?:[\s\S]*\S)?/,
|
33
|
+
inside: Prism.languages.crystal
|
34
34
|
},
|
35
|
-
rest: Prism.languages.crystal
|
36
35
|
}
|
37
36
|
},
|
38
|
-
{
|
39
|
-
pattern: /\{
|
37
|
+
'expansion': {
|
38
|
+
pattern: /\{(?:\{.*?\}|%.*?%)\}/,
|
40
39
|
inside: {
|
41
|
-
|
42
|
-
pattern:
|
43
|
-
|
40
|
+
'content': {
|
41
|
+
pattern: /^(\{.)[\s\S]+(?=.\}$)/,
|
42
|
+
lookbehind: true,
|
43
|
+
inside: Prism.languages.crystal
|
44
44
|
},
|
45
|
-
|
45
|
+
'delimiter': {
|
46
|
+
pattern: /^\{[\{%]|[\}%]\}$/,
|
47
|
+
alias: 'operator'
|
48
|
+
}
|
46
49
|
}
|
50
|
+
},
|
51
|
+
'char': {
|
52
|
+
pattern: /'(?:[^\\\r\n]{1,2}|\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\{[A-Fa-f0-9]{1,6}\})))'/,
|
53
|
+
greedy: true
|
47
54
|
}
|
48
|
-
]
|
49
55
|
});
|
50
56
|
|
51
57
|
}(Prism));
|
@@ -1,81 +1,366 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
(function (Prism) {
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Replaces all placeholders "<<n>>" of given pattern with the n-th replacement (zero based).
|
5
|
+
*
|
6
|
+
* Note: This is a simple text based replacement. Be careful when using backreferences!
|
7
|
+
*
|
8
|
+
* @param {string} pattern the given pattern.
|
9
|
+
* @param {string[]} replacements a list of replacement which can be inserted into the given pattern.
|
10
|
+
* @returns {string} the pattern with all placeholders replaced with their corresponding replacements.
|
11
|
+
* @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source
|
12
|
+
*/
|
13
|
+
function replace(pattern, replacements) {
|
14
|
+
return pattern.replace(/<<(\d+)>>/g, function (m, index) {
|
15
|
+
return '(?:' + replacements[+index] + ')';
|
16
|
+
});
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* @param {string} pattern
|
20
|
+
* @param {string[]} replacements
|
21
|
+
* @param {string} [flags]
|
22
|
+
* @returns {RegExp}
|
23
|
+
*/
|
24
|
+
function re(pattern, replacements, flags) {
|
25
|
+
return RegExp(replace(pattern, replacements), flags || '');
|
26
|
+
}
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.
|
30
|
+
*
|
31
|
+
* @param {string} pattern
|
32
|
+
* @param {number} depthLog2
|
33
|
+
* @returns {string}
|
34
|
+
*/
|
35
|
+
function nested(pattern, depthLog2) {
|
36
|
+
for (var i = 0; i < depthLog2; i++) {
|
37
|
+
pattern = pattern.replace(/<<self>>/g, function () { return '(?:' + pattern + ')'; });
|
11
38
|
}
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
39
|
+
return pattern.replace(/<<self>>/g, '[^\\s\\S]');
|
40
|
+
}
|
41
|
+
|
42
|
+
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
|
43
|
+
var keywordKinds = {
|
44
|
+
// keywords which represent a return or variable type
|
45
|
+
type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',
|
46
|
+
// keywords which are used to declare a type
|
47
|
+
typeDeclaration: 'class enum interface record struct',
|
48
|
+
// contextual keywords
|
49
|
+
// ("var" and "dynamic" are missing because they are used like types)
|
50
|
+
contextual: 'add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)',
|
51
|
+
// all other keywords
|
52
|
+
other: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'
|
53
|
+
};
|
54
|
+
|
55
|
+
// keywords
|
56
|
+
function keywordsToPattern(words) {
|
57
|
+
return '\\b(?:' + words.trim().replace(/ /g, '|') + ')\\b';
|
58
|
+
}
|
59
|
+
var typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration);
|
60
|
+
var keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other));
|
61
|
+
var nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other);
|
62
|
+
var nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other);
|
63
|
+
|
64
|
+
// types
|
65
|
+
var generic = nested(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.
|
66
|
+
var nestedRound = nested(/\((?:[^()]|<<self>>)*\)/.source, 2);
|
67
|
+
var name = /@?\b[A-Za-z_]\w*\b/.source;
|
68
|
+
var genericName = replace(/<<0>>(?:\s*<<1>>)?/.source, [name, generic]);
|
69
|
+
var identifier = replace(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source, [nonTypeKeywords, genericName]);
|
70
|
+
var array = /\[\s*(?:,\s*)*\]/.source;
|
71
|
+
var typeExpressionWithoutTuple = replace(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source, [identifier, array]);
|
72
|
+
var tupleElement = replace(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [generic, nestedRound, array]);
|
73
|
+
var tuple = replace(/\(<<0>>+(?:,<<0>>+)+\)/.source, [tupleElement]);
|
74
|
+
var typeExpression = replace(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source, [tuple, identifier, array]);
|
75
|
+
|
76
|
+
var typeInside = {
|
77
|
+
'keyword': keywords,
|
78
|
+
'punctuation': /[<>()?,.:[\]]/
|
79
|
+
};
|
80
|
+
|
81
|
+
// strings & characters
|
82
|
+
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals
|
83
|
+
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals
|
84
|
+
var character = /'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source; // simplified pattern
|
85
|
+
var regularString = /"(?:\\.|[^\\"\r\n])*"/.source;
|
86
|
+
var verbatimString = /@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;
|
87
|
+
|
88
|
+
|
89
|
+
Prism.languages.csharp = Prism.languages.extend('clike', {
|
90
|
+
'string': [
|
91
|
+
{
|
92
|
+
pattern: re(/(^|[^$\\])<<0>>/.source, [verbatimString]),
|
93
|
+
lookbehind: true,
|
94
|
+
greedy: true
|
95
|
+
},
|
96
|
+
{
|
97
|
+
pattern: re(/(^|[^@$\\])<<0>>/.source, [regularString]),
|
98
|
+
lookbehind: true,
|
99
|
+
greedy: true
|
100
|
+
}
|
101
|
+
],
|
102
|
+
'class-name': [
|
103
|
+
{
|
104
|
+
// Using static
|
105
|
+
// using static System.Math;
|
106
|
+
pattern: re(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source, [identifier]),
|
107
|
+
lookbehind: true,
|
108
|
+
inside: typeInside
|
109
|
+
},
|
110
|
+
{
|
111
|
+
// Using alias (type)
|
112
|
+
// using Project = PC.MyCompany.Project;
|
113
|
+
pattern: re(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source, [name, typeExpression]),
|
114
|
+
lookbehind: true,
|
115
|
+
inside: typeInside
|
116
|
+
},
|
117
|
+
{
|
118
|
+
// Using alias (alias)
|
119
|
+
// using Project = PC.MyCompany.Project;
|
120
|
+
pattern: re(/(\busing\s+)<<0>>(?=\s*=)/.source, [name]),
|
121
|
+
lookbehind: true
|
122
|
+
},
|
123
|
+
{
|
124
|
+
// Type declarations
|
125
|
+
// class Foo<A, B>
|
126
|
+
// interface Foo<out A, B>
|
127
|
+
pattern: re(/(\b<<0>>\s+)<<1>>/.source, [typeDeclarationKeywords, genericName]),
|
128
|
+
lookbehind: true,
|
129
|
+
inside: typeInside
|
130
|
+
},
|
131
|
+
{
|
132
|
+
// Single catch exception declaration
|
133
|
+
// catch(Foo)
|
134
|
+
// (things like catch(Foo e) is covered by variable declaration)
|
135
|
+
pattern: re(/(\bcatch\s*\(\s*)<<0>>/.source, [identifier]),
|
136
|
+
lookbehind: true,
|
137
|
+
inside: typeInside
|
138
|
+
},
|
139
|
+
{
|
140
|
+
// Name of the type parameter of generic constraints
|
141
|
+
// where Foo : class
|
142
|
+
pattern: re(/(\bwhere\s+)<<0>>/.source, [name]),
|
143
|
+
lookbehind: true
|
144
|
+
},
|
145
|
+
{
|
146
|
+
// Casts and checks via as and is.
|
147
|
+
// as Foo<A>, is Bar<B>
|
148
|
+
// (things like if(a is Foo b) is covered by variable declaration)
|
149
|
+
pattern: re(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source, [typeExpressionWithoutTuple]),
|
150
|
+
lookbehind: true,
|
151
|
+
inside: typeInside
|
152
|
+
},
|
153
|
+
{
|
154
|
+
// Variable, field and parameter declaration
|
155
|
+
// (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)
|
156
|
+
pattern: re(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source, [typeExpression, nonContextualKeywords, name]),
|
157
|
+
inside: typeInside
|
158
|
+
}
|
159
|
+
],
|
160
|
+
'keyword': keywords,
|
161
|
+
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals
|
162
|
+
'number': /(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,
|
163
|
+
'operator': />>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,
|
164
|
+
'punctuation': /\?\.?|::|[{}[\];(),.:]/
|
165
|
+
});
|
166
|
+
|
167
|
+
Prism.languages.insertBefore('csharp', 'number', {
|
168
|
+
'range': {
|
169
|
+
pattern: /\.\./,
|
170
|
+
alias: 'operator'
|
171
|
+
}
|
172
|
+
});
|
173
|
+
|
174
|
+
Prism.languages.insertBefore('csharp', 'punctuation', {
|
175
|
+
'named-parameter': {
|
176
|
+
pattern: re(/([(,]\s*)<<0>>(?=\s*:)/.source, [name]),
|
177
|
+
lookbehind: true,
|
178
|
+
alias: 'punctuation'
|
179
|
+
}
|
180
|
+
});
|
181
|
+
|
182
|
+
Prism.languages.insertBefore('csharp', 'class-name', {
|
183
|
+
'namespace': {
|
184
|
+
// namespace Foo.Bar {}
|
185
|
+
// using Foo.Bar;
|
186
|
+
pattern: re(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source, [name]),
|
187
|
+
lookbehind: true,
|
17
188
|
inside: {
|
18
|
-
punctuation: /\./
|
189
|
+
'punctuation': /\./
|
19
190
|
}
|
20
191
|
},
|
21
|
-
{
|
22
|
-
//
|
23
|
-
pattern: /(\[)
|
192
|
+
'type-expression': {
|
193
|
+
// default(Foo), typeof(Foo<Bar>), sizeof(int)
|
194
|
+
pattern: re(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source, [nestedRound]),
|
195
|
+
lookbehind: true,
|
196
|
+
alias: 'class-name',
|
197
|
+
inside: typeInside
|
198
|
+
},
|
199
|
+
'return-type': {
|
200
|
+
// Foo<Bar> ForBar(); Foo IFoo.Bar() => 0
|
201
|
+
// int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];
|
202
|
+
// int Foo => 0; int Foo { get; set } = 0;
|
203
|
+
pattern: re(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source, [typeExpression, identifier]),
|
204
|
+
inside: typeInside,
|
205
|
+
alias: 'class-name'
|
206
|
+
},
|
207
|
+
'constructor-invocation': {
|
208
|
+
// new List<Foo<Bar[]>> { }
|
209
|
+
pattern: re(/(\bnew\s+)<<0>>(?=\s*[[({])/.source, [typeExpression]),
|
24
210
|
lookbehind: true,
|
211
|
+
inside: typeInside,
|
212
|
+
alias: 'class-name'
|
213
|
+
},
|
214
|
+
/*'explicit-implementation': {
|
215
|
+
// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();
|
216
|
+
pattern: replace(/\b<<0>>(?=\.<<1>>)/, className, methodOrPropertyDeclaration),
|
217
|
+
inside: classNameInside,
|
218
|
+
alias: 'class-name'
|
219
|
+
},*/
|
220
|
+
'generic-method': {
|
221
|
+
// foo<Bar>()
|
222
|
+
pattern: re(/<<0>>\s*<<1>>(?=\s*\()/.source, [name, generic]),
|
25
223
|
inside: {
|
26
|
-
|
224
|
+
'function': re(/^<<0>>/.source, [name]),
|
225
|
+
'generic': {
|
226
|
+
pattern: RegExp(generic),
|
227
|
+
alias: 'class-name',
|
228
|
+
inside: typeInside
|
229
|
+
}
|
27
230
|
}
|
28
231
|
},
|
29
|
-
{
|
30
|
-
//
|
31
|
-
|
232
|
+
'type-list': {
|
233
|
+
// The list of types inherited or of generic constraints
|
234
|
+
// class Foo<F> : Bar, IList<FooBar>
|
235
|
+
// where F : Bar, IList<int>
|
236
|
+
pattern: re(
|
237
|
+
/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,
|
238
|
+
[typeDeclarationKeywords, genericName, name, typeExpression, keywords.source, nestedRound, /\bnew\s*\(\s*\)/.source]
|
239
|
+
),
|
32
240
|
lookbehind: true,
|
33
241
|
inside: {
|
34
|
-
|
242
|
+
'record-arguments': {
|
243
|
+
pattern: re(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source, [genericName, nestedRound]),
|
244
|
+
lookbehind: true,
|
245
|
+
greedy: true,
|
246
|
+
inside: Prism.languages.csharp
|
247
|
+
},
|
248
|
+
'keyword': keywords,
|
249
|
+
'class-name': {
|
250
|
+
pattern: RegExp(typeExpression),
|
251
|
+
greedy: true,
|
252
|
+
inside: typeInside
|
253
|
+
},
|
254
|
+
'punctuation': /[,()]/
|
35
255
|
}
|
36
256
|
},
|
37
|
-
{
|
38
|
-
|
39
|
-
|
257
|
+
'preprocessor': {
|
258
|
+
pattern: /(^[\t ]*)#.*/m,
|
259
|
+
lookbehind: true,
|
260
|
+
alias: 'property',
|
261
|
+
inside: {
|
262
|
+
// highlight preprocessor directives as keywords
|
263
|
+
'directive': {
|
264
|
+
pattern: /(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,
|
265
|
+
lookbehind: true,
|
266
|
+
alias: 'keyword'
|
267
|
+
}
|
268
|
+
}
|
269
|
+
}
|
270
|
+
});
|
271
|
+
|
272
|
+
// attributes
|
273
|
+
var regularStringOrCharacter = regularString + '|' + character;
|
274
|
+
var regularStringCharacterOrComment = replace(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source, [regularStringOrCharacter]);
|
275
|
+
var roundExpression = nested(replace(/[^"'/()]|<<0>>|\(<<self>>*\)/.source, [regularStringCharacterOrComment]), 2);
|
276
|
+
|
277
|
+
// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets
|
278
|
+
var attrTarget = /\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source;
|
279
|
+
var attr = replace(/<<0>>(?:\s*\(<<1>>*\))?/.source, [identifier, roundExpression]);
|
280
|
+
|
281
|
+
Prism.languages.insertBefore('csharp', 'class-name', {
|
282
|
+
'attribute': {
|
283
|
+
// Attributes
|
284
|
+
// [Foo], [Foo(1), Bar(2, Prop = "foo")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]
|
285
|
+
pattern: re(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source, [attrTarget, attr]),
|
40
286
|
lookbehind: true,
|
287
|
+
greedy: true,
|
41
288
|
inside: {
|
42
|
-
|
289
|
+
'target': {
|
290
|
+
pattern: re(/^<<0>>(?=\s*:)/.source, [attrTarget]),
|
291
|
+
alias: 'keyword'
|
292
|
+
},
|
293
|
+
'attribute-arguments': {
|
294
|
+
pattern: re(/\(<<0>>*\)/.source, [roundExpression]),
|
295
|
+
inside: Prism.languages.csharp
|
296
|
+
},
|
297
|
+
'class-name': {
|
298
|
+
pattern: RegExp(identifier),
|
299
|
+
inside: {
|
300
|
+
'punctuation': /\./
|
301
|
+
}
|
302
|
+
},
|
303
|
+
'punctuation': /[:,]/
|
43
304
|
}
|
44
305
|
}
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
306
|
+
});
|
307
|
+
|
308
|
+
|
309
|
+
// string interpolation
|
310
|
+
var formatString = /:[^}\r\n]+/.source;
|
311
|
+
// multi line
|
312
|
+
var mInterpolationRound = nested(replace(/[^"'/()]|<<0>>|\(<<self>>*\)/.source, [regularStringCharacterOrComment]), 2);
|
313
|
+
var mInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [mInterpolationRound, formatString]);
|
314
|
+
// single line
|
315
|
+
var sInterpolationRound = nested(replace(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source, [regularStringOrCharacter]), 2);
|
316
|
+
var sInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [sInterpolationRound, formatString]);
|
317
|
+
|
318
|
+
function createInterpolationInside(interpolation, interpolationRound) {
|
319
|
+
return {
|
320
|
+
'interpolation': {
|
321
|
+
pattern: re(/((?:^|[^{])(?:\{\{)*)<<0>>/.source, [interpolation]),
|
322
|
+
lookbehind: true,
|
58
323
|
inside: {
|
59
|
-
|
324
|
+
'format-string': {
|
325
|
+
pattern: re(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source, [interpolationRound, formatString]),
|
326
|
+
lookbehind: true,
|
327
|
+
inside: {
|
328
|
+
'punctuation': /^:/
|
329
|
+
}
|
330
|
+
},
|
331
|
+
'punctuation': /^\{|\}$/,
|
332
|
+
'expression': {
|
333
|
+
pattern: /[\s\S]+/,
|
334
|
+
alias: 'language-csharp',
|
335
|
+
inside: Prism.languages.csharp
|
336
|
+
}
|
60
337
|
}
|
61
338
|
},
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
'
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
339
|
+
'string': /[\s\S]+/
|
340
|
+
};
|
341
|
+
}
|
342
|
+
|
343
|
+
Prism.languages.insertBefore('csharp', 'string', {
|
344
|
+
'interpolation-string': [
|
345
|
+
{
|
346
|
+
pattern: re(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source, [mInterpolation]),
|
347
|
+
lookbehind: true,
|
348
|
+
greedy: true,
|
349
|
+
inside: createInterpolationInside(mInterpolation, mInterpolationRound),
|
350
|
+
},
|
351
|
+
{
|
352
|
+
pattern: re(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source, [sInterpolation]),
|
74
353
|
lookbehind: true,
|
75
|
-
|
354
|
+
greedy: true,
|
355
|
+
inside: createInterpolationInside(sInterpolation, sInterpolationRound),
|
76
356
|
}
|
357
|
+
],
|
358
|
+
'char': {
|
359
|
+
pattern: RegExp(character),
|
360
|
+
greedy: true
|
77
361
|
}
|
78
|
-
}
|
79
|
-
|
362
|
+
});
|
363
|
+
|
364
|
+
Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;
|
80
365
|
|
81
|
-
Prism
|
366
|
+
}(Prism));
|