From 1609586f66f41f4b840c39c61ebf0268917d7b6f Mon Sep 17 00:00:00 2001 From: Alexander Odell Date: Sun, 29 Jan 2017 20:15:31 +0100 Subject: [PATCH] Adds updated prismjs --- node_modules/prismjs/.editorconfig | 13 + node_modules/prismjs/.gitattributes | 4 + node_modules/prismjs/.travis.yml | 16 + node_modules/prismjs/CHANGELOG.md | 672 +++++ node_modules/prismjs/LICENSE | 2 +- node_modules/prismjs/README.md | 6 +- node_modules/prismjs/bower.json | 6 +- node_modules/prismjs/components/prism-abap.js | 48 + .../prismjs/components/prism-abap.min.js | 1 + .../prismjs/components/prism-actionscript.js | 11 +- .../components/prism-actionscript.min.js | 2 +- node_modules/prismjs/components/prism-ada.js | 19 + .../prismjs/components/prism-ada.min.js | 1 + .../prismjs/components/prism-apacheconf.js | 3 +- .../components/prism-apacheconf.min.js | 2 +- node_modules/prismjs/components/prism-apl.js | 29 + .../prismjs/components/prism-apl.min.js | 1 + .../prismjs/components/prism-applescript.js | 11 +- .../components/prism-applescript.min.js | 2 +- .../prismjs/components/prism-asciidoc.js | 271 ++ .../prismjs/components/prism-asciidoc.min.js | 1 + .../prismjs/components/prism-aspnet.js | 27 +- .../prismjs/components/prism-aspnet.min.js | 2 +- .../prismjs/components/prism-autohotkey.js | 52 +- .../components/prism-autohotkey.min.js | 2 +- .../prismjs/components/prism-autoit.js | 33 + .../prismjs/components/prism-autoit.min.js | 1 + node_modules/prismjs/components/prism-bash.js | 109 +- .../prismjs/components/prism-bash.min.js | 2 +- .../prismjs/components/prism-basic.js | 14 + .../prismjs/components/prism-basic.min.js | 1 + .../prismjs/components/prism-batch.js | 99 + .../prismjs/components/prism-batch.min.js | 1 + .../prismjs/components/prism-bison.js | 39 + .../prismjs/components/prism-bison.min.js | 1 + .../prismjs/components/prism-brainfuck.js | 20 + .../prismjs/components/prism-brainfuck.min.js | 1 + node_modules/prismjs/components/prism-bro.js | 50 + .../prismjs/components/prism-bro.min.js | 1 + node_modules/prismjs/components/prism-c.js | 23 +- .../prismjs/components/prism-c.min.js | 2 +- .../prismjs/components/prism-clike.js | 19 +- .../prismjs/components/prism-clike.min.js | 2 +- .../prismjs/components/prism-coffeescript.js | 12 +- .../components/prism-coffeescript.min.js | 2 +- node_modules/prismjs/components/prism-core.js | 229 +- .../prismjs/components/prism-core.min.js | 2 +- node_modules/prismjs/components/prism-cpp.js | 2 +- .../prismjs/components/prism-cpp.min.js | 2 +- .../prismjs/components/prism-crystal.js | 53 + .../prismjs/components/prism-crystal.min.js | 1 + .../prismjs/components/prism-csharp.js | 32 +- .../prismjs/components/prism-csharp.min.js | 2 +- .../prismjs/components/prism-css-extras.js | 3 +- .../components/prism-css-extras.min.js | 2 +- node_modules/prismjs/components/prism-css.js | 29 +- .../prismjs/components/prism-css.min.js | 2 +- node_modules/prismjs/components/prism-d.js | 64 + .../prismjs/components/prism-d.min.js | 1 + node_modules/prismjs/components/prism-diff.js | 20 + .../prismjs/components/prism-diff.min.js | 1 + .../prismjs/components/prism-docker.js | 9 + .../prismjs/components/prism-docker.min.js | 1 + .../prismjs/components/prism-eiffel.js | 8 +- .../prismjs/components/prism-eiffel.min.js | 2 +- .../prismjs/components/prism-elixir.js | 90 + .../prismjs/components/prism-elixir.min.js | 1 + .../prismjs/components/prism-erlang.js | 18 +- .../prismjs/components/prism-erlang.min.js | 2 +- .../prismjs/components/prism-fortran.js | 11 +- .../prismjs/components/prism-fortran.min.js | 2 +- .../prismjs/components/prism-fsharp.js | 22 +- .../prismjs/components/prism-fsharp.min.js | 2 +- .../prismjs/components/prism-gherkin.js | 26 +- .../prismjs/components/prism-gherkin.min.js | 2 +- node_modules/prismjs/components/prism-git.js | 14 +- .../prismjs/components/prism-git.min.js | 2 +- node_modules/prismjs/components/prism-glsl.js | 16 + .../prismjs/components/prism-glsl.min.js | 1 + node_modules/prismjs/components/prism-go.js | 2 +- .../prismjs/components/prism-go.min.js | 2 +- .../prismjs/components/prism-graphql.js | 24 + .../prismjs/components/prism-graphql.min.js | 1 + .../prismjs/components/prism-groovy.js | 21 +- .../prismjs/components/prism-groovy.min.js | 2 +- node_modules/prismjs/components/prism-haml.js | 35 +- .../prismjs/components/prism-haml.min.js | 2 +- .../prismjs/components/prism-handlebars.js | 13 +- .../components/prism-handlebars.min.js | 2 +- .../prismjs/components/prism-haskell.js | 15 +- .../prismjs/components/prism-haskell.min.js | 2 +- node_modules/prismjs/components/prism-haxe.js | 43 + .../prismjs/components/prism-haxe.min.js | 1 + node_modules/prismjs/components/prism-http.js | 72 +- .../prismjs/components/prism-http.min.js | 2 +- node_modules/prismjs/components/prism-icon.js | 17 + .../prismjs/components/prism-icon.min.js | 1 + .../prismjs/components/prism-inform7.js | 58 + .../prismjs/components/prism-inform7.min.js | 1 + node_modules/prismjs/components/prism-ini.js | 20 +- .../prismjs/components/prism-ini.min.js | 2 +- node_modules/prismjs/components/prism-j.js | 22 + .../prismjs/components/prism-j.min.js | 1 + node_modules/prismjs/components/prism-jade.js | 64 +- .../prismjs/components/prism-jade.min.js | 2 +- node_modules/prismjs/components/prism-java.js | 14 +- .../prismjs/components/prism-java.min.js | 2 +- .../prismjs/components/prism-javascript.js | 46 +- .../components/prism-javascript.min.js | 2 +- .../prismjs/components/prism-jolie.js | 56 + .../prismjs/components/prism-jolie.min.js | 1 + node_modules/prismjs/components/prism-json.js | 11 + .../prismjs/components/prism-json.min.js | 1 + node_modules/prismjs/components/prism-jsx.js | 19 +- .../prismjs/components/prism-jsx.min.js | 2 +- .../prismjs/components/prism-julia.js | 6 +- .../prismjs/components/prism-julia.min.js | 2 +- .../prismjs/components/prism-keyman.js | 14 + .../prismjs/components/prism-keyman.min.js | 1 + .../prismjs/components/prism-kotlin.js | 62 + .../prismjs/components/prism-kotlin.min.js | 1 + .../prismjs/components/prism-latex.js | 67 +- .../prismjs/components/prism-latex.min.js | 2 +- node_modules/prismjs/components/prism-less.js | 2 +- .../prismjs/components/prism-less.min.js | 2 +- .../prismjs/components/prism-livescript.js | 118 + .../components/prism-livescript.min.js | 1 + .../prismjs/components/prism-lolcode.js | 4 +- .../prismjs/components/prism-lolcode.min.js | 2 +- node_modules/prismjs/components/prism-lua.js | 20 + .../prismjs/components/prism-lua.min.js | 1 + .../prismjs/components/prism-makefile.js | 31 + .../prismjs/components/prism-makefile.min.js | 1 + .../prismjs/components/prism-markdown.js | 30 +- .../prismjs/components/prism-markdown.min.js | 2 +- .../prismjs/components/prism-markup.js | 21 +- .../prismjs/components/prism-markup.min.js | 2 +- .../prismjs/components/prism-matlab.js | 5 +- .../prismjs/components/prism-matlab.min.js | 2 +- node_modules/prismjs/components/prism-mel.js | 39 + .../prismjs/components/prism-mel.min.js | 1 + .../prismjs/components/prism-mizar.js | 12 + .../prismjs/components/prism-mizar.min.js | 1 + .../prismjs/components/prism-monkey.js | 25 + .../prismjs/components/prism-monkey.min.js | 1 + node_modules/prismjs/components/prism-nasm.js | 40 +- .../prismjs/components/prism-nasm.min.js | 2 +- .../prismjs/components/prism-nginx.js | 11 + .../prismjs/components/prism-nginx.min.js | 1 + node_modules/prismjs/components/prism-nim.js | 30 + .../prismjs/components/prism-nim.min.js | 1 + node_modules/prismjs/components/prism-nix.js | 39 + .../prismjs/components/prism-nix.min.js | 1 + node_modules/prismjs/components/prism-nsis.js | 19 +- .../prismjs/components/prism-nsis.min.js | 2 +- .../prismjs/components/prism-objectivec.js | 6 +- .../components/prism-objectivec.min.js | 2 +- .../prismjs/components/prism-ocaml.js | 21 + .../prismjs/components/prism-ocaml.min.js | 1 + node_modules/prismjs/components/prism-oz.js | 21 + .../prismjs/components/prism-oz.min.js | 1 + .../prismjs/components/prism-parigp.js | 27 + .../prismjs/components/prism-parigp.min.js | 1 + .../prismjs/components/prism-parser.js | 66 + .../prismjs/components/prism-parser.min.js | 1 + .../prismjs/components/prism-pascal.js | 18 +- .../prismjs/components/prism-pascal.min.js | 2 +- node_modules/prismjs/components/prism-perl.js | 94 +- .../prismjs/components/prism-perl.min.js | 2 +- .../prismjs/components/prism-php-extras.js | 4 +- .../components/prism-php-extras.min.js | 2 +- node_modules/prismjs/components/prism-php.js | 14 +- .../prismjs/components/prism-php.min.js | 2 +- .../prismjs/components/prism-powershell.js | 42 +- .../components/prism-powershell.min.js | 2 +- .../prismjs/components/prism-processing.js | 18 + .../components/prism-processing.min.js | 1 + .../prismjs/components/prism-prolog.js | 17 + .../prismjs/components/prism-prolog.min.js | 1 + .../prismjs/components/prism-properties.js | 9 + .../components/prism-properties.min.js | 1 + .../prismjs/components/prism-protobuf.js | 8 + .../prismjs/components/prism-protobuf.min.js | 1 + .../prismjs/components/prism-puppet.js | 131 + .../prismjs/components/prism-puppet.min.js | 1 + node_modules/prismjs/components/prism-pure.js | 77 + .../prismjs/components/prism-pure.min.js | 1 + .../prismjs/components/prism-python.js | 30 +- .../prismjs/components/prism-python.min.js | 2 +- node_modules/prismjs/components/prism-q.js | 44 + .../prismjs/components/prism-q.min.js | 1 + node_modules/prismjs/components/prism-qore.js | 17 + .../prismjs/components/prism-qore.min.js | 1 + node_modules/prismjs/components/prism-r.js | 8 +- .../prismjs/components/prism-r.min.js | 2 +- .../prismjs/components/prism-reason.js | 32 + .../prismjs/components/prism-reason.min.js | 1 + node_modules/prismjs/components/prism-rest.js | 35 +- .../prismjs/components/prism-rest.min.js | 2 +- node_modules/prismjs/components/prism-rip.js | 11 +- .../prismjs/components/prism-rip.min.js | 2 +- .../prismjs/components/prism-roboconf.js | 27 + .../prismjs/components/prism-roboconf.min.js | 1 + node_modules/prismjs/components/prism-ruby.js | 123 +- .../prismjs/components/prism-ruby.min.js | 2 +- node_modules/prismjs/components/prism-rust.js | 8 +- .../prismjs/components/prism-rust.min.js | 2 +- node_modules/prismjs/components/prism-sas.js | 18 +- .../prismjs/components/prism-sas.min.js | 2 +- node_modules/prismjs/components/prism-sass.js | 73 + .../prismjs/components/prism-sass.min.js | 1 + .../prismjs/components/prism-scala.js | 19 +- .../prismjs/components/prism-scala.min.js | 2 +- .../prismjs/components/prism-scheme.js | 42 +- .../prismjs/components/prism-scheme.min.js | 2 +- node_modules/prismjs/components/prism-scss.js | 71 +- .../prismjs/components/prism-scss.min.js | 2 +- .../prismjs/components/prism-smalltalk.js | 4 +- .../prismjs/components/prism-smalltalk.min.js | 2 +- .../prismjs/components/prism-smarty.js | 15 +- .../prismjs/components/prism-smarty.min.js | 2 +- node_modules/prismjs/components/prism-sql.js | 14 +- .../prismjs/components/prism-sql.min.js | 2 +- .../prismjs/components/prism-stylus.js | 153 +- .../prismjs/components/prism-stylus.min.js | 2 +- .../prismjs/components/prism-swift.js | 25 +- .../prismjs/components/prism-swift.min.js | 2 +- node_modules/prismjs/components/prism-tcl.js | 43 + .../prismjs/components/prism-tcl.min.js | 1 + .../prismjs/components/prism-textile.js | 257 ++ .../prismjs/components/prism-textile.min.js | 1 + node_modules/prismjs/components/prism-twig.js | 38 +- .../prismjs/components/prism-twig.min.js | 2 +- .../prismjs/components/prism-typescript.js | 4 +- .../components/prism-typescript.min.js | 2 +- .../prismjs/components/prism-verilog.js | 17 + .../prismjs/components/prism-verilog.min.js | 1 + node_modules/prismjs/components/prism-vhdl.js | 23 + .../prismjs/components/prism-vhdl.min.js | 1 + node_modules/prismjs/components/prism-vim.js | 10 + .../prismjs/components/prism-vim.min.js | 1 + node_modules/prismjs/components/prism-wiki.js | 17 +- .../prismjs/components/prism-wiki.min.js | 2 +- node_modules/prismjs/components/prism-xojo.js | 20 + .../prismjs/components/prism-xojo.min.js | 1 + node_modules/prismjs/components/prism-yaml.js | 20 +- .../prismjs/components/prism-yaml.min.js | 2 +- node_modules/prismjs/dist/prism-coy/LICENSE | 21 - node_modules/prismjs/dist/prism-coy/README.md | 5 - .../prismjs/dist/prism-coy/package.json | 17 - .../prismjs/dist/prism-coy/prism-coy.css | 231 -- node_modules/prismjs/dist/prism-dark/LICENSE | 21 - .../prismjs/dist/prism-dark/README.md | 5 - .../prismjs/dist/prism-dark/package.json | 17 - .../prismjs/dist/prism-dark/prism-dark.css | 126 - .../prismjs/dist/prism-default/LICENSE | 21 - .../prismjs/dist/prism-default/README.md | 5 - .../prismjs/dist/prism-default/package.json | 17 - node_modules/prismjs/dist/prism-funky/LICENSE | 21 - .../prismjs/dist/prism-funky/README.md | 5 - .../prismjs/dist/prism-funky/package.json | 17 - .../prismjs/dist/prism-funky/prism-funky.css | 115 - .../prismjs/dist/prism-okaidia/LICENSE | 21 - .../prismjs/dist/prism-okaidia/README.md | 5 - .../prismjs/dist/prism-okaidia/package.json | 17 - .../dist/prism-okaidia/prism-okaidia.css | 119 - .../prismjs/dist/prism-tomorrow/LICENSE | 21 - .../prismjs/dist/prism-tomorrow/README.md | 5 - .../prismjs/dist/prism-tomorrow/package.json | 17 - .../dist/prism-tomorrow/prism-tomorrow.css | 119 - .../prismjs/dist/prism-twilight/LICENSE | 21 - .../prismjs/dist/prism-twilight/README.md | 5 - .../prismjs/dist/prism-twilight/package.json | 17 - .../dist/prism-twilight/prism-twilight.css | 199 -- node_modules/prismjs/gulpfile.js | 198 +- node_modules/prismjs/package.json | 143 +- .../plugins/autolinker/prism-autolinker.js | 72 +- .../autolinker/prism-autolinker.min.js | 2 +- .../plugins/autoloader/prism-autoloader.js | 198 ++ .../autoloader/prism-autoloader.min.js | 1 + .../command-line/prism-command-line.css | 33 + .../command-line/prism-command-line.js | 81 + .../command-line/prism-command-line.min.js | 1 + .../prism-copy-to-clipboard.js | 75 + .../prism-copy-to-clipboard.min.js | 1 + .../custom-class/prism-custom-class.js | 29 + .../custom-class/prism-custom-class.min.js | 1 + .../prism-data-uri-highlight.js | 98 + .../prism-data-uri-highlight.min.js | 1 + .../file-highlight/prism-file-highlight.js | 80 +- .../prism-file-highlight.min.js | 2 +- .../prism-highlight-keywords.js | 5 +- .../prism-highlight-keywords.min.js | 2 +- .../jsonp-highlight/prism-jsonp-highlight.js | 151 + .../prism-jsonp-highlight.min.js | 1 + .../plugins/keep-markup/prism-keep-markup.js | 97 + .../keep-markup/prism-keep-markup.min.js | 1 + .../line-highlight/prism-line-highlight.css | 13 +- .../line-highlight/prism-line-highlight.js | 70 +- .../prism-line-highlight.min.js | 2 +- .../line-numbers/prism-line-numbers.js | 29 +- .../line-numbers/prism-line-numbers.min.js | 2 +- .../prism-normalize-whitespace.js | 172 ++ .../prism-normalize-whitespace.min.js | 1 + .../previewer-angle/prism-previewer-angle.css | 30 + .../previewer-angle/prism-previewer-angle.js | 118 + .../prism-previewer-angle.min.js | 1 + .../previewer-base/prism-previewer-base.css | 61 + .../previewer-base/prism-previewer-base.js | 201 ++ .../prism-previewer-base.min.js | 1 + .../previewer-color/prism-previewer-color.css | 9 + .../previewer-color/prism-previewer-color.js | 89 + .../prism-previewer-color.min.js | 1 + .../prism-previewer-easing.css | 29 + .../prism-previewer-easing.js | 117 + .../prism-previewer-easing.min.js | 1 + .../prism-previewer-gradient.css | 21 + .../prism-previewer-gradient.js | 216 ++ .../prism-previewer-gradient.min.js | 1 + .../previewer-time/prism-previewer-time.css | 88 + .../previewer-time/prism-previewer-time.js | 98 + .../prism-previewer-time.min.js | 1 + .../prism-remove-initial-line-feed.js | 21 + .../prism-remove-initial-line-feed.min.js | 1 + .../show-invisibles/prism-show-invisibles.css | 15 +- .../show-invisibles/prism-show-invisibles.js | 21 +- .../prism-show-invisibles.min.js | 2 +- .../show-language/prism-show-language.css | 16 - .../show-language/prism-show-language.js | 24 +- .../show-language/prism-show-language.min.css | 1 - .../show-language/prism-show-language.min.js | 2 +- .../prismjs/plugins/toolbar/prism-toolbar.css | 58 + .../prismjs/plugins/toolbar/prism-toolbar.js | 133 + .../plugins/toolbar/prism-toolbar.min.js | 1 + .../prism-unescaped-markup.css | 10 + .../prism-unescaped-markup.js | 40 + .../prism-unescaped-markup.min.js | 1 + node_modules/prismjs/plugins/wpd/prism-wpd.js | 112 +- .../prismjs/plugins/wpd/prism-wpd.min.js | 2 +- .../prism.esproj/Project.espressostorage | Bin 0 -> 535 bytes .../user.leaverou.espressostorage | Bin 0 -> 4412 bytes node_modules/prismjs/prism.js | 423 ++- .../prismjs/tests/helper/prism-loader.js | 131 + .../prismjs/tests/helper/test-case.js | 187 ++ .../prismjs/tests/helper/test-discovery.js | 115 + .../tests/helper/token-stream-transformer.js | 32 + .../tests/languages/abap/comment_feature.test | 13 + .../languages/abap/eol-comment_feature.test | 13 + .../tests/languages/abap/keyword_feature.test | 1801 ++++++++++++ .../tests/languages/abap/number_feature.test | 15 + .../languages/abap/operator_feature.test | 38 + .../abap/string-template_feature.test | 17 + .../tests/languages/abap/string_feature.test | 21 + .../actionscript/keyword_feature.test | 71 + .../actionscript/operator_feature.test | 29 + .../languages/ada/attr-name_feature.test | 13 + .../tests/languages/ada/boolean_feature.test | 13 + .../tests/languages/ada/char_feature.test | 13 + .../tests/languages/ada/comment_feature.test | 13 + .../tests/languages/ada/keyword_feature.test | 153 + .../tests/languages/ada/number_feature.test | 21 + .../tests/languages/ada/operator_feature.test | 23 + .../tests/languages/ada/string_feature.test | 13 + .../tests/languages/ada/variable_feature.test | 13 + .../languages/apacheconf/comment_feature.test | 15 + .../apacheconf/directive-block_feature.test | 469 ++++ .../apacheconf/directive-flags_feature.test | 13 + .../apacheconf/directive-inline_feature.test | 1163 ++++++++ .../languages/apacheconf/regex_feature.test | 15 + .../languages/apacheconf/string_feature.test | 24 + .../apacheconf/variable_feature.test | 15 + .../languages/apl/assignment_feature.test | 13 + .../tests/languages/apl/comment_feature.test | 15 + .../tests/languages/apl/constant_feature.test | 19 + .../tests/languages/apl/dfn_feature.test | 23 + .../apl/dyadic-operator_feature.test | 13 + .../tests/languages/apl/function_feature.test | 41 + .../apl/monadic-operator_feature.test | 15 + .../tests/languages/apl/number_feature.test | 27 + .../languages/apl/statement_feature.test | 13 + .../tests/languages/apl/string_feature.test | 15 + .../apl/system-function_feature.test | 17 + .../languages/applescript/class_feature.test | 39 + .../applescript/comment_feature.test | 21 + .../applescript/keyword_feature.test | 59 + .../languages/applescript/number_feature.test | 17 + .../applescript/operator_feature.test | 48 + .../languages/applescript/string_feature.test | 13 + .../asciidoc/admonition_feature.test | 19 + .../asciidoc/attribute-entry_feature.test | 58 + .../asciidoc/attributes_feature.test | 403 +++ .../languages/asciidoc/callout_feature.test | 34 + .../asciidoc/comment-block_feature.test | 19 + .../languages/asciidoc/comment_feature.test | 41 + .../languages/asciidoc/entity_feature.js | 4 + .../languages/asciidoc/entity_feature.test | 48 + .../tests/languages/asciidoc/hr_feature.test | 14 + .../asciidoc/indented-block_feature.test | 28 + .../languages/asciidoc/inline_feature.test | 521 ++++ .../asciidoc/line-continuation_feature.test | 18 + .../asciidoc/list-label_feature.test | 73 + .../asciidoc/list-punctuation_feature.test | 77 + .../asciidoc/literal-block_feature.test | 46 + .../languages/asciidoc/macro_feature.test | 250 ++ .../asciidoc/other-block_feature.test | 45 + .../asciidoc/page-break_feature.test | 14 + .../asciidoc/passthrough-block_feature.test | 29 + .../asciidoc/replacement_feature.test | 48 + .../languages/asciidoc/table_feature.test | 61 + .../languages/asciidoc/title_feature.test | 80 + .../languages/aspnet/comment_feature.test | 16 + .../aspnet/page-directive_feature.test | 92 + .../languages/autohotkey/boolean_feature.test | 13 + .../languages/autohotkey/builtin_feature.test | 147 + .../languages/autohotkey/comment_feature.test | 13 + .../autohotkey/constant_feature.test | 275 ++ .../autohotkey/function_feature.test | 15 + .../autohotkey/important_feature.test | 67 + .../languages/autohotkey/keyword_feature.test | 537 ++++ .../languages/autohotkey/number_feature.test | 21 + .../autohotkey/operator_feature.test | 33 + .../autohotkey/selector_feature.test | 381 +++ .../languages/autohotkey/string_feature.test | 15 + .../languages/autohotkey/symbol_feature.test | 347 +++ .../languages/autohotkey/tag_feature.test | 15 + .../autohotkey/variable_feature.test | 13 + .../languages/autoit/boolean_feature.test | 13 + .../languages/autoit/comment_feature.test | 33 + .../languages/autoit/directive_feature.test | 13 + .../languages/autoit/function_feature.test | 15 + .../languages/autoit/keyword_feature.test | 83 + .../languages/autoit/number_feature.test | 21 + .../languages/autoit/operator_feature.test | 23 + .../languages/autoit/string_feature.test | 37 + .../tests/languages/autoit/url_feature.test | 15 + .../languages/autoit/variable_feature.test | 19 + .../bash/arithmetic_environment_feature.test | 53 + .../bash/command_substitution_feature.test | 34 + .../tests/languages/bash/comment_feature.test | 13 + .../languages/bash/function_feature.test | 101 + .../tests/languages/bash/keyword_feature.test | 20 + .../tests/languages/bash/shebang_feature.test | 11 + .../tests/languages/bash/string_feature.test | 67 + .../languages/bash/variable_feature.test | 15 + .../languages/basic/comment_feature.test | 13 + .../languages/basic/function_feature.test | 309 +++ .../languages/basic/keyword_feature.test | 213 ++ .../tests/languages/basic/number_feature.test | 19 + .../languages/basic/operator_feature.test | 21 + .../tests/languages/basic/string_feature.test | 13 + .../languages/batch/command_feature.test | 103 + .../languages/batch/comment_feature.test | 18 + .../tests/languages/batch/label_feature.test | 13 + .../tests/languages/bison/c_feature.test | 56 + .../languages/bison/comment_feature.test | 25 + .../languages/bison/keyword_feature.test | 22 + .../tests/languages/bison/number_feature.test | 15 + .../languages/bison/property_feature.test | 21 + .../tests/languages/bison/string_feature.test | 21 + .../languages/brainfuck/all_feature.test | 19 + .../tests/languages/bro/builtin_feature.test | 29 + .../tests/languages/bro/comment_feature.test | 17 + .../tests/languages/bro/function_feature.test | 21 + .../tests/languages/bro/keyword_feature.test | 87 + .../tests/languages/bro/string_feature.test | 23 + .../tests/languages/bro/variable_feature.test | 25 + .../tests/languages/c+pure/c_inclusion.test | 28 + .../tests/languages/c/keyword_feature.test | 23 + .../tests/languages/c/macro_feature.test | 43 + .../tests/languages/c/number_feature.test | 35 + .../tests/languages/c/operator_feature.test | 19 + .../languages/clike/boolean_feature.test | 12 + .../languages/clike/class-name_feature.test | 53 + .../languages/clike/comment_feature.test | 16 + .../languages/clike/function_feature.test | 23 + .../languages/clike/keyword_feature.test | 30 + .../tests/languages/clike/number_feature.test | 23 + .../languages/clike/operator_feature.test | 21 + .../tests/languages/clike/string_feature.test | 28 + .../coffeescript_inclusion.test | 24 + .../coffeescript_inclusion.test | 19 + .../coffeescript/block-regex_feature.test | 33 + .../coffeescript/class-member_feature.test | 13 + .../coffeescript/comment_feature.test | 16 + .../inline-javascript_feature.test | 22 + .../coffeescript/keyword_feature.test | 41 + .../coffeescript/property_feature.test | 15 + .../coffeescript/string_feature.test | 64 + .../languages/cpp+pure/cpp_inclusion.test | 18 + .../tests/languages/cpp/boolean_feature.test | 13 + .../languages/cpp/class-name_feature.test | 13 + .../tests/languages/cpp/keyword_feature.test | 45 + .../languages/crystal/attribute_feature.test | 21 + .../languages/crystal/expansion_feature.test | 37 + .../languages/crystal/keyword_feature.test | 33 + .../languages/crystal/number_feature.test | 23 + .../csharp+aspnet/directive_feature.test | 71 + .../languages/csharp/generic_feature.test | 32 + .../tests/languages/csharp/issue806.test | 12 + .../languages/csharp/keyword_feature.test | 63 + .../languages/csharp/number_feature.test | 17 + .../csharp/preprocessor_feature.test | 35 + .../languages/csharp/string_feature.test | 32 + .../css!+css-extras/entity_feature.test | 13 + .../css!+css-extras/hexcode_feature.test | 17 + .../css!+css-extras/number_feature.test | 17 + .../css!+css-extras/selector_feature.test | 58 + .../languages/css+haml/css+haml_usage.test | 28 + .../languages/css+textile/css_inclusion.test | 117 + .../tests/languages/css/atrule_feature.test | 47 + .../tests/languages/css/comment_feature.test | 16 + .../tests/languages/css/function_feature.test | 35 + .../languages/css/important_feature.test | 21 + .../tests/languages/css/property_feature.test | 24 + .../tests/languages/css/selector_feature.test | 25 + .../tests/languages/css/string_feature.test | 19 + .../tests/languages/css/url_feature.test | 21 + .../tests/languages/d/comment_feature.test | 23 + .../tests/languages/d/keyword_feature.test | 251 ++ .../tests/languages/d/number_feature.test | 55 + .../tests/languages/d/operator_feature.test | 63 + .../tests/languages/d/property_feature.test | 17 + .../tests/languages/d/register_feature.test | 75 + .../tests/languages/d/string_feature.test | 56 + .../languages/d/token-string_feature.test | 13 + .../tests/languages/dart/keyword_feature.test | 49 + .../languages/dart/metadata_feature.test | 20 + .../languages/dart/operator_feature.test | 33 + .../tests/languages/dart/string_feature.test | 25 + .../tests/languages/diff/coord_feature.test | 21 + .../tests/languages/diff/diff_feature.test | 21 + .../languages/docker/comment_feature.test | 13 + .../languages/docker/keyword_feature.test | 37 + .../languages/docker/string_feature.test | 23 + .../languages/eiffel/boolean_feature.test | 13 + .../tests/languages/eiffel/char_feature.test | 15 + .../languages/eiffel/comment_feature.test | 13 + .../languages/eiffel/keyword_feature.test | 39 + .../languages/eiffel/number_feature.test | 29 + .../languages/eiffel/operator_feature.test | 19 + .../languages/eiffel/string_feature.test | 30 + .../tests/languages/elixir/atom_feature.test | 15 + .../languages/elixir/attr-name_feature.test | 24 + .../languages/elixir/attribute_feature.test | 19 + .../languages/elixir/boolean_feature.test | 15 + .../languages/elixir/capture_feature.test | 28 + .../languages/elixir/comment_feature.test | 13 + .../tests/languages/elixir/issue775.test | 17 + .../languages/elixir/keyword_feature.test | 31 + .../languages/elixir/number_feature.test | 27 + .../languages/elixir/operator_feature.test | 41 + .../tests/languages/elixir/regex_feature.test | 29 + .../languages/elixir/string_feature.test | 115 + .../tests/languages/erlang/atom_feature.test | 17 + .../languages/erlang/boolean_feature.test | 13 + .../languages/erlang/comment_feature.test | 11 + .../languages/erlang/function_feature.test | 17 + .../languages/erlang/keyword_feature.test | 15 + .../languages/erlang/number_feature.test | 25 + .../languages/erlang/operator_feature.test | 27 + .../languages/erlang/string_feature.test | 13 + .../languages/erlang/variable_feature.test | 17 + .../fortran+pure/fortran_inclusion.test | 18 + .../languages/fortran/boolean_feature.test | 13 + .../languages/fortran/comment_feature.test | 13 + .../languages/fortran/keyword_feature.test | 199 ++ .../languages/fortran/number_feature.test | 37 + .../languages/fortran/operator_feature.test | 25 + .../languages/fortran/string_feature.test | 31 + .../languages/fsharp/comment_feature.test | 16 + .../languages/fsharp/keyword_feature.test | 71 + .../languages/fsharp/number_feature.test | 65 + .../fsharp/preprocessor_feature.test | 22 + .../languages/fsharp/string_feature.test | 45 + .../languages/gherkin/atrule_feature.test | 1211 ++++++++ .../languages/gherkin/comment_feature.test | 15 + .../languages/gherkin/feature_feature.test | 196 ++ .../languages/gherkin/outline_feature.test | 11 + .../languages/gherkin/pystring_feature.test | 20 + .../languages/gherkin/scenario_feature.test | 581 ++++ .../languages/gherkin/string_feature.test | 29 + .../languages/gherkin/table_feature.test | 40 + .../tests/languages/gherkin/tag_feature.test | 17 + .../tests/languages/git/command_feature.test | 15 + .../tests/languages/git/comment_feature.test | 17 + .../languages/git/commit_sha1_feature.test | 15 + .../tests/languages/git/coord_feature.test | 13 + .../tests/languages/git/diff_feature.test | 31 + .../tests/languages/git/string_feature.test | 17 + .../tests/languages/glsl/comment_feature.test | 21 + .../tests/languages/glsl/keyword_feature.test | 263 ++ .../tests/languages/glsl/number_feature.test | 31 + .../languages/glsl/preprocessor_feature.test | 35 + .../tests/languages/go/boolean_feature.test | 19 + .../tests/languages/go/builtin_feature.test | 79 + .../tests/languages/go/keyword_feature.test | 59 + .../tests/languages/go/number_feature.test | 43 + .../tests/languages/go/operator_feature.test | 27 + .../tests/languages/go/string_feature.test | 37 + .../languages/graphql/attr-name_feature.test | 27 + .../languages/graphql/boolean_feature.test | 13 + .../languages/graphql/comment_feature.test | 13 + .../languages/graphql/directive_feature.test | 13 + .../languages/graphql/keyword_feature.test | 24 + .../languages/graphql/number_feature.test | 23 + .../languages/graphql/string_feature.test | 15 + .../languages/graphql/variable_feature.test | 13 + .../languages/groovy/annotation_feature.test | 17 + .../tests/languages/groovy/issue1049.js | 8 + .../languages/groovy/keyword_feature.test | 61 + .../languages/groovy/number_feature.test | 43 + .../languages/groovy/operator_feature.test | 45 + .../languages/groovy/shebang_feature.test | 13 + .../languages/groovy/spock-block_feature.test | 25 + .../groovy/string-interpolation_feature.js | 28 + .../languages/groovy/string_feature.test | 60 + .../tests/languages/haml/code_feature.test | 19 + .../tests/languages/haml/doctype_feature.test | 15 + .../languages/haml/interpolation_feature.test | 21 + .../haml/multiline-code_feature.test | 58 + .../haml/multiline-comment_feature.test | 46 + .../tests/languages/haml/tag_feature.test | 161 ++ .../handlebars+jade/handlebars_inclusion.test | 15 + .../languages/handlebars/block_feature.test | 23 + .../languages/handlebars/boolean_feature.test | 17 + .../languages/handlebars/comment_feature.test | 19 + .../handlebars_in_markup_feature.js | 4 + .../languages/handlebars/number_feature.test | 29 + .../languages/handlebars/string_feature.test | 25 + .../languages/haskell/builtin_feature.test | 137 + .../tests/languages/haskell/char_feature.test | 17 + .../languages/haskell/comment_feature.test | 14 + .../languages/haskell/constant_feature.test | 15 + .../languages/haskell/hvariable_feature.test | 15 + .../haskell/import_statement_feature.test | 35 + .../languages/haskell/keyword_feature.test | 19 + .../languages/haskell/number_feature.test | 23 + .../languages/haskell/operator_feature.test | 37 + .../languages/haskell/string_feature.test | 19 + .../tests/languages/haxe/keyword_feature.test | 93 + .../languages/haxe/metadata_feature.test | 15 + .../languages/haxe/operator_feature.test | 29 + .../languages/haxe/preprocessor_feature.test | 17 + .../tests/languages/haxe/regex_feature.test | 15 + .../languages/haxe/reification_feature.test | 16 + .../tests/languages/haxe/string_feature.test | 37 + .../languages/http/header-name_feature.test | 24 + .../languages/http/request-line_feature.test | 51 + .../http/response-status_feature.test | 29 + .../icon/builtin-keyword_feature.test | 91 + .../tests/languages/icon/comment_feature.test | 13 + .../languages/icon/directive_feature.test | 21 + .../languages/icon/function_feature.test | 15 + .../tests/languages/icon/keyword_feature.test | 67 + .../tests/languages/icon/number_feature.test | 33 + .../languages/icon/operator_feature.test | 69 + .../tests/languages/icon/string_feature.test | 22 + .../languages/inform7/comment_feature.test | 15 + .../languages/inform7/keyword_feature.test | 85 + .../languages/inform7/number_feature.test | 25 + .../languages/inform7/position_feature.test | 73 + .../languages/inform7/property_feature.test | 157 ++ .../languages/inform7/string_feature.test | 49 + .../languages/inform7/title_feature.test | 21 + .../languages/inform7/variable_feature.test | 141 + .../tests/languages/inform7/verb_feature.test | 213 ++ .../tests/languages/ini/comment_feature.test | 13 + .../languages/ini/key_value_feature.test | 21 + .../tests/languages/ini/selector_feature.test | 13 + .../tests/languages/j/adverb_feature.test | 19 + .../tests/languages/j/comment_feature.test | 13 + .../languages/j/conjunction_feature.test | 41 + .../tests/languages/j/keyword_feature.test | 77 + .../tests/languages/j/number_feature.test | 41 + .../tests/languages/j/string_feature.test | 13 + .../tests/languages/j/verb_feature.test | 93 + .../tests/languages/jade/code_feature.test | 36 + .../tests/languages/jade/comment_feature.test | 22 + .../tests/languages/jade/doctype_feature.test | 15 + .../languages/jade/flow-control_feature.test | 75 + .../tests/languages/jade/keyword_feature.test | 27 + .../tests/languages/jade/mixin_feature.test | 35 + .../jade/multiline-plain-text_feature.test | 30 + .../jade/multiline-script_feature.test | 58 + .../languages/jade/plain-text_feature.test | 19 + .../tests/languages/jade/script_feature.test | 38 + .../tests/languages/jade/tag_feature.test | 97 + .../tests/languages/java/keyword_feature.test | 51 + .../tests/languages/java/number_feature.test | 27 + .../languages/java/operator_feature.test | 33 + .../javascript+haml/javascript_inclusion.test | 24 + .../javascript+http/javascript_inclusion.test | 21 + .../languages/javascript/boolean_feature.test | 13 + .../javascript/function_feature.test | 23 + .../languages/javascript/keyword_feature.test | 70 + .../languages/javascript/number_feature.test | 32 + .../javascript/operator_feature.test | 25 + .../languages/javascript/regex_feature.test | 23 + .../javascript/template-string_feature.test | 44 + .../languages/jolie/deployment_features.test | 43 + .../languages/jolie/keyword_feature.test | 129 + .../tests/languages/jolie/number_feature.test | 19 + .../languages/jolie/operator_feature.test | 42 + .../tests/languages/json/boolean_feature.test | 13 + .../tests/languages/json/null_feature.test | 11 + .../tests/languages/json/number_feature.test | 21 + .../languages/json/property_feature.test | 33 + .../tests/languages/json/string_feature.test | 27 + .../tests/languages/jsx/tag_feature.test | 48 + .../languages/julia/boolean_feature.test | 13 + .../languages/julia/comment_feature.test | 13 + .../languages/julia/keyword_feature.test | 31 + .../tests/languages/julia/number_feature.test | 33 + .../languages/julia/operator_feature.test | 41 + .../tests/languages/julia/string_feature.test | 29 + .../languages/keyman/atrule_feature.test | 15 + .../tests/languages/keyman/bold_feature.test | 59 + .../languages/keyman/comment_feature.test | 13 + .../languages/keyman/function_feature.test | 39 + .../languages/keyman/keyword_feature.test | 21 + .../languages/keyman/number_feature.test | 21 + .../languages/keyman/operator_feature.test | 15 + .../languages/keyman/string_feature.test | 17 + .../tests/languages/keyman/tag_feature.test | 19 + .../languages/kotlin/annotation_feature.test | 21 + .../languages/kotlin/function_feature.test | 16 + .../kotlin/interpolation_feature.test | 46 + .../languages/kotlin/keyword_feature.test | 121 + .../tests/languages/kotlin/label_feature.test | 15 + .../languages/kotlin/number_feature.test | 29 + .../languages/kotlin/operator_feature.test | 31 + .../languages/kotlin/raw-string_feature.test | 18 + .../tests/languages/latex/cdata_feature.test | 28 + .../languages/latex/comment_feature.test | 13 + .../languages/latex/equation_feature.test | 121 + .../languages/latex/headline_feature.test | 39 + .../languages/latex/keyword_feature.test | 32 + .../tests/languages/latex/url_feature.test | 12 + .../languages/less+haml/less_inclusion.test | 32 + .../languages/less+jade/less_inclusion.test | 20 + .../tests/languages/less/atrule_feature.test | 25 + .../tests/languages/less/comment_feature.test | 18 + .../languages/less/operator_feature.test | 14 + .../languages/less/property_feature.test | 19 + .../languages/less/selector_feature.test | 24 + .../livescript/argument_feature.test | 17 + .../languages/livescript/boolean_feature.test | 21 + .../languages/livescript/comment_feature.test | 18 + .../livescript/identifier_feature.test | 21 + .../livescript/interpolated-string.test | 57 + .../livescript/keyword-operator_feature.test | 57 + .../languages/livescript/keyword_feature.test | 87 + .../languages/livescript/number_feature.test | 21 + .../livescript/operator_feature.test | 55 + .../languages/livescript/regex_feature.test | 27 + .../languages/livescript/string_feature.test | 32 + .../languages/lolcode/boolean_feature.test | 13 + .../languages/lolcode/comment_feature.test | 14 + .../languages/lolcode/function_feature.test | 18 + .../languages/lolcode/keyword_feature.test | 93 + .../languages/lolcode/label_feature.test | 15 + .../languages/lolcode/number_feature.test | 13 + .../languages/lolcode/operator_feature.test | 39 + .../languages/lolcode/string_feature.test | 33 + .../languages/lolcode/symbol_feature.test | 27 + .../languages/lolcode/variable_feature.test | 11 + .../tests/languages/lua/comment_feature.test | 22 + .../tests/languages/lua/function_feature.test | 17 + .../tests/languages/lua/keyword_feature.test | 53 + .../tests/languages/lua/number_feature.test | 35 + .../tests/languages/lua/operator_feature.test | 25 + .../tests/languages/lua/string_feature.test | 36 + .../languages/makefile/builtin_feature.test | 15 + .../languages/makefile/comment_feature.test | 16 + .../languages/makefile/keyword_feature.test | 73 + .../languages/makefile/operator_feature.test | 15 + .../languages/makefile/string_feature.test | 23 + .../languages/makefile/symbol_feature.test | 18 + .../languages/makefile/variable_feature.test | 19 + .../markdown+haml/markdown_inclusion.test | 32 + .../markdown+jade/markdown_inclusion.test | 18 + .../markdown/blockquote_feature.test | 15 + .../languages/markdown/bold_feature.test | 70 + .../languages/markdown/code_feature.test | 22 + .../tests/languages/markdown/hr_feature.test | 15 + .../languages/markdown/italic_feature.test | 46 + .../languages/markdown/list_feature.test | 22 + .../languages/markdown/title_feature.test | 34 + .../markdown/url-reference_feature.test | 56 + .../tests/languages/markdown/url_feature.test | 25 + .../languages/markup!+css/css_inclusion.test | 71 + .../javascript_inclusion.test | 60 + .../markup+actionscript/xml_feature.test | 64 + .../markup+css+wiki/table-tag_feature.test | 147 + .../languages/markup+haml/markup_feature.test | 11 + .../markup+http/markup_inclusion.test | 30 + .../languages/markup+jade/markup_feature.test | 29 + .../script_feature.test | 57 + .../languages/markup+php/markup_feature.test | 37 + .../markup+php/php_in_markup_feature.js | 6 + .../tests/languages/markup/cdata_feature.test | 15 + .../languages/markup/comment_feature.test | 16 + .../languages/markup/doctype_feature.test | 16 + .../tests/languages/markup/entity_feature.js | 4 + .../languages/markup/entity_feature.test | 14 + .../tests/languages/markup/issue585.test | 63 + .../tests/languages/markup/issue888.test | 18 + .../languages/markup/prolog_feature.test | 16 + .../markup/tag_attribute_feature.test | 92 + .../tests/languages/markup/tag_feature.test | 81 + .../languages/matlab/comment_feature.test | 16 + .../languages/matlab/function_feature.test | 13 + .../languages/matlab/keyword_feature.test | 21 + .../languages/matlab/number_feature.test | 27 + .../languages/matlab/operator_feature.test | 29 + .../languages/matlab/string_feature.test | 13 + .../tests/languages/mel/code_feature.test | 16 + .../tests/languages/mel/comment_feature.test | 13 + .../tests/languages/mel/flag_feature.test | 15 + .../tests/languages/mel/function_feature.test | 2453 +++++++++++++++++ .../tests/languages/mel/keyword_feature.test | 47 + .../tests/languages/mel/number_feature.test | 15 + .../tests/languages/mel/operator_feature.test | 33 + .../tests/languages/mel/string_feature.test | 13 + .../tests/languages/mel/variable_feature.test | 15 + .../languages/mizar/comment_feature.test | 11 + .../languages/mizar/keyword_feature.test | 245 ++ .../tests/languages/mizar/number_feature.test | 15 + .../languages/mizar/operator_feature.test | 17 + .../languages/mizar/parameter_feature.test | 17 + .../languages/mizar/variable_feature.test | 17 + .../languages/monkey/comment_feature.test | 15 + .../languages/monkey/function_feature.test | 13 + .../languages/monkey/keyword_feature.test | 125 + .../languages/monkey/number_feature.test | 19 + .../languages/monkey/operator_feature.test | 41 + .../monkey/preprocessor_feature.test | 15 + .../languages/monkey/string_feature.test | 13 + .../languages/monkey/type-char_feature.test | 17 + .../tests/languages/nasm/comment_feature.test | 13 + .../tests/languages/nasm/keyword_feature.test | 30 + .../tests/languages/nasm/label_feature.test | 15 + .../tests/languages/nasm/number_feature.test | 97 + .../languages/nasm/operator_feature.test | 17 + .../languages/nasm/register_feature.test | 43 + .../tests/languages/nasm/string_feature.test | 21 + .../languages/nginx/comment_feature.test | 13 + .../languages/nginx/keyword_feature.test | 705 +++++ .../languages/nginx/variable_feature.test | 13 + .../tests/languages/nim/comment_feature.test | 13 + .../tests/languages/nim/function_feature.test | 17 + .../tests/languages/nim/keyword_feature.test | 123 + .../tests/languages/nim/number_feature.test | 31 + .../tests/languages/nim/operator_feature.test | 39 + .../tests/languages/nim/string_feature.test | 38 + .../languages/nix/antiquotation_feature.test | 14 + .../tests/languages/nix/boolean_feature.test | 13 + .../tests/languages/nix/comment_feature.test | 18 + .../tests/languages/nix/function_feature.test | 133 + .../tests/languages/nix/keyword_feature.test | 15 + .../tests/languages/nix/number_feature.test | 15 + .../tests/languages/nix/operator_feature.test | 25 + .../tests/languages/nix/string_feature.test | 56 + .../tests/languages/nix/url_feature.test | 21 + .../tests/languages/nsis/comment_feature.test | 18 + .../languages/nsis/constant_feature.test | 19 + .../languages/nsis/important_feature.test | 69 + .../tests/languages/nsis/keyword_feature.test | 433 +++ .../tests/languages/nsis/number_feature.test | 19 + .../languages/nsis/operator_feature.test | 21 + .../languages/nsis/property_feature.test | 111 + .../tests/languages/nsis/string_feature.test | 17 + .../languages/nsis/variable_feature.test | 13 + .../languages/objectivec/keyword_feature.test | 59 + .../objectivec/operator_feature.test | 25 + .../languages/objectivec/string_feature.test | 34 + .../languages/ocaml/boolean_feature.test | 13 + .../languages/ocaml/comment_feature.test | 14 + .../languages/ocaml/directive_feature.test | 15 + .../languages/ocaml/keyword_feature.test | 101 + .../tests/languages/ocaml/number_feature.test | 25 + .../languages/ocaml/operator_feature.test | 31 + .../tests/languages/ocaml/string_feature.test | 25 + .../tests/languages/ocaml/type_feature.test | 17 + .../tests/languages/oz/atom_feature.test | 16 + .../tests/languages/oz/attr-name_feature.test | 14 + .../tests/languages/oz/comment_feature.test | 18 + .../tests/languages/oz/function_feature.test | 13 + .../tests/languages/oz/keyword_feature.test | 103 + .../tests/languages/oz/number_feature.test | 35 + .../tests/languages/oz/operator_feature.test | 35 + .../tests/languages/oz/string_feature.test | 16 + .../tests/languages/oz/variable_feature.test | 15 + .../languages/parigp/comment_feature.test | 18 + .../languages/parigp/function_feature.test | 13 + .../languages/parigp/keyword_feature.test | 103 + .../languages/parigp/number_feature.test | 39 + .../languages/parigp/operator_feature.test | 155 ++ .../languages/parigp/string_feature.test | 13 + .../languages/parser/boolean_feature.test | 21 + .../languages/parser/escape_feature.test | 68 + .../languages/parser/expression_feature.test | 58 + .../languages/parser/function_feature.test | 48 + .../languages/parser/keyword_feature.test | 70 + .../languages/parser/number_feature.test | 51 + .../languages/parser/operator_feature.test | 257 ++ .../parser/parser-comment_feature.test | 17 + .../languages/parser/string_feature.test | 47 + .../languages/parser/variable_feature.test | 55 + .../languages/pascal/comment_feature.test | 23 + .../languages/pascal/keyword_feature.test | 143 + .../languages/pascal/number_feature.test | 25 + .../languages/pascal/operator_feature.test | 31 + .../languages/pascal/string_feature.test | 21 + .../tests/languages/perl/comment_feature.test | 17 + .../languages/perl/filehandle_feature.test | 17 + .../languages/perl/function_feature.test | 13 + .../tests/languages/perl/keyword_feature.test | 29 + .../tests/languages/perl/number_feature.test | 33 + .../languages/perl/operator_feature.test | 71 + .../tests/languages/perl/regex_feature.test | 129 + .../tests/languages/perl/string_feature.test | 130 + .../languages/perl/variable_feature.test | 47 + .../tests/languages/perl/vstring_feature.test | 13 + .../php!+php-extras/global_feature.test | 37 + .../php!+php-extras/scope_feature.test | 27 + .../php!+php-extras/this_feature.test | 11 + .../tests/languages/php/comment_feature.test | 18 + .../tests/languages/php/constant_feature.test | 15 + .../languages/php/delimiter_feature.test | 15 + .../tests/languages/php/keyword_feature.test | 76 + .../tests/languages/php/package_feature.test | 29 + .../tests/languages/php/property_feature.test | 19 + .../languages/php/shell-comment_feature.test | 13 + .../tests/languages/php/variable_feature.test | 15 + .../languages/powershell/boolean_feature.test | 18 + .../languages/powershell/comment_feature.test | 21 + .../powershell/function_feature.test | 398 +++ .../languages/powershell/keyword_feature.test | 46 + .../powershell/namespace_feature.test | 14 + .../powershell/operator_feature.test | 55 + .../languages/powershell/string_feature.test | 49 + .../powershell/variable_feature.test | 15 + .../processing/constant_feature.test | 13 + .../processing/function_feature.test | 13 + .../languages/processing/keyword_feature.test | 59 + .../processing/operator_feature.test | 31 + .../languages/processing/type_feature.test | 31 + .../languages/prolog/builtin_feature.test | 17 + .../languages/prolog/comment_feature.test | 16 + .../languages/prolog/function_feature.test | 17 + .../languages/prolog/number_feature.test | 15 + .../languages/prolog/operator_feature.test | 29 + .../languages/prolog/string_feature.test | 27 + .../languages/prolog/variable_feature.test | 15 + .../languages/properties/comment_feature.test | 17 + .../properties/key_value_feature.test | 36 + .../languages/protobuf/keyword_feature.test | 40 + .../languages/protobuf/string_feature.test | 23 + .../languages/puppet/attr-name_feature.test | 19 + .../languages/puppet/boolean_feature.test | 13 + .../languages/puppet/comment_feature.test | 16 + .../languages/puppet/datatype_feature.test | 63 + .../languages/puppet/function_feature.test | 37 + .../languages/puppet/heredoc_feature.test | 51 + .../puppet/interpolation_feature.test | 54 + .../languages/puppet/keyword_feature.test | 47 + .../languages/puppet/number_feature.test | 25 + .../languages/puppet/operator_feature.test | 29 + .../tests/languages/puppet/regex_feature.test | 29 + .../languages/puppet/string_feature.test | 30 + .../languages/puppet/variable_feature.test | 15 + .../tests/languages/pure/comment_feature.test | 20 + .../languages/pure/function_feature.test | 619 +++++ .../tests/languages/pure/keyword_feature.test | 113 + .../tests/languages/pure/number_feature.test | 31 + .../languages/pure/operator_feature.test | 29 + .../tests/languages/pure/special_feature.test | 15 + .../tests/languages/pure/string_feature.test | 13 + .../languages/python/boolean_feature.test | 13 + .../languages/python/class-name_feature.test | 15 + .../languages/python/comment_feature.test | 13 + .../languages/python/function_feature.test | 15 + .../languages/python/keyword_feature.test | 27 + .../languages/python/number_feature.test | 27 + .../languages/python/operator_feature.test | 31 + .../languages/python/string_feature.test | 19 + .../python/triple-quoted-string_feature.test | 21 + .../tests/languages/q/adverb_feature.test | 17 + .../tests/languages/q/comment_feature.test | 24 + .../tests/languages/q/datetime_feature.test | 39 + .../tests/languages/q/keyword_feature.test | 371 +++ .../tests/languages/q/number_feature.test | 33 + .../tests/languages/q/string_feature.test | 13 + .../tests/languages/q/symbol_feature.test | 17 + .../tests/languages/q/verb_feature.test | 35 + .../tests/languages/qore/boolean_feature.test | 13 + .../tests/languages/qore/comment_feature.test | 22 + .../languages/qore/function_feature.test | 15 + .../tests/languages/qore/keyword_feature.test | 63 + .../tests/languages/qore/number_feature.test | 21 + .../languages/qore/operator_feature.test | 37 + .../tests/languages/qore/string_feature.test | 19 + .../languages/qore/variable_feature.test | 15 + .../tests/languages/r/boolean_feature.test | 13 + .../tests/languages/r/comment_feature.test | 13 + .../tests/languages/r/ellipsis_feature.test | 15 + .../tests/languages/r/keyword_feature.test | 25 + .../tests/languages/r/number_feature.test | 39 + .../tests/languages/r/operator_feature.test | 29 + .../languages/r/percent-operator_feature.test | 15 + .../tests/languages/r/string_feature.test | 17 + .../languages/reason/character_feature.test | 19 + .../languages/reason/class-name_feature.test | 15 + .../languages/reason/comment_feature.test | 20 + .../languages/reason/constructor_feature.test | 15 + .../languages/reason/keyword_feature.test | 103 + .../tests/languages/reason/label_feature.test | 13 + .../languages/reason/operator_feature.test | 29 + .../languages/reason/string_feature.test | 13 + .../rest/command-line-option_feature.test | 37 + .../tests/languages/rest/comment_feature.test | 24 + .../languages/rest/directive_feature.test | 33 + .../languages/rest/doctest-block_feature.test | 22 + .../tests/languages/rest/field_feature.test | 19 + .../tests/languages/rest/hr_feature.test | 112 + .../tests/languages/rest/inline_feature.test | 55 + .../languages/rest/link-target_feature.test | 90 + .../tests/languages/rest/link_feature.test | 33 + .../languages/rest/list-bullet_feature.test | 45 + .../languages/rest/literal-block_feature.test | 27 + .../rest/quoted-literal-block_feature.test | 333 +++ .../rest/substitution-def_feature.test | 69 + .../tests/languages/rest/table_feature.test | 64 + .../tests/languages/rest/title_feature.test | 585 ++++ .../tests/languages/rip/boolean_feature.test | 13 + .../tests/languages/rip/builtin_feature.test | 13 + .../languages/rip/character_feature.test | 14 + .../tests/languages/rip/comment_feature.test | 13 + .../languages/rip/date_time_feature.test | 23 + .../tests/languages/rip/keyword_feature.test | 21 + .../tests/languages/rip/number_feature.test | 21 + .../languages/rip/reference_feature.test | 13 + .../tests/languages/rip/regex_feature.test | 17 + .../tests/languages/rip/string_feature.test | 17 + .../tests/languages/rip/symbol_feature.test | 15 + .../languages/roboconf/comment_feature.test | 13 + .../languages/roboconf/component_feature.test | 13 + .../languages/roboconf/keyword_feature.test | 19 + .../languages/roboconf/optional_feature.test | 11 + .../languages/roboconf/property_feature.test | 17 + .../languages/roboconf/value_feature.test | 20 + .../languages/roboconf/wildcard_feature.test | 12 + .../tests/languages/ruby/builtin_feature.test | 29 + .../tests/languages/ruby/comment_feature.test | 13 + .../languages/ruby/constant_feature.test | 21 + .../tests/languages/ruby/keyword_feature.test | 39 + .../tests/languages/ruby/regex_feature.test | 45 + .../tests/languages/ruby/string_feature.test | 287 ++ .../tests/languages/ruby/symbol_feature.test | 17 + .../languages/ruby/variable_feature.test | 27 + .../languages/rust/attribute_feature.test | 13 + .../rust/closure-params_feature.test | 30 + .../tests/languages/rust/comment_feature.test | 18 + .../languages/rust/function_feature.test | 23 + .../tests/languages/rust/keyword_feature.test | 39 + .../languages/rust/macro-rules_feature.test | 15 + .../tests/languages/rust/number_feature.test | 47 + .../languages/rust/operator_feature.test | 35 + .../tests/languages/rust/string_feature.test | 43 + .../tests/languages/sas/comment_feature.test | 17 + .../languages/sas/datalines_feature.test | 38 + .../tests/languages/sas/datetime_feature.test | 15 + .../tests/languages/sas/keyword_feature.test | 13 + .../tests/languages/sas/number_feature.test | 21 + .../tests/languages/sas/operator_feature.test | 37 + .../tests/languages/sas/string_feature.test | 23 + .../languages/sass/atrule-line_feature.test | 35 + .../tests/languages/sass/comment_feature.test | 23 + .../languages/sass/property-line_feature.test | 47 + .../languages/sass/selector_feature.test | 24 + .../languages/sass/variable-line_feature.test | 29 + .../languages/scala/builtin_feature.test | 17 + .../languages/scala/keyword_feature.test | 35 + .../tests/languages/scala/number_feature.test | 27 + .../tests/languages/scala/string_feature.test | 34 + .../tests/languages/scala/symbol_feature.test | 15 + .../languages/scheme/boolean_feature.test | 13 + .../languages/scheme/builtin_feature.test | 53 + .../languages/scheme/comment_feature.test | 13 + .../languages/scheme/function_feature.test | 17 + .../languages/scheme/keyword_feature.test | 57 + .../languages/scheme/number_feature.test | 19 + .../languages/scheme/operator_feature.test | 31 + .../languages/scheme/string_feature.test | 15 + .../languages/scss+haml/scss_inclusion.test | 40 + .../languages/scss+jade/scss_inclusion.test | 17 + .../tests/languages/scss/atrule_feature.test | 20 + .../tests/languages/scss/boolean_feature.test | 13 + .../tests/languages/scss/comment_feature.test | 19 + .../tests/languages/scss/keyword_feature.test | 28 + .../tests/languages/scss/null_feature.test | 11 + .../languages/scss/operator_feature.test | 38 + .../languages/scss/placeholder_feature.test | 15 + .../languages/scss/property_feature.test | 23 + .../languages/scss/selector_feature.test | 23 + .../languages/scss/statement_feature.test | 21 + .../tests/languages/scss/url_feature.test | 19 + .../languages/scss/variable_feature.test | 21 + .../smalltalk/block-arguments_feature.test | 26 + .../smalltalk/character_feature.test | 17 + .../languages/smalltalk/comment_feature.test | 14 + .../languages/smalltalk/keyword_feature.test | 13 + .../languages/smalltalk/number_feature.test | 23 + .../languages/smalltalk/operator_feature.test | 29 + .../languages/smalltalk/string_feature.test | 14 + .../languages/smalltalk/symbol_feature.test | 21 + .../temporary-variables_feature.test | 25 + .../languages/smarty/attr-name_feature.test | 36 + .../languages/smarty/function_feature.test | 41 + .../languages/smarty/keyword_feature.test | 51 + .../languages/smarty/number_feature.test | 45 + .../languages/smarty/operator_feature.test | 187 ++ .../smarty/smarty-comment_feature.test | 14 + .../smarty/smarty_in_markup_feature.js | 4 + .../languages/smarty/string_feature.test | 33 + .../languages/smarty/variable_feature.test | 56 + .../tests/languages/sql/boolean_feature.test | 15 + .../tests/languages/sql/comment_feature.test | 26 + .../tests/languages/sql/function_feature.test | 37 + .../tests/languages/sql/keyword_feature.test | 687 +++++ .../tests/languages/sql/operator_feature.test | 49 + .../tests/languages/sql/string_feature.test | 23 + .../tests/languages/sql/variable_feature.test | 22 + .../stylus+jade/stylus_inclusion.test | 20 + .../stylus/atrule-declaration_feature.test | 31 + .../languages/stylus/boolean_feature.test | 21 + .../languages/stylus/comment_feature.test | 18 + .../tests/languages/stylus/func_feature.test | 51 + .../languages/stylus/hexcode_feature.test | 29 + .../languages/stylus/important_feature.test | 22 + .../languages/stylus/keyword_feature.test | 44 + .../languages/stylus/number_feature.test | 32 + .../languages/stylus/operator_feature.test | 273 ++ .../stylus/property-declaration_feature.test | 52 + .../languages/stylus/selector_feature.test | 49 + .../languages/stylus/string_feature.test | 33 + .../tests/languages/stylus/url_feature.test | 21 + .../stylus/variable-declaration_feature.test | 33 + .../tests/languages/swift/atrule_feature.test | 33 + .../languages/swift/builtin_feature.test | 53 + .../languages/swift/constant_feature.test | 19 + .../languages/swift/keyword_feature.test | 165 ++ .../tests/languages/swift/number_feature.test | 25 + .../tests/languages/swift/string_feature.test | 47 + .../tests/languages/tcl/builtin_feature.test | 35 + .../tests/languages/tcl/comment_feature.test | 13 + .../tests/languages/tcl/function_feature.test | 15 + .../tests/languages/tcl/keyword_feature.test | 213 ++ .../tests/languages/tcl/operator_feature.test | 45 + .../tests/languages/tcl/scope_feature.test | 15 + .../tests/languages/tcl/string_feature.test | 16 + .../tests/languages/tcl/variable_feature.test | 31 + .../languages/textile/acronym_feature.test | 15 + .../languages/textile/block-tag_feature.test | 131 + .../languages/textile/footnote_feature.test | 15 + .../languages/textile/image_feature.test | 71 + .../languages/textile/inline_feature.test | 166 ++ .../languages/textile/link-ref_feature.test | 25 + .../tests/languages/textile/link_feature.test | 44 + .../tests/languages/textile/list_feature.test | 36 + .../tests/languages/textile/mark_feature.test | 17 + .../languages/textile/table_feature.test | 177 ++ .../languages/twig+jade/twig_inclusion.test | 19 + .../tests/languages/twig/boolean_feature.test | 27 + .../tests/languages/twig/comment_feature.test | 16 + .../tests/languages/twig/keyword_feature.test | 53 + .../tests/languages/twig/number_feature.test | 45 + .../languages/twig/operator_feature.test | 179 ++ .../tests/languages/twig/string_feature.test | 33 + .../languages/typescript/keyword_feature.test | 123 + .../languages/verilog/comment_feature.test | 18 + .../languages/verilog/constant_feature.test | 13 + .../languages/verilog/function_feature.test | 15 + .../languages/verilog/important_feature.test | 27 + .../languages/verilog/keyword_feature.test | 443 +++ .../languages/verilog/number_feature.test | 39 + .../languages/verilog/operator_feature.test | 39 + .../languages/verilog/property_feature.test | 11 + .../languages/verilog/string_feature.test | 16 + .../tests/languages/vhdl/boolean_feature.test | 13 + .../tests/languages/vhdl/comment_feature.test | 13 + .../languages/vhdl/constant_feature.test | 13 + .../languages/vhdl/function_feature.test | 29 + .../tests/languages/vhdl/keyword_feature.test | 229 ++ .../tests/languages/vhdl/number_feature.test | 37 + .../languages/vhdl/operator_feature.test | 29 + .../tests/languages/vhdl/string_feature.test | 16 + .../languages/vhdl/vhdl-vectors_feature.test | 21 + .../tests/languages/vim/builtin_feature.test | 2289 +++++++++++++++ .../tests/languages/vim/comment_feature.test | 13 + .../tests/languages/vim/function_feature.test | 13 + .../tests/languages/vim/keyword_feature.test | 1661 +++++++++++ .../tests/languages/vim/number_feature.test | 15 + .../tests/languages/vim/operator_feature.test | 37 + .../tests/languages/vim/string_feature.test | 19 + .../languages/wiki/block-comment_feature.test | 16 + .../languages/wiki/emphasis_feature.test | 27 + .../tests/languages/wiki/heading_feature.test | 33 + .../tests/languages/wiki/hr_feature.test | 13 + .../tests/languages/wiki/nowiki_feature.test | 63 + .../tests/languages/wiki/symbol_feature.test | 17 + .../tests/languages/wiki/url_feature.test | 29 + .../languages/wiki/variable_feature.test | 19 + .../tests/languages/xojo/comment_feature.test | 15 + .../tests/languages/xojo/keyword_feature.test | 125 + .../tests/languages/xojo/number_feature.test | 27 + .../languages/xojo/operator_feature.test | 27 + .../tests/languages/xojo/string_feature.test | 15 + .../tests/languages/xojo/symbol_feature.test | 19 + .../tests/languages/yaml/boolean_feature.test | 17 + .../tests/languages/yaml/comment_feature.test | 13 + .../languages/yaml/datetime_feature.test | 31 + .../languages/yaml/directive_feature.test | 13 + .../languages/yaml/important_feature.test | 19 + .../tests/languages/yaml/key_feature.test | 15 + .../tests/languages/yaml/null_feature.test | 17 + .../tests/languages/yaml/number_feature.test | 38 + .../tests/languages/yaml/scalar_feature.test | 23 + .../tests/languages/yaml/string_feature.test | 23 + .../tests/languages/yaml/tag_feature.test | 15 + node_modules/prismjs/tests/run-child.js | 22 + node_modules/prismjs/tests/run.js | 67 + .../prismjs/tests/testrunner-tests.js | 166 ++ node_modules/prismjs/themes/prism-coy.css | 26 +- node_modules/prismjs/themes/prism-dark.css | 6 +- node_modules/prismjs/themes/prism-funky.css | 5 +- node_modules/prismjs/themes/prism-okaidia.css | 6 +- .../prism-solarizedlight.css} | 85 +- .../prismjs/themes/prism-tomorrow.css | 6 +- .../prismjs/themes/prism-twilight.css | 17 +- node_modules/prismjs/themes/prism.css | 6 +- node_modules/prismjs/vendor/FileSaver.min.js | 2 + node_modules/prismjs/vendor/jszip.min.js | 15 + 1244 files changed, 57735 insertions(+), 2573 deletions(-) create mode 100644 node_modules/prismjs/.editorconfig create mode 100644 node_modules/prismjs/.gitattributes create mode 100644 node_modules/prismjs/.travis.yml create mode 100644 node_modules/prismjs/CHANGELOG.md create mode 100644 node_modules/prismjs/components/prism-abap.js create mode 100644 node_modules/prismjs/components/prism-abap.min.js create mode 100644 node_modules/prismjs/components/prism-ada.js create mode 100644 node_modules/prismjs/components/prism-ada.min.js create mode 100644 node_modules/prismjs/components/prism-apl.js create mode 100644 node_modules/prismjs/components/prism-apl.min.js create mode 100644 node_modules/prismjs/components/prism-asciidoc.js create mode 100644 node_modules/prismjs/components/prism-asciidoc.min.js create mode 100644 node_modules/prismjs/components/prism-autoit.js create mode 100644 node_modules/prismjs/components/prism-autoit.min.js create mode 100644 node_modules/prismjs/components/prism-basic.js create mode 100644 node_modules/prismjs/components/prism-basic.min.js create mode 100644 node_modules/prismjs/components/prism-batch.js create mode 100644 node_modules/prismjs/components/prism-batch.min.js create mode 100644 node_modules/prismjs/components/prism-bison.js create mode 100644 node_modules/prismjs/components/prism-bison.min.js create mode 100644 node_modules/prismjs/components/prism-brainfuck.js create mode 100644 node_modules/prismjs/components/prism-brainfuck.min.js create mode 100644 node_modules/prismjs/components/prism-bro.js create mode 100644 node_modules/prismjs/components/prism-bro.min.js create mode 100644 node_modules/prismjs/components/prism-crystal.js create mode 100644 node_modules/prismjs/components/prism-crystal.min.js create mode 100644 node_modules/prismjs/components/prism-d.js create mode 100644 node_modules/prismjs/components/prism-d.min.js create mode 100644 node_modules/prismjs/components/prism-diff.js create mode 100644 node_modules/prismjs/components/prism-diff.min.js create mode 100644 node_modules/prismjs/components/prism-docker.js create mode 100644 node_modules/prismjs/components/prism-docker.min.js create mode 100644 node_modules/prismjs/components/prism-elixir.js create mode 100644 node_modules/prismjs/components/prism-elixir.min.js create mode 100644 node_modules/prismjs/components/prism-glsl.js create mode 100644 node_modules/prismjs/components/prism-glsl.min.js create mode 100644 node_modules/prismjs/components/prism-graphql.js create mode 100644 node_modules/prismjs/components/prism-graphql.min.js create mode 100644 node_modules/prismjs/components/prism-haxe.js create mode 100644 node_modules/prismjs/components/prism-haxe.min.js create mode 100644 node_modules/prismjs/components/prism-icon.js create mode 100644 node_modules/prismjs/components/prism-icon.min.js create mode 100644 node_modules/prismjs/components/prism-inform7.js create mode 100644 node_modules/prismjs/components/prism-inform7.min.js create mode 100644 node_modules/prismjs/components/prism-j.js create mode 100644 node_modules/prismjs/components/prism-j.min.js create mode 100644 node_modules/prismjs/components/prism-jolie.js create mode 100644 node_modules/prismjs/components/prism-jolie.min.js create mode 100644 node_modules/prismjs/components/prism-json.js create mode 100644 node_modules/prismjs/components/prism-json.min.js create mode 100644 node_modules/prismjs/components/prism-keyman.js create mode 100644 node_modules/prismjs/components/prism-keyman.min.js create mode 100644 node_modules/prismjs/components/prism-kotlin.js create mode 100644 node_modules/prismjs/components/prism-kotlin.min.js create mode 100644 node_modules/prismjs/components/prism-livescript.js create mode 100644 node_modules/prismjs/components/prism-livescript.min.js create mode 100644 node_modules/prismjs/components/prism-lua.js create mode 100644 node_modules/prismjs/components/prism-lua.min.js create mode 100644 node_modules/prismjs/components/prism-makefile.js create mode 100644 node_modules/prismjs/components/prism-makefile.min.js create mode 100644 node_modules/prismjs/components/prism-mel.js create mode 100644 node_modules/prismjs/components/prism-mel.min.js create mode 100644 node_modules/prismjs/components/prism-mizar.js create mode 100644 node_modules/prismjs/components/prism-mizar.min.js create mode 100644 node_modules/prismjs/components/prism-monkey.js create mode 100644 node_modules/prismjs/components/prism-monkey.min.js create mode 100644 node_modules/prismjs/components/prism-nginx.js create mode 100644 node_modules/prismjs/components/prism-nginx.min.js create mode 100644 node_modules/prismjs/components/prism-nim.js create mode 100644 node_modules/prismjs/components/prism-nim.min.js create mode 100644 node_modules/prismjs/components/prism-nix.js create mode 100644 node_modules/prismjs/components/prism-nix.min.js create mode 100644 node_modules/prismjs/components/prism-ocaml.js create mode 100644 node_modules/prismjs/components/prism-ocaml.min.js create mode 100644 node_modules/prismjs/components/prism-oz.js create mode 100644 node_modules/prismjs/components/prism-oz.min.js create mode 100644 node_modules/prismjs/components/prism-parigp.js create mode 100644 node_modules/prismjs/components/prism-parigp.min.js create mode 100644 node_modules/prismjs/components/prism-parser.js create mode 100644 node_modules/prismjs/components/prism-parser.min.js create mode 100644 node_modules/prismjs/components/prism-processing.js create mode 100644 node_modules/prismjs/components/prism-processing.min.js create mode 100644 node_modules/prismjs/components/prism-prolog.js create mode 100644 node_modules/prismjs/components/prism-prolog.min.js create mode 100644 node_modules/prismjs/components/prism-properties.js create mode 100644 node_modules/prismjs/components/prism-properties.min.js create mode 100644 node_modules/prismjs/components/prism-protobuf.js create mode 100644 node_modules/prismjs/components/prism-protobuf.min.js create mode 100644 node_modules/prismjs/components/prism-puppet.js create mode 100644 node_modules/prismjs/components/prism-puppet.min.js create mode 100644 node_modules/prismjs/components/prism-pure.js create mode 100644 node_modules/prismjs/components/prism-pure.min.js create mode 100644 node_modules/prismjs/components/prism-q.js create mode 100644 node_modules/prismjs/components/prism-q.min.js create mode 100644 node_modules/prismjs/components/prism-qore.js create mode 100644 node_modules/prismjs/components/prism-qore.min.js create mode 100644 node_modules/prismjs/components/prism-reason.js create mode 100644 node_modules/prismjs/components/prism-reason.min.js create mode 100644 node_modules/prismjs/components/prism-roboconf.js create mode 100644 node_modules/prismjs/components/prism-roboconf.min.js create mode 100644 node_modules/prismjs/components/prism-sass.js create mode 100644 node_modules/prismjs/components/prism-sass.min.js create mode 100644 node_modules/prismjs/components/prism-tcl.js create mode 100644 node_modules/prismjs/components/prism-tcl.min.js create mode 100644 node_modules/prismjs/components/prism-textile.js create mode 100644 node_modules/prismjs/components/prism-textile.min.js create mode 100644 node_modules/prismjs/components/prism-verilog.js create mode 100644 node_modules/prismjs/components/prism-verilog.min.js create mode 100644 node_modules/prismjs/components/prism-vhdl.js create mode 100644 node_modules/prismjs/components/prism-vhdl.min.js create mode 100644 node_modules/prismjs/components/prism-vim.js create mode 100644 node_modules/prismjs/components/prism-vim.min.js create mode 100644 node_modules/prismjs/components/prism-xojo.js create mode 100644 node_modules/prismjs/components/prism-xojo.min.js delete mode 100644 node_modules/prismjs/dist/prism-coy/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-coy/README.md delete mode 100644 node_modules/prismjs/dist/prism-coy/package.json delete mode 100644 node_modules/prismjs/dist/prism-coy/prism-coy.css delete mode 100644 node_modules/prismjs/dist/prism-dark/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-dark/README.md delete mode 100644 node_modules/prismjs/dist/prism-dark/package.json delete mode 100644 node_modules/prismjs/dist/prism-dark/prism-dark.css delete mode 100644 node_modules/prismjs/dist/prism-default/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-default/README.md delete mode 100644 node_modules/prismjs/dist/prism-default/package.json delete mode 100644 node_modules/prismjs/dist/prism-funky/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-funky/README.md delete mode 100644 node_modules/prismjs/dist/prism-funky/package.json delete mode 100644 node_modules/prismjs/dist/prism-funky/prism-funky.css delete mode 100644 node_modules/prismjs/dist/prism-okaidia/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-okaidia/README.md delete mode 100644 node_modules/prismjs/dist/prism-okaidia/package.json delete mode 100644 node_modules/prismjs/dist/prism-okaidia/prism-okaidia.css delete mode 100644 node_modules/prismjs/dist/prism-tomorrow/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-tomorrow/README.md delete mode 100644 node_modules/prismjs/dist/prism-tomorrow/package.json delete mode 100644 node_modules/prismjs/dist/prism-tomorrow/prism-tomorrow.css delete mode 100644 node_modules/prismjs/dist/prism-twilight/LICENSE delete mode 100644 node_modules/prismjs/dist/prism-twilight/README.md delete mode 100644 node_modules/prismjs/dist/prism-twilight/package.json delete mode 100644 node_modules/prismjs/dist/prism-twilight/prism-twilight.css create mode 100644 node_modules/prismjs/plugins/autoloader/prism-autoloader.js create mode 100644 node_modules/prismjs/plugins/autoloader/prism-autoloader.min.js create mode 100644 node_modules/prismjs/plugins/command-line/prism-command-line.css create mode 100644 node_modules/prismjs/plugins/command-line/prism-command-line.js create mode 100644 node_modules/prismjs/plugins/command-line/prism-command-line.min.js create mode 100644 node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js create mode 100644 node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js create mode 100644 node_modules/prismjs/plugins/custom-class/prism-custom-class.js create mode 100644 node_modules/prismjs/plugins/custom-class/prism-custom-class.min.js create mode 100644 node_modules/prismjs/plugins/data-uri-highlight/prism-data-uri-highlight.js create mode 100644 node_modules/prismjs/plugins/data-uri-highlight/prism-data-uri-highlight.min.js create mode 100644 node_modules/prismjs/plugins/jsonp-highlight/prism-jsonp-highlight.js create mode 100644 node_modules/prismjs/plugins/jsonp-highlight/prism-jsonp-highlight.min.js create mode 100644 node_modules/prismjs/plugins/keep-markup/prism-keep-markup.js create mode 100644 node_modules/prismjs/plugins/keep-markup/prism-keep-markup.min.js create mode 100644 node_modules/prismjs/plugins/normalize-whitespace/prism-normalize-whitespace.js create mode 100644 node_modules/prismjs/plugins/normalize-whitespace/prism-normalize-whitespace.min.js create mode 100644 node_modules/prismjs/plugins/previewer-angle/prism-previewer-angle.css create mode 100644 node_modules/prismjs/plugins/previewer-angle/prism-previewer-angle.js create mode 100644 node_modules/prismjs/plugins/previewer-angle/prism-previewer-angle.min.js create mode 100644 node_modules/prismjs/plugins/previewer-base/prism-previewer-base.css create mode 100644 node_modules/prismjs/plugins/previewer-base/prism-previewer-base.js create mode 100644 node_modules/prismjs/plugins/previewer-base/prism-previewer-base.min.js create mode 100644 node_modules/prismjs/plugins/previewer-color/prism-previewer-color.css create mode 100644 node_modules/prismjs/plugins/previewer-color/prism-previewer-color.js create mode 100644 node_modules/prismjs/plugins/previewer-color/prism-previewer-color.min.js create mode 100644 node_modules/prismjs/plugins/previewer-easing/prism-previewer-easing.css create mode 100644 node_modules/prismjs/plugins/previewer-easing/prism-previewer-easing.js create mode 100644 node_modules/prismjs/plugins/previewer-easing/prism-previewer-easing.min.js create mode 100644 node_modules/prismjs/plugins/previewer-gradient/prism-previewer-gradient.css create mode 100644 node_modules/prismjs/plugins/previewer-gradient/prism-previewer-gradient.js create mode 100644 node_modules/prismjs/plugins/previewer-gradient/prism-previewer-gradient.min.js create mode 100644 node_modules/prismjs/plugins/previewer-time/prism-previewer-time.css create mode 100644 node_modules/prismjs/plugins/previewer-time/prism-previewer-time.js create mode 100644 node_modules/prismjs/plugins/previewer-time/prism-previewer-time.min.js create mode 100644 node_modules/prismjs/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js create mode 100644 node_modules/prismjs/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.min.js delete mode 100644 node_modules/prismjs/plugins/show-language/prism-show-language.css delete mode 100644 node_modules/prismjs/plugins/show-language/prism-show-language.min.css create mode 100644 node_modules/prismjs/plugins/toolbar/prism-toolbar.css create mode 100644 node_modules/prismjs/plugins/toolbar/prism-toolbar.js create mode 100644 node_modules/prismjs/plugins/toolbar/prism-toolbar.min.js create mode 100644 node_modules/prismjs/plugins/unescaped-markup/prism-unescaped-markup.css create mode 100644 node_modules/prismjs/plugins/unescaped-markup/prism-unescaped-markup.js create mode 100644 node_modules/prismjs/plugins/unescaped-markup/prism-unescaped-markup.min.js create mode 100644 node_modules/prismjs/prism.esproj/Project.espressostorage create mode 100644 node_modules/prismjs/prism.esproj/user.leaverou.espressostorage create mode 100644 node_modules/prismjs/tests/helper/prism-loader.js create mode 100644 node_modules/prismjs/tests/helper/test-case.js create mode 100644 node_modules/prismjs/tests/helper/test-discovery.js create mode 100644 node_modules/prismjs/tests/helper/token-stream-transformer.js create mode 100644 node_modules/prismjs/tests/languages/abap/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/eol-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/string-template_feature.test create mode 100644 node_modules/prismjs/tests/languages/abap/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/actionscript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/actionscript/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/char_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/ada/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/apacheconf/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/assignment_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/dfn_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/statement_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/apl/system-function_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/class_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/applescript/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/callout_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/entity_feature.js create mode 100644 node_modules/prismjs/tests/languages/asciidoc/entity_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/hr_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/inline_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/macro_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/table_feature.test create mode 100644 node_modules/prismjs/tests/languages/asciidoc/title_feature.test create mode 100644 node_modules/prismjs/tests/languages/aspnet/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/autohotkey/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/autoit/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/command_substitution_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/shebang_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/bash/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/basic/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/batch/command_feature.test create mode 100644 node_modules/prismjs/tests/languages/batch/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/batch/label_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/c_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/bison/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/brainfuck/all_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/bro/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/c+pure/c_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/c/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/c/macro_feature.test create mode 100644 node_modules/prismjs/tests/languages/c/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/c/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/class-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/clike/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/coffeescript/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/cpp/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/cpp/class-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/cpp/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/crystal/attribute_feature.test create mode 100644 node_modules/prismjs/tests/languages/crystal/expansion_feature.test create mode 100644 node_modules/prismjs/tests/languages/crystal/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/crystal/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp/generic_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp/issue806.test create mode 100644 node_modules/prismjs/tests/languages/csharp/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test create mode 100644 node_modules/prismjs/tests/languages/csharp/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test create mode 100644 node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test create mode 100644 node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test create mode 100644 node_modules/prismjs/tests/languages/css+textile/css_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/css/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/css/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/register_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/d/token-string_feature.test create mode 100644 node_modules/prismjs/tests/languages/dart/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/dart/metadata_feature.test create mode 100644 node_modules/prismjs/tests/languages/dart/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/dart/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/diff/coord_feature.test create mode 100644 node_modules/prismjs/tests/languages/diff/diff_feature.test create mode 100644 node_modules/prismjs/tests/languages/docker/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/docker/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/docker/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/char_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/eiffel/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/atom_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/attribute_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/capture_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/issue775.test create mode 100644 node_modules/prismjs/tests/languages/elixir/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/elixir/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/atom_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/erlang/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/fortran/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/fortran/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/fsharp/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/fsharp/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/fsharp/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test create mode 100644 node_modules/prismjs/tests/languages/fsharp/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/feature_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/outline_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/pystring_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/scenario_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/table_feature.test create mode 100644 node_modules/prismjs/tests/languages/gherkin/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/command_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/commit_sha1_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/coord_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/diff_feature.test create mode 100644 node_modules/prismjs/tests/languages/git/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/glsl/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/glsl/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/glsl/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/go/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/graphql/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/annotation_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/issue1049.js create mode 100644 node_modules/prismjs/tests/languages/groovy/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/shebang_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/spock-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js create mode 100644 node_modules/prismjs/tests/languages/groovy/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/code_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/doctype_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/interpolation_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/multiline-code_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/haml/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/handlebars/block_feature.test create mode 100644 node_modules/prismjs/tests/languages/handlebars/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/handlebars/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js create mode 100644 node_modules/prismjs/tests/languages/handlebars/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/handlebars/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/char_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/hvariable_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/import_statement_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/haskell/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/metadata_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/reification_feature.test create mode 100644 node_modules/prismjs/tests/languages/haxe/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/http/header-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/http/request-line_feature.test create mode 100644 node_modules/prismjs/tests/languages/http/response-status_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/icon/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/position_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/title_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/inform7/verb_feature.test create mode 100644 node_modules/prismjs/tests/languages/ini/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/ini/key_value_feature.test create mode 100644 node_modules/prismjs/tests/languages/ini/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/adverb_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/conjunction_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/j/verb_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/code_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/doctype_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/flow-control_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/mixin_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/multiline-script_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/plain-text_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/script_feature.test create mode 100644 node_modules/prismjs/tests/languages/jade/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/java/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/java/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/java/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/javascript/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/javascript/template-string_feature.test create mode 100644 node_modules/prismjs/tests/languages/jolie/deployment_features.test create mode 100644 node_modules/prismjs/tests/languages/jolie/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/jolie/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/jolie/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/json/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/json/null_feature.test create mode 100644 node_modules/prismjs/tests/languages/json/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/json/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/json/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/jsx/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/julia/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/bold_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/keyman/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/annotation_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/label_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/cdata_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/equation_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/headline_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/latex/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/less+haml/less_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/less+jade/less_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/less/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/less/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/less/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/less/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/less/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/argument_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/identifier_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/interpolated-string.test create mode 100644 node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/livescript/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/label_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/lolcode/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/lua/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/makefile/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/markdown/blockquote_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/bold_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/code_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/hr_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/italic_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/list_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/title_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/url-reference_feature.test create mode 100644 node_modules/prismjs/tests/languages/markdown/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/markup!+javascript/javascript_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/markup+actionscript/xml_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+css+wiki/table-tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+haml/markup_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+http/markup_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/markup+jade/markup_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+javascript+csharp+aspnet/script_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+php/markup_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup+php/php_in_markup_feature.js create mode 100644 node_modules/prismjs/tests/languages/markup/cdata_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/doctype_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/entity_feature.js create mode 100644 node_modules/prismjs/tests/languages/markup/entity_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/issue585.test create mode 100644 node_modules/prismjs/tests/languages/markup/issue888.test create mode 100644 node_modules/prismjs/tests/languages/markup/prolog_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/tag_attribute_feature.test create mode 100644 node_modules/prismjs/tests/languages/markup/tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/matlab/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/code_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/flag_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/mel/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/parameter_feature.test create mode 100644 node_modules/prismjs/tests/languages/mizar/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/preprocessor_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/monkey/type-char_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/label_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/register_feature.test create mode 100644 node_modules/prismjs/tests/languages/nasm/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/nginx/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/nginx/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/nginx/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/nim/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/antiquotation_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/nix/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/nsis/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/objectivec/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/objectivec/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/objectivec/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/ocaml/type_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/atom_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/oz/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/parigp/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/escape_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/expression_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/parser-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/parser/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/pascal/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/pascal/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/pascal/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/pascal/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/pascal/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/filehandle_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/perl/vstring_feature.test create mode 100644 node_modules/prismjs/tests/languages/php!+php-extras/global_feature.test create mode 100644 node_modules/prismjs/tests/languages/php!+php-extras/scope_feature.test create mode 100644 node_modules/prismjs/tests/languages/php!+php-extras/this_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/delimiter_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/package_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/shell-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/php/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/namespace_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/powershell/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/processing/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/processing/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/processing/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/processing/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/processing/type_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/prolog/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/properties/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/properties/key_value_feature.test create mode 100644 node_modules/prismjs/tests/languages/protobuf/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/protobuf/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/datatype_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/heredoc_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/interpolation_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/puppet/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/special_feature.test create mode 100644 node_modules/prismjs/tests/languages/pure/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/class-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/python/triple-quoted-string_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/adverb_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/datetime_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/q/verb_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/qore/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/ellipsis_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/percent-operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/r/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/character_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/class-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/constructor_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/label_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/reason/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/command-line-option_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/doctest-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/field_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/hr_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/inline_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/link-target_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/link_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/list-bullet_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/literal-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/quoted-literal-block_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/substitution-def_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/table_feature.test create mode 100644 node_modules/prismjs/tests/languages/rest/title_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/character_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/date_time_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/reference_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/rip/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/component_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/optional_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/value_feature.test create mode 100644 node_modules/prismjs/tests/languages/roboconf/wildcard_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/regex_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/ruby/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/attribute_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/closure-params_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/macro-rules_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/rust/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/datalines_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/datetime_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/sas/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/sass/atrule-line_feature.test create mode 100644 node_modules/prismjs/tests/languages/sass/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/sass/property-line_feature.test create mode 100644 node_modules/prismjs/tests/languages/sass/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/sass/variable-line_feature.test create mode 100644 node_modules/prismjs/tests/languages/scala/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/scala/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/scala/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/scala/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/scala/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/scheme/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss+haml/scss_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/scss+jade/scss_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/scss/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/null_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/placeholder_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/statement_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/scss/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/block-arguments_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/character_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/smalltalk/temporary-variables_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/attr-name_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/smarty-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/smarty_in_markup_feature.js create mode 100644 node_modules/prismjs/tests/languages/smarty/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/smarty/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/sql/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus+jade/stylus_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/stylus/atrule-declaration_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/func_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/hexcode_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/property-declaration_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/selector_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/stylus/variable-declaration_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/atrule_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/swift/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/scope_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/tcl/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/acronym_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/block-tag_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/footnote_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/image_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/inline_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/link-ref_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/link_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/list_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/mark_feature.test create mode 100644 node_modules/prismjs/tests/languages/textile/table_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig+jade/twig_inclusion.test create mode 100644 node_modules/prismjs/tests/languages/twig/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/twig/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/typescript/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/property_feature.test create mode 100644 node_modules/prismjs/tests/languages/verilog/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/constant_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/vhdl/vhdl-vectors_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/builtin_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/function_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/vim/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/block-comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/emphasis_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/heading_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/hr_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/nowiki_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/url_feature.test create mode 100644 node_modules/prismjs/tests/languages/wiki/variable_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/keyword_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/operator_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/xojo/symbol_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/boolean_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/comment_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/datetime_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/directive_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/important_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/key_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/null_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/number_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/scalar_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/string_feature.test create mode 100644 node_modules/prismjs/tests/languages/yaml/tag_feature.test create mode 100644 node_modules/prismjs/tests/run-child.js create mode 100644 node_modules/prismjs/tests/run.js create mode 100644 node_modules/prismjs/tests/testrunner-tests.js rename node_modules/prismjs/{dist/prism-default/prism-default.css => themes/prism-solarizedlight.css} (57%) create mode 100644 node_modules/prismjs/vendor/FileSaver.min.js create mode 100644 node_modules/prismjs/vendor/jszip.min.js diff --git a/node_modules/prismjs/.editorconfig b/node_modules/prismjs/.editorconfig new file mode 100644 index 0000000..bf094ab --- /dev/null +++ b/node_modules/prismjs/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +insert_final_newline = false +charset = utf-8 +indent_style = tab + +[tests/languages/**.test] +end_of_line = crlf + +[{package.json,.travis.yml}] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/node_modules/prismjs/.gitattributes b/node_modules/prismjs/.gitattributes new file mode 100644 index 0000000..1d598bd --- /dev/null +++ b/node_modules/prismjs/.gitattributes @@ -0,0 +1,4 @@ +* text=auto + +# Test files should not have their line endings modified by git +/tests/languages/**/*.test binary \ No newline at end of file diff --git a/node_modules/prismjs/.travis.yml b/node_modules/prismjs/.travis.yml new file mode 100644 index 0000000..5b217e4 --- /dev/null +++ b/node_modules/prismjs/.travis.yml @@ -0,0 +1,16 @@ +language: node_js +node_js: +- '0.10' +- '0.12' +before_script: +- npm install -g gulp +- gulp +script: npm test +deploy: + provider: npm + email: lea@verou.me + api_key: + secure: TjRcXEr7Y/9KRJ4EOEQbd2Ij8hxKj8c/yOpEROy2lTYv6QH9x46nFDgZEE3VHfp/nnBUYpC47dRaSxiUj8H5rtkMNCZrREZu1n1zahmzP6dI6kCj+H3GiY7yw/Jhdx3uvQZHwknW2TJ/YRsLeQsmMSG2HnJobY9Zn4REX5ccP2E= + on: + tags: true + repo: PrismJS/prism diff --git a/node_modules/prismjs/CHANGELOG.md b/node_modules/prismjs/CHANGELOG.md new file mode 100644 index 0000000..b47aa0d --- /dev/null +++ b/node_modules/prismjs/CHANGELOG.md @@ -0,0 +1,672 @@ +# Prism Changelog + +## 1.6 (2016-12-03) + +### New components + +* __.properties__ ([#980](https://github.com/PrismJS/prism/issues/980)) [[`be6219a`](https://github.com/PrismJS/prism/commit/be6219a)] +* __Ada__ ([#949](https://github.com/PrismJS/prism/issues/949)) [[`65619f7`](https://github.com/PrismJS/prism/commit/65619f7)] +* __GraphQL__ ([#971](https://github.com/PrismJS/prism/issues/971)) [[`e018087`](https://github.com/PrismJS/prism/commit/e018087)] +* __Jolie__ ([#1014](https://github.com/PrismJS/prism/issues/1014)) [[`dfc1941`](https://github.com/PrismJS/prism/commit/dfc1941)] +* __LiveScript__ ([#982](https://github.com/PrismJS/prism/issues/982)) [[`62e258c`](https://github.com/PrismJS/prism/commit/62e258c)] +* __Reason__ (Fixes [#1046](https://github.com/PrismJS/prism/issues/1046)) [[`3cae6ce`](https://github.com/PrismJS/prism/commit/3cae6ce)] +* __Xojo__ ([#994](https://github.com/PrismJS/prism/issues/994)) [[`0224b7c`](https://github.com/PrismJS/prism/commit/0224b7c)] + +### Updated components + +* __APL__: + * Add iota underbar ([#1024](https://github.com/PrismJS/prism/issues/1024)) [[`3c5c89a`](https://github.com/PrismJS/prism/commit/3c5c89a), [`ac21d33`](https://github.com/PrismJS/prism/commit/ac21d33)] +* __AsciiDoc__: + * Optimized block regexps to prevent struggling on large files. Fixes [#1001](https://github.com/PrismJS/prism/issues/1001). [[`1a86d34`](https://github.com/PrismJS/prism/commit/1a86d34)] +* __Bash__: + * Add `npm` to function list ([#969](https://github.com/PrismJS/prism/issues/969)) [[`912bdfe`](https://github.com/PrismJS/prism/commit/912bdfe)] +* __CSS__: + * Make CSS strings greedy. Fix [#1013](https://github.com/PrismJS/prism/issues/1013). [[`e57e26d`](https://github.com/PrismJS/prism/commit/e57e26d)] +* __CSS Extras__: + * Match attribute inside selectors [[`13fed76`](https://github.com/PrismJS/prism/commit/13fed76)] +* _Groovy__: + * Fix order of decoding entities in groovy. Fixes [#1049](https://github.com/PrismJS/prism/issues/1049) ([#1050](https://github.com/PrismJS/prism/issues/1050)) [[`d75da8e`](https://github.com/PrismJS/prism/commit/d75da8e)] +* __Ini__: + * Remove important token in ini definition ([#1047](https://github.com/PrismJS/prism/issues/1047)) [[`fe8ad8b`](https://github.com/PrismJS/prism/commit/fe8ad8b)] +* __JavaScript__: + * Add exponentiation & spread/rest operator ([#991](https://github.com/PrismJS/prism/issues/991)) [[`b2de65a`](https://github.com/PrismJS/prism/commit/b2de65a), [`268d01e`](https://github.com/PrismJS/prism/commit/268d01e)] +* __JSON_: + * JSON: Fixed issues with properties and strings + added tests. Fix [#1025](https://github.com/PrismJS/prism/issues/1025) [[`25a541d`](https://github.com/PrismJS/prism/commit/25a541d)] +* __Markup__: + * Allow for dots in Markup tag names, but not in HTML tags included in Textile. Fixes [#888](https://github.com/PrismJS/prism/issues/888). [[`31ea66b`](https://github.com/PrismJS/prism/commit/31ea66b)] + * Make doctype case-insensitive ([#1009](https://github.com/PrismJS/prism/issues/1009)) [[`3dd7219`](https://github.com/PrismJS/prism/commit/3dd7219)] +* __NSIS__: + * Updated patterns ([#1032](https://github.com/PrismJS/prism/issues/1032)) [[`76ba1b8`](https://github.com/PrismJS/prism/commit/76ba1b8)] +* __PHP__: + * Make comments greedy. Fix [#197](https://github.com/PrismJS/prism/issues/197) [[`318aab3`](https://github.com/PrismJS/prism/commit/318aab3)] +* __PowerShell__: + * Fix highlighting of empty comments ([#977](https://github.com/PrismJS/prism/issues/977)) [[`4fda477`](https://github.com/PrismJS/prism/commit/4fda477)] +* __Puppet__: + * Fix over-greedy regexp detection ([#978](https://github.com/PrismJS/prism/issues/978)) [[`105be25`](https://github.com/PrismJS/prism/commit/105be25)] +* __Ruby__: + * Fix typo `Fload` to `Float` in prism-ruby.js ([#1023](https://github.com/PrismJS/prism/issues/1023)) [[`22cb018`](https://github.com/PrismJS/prism/commit/22cb018)] + * Make strings greedy. Fixes [#1048](https://github.com/PrismJS/prism/issues/1048) [[`8b0520a`](https://github.com/PrismJS/prism/commit/8b0520a)] +* __SCSS__: + * Alias statement as keyword. Fix [#246](https://github.com/PrismJS/prism/issues/246) [[`fd09391`](https://github.com/PrismJS/prism/commit/fd09391)] + * Highlight variables inside selectors and properties. [[`d6b5c2f`](https://github.com/PrismJS/prism/commit/d6b5c2f)] + * Highlight parent selector [[`8f5f1fa`](https://github.com/PrismJS/prism/commit/8f5f1fa)] +* __TypeScript__: + * Add missing `from` keyword to typescript & set `ts` as alias. ([#1042](https://github.com/PrismJS/prism/issues/1042)) [[`cba78f3`](https://github.com/PrismJS/prism/commit/cba78f3)] + +### New plugins + +* __Copy to Clipboard__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] +* __Custom Class__ ([#950](https://github.com/PrismJS/prism/issues/950)) [[`a0bd686`](https://github.com/PrismJS/prism/commit/a0bd686)] +* __Data-URI Highlight__ ([#996](https://github.com/PrismJS/prism/issues/996)) [[`bdca61b`](https://github.com/PrismJS/prism/commit/bdca61b)] +* __Toolbar__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] + +### Updated plugins + +* __Autoloader__: + * Updated documentation for Autoloader plugin [[`b4f3423`](https://github.com/PrismJS/prism/commit/b4f3423)] + * Download all grammars as a zip from Autoloader plugin page ([#981](https://github.com/PrismJS/prism/issues/981)) [[`0d0a007`](https://github.com/PrismJS/prism/commit/0d0a007), [`5c815d3`](https://github.com/PrismJS/prism/commit/5c815d3)] + * Removed duplicated script on Autoloader plugin page [[`9671996`](https://github.com/PrismJS/prism/commit/9671996)] + * Don't try to load "none" component. Fix [#1000](https://github.com/PrismJS/prism/issues/1000) [[`f89b0b9`](https://github.com/PrismJS/prism/commit/f89b0b9)] +* __WPD__: + * Fix at-rule detection + don't process if language is not handled [[`2626728`](https://github.com/PrismJS/prism/commit/2626728)] + +### Other changes + +* Improvement to greedy-flag ([#967](https://github.com/PrismJS/prism/issues/967)) [[`500121b`](https://github.com/PrismJS/prism/commit/500121b), [`9893489`](https://github.com/PrismJS/prism/commit/9893489)] +* Add setTimeout fallback for requestAnimationFrame. Fixes [#987](https://github.com/PrismJS/prism/issues/987). ([#988](https://github.com/PrismJS/prism/issues/988)) [[`c9bdcd3`](https://github.com/PrismJS/prism/commit/c9bdcd3)] +* Added aria-hidden attributes on elements created by the Line Highlight and Line Numbers plugins. Fixes [#574](https://github.com/PrismJS/prism/issues/574). [[`e5587a7`](https://github.com/PrismJS/prism/commit/e5587a7)] +* Don't insert space before ">" when there is no attributes [[`3dc8c9e`](https://github.com/PrismJS/prism/commit/3dc8c9e)] +* Added missing hooks-related tests for AsciiDoc, Groovy, Handlebars, Markup, PHP and Smarty [[`c1a0c1b`](https://github.com/PrismJS/prism/commit/c1a0c1b)] +* Fix issue when using Line numbers plugin and Normalise whitespace plugin together with Handlebars, PHP or Smarty. Fix [#1018](https://github.com/PrismJS/prism/issues/1018), [#997](https://github.com/PrismJS/prism/issues/997), [#935](https://github.com/PrismJS/prism/issues/935). Revert [#998](https://github.com/PrismJS/prism/issues/998). [[`86aa3d2`](https://github.com/PrismJS/prism/commit/86aa3d2)] +* Optimized logo ([#990](https://github.com/PrismJS/prism/issues/990)) ([#1002](https://github.com/PrismJS/prism/issues/1002)) [[`f69e570`](https://github.com/PrismJS/prism/commit/f69e570), [`218fd25`](https://github.com/PrismJS/prism/commit/218fd25)] +* Remove unneeded prefixed CSS ([#989](https://github.com/PrismJS/prism/issues/989)) [[`5e56833`](https://github.com/PrismJS/prism/commit/5e56833)] +* Optimize images ([#1007](https://github.com/PrismJS/prism/issues/1007)) [[`b2fa6d5`](https://github.com/PrismJS/prism/commit/b2fa6d5)] +* Add yarn.lock to .gitignore ([#1035](https://github.com/PrismJS/prism/issues/1035)) [[`03ecf74`](https://github.com/PrismJS/prism/commit/03ecf74)] +* Fix greedy flag bug. Fixes [#1039](https://github.com/PrismJS/prism/issues/1039) [[`32cd99f`](https://github.com/PrismJS/prism/commit/32cd99f)] +* Ruby: Fix test after [#1023](https://github.com/PrismJS/prism/issues/1023) [[`b15d43b`](https://github.com/PrismJS/prism/commit/b15d43b)] +* Ini: Fix test after [#1047](https://github.com/PrismJS/prism/issues/1047) [[`25cdd3f`](https://github.com/PrismJS/prism/commit/25cdd3f)] +* Reduce risk of XSS ([#1051](https://github.com/PrismJS/prism/issues/1051)) [[`17e33bc`](https://github.com/PrismJS/prism/commit/17e33bc)] +* env.code can be modified by before-sanity-check hook even when using language-none. Fix [#1066](https://github.com/PrismJS/prism/issues/1066) [[`83bafbd`](https://github.com/PrismJS/prism/commit/83bafbd)] + + +## 1.5.1 (2016-06-05) + +### Updated components + +* __Normalize Whitespace__: + * Add class that disables the normalize whitespace plugin [[`9385c54`](https://github.com/PrismJS/prism/commit/9385c54)] +* __JavaScript Language__: + * Rearrange the `string` and `template-string` token in JavaScript [[`1158e46`](https://github.com/PrismJS/prism/commit/1158e46)] +* __SQL Language__: + * add delimeter and delimeters keywords to sql ([#958](https://github.com/PrismJS/prism/pull/958)) [[`a9ef24e`](https://github.com/PrismJS/prism/commit/a9ef24e)] + * add AUTO_INCREMENT and DATE keywords to sql ([#954](https://github.com/PrismJS/prism/pull/954)) [[`caea2af`](https://github.com/PrismJS/prism/commit/caea2af)] +* __Diff Language__: + * Highlight diff lines with only + or - ([#952](https://github.com/PrismJS/prism/pull/952)) [[`4d0526f`](https://github.com/PrismJS/prism/commit/4d0526f)] + +### Other changes + +* Allow for asynchronous loading of prism.js ([#959](https://github.com/PrismJS/prism/pull/959)) +* Use toLowerCase on language names ([#957](https://github.com/PrismJS/prism/pull/957)) [[`acd9508`](https://github.com/PrismJS/prism/commit/acd9508)] +* link to index for basic usage - fixes [#945](https://github.com/PrismJS/prism/issues/945) ([#946](https://github.com/PrismJS/prism/pull/946)) [[`6c772d8`](https://github.com/PrismJS/prism/commit/6c772d8)] +* Fixed monospace typo ([#953](https://github.com/PrismJS/prism/pull/953)) [[`e6c3498`](https://github.com/PrismJS/prism/commit/e6c3498)] + +## 1.5.0 (2016-05-01) + +### New components + +* __Bro Language__ ([#925](https://github.com/PrismJS/prism/pull/925)) +* __Protocol Buffers Language__ ([#938](https://github.com/PrismJS/prism/pull/938)) [[`ae4a4f2`](https://github.com/PrismJS/prism/commit/ae4a4f2)] + +### Updated components + +* __Keep Markup__: + * Fix Keep Markup plugin incorrect highlighting ([#880](https://github.com/PrismJS/prism/pull/880)) [[`24841ef`](https://github.com/PrismJS/prism/commit/24841ef)] +* __Groovy Language__: + * Fix double HTML-encoding bug in Groovy language [[`24a0936`](https://github.com/PrismJS/prism/commit/24a0936)] +* __Java Language__: + * Adding annotation token for Java ([#905](https://github.com/PrismJS/prism/pull/905)) [[`367ace6`](https://github.com/PrismJS/prism/commit/367ace6)] +* __SAS Language__: + * Add missing keywords for SAS ([#922](https://github.com/PrismJS/prism/pull/922)) +* __YAML Language__: + * fix hilighting of YAML keys on first line of code block ([#943](https://github.com/PrismJS/prism/pull/943)) [[`f19db81`](https://github.com/PrismJS/prism/commit/f19db81)] +* __C# Language__: + * Support for generic methods in csharp [[`6f75735`](https://github.com/PrismJS/prism/commit/6f75735)] + +### New plugins + +* __Unescaped Markup__ [[`07d77e5`](https://github.com/PrismJS/prism/commit/07d77e5)] +* __Normalize Whitespace__ ([#847](https://github.com/PrismJS/prism/pull/847)) [[`e86ec01`](https://github.com/PrismJS/prism/commit/e86ec01)] + +### Other changes + +* Add JSPM support [[`ad048ab`](https://github.com/PrismJS/prism/commit/ad048ab)] +* update linear-gradient syntax from `left` to `to right` [[`cd234dc`](https://github.com/PrismJS/prism/commit/cd234dc)] +* Add after-property to allow ordering of plugins [[`224b7a1`](https://github.com/PrismJS/prism/commit/224b7a1)] +* Partial solution for the "Comment-like substrings"-problem [[`2705c50`](https://github.com/PrismJS/prism/commit/2705c50)] +* Add property 'aliasTitles' to components.js [[`54400fb`](https://github.com/PrismJS/prism/commit/54400fb)] +* Add before-highlightall hook [[`70a8602`](https://github.com/PrismJS/prism/commit/70a8602)] +* Fix catastrophic backtracking regex issues in JavaScript [[`ab65be2`](https://github.com/PrismJS/prism/commit/ab65be2)] + +## 1.4.1 (2016-02-03) + +### Other changes + +* Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)] + +## 1.4.0 (2016-02-03) + +### New components + +* __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)] +* __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)] + +### Updated components + +* __Show Language__: + * Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)] + * Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)] +* __JSX__: + * Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)] +* __File Highlight__: + * Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)] +* __Coy Theme__: + * Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)] +* __Show Invisibles__: + * Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)] + * Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)] + +### New plugins + +* __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)] + +### Other changes + +* Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)] +* Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)] +* No background for `` in `
` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
+* Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
+* Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
+* Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
+* Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
+* Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
+* Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
+* Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
+
+## 1.3.0 (2015-10-26)
+
+### New components
+
+* __AsciiDoc__ ([#800](https://github.com/PrismJS/prism/issues/800)) [[`6803ca0`](https://github.com/PrismJS/prism/commit/6803ca0)]
+* __Haxe__ ([#811](https://github.com/PrismJS/prism/issues/811)) [[`bd44341`](https://github.com/PrismJS/prism/commit/bd44341)]
+* __Icon__ ([#803](https://github.com/PrismJS/prism/issues/803)) [[`b43c5f3`](https://github.com/PrismJS/prism/commit/b43c5f3)]
+* __Kotlin ([#814](https://github.com/PrismJS/prism/issues/814)) [[`e8a31a5`](https://github.com/PrismJS/prism/commit/e8a31a5)]
+* __Lua__ ([#804](https://github.com/PrismJS/prism/issues/804)) [[`a36bc4a`](https://github.com/PrismJS/prism/commit/a36bc4a)]
+* __Nix__ ([#795](https://github.com/PrismJS/prism/issues/795)) [[`9b275c8`](https://github.com/PrismJS/prism/commit/9b275c8)]
+* __Oz__ ([#805](https://github.com/PrismJS/prism/issues/805)) [[`388c53f`](https://github.com/PrismJS/prism/commit/388c53f)]
+* __PARI/GP__ ([#802](https://github.com/PrismJS/prism/issues/802)) [[`253c035`](https://github.com/PrismJS/prism/commit/253c035)]
+* __Parser__ ([#808](https://github.com/PrismJS/prism/issues/808)) [[`a953b3a`](https://github.com/PrismJS/prism/commit/a953b3a)]
+* __Puppet__ ([#813](https://github.com/PrismJS/prism/issues/813)) [[`81933ee`](https://github.com/PrismJS/prism/commit/81933ee)]
+* __Roboconf__ ([#812](https://github.com/PrismJS/prism/issues/812)) [[`f5db346`](https://github.com/PrismJS/prism/commit/f5db346)]
+
+### Updated components
+
+* __C__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __C#__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+	* Fix detection of float numbers ([#806](https://github.com/PrismJS/prism/issues/806)) [[`1dae72b`](https://github.com/PrismJS/prism/commit/1dae72b)]
+* __F#__:
+	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __JavaScript__:
+	* Highlight true and false as booleans ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
+* __Python__:
+	* Highlight triple-quoted strings before comments. Fix [#815](https://github.com/PrismJS/prism/issues/815) [[`90fbf0b`](https://github.com/PrismJS/prism/commit/90fbf0b)]
+
+### New plugins
+
+* __Previewer: Time__ ([#790](https://github.com/PrismJS/prism/issues/790)) [[`88173de`](https://github.com/PrismJS/prism/commit/88173de)]
+* __Previewer: Angle__ ([#791](https://github.com/PrismJS/prism/issues/791)) [[`a434c86`](https://github.com/PrismJS/prism/commit/a434c86)]
+
+### Other changes
+
+* Increase mocha's timeout [[`f1c41db`](https://github.com/PrismJS/prism/commit/f1c41db)]
+* Prevent most errors in IE8. Fix [#9](https://github.com/PrismJS/prism/issues/9) [[`9652d75`](https://github.com/PrismJS/prism/commit/9652d75)]
+* Add U.S. Web Design Standards on homepage. Fix [#785](https://github.com/PrismJS/prism/issues/785) [[`e10d48b`](https://github.com/PrismJS/prism/commit/e10d48b), [`79ebbf8`](https://github.com/PrismJS/prism/commit/79ebbf8), [`2f7088d`](https://github.com/PrismJS/prism/commit/2f7088d)]
+* Added gulp task to autolink PRs and commits in changelog [[`5ec4e4d`](https://github.com/PrismJS/prism/commit/5ec4e4d)]
+* Use child processes to run each set of tests, in order to deal with the memory leak in vm.runInNewContext() [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)]
+
+## 1.2.0 (2015-10-07)
+
+### New components
+
+* __Batch__ ([#781](https://github.com/PrismJS/prism/issues/781)) [[`eab5b06`](https://github.com/PrismJS/prism/commit/eab5b06)]
+
+### Updated components
+
+* __ASP.NET__:
+	* Simplified pattern for `"),t.textContent=e.code,n.appendChild(t),e.element.parentNode.replaceChild(n,e.element),e.element=t,void 0}var n=e.element.parentNode;!e.code&&n&&"pre"==n.nodeName.toLowerCase()&&e.element.childNodes.length&&"#comment"==e.element.childNodes[0].nodeName&&(e.element.textContent=e.code=e.element.childNodes[0].textContent)}}))}();
\ No newline at end of file
diff --git a/node_modules/prismjs/plugins/wpd/prism-wpd.js b/node_modules/prismjs/plugins/wpd/prism-wpd.js
index 9c2c307..595f34c 100644
--- a/node_modules/prismjs/plugins/wpd/prism-wpd.js
+++ b/node_modules/prismjs/plugins/wpd/prism-wpd.js
@@ -1,12 +1,13 @@
 (function(){
 
-if (!self.Prism) {
+if (
+	typeof self !== 'undefined' && !self.Prism ||
+	typeof global !== 'undefined' && !global.Prism
+) {
 	return;
 }
 
 if (Prism.languages.css) {
-	Prism.languages.css.atrule.inside['atrule-id'] = /^@[\w-]+/;
-	
 	// check whether the selector is an advanced pattern before extending it
 	if (Prism.languages.css.selector.pattern)
 	{
@@ -41,9 +42,9 @@ if (Prism.languages.markup) {
 			'feFuncR': 1, 'feFuncG': 1, 'feFuncB': 1, 'feFuncA': 1, 'feComposite': 1, 'feConvolveMatrix': 1, 'feDiffuseLighting': 1, 'feDisplacementMap': 1, 
 			'feFlood': 1, 'feGaussianBlur': 1, 'feImage': 1, 'feMerge': 1, 'feMergeNode': 1, 'feMorphology': 1, 'feOffset': 1, 'feSpecularLighting': 1, 
 			'feTile': 1, 'feTurbulence': 1, 'feDistantLight': 1, 'fePointLight': 1, 'feSpotLight': 1, 'linearGradient': 1, 'radialGradient': 1, 'altGlyph': 1, 
-			'textPath': 1, 'tref': 1, 'altglyph': 1, 'textpath': 1, 'tref': 1, 'altglyphdef': 1, 'altglyphitem': 1, 'clipPath': 1, 'color-profile': 1, 'cursor': 1, 
-			'font-face': 1, 'font-face-format': 1, 'font-face-name': 1, 'font-face-src': 1, 'font-face-uri': 1, 'foreignObject': 1, 'glyph': 1, 'glyphRef': 1, 
-			'hkern': 1, 'vkern': 1, 
+			'textPath': 1, 'tref': 1, 'altglyph': 1, 'textpath': 1, 'altglyphdef': 1, 'altglyphitem': 1, 'clipPath': 1, 'color-profile': 1, 'cursor': 1,
+			'font-face': 1, 'font-face-format': 1, 'font-face-name': 1, 'font-face-src': 1, 'font-face-uri': 1, 'foreignObject': 1, 'glyphRef': 1,
+			'hkern': 1, 'vkern': 1
 		},
 		MathML: {}
 	}
@@ -52,62 +53,67 @@ if (Prism.languages.markup) {
 var language;
 
 Prism.hooks.add('wrap', function(env) {
-	if ((['tag-id'].indexOf(env.type) > -1
+	if ((env.type == 'tag-id'
 		|| (env.type == 'property' && env.content.indexOf('-') != 0)
-		|| (env.type == 'atrule-id'&& env.content.indexOf('@-') != 0)
+		|| (env.type == 'rule'&& env.content.indexOf('@-') != 0)
 		|| (env.type == 'pseudo-class'&& env.content.indexOf(':-') != 0) 
 		|| (env.type == 'pseudo-element'&& env.content.indexOf('::-') != 0) 
-	    || (env.type == 'attr-name' && env.content.indexOf('data-') != 0)
-	    ) && env.content.indexOf('<') === -1
+        || (env.type == 'attr-name' && env.content.indexOf('data-') != 0)
+		) && env.content.indexOf('<') === -1
 	) {
-		var searchURL = 'w/index.php?fulltext&search=';
-		
-		env.tag = 'a';
-		
-		var href = 'http://docs.webplatform.org/';
-		
-		if (env.language == 'css') {
-			href += 'wiki/css/'
-			
-			if (env.type == 'property') {
-				href += 'properties/';
-			}
-			else if (env.type == 'atrule-id') {
-				href += 'atrules/';
-			}
-			else if (env.type == 'pseudo-class') {
-				href += 'selectors/pseudo-classes/';
-			}
-			else if (env.type == 'pseudo-element') {
-				href += 'selectors/pseudo-elements/';
-			}
-		}
-		else if (env.language == 'markup') {
-			if (env.type == 'tag-id') {
-				// Check language
-				language = getLanguage(env.content) || language;
-				
-				if (language) {
-					href += 'wiki/' + language + '/elements/';
+		if (env.language == 'css'
+			|| env.language == 'scss'
+			|| env.language == 'markup'
+		) {
+			var searchURL = 'w/index.php?fulltext&search=';
+
+			env.tag = 'a';
+
+			var href = 'http://docs.webplatform.org/';
+
+			if (env.language == 'css' || env.language == 'scss') {
+				href += 'wiki/css/';
+
+				if (env.type == 'property') {
+					href += 'properties/';
+				}
+				else if (env.type == 'rule') {
+					href += 'atrules/';
+				}
+				else if (env.type == 'pseudo-class') {
+					href += 'selectors/pseudo-classes/';
 				}
-				else {
-					href += searchURL;
+				else if (env.type == 'pseudo-element') {
+					href += 'selectors/pseudo-elements/';
 				}
 			}
-			else if (env.type == 'attr-name') {
-				if (language) {
-					href += 'wiki/' + language + '/attributes/';
+			else if (env.language == 'markup') {
+				if (env.type == 'tag-id') {
+					// Check language
+					language = getLanguage(env.content) || language;
+
+					if (language) {
+						href += 'wiki/' + language + '/elements/';
+					}
+					else {
+						href += searchURL;
+					}
 				}
-				else {
-					href += searchURL;
+				else if (env.type == 'attr-name') {
+					if (language) {
+						href += 'wiki/' + language + '/attributes/';
+					}
+					else {
+						href += searchURL;
+					}
 				}
 			}
+
+			href += env.content;
+
+			env.attributes.href = href;
+			env.attributes.target = '_blank';
 		}
-		
-		href += env.content;
-		
-		env.attributes.href = href;
-		env.attributes.target = '_blank';
 	}
 });
 
@@ -125,7 +131,7 @@ function getLanguage(tag) {
 	}
 	
 	// Not in dictionary, perform check
-	if (Tags.HTML[tagL] !== 0) {
+	if (Tags.HTML[tagL] !== 0 && typeof document !== 'undefined') {
 		var htmlInterface = (document.createElement(tag).toString().match(/\[object HTML(.+)Element\]/) || [])[1];
 		
 		if (htmlInterface && htmlInterface != 'Unknown') {
@@ -136,7 +142,7 @@ function getLanguage(tag) {
 	
 	Tags.HTML[tagL] = 0;
 	
-	if (Tags.SVG[tag] !== 0) {
+	if (Tags.SVG[tag] !== 0 && typeof document !== 'undefined') {
 		var svgInterface = (document.createElementNS('http://www.w3.org/2000/svg', tag).toString().match(/\[object SVG(.+)Element\]/) || [])[1];
 		
 		if (svgInterface && svgInterface != 'Unknown') {
diff --git a/node_modules/prismjs/plugins/wpd/prism-wpd.min.js b/node_modules/prismjs/plugins/wpd/prism-wpd.min.js
index 8b3eeaa..d7b2a61 100644
--- a/node_modules/prismjs/plugins/wpd/prism-wpd.min.js
+++ b/node_modules/prismjs/plugins/wpd/prism-wpd.min.js
@@ -1 +1 @@
-!function(){function e(e){var a=e.toLowerCase();if(t.HTML[a])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[a]){var n=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(n&&"Unknown"!=n)return t.HTML[a]=1,"html"}if(t.HTML[a]=0,0!==t.SVG[e]){var r=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(r&&"Unknown"!=r)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(self.Prism){if(Prism.languages.css&&(Prism.languages.css.atrule.inside["atrule-id"]=/^@[\w-]+/,Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,tref:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyph:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var a;Prism.hooks.add("wrap",function(t){if((["tag-id"].indexOf(t.type)>-1||"property"==t.type&&0!=t.content.indexOf("-")||"atrule-id"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")){var n="w/index.php?fulltext&search=";t.tag="a";var r="http://docs.webplatform.org/";"css"==t.language?(r+="wiki/css/","property"==t.type?r+="properties/":"atrule-id"==t.type?r+="atrules/":"pseudo-class"==t.type?r+="selectors/pseudo-classes/":"pseudo-element"==t.type&&(r+="selectors/pseudo-elements/")):"markup"==t.language&&("tag-id"==t.type?(a=e(t.content)||a,r+=a?"wiki/"+a+"/elements/":n):"attr-name"==t.type&&(r+=a?"wiki/"+a+"/attributes/":n)),r+=t.content,t.attributes.href=r,t.attributes.target="_blank"}})}}();
\ No newline at end of file
+!function(){function e(e){var a=e.toLowerCase();if(t.HTML[a])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[a]&&"undefined"!=typeof document){var n=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(n&&"Unknown"!=n)return t.HTML[a]=1,"html"}if(t.HTML[a]=0,0!==t.SVG[e]&&"undefined"!=typeof document){var s=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(s&&"Unknown"!=s)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){if(Prism.languages.css&&(Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var a;Prism.hooks.add("wrap",function(t){if(("tag-id"==t.type||"property"==t.type&&0!=t.content.indexOf("-")||"rule"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")&&("css"==t.language||"scss"==t.language||"markup"==t.language)){var n="w/index.php?fulltext&search=";t.tag="a";var s="http://docs.webplatform.org/";"css"==t.language||"scss"==t.language?(s+="wiki/css/","property"==t.type?s+="properties/":"rule"==t.type?s+="atrules/":"pseudo-class"==t.type?s+="selectors/pseudo-classes/":"pseudo-element"==t.type&&(s+="selectors/pseudo-elements/")):"markup"==t.language&&("tag-id"==t.type?(a=e(t.content)||a,s+=a?"wiki/"+a+"/elements/":n):"attr-name"==t.type&&(s+=a?"wiki/"+a+"/attributes/":n)),s+=t.content,t.attributes.href=s,t.attributes.target="_blank"}})}}();
\ No newline at end of file
diff --git a/node_modules/prismjs/prism.esproj/Project.espressostorage b/node_modules/prismjs/prism.esproj/Project.espressostorage
new file mode 100644
index 0000000000000000000000000000000000000000..6183247f3667c26d053092d52aa2706598077289
GIT binary patch
literal 535
zcmYc)$jK}&F)+Bq$i&PVFJPLSpR1Rfm|T>Yl$2Sb=UQA)lv-SzuNP371XP!iS_ESS
zrxul^78UFH7p0^Y#S7?@sBa;Q0K-DI8|)mMT--doeEb4}LPEkKqVWRKuE9{dAT|V-
zB$lLx7N-_@r&i*S4XG?h16$yc8CU|vTr3UEV$wUyLaIg@pwbwc5NJ?MXdsX#gajmQ**ZSQP*sVKX@4*Q(j?yVUF_LO
zTd#}%xzlUC&+qyCJ?iHA&KSF
zc!guVF)`&&@iB>yMg_%><&1=7S@dW0D}Gtw70j`-2wgg}lXUPa7Q1A6A0->Eb+wXVhqZ#tVyZdj_UwyBY@
zKh7)sq&Jr2WqH(Daic_bG*+JMm)W{Xb8YkPmOXphJ34!h^!1+}icBn=Er8X`5->wM
z1MjMhu{&62wMwaGwMw~CX
z2Z(3!1%E)`H^tpV0t7xnhS$w$bo}Rn+Etiszoz^WBVUKRV9H_cvJP5ENjBM9?lCt>`|?{
z@KX;UoTOw%OcS3P06qdh{G(w!@>m|@s7GaVjNzTYNb%BgHeLBAg0kXuOtnWE2BxawZQo>rrcTs1pwWrQlR1NlIT1EQ+Fn
zrChd>6y+X2n@`4LlEkm9ar}N#Gr4z;b&P}w+u-;yg9p~*c!nfyu3lsnff=082(93Q
zE(pRXOu#H)NP+_A-~wEPOYkXB;j{2Lcpkn2UxTm1H{de70IRSDFT*wXFRDNmREwI?
zArwR*G>jr>3eBK7bQV31q9~4DMBhh0M6aM9qgT;S&}-;tl%1-h+*BjgM72ZCs?VaD3J@|barux^0`w^AJNWLMrWTZv%_mDO@Ok$~h
z_>6{9I2h*B{1Z5yE7JoU+o`Ma5$>o+rAvzYlh6mpNr_Lw`|uz50GW{!wV+n?2~xT}
z=r?E`y@T$MvK*ntbYt?R)Ld*Fb>?G5ZL43_>s=f>9u>u9trz%YZN%|+c0b(H(>Hj`
z7wYWl_H_q)yL~-}4)yth{evC7Pj}J1
zbRQj|r|9pN*zGR1oBkfL+fwBwJb->sl5>0al~+|)E6vX8de?5fwytaAmz~`lakkDz
ztBgvmI>_9!YhmC*h9_f6{3PiFGAY5Dy46~>LNz_u#8YS|8*Y-7+mT{vUukS=-s~#{
zT68zG>?xXhuCz376W~@anPiQ6B3ZsDJdu@njXSo)=qL=p5JZ3@1fGB;(u&fMAx-FM
z_&j_8z6igBU&AfWRT3+I!{U4Ytem|i(}a+*_0Aw
zhS^s6p>mZEV{N;+pZbIM5trBIeu7TiN6?4-ac@xz`3P!lWnLEIILb>?LR?9hRb)1k
z{e~<$EbQx_C&^Php*;p6I0@r0ZR#*}nS!Q1(`nO;X~7gXrA(4Vwqz|At)13G)*kDR
ztkg|t#w$>xkJVc{Ys%$Y4IzD7@Z
z%=vANIcq*DZ&q-uOTiZuAC3!(DESR%`^jR{di3^lH-BFF%JUnwb@i_881OEOUcI}a
zi1PAmxV5m?n+O}W8K5W0{;vp&0@=pJkZ_KKT^bW*K`Yc@KC^`hABBE61!rIZ;veF|
zXW`3a3}1y8;ivEmSckXZAMh@6l>~8jaS%}h#|Dk1ql|S}-;1>`65>)|`pJ%idwPPw
zrxuJz>)#>fp6u-ICjSI`gHMqhb&w4r0?UxJziEHR{=Ne_><+iX%U)*RVE@AYt3*9#
Jv3l(P{twfQH`V|E

literal 0
HcmV?d00001

diff --git a/node_modules/prismjs/prism.js b/node_modules/prismjs/prism.js
index e74f7cd..f36644c 100644
--- a/node_modules/prismjs/prism.js
+++ b/node_modules/prismjs/prism.js
@@ -3,7 +3,7 @@
      Begin prism-core.js
 ********************************************** */
 
-self = (typeof window !== 'undefined')
+var _self = (typeof window !== 'undefined')
 	? window   // if in browser
 	: (
 		(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
@@ -20,9 +20,10 @@ self = (typeof window !== 'undefined')
 var Prism = (function(){
 
 // Private helper vars
-var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
+var lang = /\blang(?:uage)?-(\w+)\b/i;
+var uniqueId = 0;
 
-var _ = self.Prism = {
+var _ = _self.Prism = {
 	util: {
 		encode: function (tokens) {
 			if (tokens instanceof Token) {
@@ -38,6 +39,13 @@ var _ = self.Prism = {
 			return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
 		},
 
+		objId: function (obj) {
+			if (!obj['__id']) {
+				Object.defineProperty(obj, '__id', { value: ++uniqueId });
+			}
+			return obj['__id'];
+		},
+
 		// Deep clone a language definition (e.g. to extend it)
 		clone: function (o) {
 			var type = _.util.type(o);
@@ -55,7 +63,8 @@ var _ = self.Prism = {
 					return clone;
 
 				case 'Array':
-					return o.map(function(v) { return _.util.clone(v); });
+					// Check for existence for IE8
+					return o.map && o.map(function(v) { return _.util.clone(v); });
 			}
 
 			return o;
@@ -85,19 +94,19 @@ var _ = self.Prism = {
 		insertBefore: function (inside, before, insert, root) {
 			root = root || _.languages;
 			var grammar = root[inside];
-			
+
 			if (arguments.length == 2) {
 				insert = arguments[1];
-				
+
 				for (var newToken in insert) {
 					if (insert.hasOwnProperty(newToken)) {
 						grammar[newToken] = insert[newToken];
 					}
 				}
-				
+
 				return grammar;
 			}
-			
+
 			var ret = {};
 
 			for (var token in grammar) {
@@ -117,7 +126,7 @@ var _ = self.Prism = {
 					ret[token] = grammar[token];
 				}
 			}
-			
+
 			// Update references in other language definitions
 			_.languages.DFS(_.languages, function(key, value) {
 				if (value === root[inside] && key != inside) {
@@ -129,27 +138,38 @@ var _ = self.Prism = {
 		},
 
 		// Traverse a language definition with Depth First Search
-		DFS: function(o, callback, type) {
+		DFS: function(o, callback, type, visited) {
+			visited = visited || {};
 			for (var i in o) {
 				if (o.hasOwnProperty(i)) {
 					callback.call(o, i, o[i], type || i);
 
-					if (_.util.type(o[i]) === 'Object') {
-						_.languages.DFS(o[i], callback);
+					if (_.util.type(o[i]) === 'Object' && !visited[_.util.objId(o[i])]) {
+						visited[_.util.objId(o[i])] = true;
+						_.languages.DFS(o[i], callback, null, visited);
 					}
-					else if (_.util.type(o[i]) === 'Array') {
-						_.languages.DFS(o[i], callback, i);
+					else if (_.util.type(o[i]) === 'Array' && !visited[_.util.objId(o[i])]) {
+						visited[_.util.objId(o[i])] = true;
+						_.languages.DFS(o[i], callback, i, visited);
 					}
 				}
 			}
 		}
 	},
+	plugins: {},
 
 	highlightAll: function(async, callback) {
-		var elements = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');
+		var env = {
+			callback: callback,
+			selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
+		};
+
+		_.hooks.run("before-highlightall", env);
+
+		var elements = env.elements || document.querySelectorAll(env.selector);
 
 		for (var i=0, element; element = elements[i++];) {
-			_.highlightElement(element, async === true, callback);
+			_.highlightElement(element, async === true, env.callback);
 		}
 	},
 
@@ -162,14 +182,10 @@ var _ = self.Prism = {
 		}
 
 		if (parent) {
-			language = (parent.className.match(lang) || [,''])[1];
+			language = (parent.className.match(lang) || [,''])[1].toLowerCase();
 			grammar = _.languages[language];
 		}
 
-		if (!grammar) {
-			return;
-		}
-
 		// Set language on the element, if not present
 		element.className = element.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
 
@@ -182,12 +198,6 @@ var _ = self.Prism = {
 
 		var code = element.textContent;
 
-		if(!code) {
-			return;
-		}
-
-		code = code.replace(/^(?:\r?\n|\r)/,'');
-
 		var env = {
 			element: element,
 			language: language,
@@ -195,13 +205,23 @@ var _ = self.Prism = {
 			code: code
 		};
 
+		_.hooks.run('before-sanity-check', env);
+
+		if (!env.code || !env.grammar) {
+			if (env.code) {
+				env.element.textContent = env.code;
+			}
+			_.hooks.run('complete', env);
+			return;
+		}
+
 		_.hooks.run('before-highlight', env);
 
-		if (async && self.Worker) {
+		if (async && _self.Worker) {
 			var worker = new Worker(_.filename);
 
 			worker.onmessage = function(evt) {
-				env.highlightedCode = Token.stringify(JSON.parse(evt.data), language);
+				env.highlightedCode = evt.data;
 
 				_.hooks.run('before-insert', env);
 
@@ -209,11 +229,13 @@ var _ = self.Prism = {
 
 				callback && callback.call(env.element);
 				_.hooks.run('after-highlight', env);
+				_.hooks.run('complete', env);
 			};
 
 			worker.postMessage(JSON.stringify({
 				language: env.language,
-				code: env.code
+				code: env.code,
+				immediateClose: true
 			}));
 		}
 		else {
@@ -226,6 +248,7 @@ var _ = self.Prism = {
 			callback && callback.call(element);
 
 			_.hooks.run('after-highlight', env);
+			_.hooks.run('complete', env);
 		}
 	},
 
@@ -261,12 +284,20 @@ var _ = self.Prism = {
 				var pattern = patterns[j],
 					inside = pattern.inside,
 					lookbehind = !!pattern.lookbehind,
+					greedy = !!pattern.greedy,
 					lookbehindLength = 0,
 					alias = pattern.alias;
 
+				if (greedy && !pattern.pattern.global) {
+					// Without the global flag, lastIndex won't work
+					var flags = pattern.pattern.toString().match(/[imuy]*$/)[0];
+					pattern.pattern = RegExp(pattern.pattern.source, flags + "g");
+				}
+
 				pattern = pattern.pattern || pattern;
 
-				for (var i=0; i= p) {
+								++i;
+								pos = p;
+							}
+						}
 
-						if (before) {
-							args.push(before);
+						/*
+						 * If strarr[i] is a Token, then the match starts inside another Token, which is invalid
+						 * If strarr[k - 1] is greedy we are in conflict with another greedy pattern
+						 */
+						if (strarr[i] instanceof Token || strarr[k - 1].greedy) {
+							continue;
 						}
 
-						var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias);
+						// Number of tokens to delete and replace with the new match
+						delNum = k - i;
+						str = text.slice(pos, p);
+						match.index -= pos;
+					}
+
+					if (!match) {
+						continue;
+					}
 
-						args.push(wrapped);
+					if(lookbehind) {
+						lookbehindLength = match[1].length;
+					}
 
-						if (after) {
-							args.push(after);
-						}
+					var from = match.index + lookbehindLength,
+					    match = match[0].slice(lookbehindLength),
+					    to = from + match.length,
+					    before = str.slice(0, from),
+					    after = str.slice(to);
 
-						Array.prototype.splice.apply(strarr, args);
+					var args = [i, delNum];
+
+					if (before) {
+						args.push(before);
+					}
+
+					var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
+
+					args.push(wrapped);
+
+					if (after) {
+						args.push(after);
 					}
+
+					Array.prototype.splice.apply(strarr, args);
 				}
 			}
 		}
@@ -343,10 +412,13 @@ var _ = self.Prism = {
 	}
 };
 
-var Token = _.Token = function(type, content, alias) {
+var Token = _.Token = function(type, content, alias, matchedStr, greedy) {
 	this.type = type;
 	this.content = content;
 	this.alias = alias;
+	// Copy of the full string this token was created from
+	this.length = (matchedStr || "").length|0;
+	this.greedy = !!greedy;
 };
 
 Token.stringify = function(o, language, parent) {
@@ -381,48 +453,56 @@ Token.stringify = function(o, language, parent) {
 
 	_.hooks.run('wrap', env);
 
-	var attributes = '';
+	var attributes = Object.keys(env.attributes).map(function(name) {
+		return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"';
+	}).join(' ');
 
-	for (var name in env.attributes) {
-		attributes += name + '="' + (env.attributes[name] || '') + '"';
-	}
-
-	return '<' + env.tag + ' class="' + env.classes.join(' ') + '" ' + attributes + '>' + env.content + '';
+	return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';
 
 };
 
-if (!self.document) {
-	if (!self.addEventListener) {
+if (!_self.document) {
+	if (!_self.addEventListener) {
 		// in Node.js
-		return self.Prism;
+		return _self.Prism;
 	}
  	// In worker
-	self.addEventListener('message', function(evt) {
+	_self.addEventListener('message', function(evt) {
 		var message = JSON.parse(evt.data),
 		    lang = message.language,
-		    code = message.code;
+		    code = message.code,
+		    immediateClose = message.immediateClose;
 
-		self.postMessage(JSON.stringify(_.util.encode(_.tokenize(code, _.languages[lang]))));
-		self.close();
+		_self.postMessage(_.highlight(code, _.languages[lang], lang));
+		if (immediateClose) {
+			_self.close();
+		}
 	}, false);
 
-	return self.Prism;
+	return _self.Prism;
 }
 
-// Get current script and highlight
-var script = document.getElementsByTagName('script');
-
-script = script[script.length - 1];
+//Get current script and highlight
+var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
 
 if (script) {
 	_.filename = script.src;
 
 	if (document.addEventListener && !script.hasAttribute('data-manual')) {
-		document.addEventListener('DOMContentLoaded', _.highlightAll);
+		if(document.readyState !== "loading") {
+			if (window.requestAnimationFrame) {
+				window.requestAnimationFrame(_.highlightAll);
+			} else {
+				window.setTimeout(_.highlightAll, 16);
+			}
+		}
+		else {
+			document.addEventListener('DOMContentLoaded', _.highlightAll);
+		}
 	}
 }
 
-return self.Prism;
+return _self.Prism;
 
 })();
 
@@ -430,6 +510,11 @@ if (typeof module !== 'undefined' && module.exports) {
 	module.exports = Prism;
 }
 
+// hack for components to work correctly in node.js
+if (typeof global !== 'undefined') {
+	global.Prism = Prism;
+}
+
 
 /* **********************************************
      Begin prism-markup.js
@@ -437,30 +522,30 @@ if (typeof module !== 'undefined' && module.exports) {
 
 Prism.languages.markup = {
 	'comment': //,
-	'prolog': /<\?.+?\?>/,
-	'doctype': //,
+	'prolog': /<\?[\w\W]+?\?>/,
+	'doctype': //i,
 	'cdata': //i,
 	'tag': {
-		pattern: /<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/i,
+		pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
 		inside: {
 			'tag': {
-				pattern: /^<\/?[\w:-]+/i,
+				pattern: /^<\/?[^\s>\/]+/i,
 				inside: {
 					'punctuation': /^<\/?/,
-					'namespace': /^[\w-]+?:/
+					'namespace': /^[^\s>\/:]+:/
 				}
 			},
 			'attr-value': {
 				pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,
 				inside: {
-					'punctuation': /=|>|"/
+					'punctuation': /[=>"']/
 				}
 			},
 			'punctuation': /\/?>/,
 			'attr-name': {
-				pattern: /[\w:-]+/,
+				pattern: /[^\s>\/]+/,
 				inside: {
-					'namespace': /^[\w-]+?:/
+					'namespace': /^[^\s>\/:]+:/
 				}
 			}
 
@@ -477,6 +562,11 @@ Prism.hooks.add('wrap', function(env) {
 	}
 });
 
+Prism.languages.xml = Prism.languages.markup;
+Prism.languages.html = Prism.languages.markup;
+Prism.languages.mathml = Prism.languages.markup;
+Prism.languages.svg = Prism.languages.markup;
+
 
 /* **********************************************
      Begin prism-css.js
@@ -487,29 +577,30 @@ Prism.languages.css = {
 	'atrule': {
 		pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i,
 		inside: {
-			'punctuation': /[;:]/
+			'rule': /@[\w-]+/
+			// See rest below
 		}
 	},
-	'url': /url\((?:(["'])(\\\n|\\?.)*?\1|.*?)\)/i,
-	'selector': /[^\{\}\s][^\{\};]*(?=\s*\{)/,
-	'string': /("|')(\\\n|\\?.)*?\1/,
+	'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,
+	'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/,
+	'string': {
+		pattern: /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,
+		greedy: true
+	},
 	'property': /(\b|\B)[\w-]+(?=\s*:)/i,
 	'important': /\B!important\b/i,
-	'punctuation': /[\{\};:]/,
-	'function': /[-a-z0-9]+(?=\()/i
+	'function': /[-a-z0-9]+(?=\()/i,
+	'punctuation': /[(){};:]/
 };
 
+Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);
+
 if (Prism.languages.markup) {
 	Prism.languages.insertBefore('markup', 'tag', {
 		'style': {
-			pattern: /[\w\W]*?<\/style>/i,
-			inside: {
-				'tag': {
-					pattern: /|<\/style>/i,
-					inside: Prism.languages.markup.tag.inside
-				},
-				rest: Prism.languages.css
-			},
+			pattern: /()[\w\W]*?(?=<\/style>)/i,
+			lookbehind: true,
+			inside: Prism.languages.css,
 			alias: 'language-css'
 		}
 	});
@@ -548,9 +639,12 @@ Prism.languages.clike = {
 			lookbehind: true
 		}
 	],
-	'string': /("|')(\\\n|\\?.)*?\1/,
+	'string': {
+		pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+		greedy: true
+	},
 	'class-name': {
-		pattern: /((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
+		pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
 		lookbehind: true,
 		inside: {
 			punctuation: /(\.|\\)/
@@ -558,15 +652,9 @@ Prism.languages.clike = {
 	},
 	'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
 	'boolean': /\b(true|false)\b/,
-	'function': {
-		pattern: /[a-z0-9_]+\(/i,
-		inside: {
-			punctuation: /\(/
-		}
-	},
-	'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,
-	'operator': /[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|~|\^|%/,
-	'ignore': /&(lt|gt|amp);/i,
+	'function': /[a-z0-9_]+(?=\()/i,
+	'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,
+	'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
 	'punctuation': /[{}[\];(),.:]/
 };
 
@@ -576,41 +664,60 @@ Prism.languages.clike = {
 ********************************************** */
 
 Prism.languages.javascript = Prism.languages.extend('clike', {
-	'keyword': /\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,
-	'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|-?Infinity)\b/,
-	'function': /(?!\d)[a-z0-9_$]+(?=\()/i
+	'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,
+	'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
+	// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
+	'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,
+	'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/
 });
 
 Prism.languages.insertBefore('javascript', 'keyword', {
 	'regex': {
-		pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
-		lookbehind: true
+		pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,
+		lookbehind: true,
+		greedy: true
+	}
+});
+
+Prism.languages.insertBefore('javascript', 'string', {
+	'template-string': {
+		pattern: /`(?:\\\\|\\?[^\\])*?`/,
+		greedy: true,
+		inside: {
+			'interpolation': {
+				pattern: /\$\{[^}]+\}/,
+				inside: {
+					'interpolation-punctuation': {
+						pattern: /^\$\{|\}$/,
+						alias: 'punctuation'
+					},
+					rest: Prism.languages.javascript
+				}
+			},
+			'string': /[\s\S]+/
+		}
 	}
 });
 
 if (Prism.languages.markup) {
 	Prism.languages.insertBefore('markup', 'tag', {
 		'script': {
-			pattern: /[\w\W]*?<\/script>/i,
-			inside: {
-				'tag': {
-					pattern: /|<\/script>/i,
-					inside: Prism.languages.markup.tag.inside
-				},
-				rest: Prism.languages.javascript
-			},
+			pattern: /()[\w\W]*?(?=<\/script>)/i,
+			lookbehind: true,
+			inside: Prism.languages.javascript,
 			alias: 'language-javascript'
 		}
 	});
 }
 
+Prism.languages.js = Prism.languages.javascript;
 
 /* **********************************************
      Begin prism-file-highlight.js
 ********************************************** */
 
 (function () {
-	if (!self.Prism || !self.document || !document.querySelector) {
+	if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
 		return;
 	}
 
@@ -618,55 +725,71 @@ if (Prism.languages.markup) {
 
 		var Extensions = {
 			'js': 'javascript',
-			'html': 'markup',
-			'svg': 'markup',
-			'xml': 'markup',
 			'py': 'python',
 			'rb': 'ruby',
 			'ps1': 'powershell',
-			'psm1': 'powershell'
+			'psm1': 'powershell',
+			'sh': 'bash',
+			'bat': 'batch',
+			'h': 'c',
+			'tex': 'latex'
 		};
 
-		Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function(pre) {
-			var src = pre.getAttribute('data-src');
-			var extension = (src.match(/\.(\w+)$/) || [,''])[1];
-			var language = Extensions[extension] || extension;
+		if(Array.prototype.forEach) { // Check to prevent error in IE8
+			Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+				var src = pre.getAttribute('data-src');
 
-			var code = document.createElement('code');
-			code.className = 'language-' + language;
+				var language, parent = pre;
+				var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
+				while (parent && !lang.test(parent.className)) {
+					parent = parent.parentNode;
+				}
 
-			pre.textContent = '';
+				if (parent) {
+					language = (pre.className.match(lang) || [, ''])[1];
+				}
 
-			code.textContent = 'Loading…';
+				if (!language) {
+					var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+					language = Extensions[extension] || extension;
+				}
 
-			pre.appendChild(code);
+				var code = document.createElement('code');
+				code.className = 'language-' + language;
 
-			var xhr = new XMLHttpRequest();
+				pre.textContent = '';
 
-			xhr.open('GET', src, true);
+				code.textContent = 'Loading…';
 
-			xhr.onreadystatechange = function() {
-				if (xhr.readyState == 4) {
+				pre.appendChild(code);
 
-					if (xhr.status < 400 && xhr.responseText) {
-						code.textContent = xhr.responseText;
+				var xhr = new XMLHttpRequest();
 
-						Prism.highlightElement(code);
-					}
-					else if (xhr.status >= 400) {
-						code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
-					}
-					else {
-						code.textContent = '✖ Error: File does not exist or is empty';
+				xhr.open('GET', src, true);
+
+				xhr.onreadystatechange = function () {
+					if (xhr.readyState == 4) {
+
+						if (xhr.status < 400 && xhr.responseText) {
+							code.textContent = xhr.responseText;
+
+							Prism.highlightElement(code);
+						}
+						else if (xhr.status >= 400) {
+							code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+						}
+						else {
+							code.textContent = '✖ Error: File does not exist or is empty';
+						}
 					}
-				}
-			};
+				};
 
-			xhr.send(null);
-		});
+				xhr.send(null);
+			});
+		}
 
 	};
 
-	self.Prism.fileHighlight();
+	document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);
 
 })();
diff --git a/node_modules/prismjs/tests/helper/prism-loader.js b/node_modules/prismjs/tests/helper/prism-loader.js
new file mode 100644
index 0000000..2885ad3
--- /dev/null
+++ b/node_modules/prismjs/tests/helper/prism-loader.js
@@ -0,0 +1,131 @@
+"use strict";
+
+var fs = require("fs");
+var vm = require("vm");
+var components = require("./components");
+var languagesCatalog = components.languages;
+
+
+module.exports = {
+
+	/**
+	 * Creates a new Prism instance with the given language loaded
+	 *
+	 * @param {string|string[]} languages
+	 * @returns {Prism}
+	 */
+	createInstance: function (languages) {
+		var context = {
+			loadedLanguages: [],
+			Prism: this.createEmptyPrism()
+		};
+
+		context = this.loadLanguages(languages, context);
+
+		return context.Prism;
+	},
+
+	/**
+	 * Loads the given languages and appends the config to the given Prism object
+	 *
+	 * @private
+	 * @param {string|string[]} languages
+	 * @param {{loadedLanguages: string[], Prism: Prism}} context
+	 * @returns {{loadedLanguages: string[], Prism: Prism}}
+	 */
+	loadLanguages: function (languages, context) {
+		if (typeof languages === 'string') {
+			languages = [languages];
+		}
+
+		var self = this;
+
+		languages.forEach(function (language) {
+			context = self.loadLanguage(language, context);
+		});
+
+		return context;
+	},
+
+	/**
+	 * Loads the given language (including recursively loading the dependencies) and
+	 * appends the config to the given Prism object
+	 *
+	 * @private
+	 * @param {string} language
+	 * @param {{loadedLanguages: string[], Prism: Prism}} context
+	 * @returns {{loadedLanguages: string[], Prism: Prism}}
+	 */
+	loadLanguage: function (language, context) {
+		if (!languagesCatalog[language]) {
+			throw new Error("Language '" + language + "' not found.");
+		}
+
+		// the given language was already loaded
+		if (-1 < context.loadedLanguages.indexOf(language)) {
+			return context;
+		}
+
+		// if the language has a dependency -> load it first
+		if (languagesCatalog[language].require) {
+			context = this.loadLanguages(languagesCatalog[language].require, context);
+		}
+
+		// load the language itself
+		var languageSource = this.loadFileSource(language);
+		context.Prism = this.runFileWithContext(languageSource, {Prism: context.Prism}).Prism;
+		context.loadedLanguages.push(language);
+
+		return context;
+	},
+
+
+	/**
+	 * Creates a new empty prism instance
+	 *
+	 * @private
+	 * @returns {Prism}
+	 */
+	createEmptyPrism: function () {
+		var coreSource = this.loadFileSource("core");
+		var context = this.runFileWithContext(coreSource);
+		return context.Prism;
+	},
+
+
+	/**
+	 * Cached file sources, to prevent massive HDD work
+	 *
+	 * @private
+	 * @type {Object.}
+	 */
+	fileSourceCache: {},
+
+
+	/**
+	 * Loads the given file source as string
+	 *
+	 * @private
+	 * @param {string} name
+	 * @returns {string}
+	 */
+	loadFileSource: function (name) {
+		return this.fileSourceCache[name] = this.fileSourceCache[name] || fs.readFileSync(__dirname + "/../../components/prism-" + name + ".js", "utf8");
+	},
+
+
+	/**
+	 * Runs a VM for a given file source with the given context
+	 *
+	 * @private
+	 * @param {string} fileSource
+	 * @param {*} [context]
+	 *
+	 * @returns {*}
+	 */
+	runFileWithContext: function (fileSource, context) {
+		context = context || {};
+		vm.runInNewContext(fileSource, context);
+		return context;
+	}
+};
diff --git a/node_modules/prismjs/tests/helper/test-case.js b/node_modules/prismjs/tests/helper/test-case.js
new file mode 100644
index 0000000..27cb5b9
--- /dev/null
+++ b/node_modules/prismjs/tests/helper/test-case.js
@@ -0,0 +1,187 @@
+"use strict";
+
+var fs = require("fs");
+var assert = require("chai").assert;
+var PrismLoader = require("./prism-loader");
+var TokenStreamTransformer = require("./token-stream-transformer");
+
+/**
+ * Handles parsing of a test case file.
+ *
+ *
+ * A test case file consists of at least two parts, separated by a line of dashes.
+ * This separation line must start at the beginning of the line and consist of at least three dashes.
+ *
+ * The test case file can either consist of two parts:
+ *
+ *     {source code}
+ *     ----
+ *     {expected token stream}
+ *
+ *
+ * or of three parts:
+ *
+ *     {source code}
+ *     ----
+ *     {expected token stream}
+ *     ----
+ *     {text comment explaining the test case}
+ *
+ * If the file contains more than three parts, the remaining parts are just ignored.
+ * If the file however does not contain at least two parts (so no expected token stream),
+ * the test case will later be marked as failed.
+ *
+ *
+ * @type {{runTestCase: Function, transformCompiledTokenStream: Function, parseTestCaseFile: Function}}
+ */
+module.exports = {
+
+	/**
+	 * Runs the given test case file and asserts the result
+	 *
+	 * The passed language identifier can either be a language like "css" or a composed language
+	 * identifier like "css+markup". Composed identifiers can be used for testing language inclusion.
+	 *
+	 * When testing language inclusion, the first given language is the main language which will be passed
+	 * to Prism for highlighting ("css+markup" will result in a call to Prism to highlight with the "css" grammar).
+	 * But it will be ensured, that the additional passed languages will be loaded too.
+	 *
+	 * The languages will be loaded in the order they were provided.
+	 *
+	 * @param {string} languageIdentifier
+	 * @param {string} filePath
+	 */
+	runTestCase: function (languageIdentifier, filePath) {
+		var testCase = this.parseTestCaseFile(filePath);
+		var usedLanguages = this.parseLanguageNames(languageIdentifier);
+
+		if (null === testCase) {
+			throw new Error("Test case file has invalid format (or the provided token stream is invalid JSON), please read the docs.");
+		}
+
+		var Prism = PrismLoader.createInstance(usedLanguages.languages);
+		// the first language is the main language to highlight
+		var mainLanguageGrammar = Prism.languages[usedLanguages.mainLanguage];
+		var compiledTokenStream = Prism.tokenize(testCase.testSource, mainLanguageGrammar);
+		var simplifiedTokenStream = TokenStreamTransformer.simplify(compiledTokenStream);
+
+		var tzd = JSON.stringify( simplifiedTokenStream ); var exp = JSON.stringify( testCase.expectedTokenStream );
+	  var i = 0;var j = 0;var diff = "";
+    while ( j < tzd.length ){ if (exp[i] != tzd[j] || i == exp.length) diff += tzd[j]; else i++; j++; }
+
+		// var message = "\nToken Stream: \n" + JSON.stringify( simplifiedTokenStream, null, " " ) + 
+		var message = "\nToken Stream: \n" + tzd + 
+									"\n-----------------------------------------\n" +
+									"Expected Token Stream: \n" + exp + 
+									"\n-----------------------------------------\n" + diff;
+
+		var result = assert.deepEqual(simplifiedTokenStream, testCase.expectedTokenStream, testCase.comment + message);
+	},
+
+
+	/**
+	 * Parses the language names and finds the main language.
+	 *
+	 * It is either the last language or the language followed by a exclamation mark “!”.
+	 * There should only be one language with an exclamation mark.
+	 *
+	 * @param {string} languageIdentifier
+	 *
+	 * @returns {{languages: string[], mainLanguage: string}}
+	 */
+	parseLanguageNames: function (languageIdentifier) {
+		var languages = languageIdentifier.split("+");
+		var mainLanguage = null;
+
+		languages = languages.map(
+			function (language) {
+				var pos = language.indexOf("!");
+
+				if (-1 < pos) {
+					if (mainLanguage) {
+						throw "There are multiple main languages defined.";
+					}
+
+					mainLanguage = language.replace("!", "");
+					return mainLanguage;
+				}
+
+				return language;
+			}
+		);
+
+		if (!mainLanguage) {
+			mainLanguage = languages[languages.length-1];
+		}
+
+		return {
+			languages: languages,
+			mainLanguage: mainLanguage
+		};
+	},
+
+
+	/**
+	 * Parses the test case from the given test case file
+	 *
+	 * @private
+	 * @param {string} filePath
+	 * @returns {{testSource: string, expectedTokenStream: Array.>, comment:string?}|null}
+	 */
+	parseTestCaseFile: function (filePath) {
+		var testCaseSource = fs.readFileSync(filePath, "utf8");
+		var testCaseParts = testCaseSource.split(/^-{10,}\w*$/m);
+
+		try {
+			var testCase = {
+				testSource: testCaseParts[0].trim(),
+				expectedTokenStream: JSON.parse(testCaseParts[1]),
+				comment: null
+			};
+
+			// if there are three parts, the third one is the comment
+			// explaining the test case
+			if (testCaseParts[2]) {
+				testCase.comment = testCaseParts[2].trim();
+			}
+
+			return testCase;
+		}
+		catch (e) {
+			// the JSON can't be parsed (e.g. it could be empty)
+			return null;
+		}
+	},
+
+	/**
+	 * Runs the given pieces of codes and asserts their result.
+	 *
+	 * Code is provided as the key and expected result as the value.
+	 *
+	 * @param {string} languageIdentifier
+	 * @param {object} codes
+	 */
+	runTestsWithHooks: function (languageIdentifier, codes) {
+		var usedLanguages = this.parseLanguageNames(languageIdentifier);
+		var Prism = PrismLoader.createInstance(usedLanguages.languages);
+		// the first language is the main language to highlight
+
+		for (var code in codes) {
+			if (codes.hasOwnProperty(code)) {
+				var env = {
+					element: {},
+					language: usedLanguages.mainLanguage,
+					grammar: Prism.languages[usedLanguages.mainLanguage],
+					code: code
+				};
+				Prism.hooks.run('before-highlight', env);
+				env.highlightedCode = Prism.highlight(env.code, Prism.languages[usedLanguages.mainLanguage], usedLanguages.mainLanguage);
+				Prism.hooks.run('before-insert', env);
+				env.element.innerHTML = env.highlightedCode;
+				Prism.hooks.run('after-highlight', env);
+				Prism.hooks.run('complete', env);
+				assert.equal(env.highlightedCode, codes[code]);
+			}
+		}
+	}
+};
diff --git a/node_modules/prismjs/tests/helper/test-discovery.js b/node_modules/prismjs/tests/helper/test-discovery.js
new file mode 100644
index 0000000..b2aade1
--- /dev/null
+++ b/node_modules/prismjs/tests/helper/test-discovery.js
@@ -0,0 +1,115 @@
+"use strict";
+
+var fs = require("fs");
+var path = require("path");
+
+
+module.exports = {
+
+	/**
+	 * Loads the list of all available tests
+	 *
+	 * @param {string} rootDir
+	 * @returns {Object.}
+	 */
+	loadAllTests: function (rootDir) {
+		var testSuite = {};
+		var self = this;
+
+		this.getAllDirectories(rootDir).forEach(
+			function (language) {
+				testSuite[language] = self.getAllFiles(path.join(rootDir, language));
+			}
+		);
+
+		return testSuite;
+	},
+
+	/**
+	 * Loads the list of available tests that match the given languages
+	 *
+	 * @param {string} rootDir
+	 * @param {string|string[]} languages
+	 * @returns {Object.}
+	 */
+	loadSomeTests: function (rootDir, languages) {
+		var testSuite = {};
+		var self = this;
+
+		this.getSomeDirectories(rootDir, languages).forEach(
+			function (language) {
+				testSuite[language] = self.getAllFiles(path.join(rootDir, language));
+			}
+		);
+
+		return testSuite;
+	},
+
+
+	/**
+	 * Returns a list of all (sub)directories (just the directory names, not full paths)
+	 * in the given src directory
+	 *
+	 * @param {string} src
+	 * @returns {Array.}
+	 */
+	getAllDirectories: function (src) {
+		return fs.readdirSync(src).filter(
+			function (file) {
+				return fs.statSync(path.join(src, file)).isDirectory();
+			}
+		);
+	},
+
+	/**
+	 * Returns a list of all (sub)directories (just the directory names, not full paths)
+	 * in the given src directory, matching the given languages
+	 *
+	 * @param {string} src
+	 * @param {string|string[]} languages
+	 * @returns {Array.}
+	 */
+	getSomeDirectories: function (src, languages) {
+		var self = this;
+		return fs.readdirSync(src).filter(
+			function (file) {
+				return fs.statSync(path.join(src, file)).isDirectory() && self.directoryMatches(file, languages);
+			}
+		);
+	},
+
+	/**
+	 * Returns whether a directory matches one of the given languages.
+	 * @param {string} directory
+	 * @param {string|string[]} languages
+	 */
+	directoryMatches: function (directory, languages) {
+		if (!Array.isArray(languages)) {
+			languages = [languages];
+		}
+		var dirLanguages = directory.split(/!?\+!?/);
+		return dirLanguages.some(function (lang) {
+			return languages.indexOf(lang) >= 0;
+		});
+	},
+
+
+	/**
+	 * Returns a list of all full file paths to all files in the given src directory
+	 *
+	 * @private
+	 * @param {string} src
+	 * @returns {Array.}
+	 */
+	getAllFiles: function (src) {
+		return fs.readdirSync(src).filter(
+			function (fileName) {
+				return fs.statSync(path.join(src, fileName)).isFile();
+			}
+		).map(
+			function (fileName) {
+				return path.join(src, fileName);
+			}
+		);
+	}
+};
diff --git a/node_modules/prismjs/tests/helper/token-stream-transformer.js b/node_modules/prismjs/tests/helper/token-stream-transformer.js
new file mode 100644
index 0000000..deb831c
--- /dev/null
+++ b/node_modules/prismjs/tests/helper/token-stream-transformer.js
@@ -0,0 +1,32 @@
+"use strict";
+
+
+module.exports = {
+	/**
+	 * Simplifies the token stream to ease the matching with the expected token stream.
+	 *
+	 * * Strings are kept as-is
+	 * * In arrays each value is transformed individually
+	 * * Values that are empty (empty arrays or strings only containing whitespace)
+	 *
+	 *
+	 * @param {Array} tokenStream
+	 * @returns {Array.}
+	 */
+	simplify: function (tokenStream) {
+		if (Array.isArray(tokenStream)) {
+			return tokenStream
+				.map(this.simplify.bind(this))
+				.filter(function (value) {
+					return !(Array.isArray(value) && !value.length) && !(typeof value === "string" && !value.trim().length);
+				}
+			);
+		}
+		else if (typeof tokenStream === "object") {
+			return [tokenStream.type, this.simplify(tokenStream.content)];
+		}
+		else {
+			return tokenStream;
+		}
+	}
+};
diff --git a/node_modules/prismjs/tests/languages/abap/comment_feature.test b/node_modules/prismjs/tests/languages/abap/comment_feature.test
new file mode 100644
index 0000000..e0f28fe
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/comment_feature.test
@@ -0,0 +1,13 @@
+*
+* Foobar
+
+----------------------------------------------------
+
+[
+	["comment", "*"],
+	["comment", "* Foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test b/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test
new file mode 100644
index 0000000..f29fc84
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test
@@ -0,0 +1,13 @@
+"
+" foobar
+
+----------------------------------------------------
+
+[
+	["eol-comment", "\""],
+	["eol-comment", "\" foobar"]
+]
+
+----------------------------------------------------
+
+Checks for EOL comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/keyword_feature.test b/node_modules/prismjs/tests/languages/abap/keyword_feature.test
new file mode 100644
index 0000000..0a5a94d
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/keyword_feature.test
@@ -0,0 +1,1801 @@
+SCIENTIFIC_WITH_LEADING_ZERO
+SCALE_PRESERVING_SCIENTIFIC
+RMC_COMMUNICATION_FAILURE
+END-ENHANCEMENT-SECTION
+MULTIPLY-CORRESPONDING
+SUBTRACT-CORRESPONDING
+VERIFICATION-MESSAGE
+DIVIDE-CORRESPONDING
+ENHANCEMENT-SECTION
+CURRENCY_CONVERSION
+RMC_SYSTEM_FAILURE
+START-OF-SELECTION
+MOVE-CORRESPONDING
+RMC_INVALID_STATUS
+CUSTOMER-FUNCTION
+END-OF-DEFINITION
+ENHANCEMENT-POINT
+SYSTEM-EXCEPTIONS
+ADD-CORRESPONDING
+SCALE_PRESERVING
+SELECTION-SCREEN
+CURSOR-SELECTION
+END-OF-SELECTION
+LOAD-OF-PROGRAM
+SCROLL-BOUNDARY
+SELECTION-TABLE
+EXCEPTION-TABLE
+IMPLEMENTATIONS
+PARAMETER-TABLE
+RIGHT-JUSTIFIED
+UNIT_CONVERSION
+AUTHORITY-CHECK
+LIST-PROCESSING
+SIGN_AS_POSTFIX
+COL_BACKGROUND
+IMPLEMENTATION
+INTERFACE-POOL
+TRANSFORMATION
+IDENTIFICATION
+ENDENHANCEMENT
+LINE-SELECTION
+INITIALIZATION
+LEFT-JUSTIFIED
+SELECT-OPTIONS
+SELECTION-SETS
+COMMUNICATION
+CORRESPONDING
+DECIMAL_SHIFT
+PRINT-CONTROL
+VALUE-REQUEST
+CHAIN-REQUEST
+FUNCTION-POOL
+FIELD-SYMBOLS
+FUNCTIONALITY
+INVERTED-DATE
+SELECTION-SET
+CLASS-METHODS
+OUTPUT-LENGTH
+CLASS-CODING
+COL_NEGATIVE
+ERRORMESSAGE
+FIELD-GROUPS
+HELP-REQUEST
+NO-EXTENSION
+NO-TOPOFPAGE
+REDEFINITION
+DISPLAY-MODE
+ENDINTERFACE
+EXIT-COMMAND
+FIELD-SYMBOL
+NO-SCROLLING
+SHORTDUMP-ID
+ACCESSPOLICY
+CLASS-EVENTS
+COL_POSITIVE
+DECLARATIONS
+ENHANCEMENTS
+FILTER-TABLE
+SWITCHSTATES
+SYNTAX-CHECK
+TRANSPORTING
+ASYNCHRONOUS
+SYNTAX-TRACE
+TOKENIZATION
+USER-COMMAND
+WITH-HEADING
+ABAP-SOURCE
+BREAK-POINT
+CHAIN-INPUT
+COMPRESSION
+FIXED-POINT
+NEW-SECTION
+NON-UNICODE
+OCCURRENCES
+RESPONSIBLE
+SYSTEM-CALL
+TRACE-TABLE
+ABBREVIATED
+CHAR-TO-HEX
+END-OF-FILE
+ENDFUNCTION
+ENVIRONMENT
+ASSOCIATION
+COL_HEADING
+EDITOR-CALL
+END-OF-PAGE
+ENGINEERING
+IMPLEMENTED
+INTENSIFIED
+RADIOBUTTON
+SYSTEM-EXIT
+TOP-OF-PAGE
+TRANSACTION
+APPLICATION
+CONCATENATE
+DESTINATION
+ENHANCEMENT
+IMMEDIATELY
+NO-GROUPING
+PRECOMPILED
+REPLACEMENT
+TITLE-LINES
+ACTIVATION
+BYTE-ORDER
+CLASS-POOL
+CONNECTION
+CONVERSION
+DEFINITION
+DEPARTMENT
+EXPIRATION
+INHERITING
+MESSAGE-ID
+NO-HEADING
+PERFORMING
+QUEUE-ONLY
+RIGHTSPACE
+SCIENTIFIC
+STATUSINFO
+STRUCTURES
+SYNCPOINTS
+WITH-TITLE
+ATTRIBUTES
+BOUNDARIES
+CLASS-DATA
+COL_NORMAL
+DD/MM/YYYY
+DESCENDING
+INTERFACES
+LINE-COUNT
+MM/DD/YYYY
+NON-UNIQUE
+PRESERVING
+SELECTIONS
+STATEMENTS
+SUBROUTINE
+TRUNCATION
+TYPE-POOLS
+ARITHMETIC
+BACKGROUND
+ENDPROVIDE
+EXCEPTIONS
+IDENTIFIER
+INDEX-LINE
+OBLIGATORY
+PARAMETERS
+PERCENTAGE
+PUSHBUTTON
+RESOLUTION
+COMPONENTS
+DEALLOCATE
+DISCONNECT
+DUPLICATES
+FIRST-LINE
+HEAD-LINES
+NO-DISPLAY
+OCCURRENCE
+RESPECTING
+RETURNCODE
+SUBMATCHES
+TRACE-FILE
+ASCENDING
+BYPASSING
+ENDMODULE
+EXCEPTION
+EXCLUDING
+EXPORTING
+INCREMENT
+MATCHCODE
+PARAMETER
+PARTIALLY
+PREFERRED
+REFERENCE
+REPLACING
+RETURNING
+SELECTION
+SEPARATED
+SPECIFIED
+STATEMENT
+TIMESTAMP
+TYPE-POOL
+ACCEPTING
+APPENDAGE
+ASSIGNING
+COL_GROUP
+COMPARING
+CONSTANTS
+DANGEROUS
+IMPORTING
+INSTANCES
+LEFTSPACE
+LOG-POINT
+QUICKINFO
+READ-ONLY
+SCROLLING
+SQLSCRIPT
+STEP-LOOP
+TOP-LINES
+TRANSLATE
+APPENDING
+AUTHORITY
+CHARACTER
+COMPONENT
+CONDITION
+DIRECTORY
+DUPLICATE
+MESSAGING
+RECEIVING
+SUBSCREEN
+ACCORDING
+COL_TOTAL
+END-LINES
+ENDMETHOD
+ENDSELECT
+EXPANDING
+EXTENSION
+INCLUDING
+INFOTYPES
+INTERFACE
+INTERVALS
+LINE-SIZE
+PF-STATUS
+PROCEDURE
+PROTECTED
+REQUESTED
+RESUMABLE
+RIGHTPLUS
+SAP-SPOOL
+SECONDARY
+STRUCTURE
+SUBSTRING
+TABLEVIEW
+NUMOFCHAR
+ADJACENT
+ANALYSIS
+ASSIGNED
+BACKWARD
+CHANNELS
+CHECKBOX
+CONTINUE
+CRITICAL
+DATAINFO
+DD/MM/YY
+DURATION
+ENCODING
+ENDCLASS
+FUNCTION
+LEFTPLUS
+LINEFEED
+MM/DD/YY
+OVERFLOW
+RECEIVED
+SKIPPING
+SORTABLE
+STANDARD
+SUBTRACT
+SUPPRESS
+TABSTRIP
+TITLEBAR
+TRUNCATE
+UNASSIGN
+WHENEVER
+ANALYZER
+COALESCE
+COMMENTS
+CONDENSE
+DECIMALS
+DEFERRED
+ENDWHILE
+EXPLICIT
+KEYWORDS
+MESSAGES
+POSITION
+PRIORITY
+RECEIVER
+RENAMING
+TIMEZONE
+TRAILING
+ALLOCATE
+CENTERED
+CIRCULAR
+CONTROLS
+CURRENCY
+DELETING
+DESCRIBE
+DISTANCE
+ENDCATCH
+EXPONENT
+EXTENDED
+GENERATE
+IGNORING
+INCLUDES
+INTERNAL
+MAJOR-ID
+MODIFIER
+NEW-LINE
+OPTIONAL
+PROPERTY
+ROLLBACK
+STARTING
+SUPPLIED
+ABSTRACT
+CHANGING
+CONTEXTS
+CREATING
+CUSTOMER
+DATABASE
+DAYLIGHT
+DEFINING
+DISTINCT
+DIVISION
+ENABLING
+ENDCHAIN
+ESCAPING
+HARMLESS
+IMPLICIT
+INACTIVE
+LANGUAGE
+MINOR-ID
+MULTIPLY
+NEW-PAGE
+NO-TITLE
+POS_HIGH
+SEPARATE
+TEXTPOOL
+TRANSFER
+SELECTOR
+DBMAXLEN
+ITERATOR
+SELECTOR
+ARCHIVE
+BIT-XOR
+BYTE-CO
+COLLECT
+COMMENT
+CURRENT
+DEFAULT
+DISPLAY
+ENDFORM
+EXTRACT
+LEADING
+LISTBOX
+LOCATOR
+MEMBERS
+METHODS
+NESTING
+POS_LOW
+PROCESS
+PROVIDE
+RAISING
+RESERVE
+SECONDS
+SUMMARY
+VISIBLE
+BETWEEN
+BIT-AND
+BYTE-CS
+CLEANUP
+COMPUTE
+CONTROL
+CONVERT
+DATASET
+ENDCASE
+FORWARD
+HEADERS
+HOTSPOT
+INCLUDE
+INVERSE
+KEEPING
+NO-ZERO
+OBJECTS
+OVERLAY
+PADDING
+PATTERN
+PROGRAM
+REFRESH
+SECTION
+SUMMING
+TESTING
+VERSION
+WINDOWS
+WITHOUT
+BIT-NOT
+BYTE-CA
+BYTE-NA
+CASTING
+CONTEXT
+COUNTRY
+DYNAMIC
+ENABLED
+ENDLOOP
+EXECUTE
+FRIENDS
+HANDLER
+HEADING
+INITIAL
+ *-INPUT
+LOGFILE
+MAXIMUM
+MINIMUM
+NO-GAPS
+NO-SIGN
+PRAGMAS
+PRIMARY
+PRIVATE
+REDUCED
+REPLACE
+REQUEST
+RESULTS
+UNICODE
+WARNING
+ALIASES
+BYTE-CN
+BYTE-NS
+CALLING
+COL_KEY
+COLUMNS
+CONNECT
+ENDEXEC
+ENTRIES
+EXCLUDE
+FILTERS
+FURTHER
+HELP-ID
+LOGICAL
+MAPPING
+MESSAGE
+NAMETAB
+OPTIONS
+PACKAGE
+PERFORM
+RECEIVE
+STATICS
+VARYING
+BINDING
+CHARLEN
+GREATER
+XSTRLEN
+ACCEPT
+APPEND
+DETAIL
+ELSEIF
+ENDING
+ENDTRY
+FORMAT
+FRAMES
+GIVING
+HASHED
+HEADER
+IMPORT
+INSERT
+MARGIN
+MODULE
+NATIVE
+OBJECT
+OFFSET
+REMOTE
+RESUME
+SAVING
+SIMPLE
+SUBMIT
+TABBED
+TOKENS
+UNIQUE
+UNPACK
+UPDATE
+WINDOW
+YELLOW
+ACTUAL
+ASPECT
+CENTER
+CURSOR
+DELETE
+DIALOG
+DIVIDE
+DURING
+ERRORS
+EVENTS
+EXTEND
+FILTER
+HANDLE
+HAVING
+IGNORE
+LITTLE
+MEMORY
+NO-GAP
+OCCURS
+OPTION
+PERSON
+PLACES
+PUBLIC
+REDUCE
+REPORT
+RESULT
+SINGLE
+SORTED
+SWITCH
+SYNTAX
+TARGET
+VALUES
+WRITER
+ASSERT
+BLOCKS
+BOUNDS
+BUFFER
+CHANGE
+COLUMN
+COMMIT
+CONCAT
+COPIES
+CREATE
+DDMMYY
+DEFINE
+ENDIAN
+ESCAPE
+EXPAND
+KERNEL
+LAYOUT
+LEGACY
+LEVELS
+MMDDYY
+NUMBER
+OUTPUT
+RANGES
+READER
+RETURN
+SCREEN
+SEARCH
+SELECT
+SHARED
+SOURCE
+STABLE
+STATIC
+SUBKEY
+SUFFIX
+TABLES
+UNWIND
+YYMMDD
+ASSIGN
+BACKUP
+BEFORE
+BINARY
+BIT-OR
+BLANKS
+CLIENT
+CODING
+COMMON
+DEMAND
+DYNPRO
+EXCEPT
+EXISTS
+EXPORT
+FIELDS
+GLOBAL
+GROUPS
+LENGTH
+LOCALE
+MEDIUM
+METHOD
+MODIFY
+NESTED
+OTHERS
+REJECT
+SCROLL
+SUPPLY
+SYMBOL
+ENDFOR
+STRLEN
+ALIGN
+BEGIN
+BOUND
+ENDAT
+ENTRY
+EVENT
+FINAL
+FLUSH
+GRANT
+INNER
+SHORT
+USING
+WRITE
+AFTER
+BLACK
+BLOCK
+CLOCK
+COLOR
+COUNT
+DUMMY
+EMPTY
+ENDDO
+ENDON
+GREEN
+INDEX
+INOUT
+LEAVE
+LEVEL
+LINES
+MODIF
+ORDER
+OUTER
+RANGE
+RESET
+RETRY
+RIGHT
+SMART
+SPLIT
+STYLE
+TABLE
+THROW
+UNDER
+UNTIL
+UPPER
+UTF-8
+WHERE
+ALIAS
+BLANK
+CLEAR
+CLOSE
+EXACT
+FETCH
+FIRST
+FOUND
+GROUP
+LLANG
+LOCAL
+OTHER
+REGEX
+SPOOL
+TITLE
+TYPES
+VALID
+WHILE
+ALPHA
+BOXED
+CATCH
+CHAIN
+CHECK
+CLASS
+COVER
+ENDIF
+EQUIV
+FIELD
+FLOOR
+FRAME
+INPUT
+LOWER
+MATCH
+NODES
+PAGES
+PRINT
+RAISE
+ROUND
+SHIFT
+SPACE
+SPOTS
+STAMP
+STATE
+TASKS
+TIMES
+TRMAC
+ULINE
+UNION
+VALUE
+WIDTH
+EQUAL
+LOG10
+TRUNC
+BLOB
+CASE
+CEIL
+CLOB
+COND
+EXIT
+FILE
+GAPS
+HOLD
+INCL
+INTO
+KEEP
+KEYS
+LAST
+LINE
+LONG
+LPAD
+MAIL
+MODE
+OPEN
+PINK
+READ
+ROWS
+TEST
+THEN
+ZERO
+AREA
+BACK
+BADI
+BYTE
+CAST
+EDIT
+EXEC
+FAIL
+FIND
+FKEQ
+FONT
+FREE
+GKEQ
+HIDE
+INIT
+ITNO
+LATE
+LOOP
+MAIN
+MARK
+MOVE
+NEXT
+NULL
+RISK
+ROLE
+UNIT
+WAIT
+ZONE
+BASE
+CALL
+CODE
+DATA
+DATE
+FKGE
+GKGE
+HIGH
+KIND
+LEFT
+LIST
+MASK
+MESH
+NAME
+NODE
+PACK
+PAGE
+POOL
+SEND
+SIGN
+SIZE
+SOME
+STOP
+TASK
+TEXT
+TIME
+USER
+VARY
+WITH
+WORD
+BLUE
+CONV
+COPY
+DEEP
+ELSE
+FORM
+FROM
+HINT
+ICON
+JOIN
+LIKE
+LOAD
+ONLY
+PART
+SCAN
+SKIP
+SORT
+TYPE
+UNIX
+VIEW
+WHEN
+WORK
+ACOS
+ASIN
+ATAN
+COSH
+EACH
+FRAC
+LESS
+RTTI
+SINH
+SQRT
+TANH
+AVG
+BIT
+DIV
+ISO
+LET
+OUT
+PAD
+SQL
+ALL
+CI_
+CPI
+END
+LOB
+LPI
+MAX
+MIN
+NEW
+OLE
+RUN
+SET
+?TO
+YES
+ABS
+ADD
+AND
+BIG
+FOR
+HDB
+JOB
+LOW
+NOT
+SAP
+TRY
+VIA
+XML
+ANY
+GET
+IDS
+KEY
+MOD
+OFF
+PUT
+RAW
+RED
+REF
+SUM
+TAB
+XSD
+CNT
+COS
+EXP
+LOG
+SIN
+TAN
+XOR
+AT
+CO
+CP
+DO
+GT
+ID
+IF
+NS
+OR
+BT
+CA
+CS
+GE
+NA
+NB
+EQ
+IN
+LT
+NE
+NO
+OF
+ON
+PF
+TO
+AS
+BY
+CN
+IS
+LE
+NP
+UP
+E
+I
+M
+O
+Z
+C
+X
+
+----------------------------------------------------
+
+[
+	["keyword", "SCIENTIFIC_WITH_LEADING_ZERO"],
+	["keyword", "SCALE_PRESERVING_SCIENTIFIC"],
+	["keyword", "RMC_COMMUNICATION_FAILURE"],
+	["keyword", "END-ENHANCEMENT-SECTION"],
+	["keyword", "MULTIPLY-CORRESPONDING"],
+	["keyword", "SUBTRACT-CORRESPONDING"],
+	["keyword", "VERIFICATION-MESSAGE"],
+	["keyword", "DIVIDE-CORRESPONDING"],
+	["keyword", "ENHANCEMENT-SECTION"],
+	["keyword", "CURRENCY_CONVERSION"],
+	["keyword", "RMC_SYSTEM_FAILURE"],
+	["keyword", "START-OF-SELECTION"],
+	["keyword", "MOVE-CORRESPONDING"],
+	["keyword", "RMC_INVALID_STATUS"],
+	["keyword", "CUSTOMER-FUNCTION"],
+	["keyword", "END-OF-DEFINITION"],
+	["keyword", "ENHANCEMENT-POINT"],
+	["keyword", "SYSTEM-EXCEPTIONS"],
+	["keyword", "ADD-CORRESPONDING"],
+	["keyword", "SCALE_PRESERVING"],
+	["keyword", "SELECTION-SCREEN"],
+	["keyword", "CURSOR-SELECTION"],
+	["keyword", "END-OF-SELECTION"],
+	["keyword", "LOAD-OF-PROGRAM"],
+	["keyword", "SCROLL-BOUNDARY"],
+	["keyword", "SELECTION-TABLE"],
+	["keyword", "EXCEPTION-TABLE"],
+	["keyword", "IMPLEMENTATIONS"],
+	["keyword", "PARAMETER-TABLE"],
+	["keyword", "RIGHT-JUSTIFIED"],
+	["keyword", "UNIT_CONVERSION"],
+	["keyword", "AUTHORITY-CHECK"],
+	["keyword", "LIST-PROCESSING"],
+	["keyword", "SIGN_AS_POSTFIX"],
+	["keyword", "COL_BACKGROUND"],
+	["keyword", "IMPLEMENTATION"],
+	["keyword", "INTERFACE-POOL"],
+	["keyword", "TRANSFORMATION"],
+	["keyword", "IDENTIFICATION"],
+	["keyword", "ENDENHANCEMENT"],
+	["keyword", "LINE-SELECTION"],
+	["keyword", "INITIALIZATION"],
+	["keyword", "LEFT-JUSTIFIED"],
+	["keyword", "SELECT-OPTIONS"],
+	["keyword", "SELECTION-SETS"],
+	["keyword", "COMMUNICATION"],
+	["keyword", "CORRESPONDING"],
+	["keyword", "DECIMAL_SHIFT"],
+	["keyword", "PRINT-CONTROL"],
+	["keyword", "VALUE-REQUEST"],
+	["keyword", "CHAIN-REQUEST"],
+	["keyword", "FUNCTION-POOL"],
+	["keyword", "FIELD-SYMBOLS"],
+	["keyword", "FUNCTIONALITY"],
+	["keyword", "INVERTED-DATE"],
+	["keyword", "SELECTION-SET"],
+	["keyword", "CLASS-METHODS"],
+	["keyword", "OUTPUT-LENGTH"],
+	["keyword", "CLASS-CODING"],
+	["keyword", "COL_NEGATIVE"],
+	["keyword", "ERRORMESSAGE"],
+	["keyword", "FIELD-GROUPS"],
+	["keyword", "HELP-REQUEST"],
+	["keyword", "NO-EXTENSION"],
+	["keyword", "NO-TOPOFPAGE"],
+	["keyword", "REDEFINITION"],
+	["keyword", "DISPLAY-MODE"],
+	["keyword", "ENDINTERFACE"],
+	["keyword", "EXIT-COMMAND"],
+	["keyword", "FIELD-SYMBOL"],
+	["keyword", "NO-SCROLLING"],
+	["keyword", "SHORTDUMP-ID"],
+	["keyword", "ACCESSPOLICY"],
+	["keyword", "CLASS-EVENTS"],
+	["keyword", "COL_POSITIVE"],
+	["keyword", "DECLARATIONS"],
+	["keyword", "ENHANCEMENTS"],
+	["keyword", "FILTER-TABLE"],
+	["keyword", "SWITCHSTATES"],
+	["keyword", "SYNTAX-CHECK"],
+	["keyword", "TRANSPORTING"],
+	["keyword", "ASYNCHRONOUS"],
+	["keyword", "SYNTAX-TRACE"],
+	["keyword", "TOKENIZATION"],
+	["keyword", "USER-COMMAND"],
+	["keyword", "WITH-HEADING"],
+	["keyword", "ABAP-SOURCE"],
+	["keyword", "BREAK-POINT"],
+	["keyword", "CHAIN-INPUT"],
+	["keyword", "COMPRESSION"],
+	["keyword", "FIXED-POINT"],
+	["keyword", "NEW-SECTION"],
+	["keyword", "NON-UNICODE"],
+	["keyword", "OCCURRENCES"],
+	["keyword", "RESPONSIBLE"],
+	["keyword", "SYSTEM-CALL"],
+	["keyword", "TRACE-TABLE"],
+	["keyword", "ABBREVIATED"],
+	["keyword", "CHAR-TO-HEX"],
+	["keyword", "END-OF-FILE"],
+	["keyword", "ENDFUNCTION"],
+	["keyword", "ENVIRONMENT"],
+	["keyword", "ASSOCIATION"],
+	["keyword", "COL_HEADING"],
+	["keyword", "EDITOR-CALL"],
+	["keyword", "END-OF-PAGE"],
+	["keyword", "ENGINEERING"],
+	["keyword", "IMPLEMENTED"],
+	["keyword", "INTENSIFIED"],
+	["keyword", "RADIOBUTTON"],
+	["keyword", "SYSTEM-EXIT"],
+	["keyword", "TOP-OF-PAGE"],
+	["keyword", "TRANSACTION"],
+	["keyword", "APPLICATION"],
+	["keyword", "CONCATENATE"],
+	["keyword", "DESTINATION"],
+	["keyword", "ENHANCEMENT"],
+	["keyword", "IMMEDIATELY"],
+	["keyword", "NO-GROUPING"],
+	["keyword", "PRECOMPILED"],
+	["keyword", "REPLACEMENT"],
+	["keyword", "TITLE-LINES"],
+	["keyword", "ACTIVATION"],
+	["keyword", "BYTE-ORDER"],
+	["keyword", "CLASS-POOL"],
+	["keyword", "CONNECTION"],
+	["keyword", "CONVERSION"],
+	["keyword", "DEFINITION"],
+	["keyword", "DEPARTMENT"],
+	["keyword", "EXPIRATION"],
+	["keyword", "INHERITING"],
+	["keyword", "MESSAGE-ID"],
+	["keyword", "NO-HEADING"],
+	["keyword", "PERFORMING"],
+	["keyword", "QUEUE-ONLY"],
+	["keyword", "RIGHTSPACE"],
+	["keyword", "SCIENTIFIC"],
+	["keyword", "STATUSINFO"],
+	["keyword", "STRUCTURES"],
+	["keyword", "SYNCPOINTS"],
+	["keyword", "WITH-TITLE"],
+	["keyword", "ATTRIBUTES"],
+	["keyword", "BOUNDARIES"],
+	["keyword", "CLASS-DATA"],
+	["keyword", "COL_NORMAL"],
+	["keyword", "DD/MM/YYYY"],
+	["keyword", "DESCENDING"],
+	["keyword", "INTERFACES"],
+	["keyword", "LINE-COUNT"],
+	["keyword", "MM/DD/YYYY"],
+	["keyword", "NON-UNIQUE"],
+	["keyword", "PRESERVING"],
+	["keyword", "SELECTIONS"],
+	["keyword", "STATEMENTS"],
+	["keyword", "SUBROUTINE"],
+	["keyword", "TRUNCATION"],
+	["keyword", "TYPE-POOLS"],
+	["keyword", "ARITHMETIC"],
+	["keyword", "BACKGROUND"],
+	["keyword", "ENDPROVIDE"],
+	["keyword", "EXCEPTIONS"],
+	["keyword", "IDENTIFIER"],
+	["keyword", "INDEX-LINE"],
+	["keyword", "OBLIGATORY"],
+	["keyword", "PARAMETERS"],
+	["keyword", "PERCENTAGE"],
+	["keyword", "PUSHBUTTON"],
+	["keyword", "RESOLUTION"],
+	["keyword", "COMPONENTS"],
+	["keyword", "DEALLOCATE"],
+	["keyword", "DISCONNECT"],
+	["keyword", "DUPLICATES"],
+	["keyword", "FIRST-LINE"],
+	["keyword", "HEAD-LINES"],
+	["keyword", "NO-DISPLAY"],
+	["keyword", "OCCURRENCE"],
+	["keyword", "RESPECTING"],
+	["keyword", "RETURNCODE"],
+	["keyword", "SUBMATCHES"],
+	["keyword", "TRACE-FILE"],
+	["keyword", "ASCENDING"],
+	["keyword", "BYPASSING"],
+	["keyword", "ENDMODULE"],
+	["keyword", "EXCEPTION"],
+	["keyword", "EXCLUDING"],
+	["keyword", "EXPORTING"],
+	["keyword", "INCREMENT"],
+	["keyword", "MATCHCODE"],
+	["keyword", "PARAMETER"],
+	["keyword", "PARTIALLY"],
+	["keyword", "PREFERRED"],
+	["keyword", "REFERENCE"],
+	["keyword", "REPLACING"],
+	["keyword", "RETURNING"],
+	["keyword", "SELECTION"],
+	["keyword", "SEPARATED"],
+	["keyword", "SPECIFIED"],
+	["keyword", "STATEMENT"],
+	["keyword", "TIMESTAMP"],
+	["keyword", "TYPE-POOL"],
+	["keyword", "ACCEPTING"],
+	["keyword", "APPENDAGE"],
+	["keyword", "ASSIGNING"],
+	["keyword", "COL_GROUP"],
+	["keyword", "COMPARING"],
+	["keyword", "CONSTANTS"],
+	["keyword", "DANGEROUS"],
+	["keyword", "IMPORTING"],
+	["keyword", "INSTANCES"],
+	["keyword", "LEFTSPACE"],
+	["keyword", "LOG-POINT"],
+	["keyword", "QUICKINFO"],
+	["keyword", "READ-ONLY"],
+	["keyword", "SCROLLING"],
+	["keyword", "SQLSCRIPT"],
+	["keyword", "STEP-LOOP"],
+	["keyword", "TOP-LINES"],
+	["keyword", "TRANSLATE"],
+	["keyword", "APPENDING"],
+	["keyword", "AUTHORITY"],
+	["keyword", "CHARACTER"],
+	["keyword", "COMPONENT"],
+	["keyword", "CONDITION"],
+	["keyword", "DIRECTORY"],
+	["keyword", "DUPLICATE"],
+	["keyword", "MESSAGING"],
+	["keyword", "RECEIVING"],
+	["keyword", "SUBSCREEN"],
+	["keyword", "ACCORDING"],
+	["keyword", "COL_TOTAL"],
+	["keyword", "END-LINES"],
+	["keyword", "ENDMETHOD"],
+	["keyword", "ENDSELECT"],
+	["keyword", "EXPANDING"],
+	["keyword", "EXTENSION"],
+	["keyword", "INCLUDING"],
+	["keyword", "INFOTYPES"],
+	["keyword", "INTERFACE"],
+	["keyword", "INTERVALS"],
+	["keyword", "LINE-SIZE"],
+	["keyword", "PF-STATUS"],
+	["keyword", "PROCEDURE"],
+	["keyword", "PROTECTED"],
+	["keyword", "REQUESTED"],
+	["keyword", "RESUMABLE"],
+	["keyword", "RIGHTPLUS"],
+	["keyword", "SAP-SPOOL"],
+	["keyword", "SECONDARY"],
+	["keyword", "STRUCTURE"],
+	["keyword", "SUBSTRING"],
+	["keyword", "TABLEVIEW"],
+	["keyword", "NUMOFCHAR"],
+	["keyword", "ADJACENT"],
+	["keyword", "ANALYSIS"],
+	["keyword", "ASSIGNED"],
+	["keyword", "BACKWARD"],
+	["keyword", "CHANNELS"],
+	["keyword", "CHECKBOX"],
+	["keyword", "CONTINUE"],
+	["keyword", "CRITICAL"],
+	["keyword", "DATAINFO"],
+	["keyword", "DD/MM/YY"],
+	["keyword", "DURATION"],
+	["keyword", "ENCODING"],
+	["keyword", "ENDCLASS"],
+	["keyword", "FUNCTION"],
+	["keyword", "LEFTPLUS"],
+	["keyword", "LINEFEED"],
+	["keyword", "MM/DD/YY"],
+	["keyword", "OVERFLOW"],
+	["keyword", "RECEIVED"],
+	["keyword", "SKIPPING"],
+	["keyword", "SORTABLE"],
+	["keyword", "STANDARD"],
+	["keyword", "SUBTRACT"],
+	["keyword", "SUPPRESS"],
+	["keyword", "TABSTRIP"],
+	["keyword", "TITLEBAR"],
+	["keyword", "TRUNCATE"],
+	["keyword", "UNASSIGN"],
+	["keyword", "WHENEVER"],
+	["keyword", "ANALYZER"],
+	["keyword", "COALESCE"],
+	["keyword", "COMMENTS"],
+	["keyword", "CONDENSE"],
+	["keyword", "DECIMALS"],
+	["keyword", "DEFERRED"],
+	["keyword", "ENDWHILE"],
+	["keyword", "EXPLICIT"],
+	["keyword", "KEYWORDS"],
+	["keyword", "MESSAGES"],
+	["keyword", "POSITION"],
+	["keyword", "PRIORITY"],
+	["keyword", "RECEIVER"],
+	["keyword", "RENAMING"],
+	["keyword", "TIMEZONE"],
+	["keyword", "TRAILING"],
+	["keyword", "ALLOCATE"],
+	["keyword", "CENTERED"],
+	["keyword", "CIRCULAR"],
+	["keyword", "CONTROLS"],
+	["keyword", "CURRENCY"],
+	["keyword", "DELETING"],
+	["keyword", "DESCRIBE"],
+	["keyword", "DISTANCE"],
+	["keyword", "ENDCATCH"],
+	["keyword", "EXPONENT"],
+	["keyword", "EXTENDED"],
+	["keyword", "GENERATE"],
+	["keyword", "IGNORING"],
+	["keyword", "INCLUDES"],
+	["keyword", "INTERNAL"],
+	["keyword", "MAJOR-ID"],
+	["keyword", "MODIFIER"],
+	["keyword", "NEW-LINE"],
+	["keyword", "OPTIONAL"],
+	["keyword", "PROPERTY"],
+	["keyword", "ROLLBACK"],
+	["keyword", "STARTING"],
+	["keyword", "SUPPLIED"],
+	["keyword", "ABSTRACT"],
+	["keyword", "CHANGING"],
+	["keyword", "CONTEXTS"],
+	["keyword", "CREATING"],
+	["keyword", "CUSTOMER"],
+	["keyword", "DATABASE"],
+	["keyword", "DAYLIGHT"],
+	["keyword", "DEFINING"],
+	["keyword", "DISTINCT"],
+	["keyword", "DIVISION"],
+	["keyword", "ENABLING"],
+	["keyword", "ENDCHAIN"],
+	["keyword", "ESCAPING"],
+	["keyword", "HARMLESS"],
+	["keyword", "IMPLICIT"],
+	["keyword", "INACTIVE"],
+	["keyword", "LANGUAGE"],
+	["keyword", "MINOR-ID"],
+	["keyword", "MULTIPLY"],
+	["keyword", "NEW-PAGE"],
+	["keyword", "NO-TITLE"],
+	["keyword", "POS_HIGH"],
+	["keyword", "SEPARATE"],
+	["keyword", "TEXTPOOL"],
+	["keyword", "TRANSFER"],
+	["keyword", "SELECTOR"],
+	["keyword", "DBMAXLEN"],
+	["keyword", "ITERATOR"],
+	["keyword", "SELECTOR"],
+	["keyword", "ARCHIVE"],
+	["keyword", "BIT-XOR"],
+	["keyword", "BYTE-CO"],
+	["keyword", "COLLECT"],
+	["keyword", "COMMENT"],
+	["keyword", "CURRENT"],
+	["keyword", "DEFAULT"],
+	["keyword", "DISPLAY"],
+	["keyword", "ENDFORM"],
+	["keyword", "EXTRACT"],
+	["keyword", "LEADING"],
+	["keyword", "LISTBOX"],
+	["keyword", "LOCATOR"],
+	["keyword", "MEMBERS"],
+	["keyword", "METHODS"],
+	["keyword", "NESTING"],
+	["keyword", "POS_LOW"],
+	["keyword", "PROCESS"],
+	["keyword", "PROVIDE"],
+	["keyword", "RAISING"],
+	["keyword", "RESERVE"],
+	["keyword", "SECONDS"],
+	["keyword", "SUMMARY"],
+	["keyword", "VISIBLE"],
+	["keyword", "BETWEEN"],
+	["keyword", "BIT-AND"],
+	["keyword", "BYTE-CS"],
+	["keyword", "CLEANUP"],
+	["keyword", "COMPUTE"],
+	["keyword", "CONTROL"],
+	["keyword", "CONVERT"],
+	["keyword", "DATASET"],
+	["keyword", "ENDCASE"],
+	["keyword", "FORWARD"],
+	["keyword", "HEADERS"],
+	["keyword", "HOTSPOT"],
+	["keyword", "INCLUDE"],
+	["keyword", "INVERSE"],
+	["keyword", "KEEPING"],
+	["keyword", "NO-ZERO"],
+	["keyword", "OBJECTS"],
+	["keyword", "OVERLAY"],
+	["keyword", "PADDING"],
+	["keyword", "PATTERN"],
+	["keyword", "PROGRAM"],
+	["keyword", "REFRESH"],
+	["keyword", "SECTION"],
+	["keyword", "SUMMING"],
+	["keyword", "TESTING"],
+	["keyword", "VERSION"],
+	["keyword", "WINDOWS"],
+	["keyword", "WITHOUT"],
+	["keyword", "BIT-NOT"],
+	["keyword", "BYTE-CA"],
+	["keyword", "BYTE-NA"],
+	["keyword", "CASTING"],
+	["keyword", "CONTEXT"],
+	["keyword", "COUNTRY"],
+	["keyword", "DYNAMIC"],
+	["keyword", "ENABLED"],
+	["keyword", "ENDLOOP"],
+	["keyword", "EXECUTE"],
+	["keyword", "FRIENDS"],
+	["keyword", "HANDLER"],
+	["keyword", "HEADING"],
+	["keyword", "INITIAL"],
+	["keyword", "*-INPUT"],
+	["keyword", "LOGFILE"],
+	["keyword", "MAXIMUM"],
+	["keyword", "MINIMUM"],
+	["keyword", "NO-GAPS"],
+	["keyword", "NO-SIGN"],
+	["keyword", "PRAGMAS"],
+	["keyword", "PRIMARY"],
+	["keyword", "PRIVATE"],
+	["keyword", "REDUCED"],
+	["keyword", "REPLACE"],
+	["keyword", "REQUEST"],
+	["keyword", "RESULTS"],
+	["keyword", "UNICODE"],
+	["keyword", "WARNING"],
+	["keyword", "ALIASES"],
+	["keyword", "BYTE-CN"],
+	["keyword", "BYTE-NS"],
+	["keyword", "CALLING"],
+	["keyword", "COL_KEY"],
+	["keyword", "COLUMNS"],
+	["keyword", "CONNECT"],
+	["keyword", "ENDEXEC"],
+	["keyword", "ENTRIES"],
+	["keyword", "EXCLUDE"],
+	["keyword", "FILTERS"],
+	["keyword", "FURTHER"],
+	["keyword", "HELP-ID"],
+	["keyword", "LOGICAL"],
+	["keyword", "MAPPING"],
+	["keyword", "MESSAGE"],
+	["keyword", "NAMETAB"],
+	["keyword", "OPTIONS"],
+	["keyword", "PACKAGE"],
+	["keyword", "PERFORM"],
+	["keyword", "RECEIVE"],
+	["keyword", "STATICS"],
+	["keyword", "VARYING"],
+	["keyword", "BINDING"],
+	["keyword", "CHARLEN"],
+	["keyword", "GREATER"],
+	["keyword", "XSTRLEN"],
+	["keyword", "ACCEPT"],
+	["keyword", "APPEND"],
+	["keyword", "DETAIL"],
+	["keyword", "ELSEIF"],
+	["keyword", "ENDING"],
+	["keyword", "ENDTRY"],
+	["keyword", "FORMAT"],
+	["keyword", "FRAMES"],
+	["keyword", "GIVING"],
+	["keyword", "HASHED"],
+	["keyword", "HEADER"],
+	["keyword", "IMPORT"],
+	["keyword", "INSERT"],
+	["keyword", "MARGIN"],
+	["keyword", "MODULE"],
+	["keyword", "NATIVE"],
+	["keyword", "OBJECT"],
+	["keyword", "OFFSET"],
+	["keyword", "REMOTE"],
+	["keyword", "RESUME"],
+	["keyword", "SAVING"],
+	["keyword", "SIMPLE"],
+	["keyword", "SUBMIT"],
+	["keyword", "TABBED"],
+	["keyword", "TOKENS"],
+	["keyword", "UNIQUE"],
+	["keyword", "UNPACK"],
+	["keyword", "UPDATE"],
+	["keyword", "WINDOW"],
+	["keyword", "YELLOW"],
+	["keyword", "ACTUAL"],
+	["keyword", "ASPECT"],
+	["keyword", "CENTER"],
+	["keyword", "CURSOR"],
+	["keyword", "DELETE"],
+	["keyword", "DIALOG"],
+	["keyword", "DIVIDE"],
+	["keyword", "DURING"],
+	["keyword", "ERRORS"],
+	["keyword", "EVENTS"],
+	["keyword", "EXTEND"],
+	["keyword", "FILTER"],
+	["keyword", "HANDLE"],
+	["keyword", "HAVING"],
+	["keyword", "IGNORE"],
+	["keyword", "LITTLE"],
+	["keyword", "MEMORY"],
+	["keyword", "NO-GAP"],
+	["keyword", "OCCURS"],
+	["keyword", "OPTION"],
+	["keyword", "PERSON"],
+	["keyword", "PLACES"],
+	["keyword", "PUBLIC"],
+	["keyword", "REDUCE"],
+	["keyword", "REPORT"],
+	["keyword", "RESULT"],
+	["keyword", "SINGLE"],
+	["keyword", "SORTED"],
+	["keyword", "SWITCH"],
+	["keyword", "SYNTAX"],
+	["keyword", "TARGET"],
+	["keyword", "VALUES"],
+	["keyword", "WRITER"],
+	["keyword", "ASSERT"],
+	["keyword", "BLOCKS"],
+	["keyword", "BOUNDS"],
+	["keyword", "BUFFER"],
+	["keyword", "CHANGE"],
+	["keyword", "COLUMN"],
+	["keyword", "COMMIT"],
+	["keyword", "CONCAT"],
+	["keyword", "COPIES"],
+	["keyword", "CREATE"],
+	["keyword", "DDMMYY"],
+	["keyword", "DEFINE"],
+	["keyword", "ENDIAN"],
+	["keyword", "ESCAPE"],
+	["keyword", "EXPAND"],
+	["keyword", "KERNEL"],
+	["keyword", "LAYOUT"],
+	["keyword", "LEGACY"],
+	["keyword", "LEVELS"],
+	["keyword", "MMDDYY"],
+	["keyword", "NUMBER"],
+	["keyword", "OUTPUT"],
+	["keyword", "RANGES"],
+	["keyword", "READER"],
+	["keyword", "RETURN"],
+	["keyword", "SCREEN"],
+	["keyword", "SEARCH"],
+	["keyword", "SELECT"],
+	["keyword", "SHARED"],
+	["keyword", "SOURCE"],
+	["keyword", "STABLE"],
+	["keyword", "STATIC"],
+	["keyword", "SUBKEY"],
+	["keyword", "SUFFIX"],
+	["keyword", "TABLES"],
+	["keyword", "UNWIND"],
+	["keyword", "YYMMDD"],
+	["keyword", "ASSIGN"],
+	["keyword", "BACKUP"],
+	["keyword", "BEFORE"],
+	["keyword", "BINARY"],
+	["keyword", "BIT-OR"],
+	["keyword", "BLANKS"],
+	["keyword", "CLIENT"],
+	["keyword", "CODING"],
+	["keyword", "COMMON"],
+	["keyword", "DEMAND"],
+	["keyword", "DYNPRO"],
+	["keyword", "EXCEPT"],
+	["keyword", "EXISTS"],
+	["keyword", "EXPORT"],
+	["keyword", "FIELDS"],
+	["keyword", "GLOBAL"],
+	["keyword", "GROUPS"],
+	["keyword", "LENGTH"],
+	["keyword", "LOCALE"],
+	["keyword", "MEDIUM"],
+	["keyword", "METHOD"],
+	["keyword", "MODIFY"],
+	["keyword", "NESTED"],
+	["keyword", "OTHERS"],
+	["keyword", "REJECT"],
+	["keyword", "SCROLL"],
+	["keyword", "SUPPLY"],
+	["keyword", "SYMBOL"],
+	["keyword", "ENDFOR"],
+	["keyword", "STRLEN"],
+	["keyword", "ALIGN"],
+	["keyword", "BEGIN"],
+	["keyword", "BOUND"],
+	["keyword", "ENDAT"],
+	["keyword", "ENTRY"],
+	["keyword", "EVENT"],
+	["keyword", "FINAL"],
+	["keyword", "FLUSH"],
+	["keyword", "GRANT"],
+	["keyword", "INNER"],
+	["keyword", "SHORT"],
+	["keyword", "USING"],
+	["keyword", "WRITE"],
+	["keyword", "AFTER"],
+	["keyword", "BLACK"],
+	["keyword", "BLOCK"],
+	["keyword", "CLOCK"],
+	["keyword", "COLOR"],
+	["keyword", "COUNT"],
+	["keyword", "DUMMY"],
+	["keyword", "EMPTY"],
+	["keyword", "ENDDO"],
+	["keyword", "ENDON"],
+	["keyword", "GREEN"],
+	["keyword", "INDEX"],
+	["keyword", "INOUT"],
+	["keyword", "LEAVE"],
+	["keyword", "LEVEL"],
+	["keyword", "LINES"],
+	["keyword", "MODIF"],
+	["keyword", "ORDER"],
+	["keyword", "OUTER"],
+	["keyword", "RANGE"],
+	["keyword", "RESET"],
+	["keyword", "RETRY"],
+	["keyword", "RIGHT"],
+	["keyword", "SMART"],
+	["keyword", "SPLIT"],
+	["keyword", "STYLE"],
+	["keyword", "TABLE"],
+	["keyword", "THROW"],
+	["keyword", "UNDER"],
+	["keyword", "UNTIL"],
+	["keyword", "UPPER"],
+	["keyword", "UTF-8"],
+	["keyword", "WHERE"],
+	["keyword", "ALIAS"],
+	["keyword", "BLANK"],
+	["keyword", "CLEAR"],
+	["keyword", "CLOSE"],
+	["keyword", "EXACT"],
+	["keyword", "FETCH"],
+	["keyword", "FIRST"],
+	["keyword", "FOUND"],
+	["keyword", "GROUP"],
+	["keyword", "LLANG"],
+	["keyword", "LOCAL"],
+	["keyword", "OTHER"],
+	["keyword", "REGEX"],
+	["keyword", "SPOOL"],
+	["keyword", "TITLE"],
+	["keyword", "TYPES"],
+	["keyword", "VALID"],
+	["keyword", "WHILE"],
+	["keyword", "ALPHA"],
+	["keyword", "BOXED"],
+	["keyword", "CATCH"],
+	["keyword", "CHAIN"],
+	["keyword", "CHECK"],
+	["keyword", "CLASS"],
+	["keyword", "COVER"],
+	["keyword", "ENDIF"],
+	["keyword", "EQUIV"],
+	["keyword", "FIELD"],
+	["keyword", "FLOOR"],
+	["keyword", "FRAME"],
+	["keyword", "INPUT"],
+	["keyword", "LOWER"],
+	["keyword", "MATCH"],
+	["keyword", "NODES"],
+	["keyword", "PAGES"],
+	["keyword", "PRINT"],
+	["keyword", "RAISE"],
+	["keyword", "ROUND"],
+	["keyword", "SHIFT"],
+	["keyword", "SPACE"],
+	["keyword", "SPOTS"],
+	["keyword", "STAMP"],
+	["keyword", "STATE"],
+	["keyword", "TASKS"],
+	["keyword", "TIMES"],
+	["keyword", "TRMAC"],
+	["keyword", "ULINE"],
+	["keyword", "UNION"],
+	["keyword", "VALUE"],
+	["keyword", "WIDTH"],
+	["keyword", "EQUAL"],
+	["keyword", "LOG10"],
+	["keyword", "TRUNC"],
+	["keyword", "BLOB"],
+	["keyword", "CASE"],
+	["keyword", "CEIL"],
+	["keyword", "CLOB"],
+	["keyword", "COND"],
+	["keyword", "EXIT"],
+	["keyword", "FILE"],
+	["keyword", "GAPS"],
+	["keyword", "HOLD"],
+	["keyword", "INCL"],
+	["keyword", "INTO"],
+	["keyword", "KEEP"],
+	["keyword", "KEYS"],
+	["keyword", "LAST"],
+	["keyword", "LINE"],
+	["keyword", "LONG"],
+	["keyword", "LPAD"],
+	["keyword", "MAIL"],
+	["keyword", "MODE"],
+	["keyword", "OPEN"],
+	["keyword", "PINK"],
+	["keyword", "READ"],
+	["keyword", "ROWS"],
+	["keyword", "TEST"],
+	["keyword", "THEN"],
+	["keyword", "ZERO"],
+	["keyword", "AREA"],
+	["keyword", "BACK"],
+	["keyword", "BADI"],
+	["keyword", "BYTE"],
+	["keyword", "CAST"],
+	["keyword", "EDIT"],
+	["keyword", "EXEC"],
+	["keyword", "FAIL"],
+	["keyword", "FIND"],
+	["keyword", "FKEQ"],
+	["keyword", "FONT"],
+	["keyword", "FREE"],
+	["keyword", "GKEQ"],
+	["keyword", "HIDE"],
+	["keyword", "INIT"],
+	["keyword", "ITNO"],
+	["keyword", "LATE"],
+	["keyword", "LOOP"],
+	["keyword", "MAIN"],
+	["keyword", "MARK"],
+	["keyword", "MOVE"],
+	["keyword", "NEXT"],
+	["keyword", "NULL"],
+	["keyword", "RISK"],
+	["keyword", "ROLE"],
+	["keyword", "UNIT"],
+	["keyword", "WAIT"],
+	["keyword", "ZONE"],
+	["keyword", "BASE"],
+	["keyword", "CALL"],
+	["keyword", "CODE"],
+	["keyword", "DATA"],
+	["keyword", "DATE"],
+	["keyword", "FKGE"],
+	["keyword", "GKGE"],
+	["keyword", "HIGH"],
+	["keyword", "KIND"],
+	["keyword", "LEFT"],
+	["keyword", "LIST"],
+	["keyword", "MASK"],
+	["keyword", "MESH"],
+	["keyword", "NAME"],
+	["keyword", "NODE"],
+	["keyword", "PACK"],
+	["keyword", "PAGE"],
+	["keyword", "POOL"],
+	["keyword", "SEND"],
+	["keyword", "SIGN"],
+	["keyword", "SIZE"],
+	["keyword", "SOME"],
+	["keyword", "STOP"],
+	["keyword", "TASK"],
+	["keyword", "TEXT"],
+	["keyword", "TIME"],
+	["keyword", "USER"],
+	["keyword", "VARY"],
+	["keyword", "WITH"],
+	["keyword", "WORD"],
+	["keyword", "BLUE"],
+	["keyword", "CONV"],
+	["keyword", "COPY"],
+	["keyword", "DEEP"],
+	["keyword", "ELSE"],
+	["keyword", "FORM"],
+	["keyword", "FROM"],
+	["keyword", "HINT"],
+	["keyword", "ICON"],
+	["keyword", "JOIN"],
+	["keyword", "LIKE"],
+	["keyword", "LOAD"],
+	["keyword", "ONLY"],
+	["keyword", "PART"],
+	["keyword", "SCAN"],
+	["keyword", "SKIP"],
+	["keyword", "SORT"],
+	["keyword", "TYPE"],
+	["keyword", "UNIX"],
+	["keyword", "VIEW"],
+	["keyword", "WHEN"],
+	["keyword", "WORK"],
+	["keyword", "ACOS"],
+	["keyword", "ASIN"],
+	["keyword", "ATAN"],
+	["keyword", "COSH"],
+	["keyword", "EACH"],
+	["keyword", "FRAC"],
+	["keyword", "LESS"],
+	["keyword", "RTTI"],
+	["keyword", "SINH"],
+	["keyword", "SQRT"],
+	["keyword", "TANH"],
+	["keyword", "AVG"],
+	["keyword", "BIT"],
+	["keyword", "DIV"],
+	["keyword", "ISO"],
+	["keyword", "LET"],
+	["keyword", "OUT"],
+	["keyword", "PAD"],
+	["keyword", "SQL"],
+	["keyword", "ALL"],
+	["keyword", "CI_"],
+	["keyword", "CPI"],
+	["keyword", "END"],
+	["keyword", "LOB"],
+	["keyword", "LPI"],
+	["keyword", "MAX"],
+	["keyword", "MIN"],
+	["keyword", "NEW"],
+	["keyword", "OLE"],
+	["keyword", "RUN"],
+	["keyword", "SET"],
+	["keyword", "?TO"],
+	["keyword", "YES"],
+	["keyword", "ABS"],
+	["keyword", "ADD"],
+	["keyword", "AND"],
+	["keyword", "BIG"],
+	["keyword", "FOR"],
+	["keyword", "HDB"],
+	["keyword", "JOB"],
+	["keyword", "LOW"],
+	["keyword", "NOT"],
+	["keyword", "SAP"],
+	["keyword", "TRY"],
+	["keyword", "VIA"],
+	["keyword", "XML"],
+	["keyword", "ANY"],
+	["keyword", "GET"],
+	["keyword", "IDS"],
+	["keyword", "KEY"],
+	["keyword", "MOD"],
+	["keyword", "OFF"],
+	["keyword", "PUT"],
+	["keyword", "RAW"],
+	["keyword", "RED"],
+	["keyword", "REF"],
+	["keyword", "SUM"],
+	["keyword", "TAB"],
+	["keyword", "XSD"],
+	["keyword", "CNT"],
+	["keyword", "COS"],
+	["keyword", "EXP"],
+	["keyword", "LOG"],
+	["keyword", "SIN"],
+	["keyword", "TAN"],
+	["keyword", "XOR"],
+	["keyword", "AT"],
+	["keyword", "CO"],
+	["keyword", "CP"],
+	["keyword", "DO"],
+	["keyword", "GT"],
+	["keyword", "ID"],
+	["keyword", "IF"],
+	["keyword", "NS"],
+	["keyword", "OR"],
+	["keyword", "BT"],
+	["keyword", "CA"],
+	["keyword", "CS"],
+	["keyword", "GE"],
+	["keyword", "NA"],
+	["keyword", "NB"],
+	["keyword", "EQ"],
+	["keyword", "IN"],
+	["keyword", "LT"],
+	["keyword", "NE"],
+	["keyword", "NO"],
+	["keyword", "OF"],
+	["keyword", "ON"],
+	["keyword", "PF"],
+	["keyword", "TO"],
+	["keyword", "AS"],
+	["keyword", "BY"],
+	["keyword", "CN"],
+	["keyword", "IS"],
+	["keyword", "LE"],
+	["keyword", "NP"],
+	["keyword", "UP"],
+	["keyword", "E"],
+	["keyword", "I"],
+	["keyword", "M"],
+	["keyword", "O"],
+	["keyword", "Z"],
+	["keyword", "C"],
+	["keyword", "X"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/number_feature.test b/node_modules/prismjs/tests/languages/abap/number_feature.test
new file mode 100644
index 0000000..0c9556e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/number_feature.test
@@ -0,0 +1,15 @@
+0
+42
+123456789
+
+----------------------------------------------------
+
+[
+	["number", "0"],
+	["number", "42"],
+	["number", "123456789"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/operator_feature.test b/node_modules/prismjs/tests/languages/abap/operator_feature.test
new file mode 100644
index 0000000..23cb4a0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/operator_feature.test
@@ -0,0 +1,38 @@
+.
++ -
+/ * **
+< > <= >=
+= ?= <>
+
+& &&
+
+a-b
+a~b
+a->b
+a=>b
+a|b
+a{b}c
+
+----------------------------------------------------
+
+[
+	["punctuation", "."],
+	["operator", "+"], ["operator", "-"],
+	["operator", "/"], ["operator", "*"], ["operator", "**"],
+	["operator", "<"], ["operator", ">"], ["operator", "<="], ["operator", ">="],
+	["operator", "="], ["operator", "?="], ["operator", "<>"],
+
+	["string-operator", "&"], ["string-operator", "&&"],
+
+	"\r\n\r\na", ["token-operator", "-"],
+	"b\r\na", ["token-operator", "~"],
+	"b\r\na", ["token-operator", "->"],
+	"b\r\na", ["token-operator", "=>"],
+	"b\r\na", ["token-operator", "|"],
+	"b\r\na", ["token-operator", "{"], "b", ["token-operator", "}"], "c"
+]
+
+----------------------------------------------------
+
+Checks for operators, string-operators and token-operators.
+The leading dot serves only because tests are trimmed.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/string-template_feature.test b/node_modules/prismjs/tests/languages/abap/string-template_feature.test
new file mode 100644
index 0000000..7979fbe
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/string-template_feature.test
@@ -0,0 +1,17 @@
+|foobar|
+|foo\|b\{a}r|
+|foo { bar } baz|
+
+----------------------------------------------------
+
+[
+	["token-operator", "|"], ["string-template", "foobar"], ["token-operator", "|"],
+	["token-operator", "|"], ["string-template", "foo\\|b\\{a}r"], ["token-operator", "|"],
+	["token-operator", "|"], ["string-template", "foo "], ["token-operator", "{"],
+	" bar ",
+	["token-operator", "}"], ["string-template", " baz"], ["token-operator", "|"]
+]
+
+----------------------------------------------------
+
+Checks for string templates.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/abap/string_feature.test b/node_modules/prismjs/tests/languages/abap/string_feature.test
new file mode 100644
index 0000000..808b027
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/abap/string_feature.test
@@ -0,0 +1,21 @@
+''
+'foo'
+'foo\'bar'
+``
+`foo`
+`foo\`bar`
+
+----------------------------------------------------
+
+[
+	["string", "''"],
+	["string", "'foo'"],
+	["string", "'foo\\'bar'"],
+	["string", "``"],
+	["string", "`foo`"],
+	["string", "`foo\\`bar`"]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test b/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test
new file mode 100644
index 0000000..c41a852
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test
@@ -0,0 +1,71 @@
+as; break; case; catch; class;
+const; default; delete; do; else;
+extends; finally; for; function; if;
+implements; import; in; instanceof; interface;
+internal; is; native; new; null;
+package; private; protected; public; return;
+super; switch; this; throw; try;
+typeof; use; var; void; while;
+with; dynamic; each; final; get;
+include; namespace; native; override; set;
+static;
+
+----------------------------------------------------
+
+[
+	["keyword", "as"], ["punctuation", ";"],
+	["keyword", "break"], ["punctuation", ";"],
+	["keyword", "case"], ["punctuation", ";"],
+	["keyword", "catch"], ["punctuation", ";"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"], ["punctuation", ";"],
+	["keyword", "default"], ["punctuation", ";"],
+	["keyword", "delete"], ["punctuation", ";"],
+	["keyword", "do"], ["punctuation", ";"],
+	["keyword", "else"], ["punctuation", ";"],
+	["keyword", "extends"], ["punctuation", ";"],
+	["keyword", "finally"], ["punctuation", ";"],
+	["keyword", "for"], ["punctuation", ";"],
+	["keyword", "function"], ["punctuation", ";"],
+	["keyword", "if"], ["punctuation", ";"],
+	["keyword", "implements"], ["punctuation", ";"],
+	["keyword", "import"], ["punctuation", ";"],
+	["keyword", "in"], ["punctuation", ";"],
+	["keyword", "instanceof"], ["punctuation", ";"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "internal"], ["punctuation", ";"],
+	["keyword", "is"], ["punctuation", ";"],
+	["keyword", "native"], ["punctuation", ";"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "null"], ["punctuation", ";"],
+	["keyword", "package"], ["punctuation", ";"],
+	["keyword", "private"], ["punctuation", ";"],
+	["keyword", "protected"], ["punctuation", ";"],
+	["keyword", "public"], ["punctuation", ";"],
+	["keyword", "return"], ["punctuation", ";"],
+	["keyword", "super"], ["punctuation", ";"],
+	["keyword", "switch"], ["punctuation", ";"],
+	["keyword", "this"], ["punctuation", ";"],
+	["keyword", "throw"], ["punctuation", ";"],
+	["keyword", "try"], ["punctuation", ";"],
+	["keyword", "typeof"], ["punctuation", ";"],
+	["keyword", "use"], ["punctuation", ";"],
+	["keyword", "var"], ["punctuation", ";"],
+	["keyword", "void"], ["punctuation", ";"],
+	["keyword", "while"], ["punctuation", ";"],
+	["keyword", "with"], ["punctuation", ";"],
+	["keyword", "dynamic"], ["punctuation", ";"],
+	["keyword", "each"], ["punctuation", ";"],
+	["keyword", "final"], ["punctuation", ";"],
+	["keyword", "get"], ["punctuation", ";"],
+	["keyword", "include"], ["punctuation", ";"],
+	["keyword", "namespace"], ["punctuation", ";"],
+	["keyword", "native"], ["punctuation", ";"],
+	["keyword", "override"], ["punctuation", ";"],
+	["keyword", "set"], ["punctuation", ";"],
+	["keyword", "static"], ["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/actionscript/operator_feature.test b/node_modules/prismjs/tests/languages/actionscript/operator_feature.test
new file mode 100644
index 0000000..14c007c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/actionscript/operator_feature.test
@@ -0,0 +1,29 @@
++ - * / % ^
++= -= *= /= %= ^=
+& && | ||
+&= &&= |= ||=
+< << > >> >>>
+<= <<= >= >>= >>>=
+! != = ==
+!== ===
+~ ? @
+++ --
+
+----------------------------------------------------
+
+[
+	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "^"],
+	["operator", "+="], ["operator", "-="], ["operator", "*="], ["operator", "/="], ["operator", "%="], ["operator", "^="],
+	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"],
+	["operator", "&="], ["operator", "&&="], ["operator", "|="], ["operator", "||="],
+	["operator", "<"], ["operator", "<<"], ["operator", ">"], ["operator", ">>"], ["operator", ">>>"],
+	["operator", "<="], ["operator", "<<="], ["operator", ">="], ["operator", ">>="], ["operator", ">>>="],
+	["operator", "!"], ["operator", "!="], ["operator", "="], ["operator", "=="],
+	["operator", "!=="], ["operator", "==="],
+	["operator", "~"], ["operator", "?"], ["operator", "@"],
+	["operator", "++"], ["operator", "--"]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/attr-name_feature.test b/node_modules/prismjs/tests/languages/ada/attr-name_feature.test
new file mode 100644
index 0000000..c30a2f5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/attr-name_feature.test
@@ -0,0 +1,13 @@
+Integer'Size
+Character'Val
+
+----------------------------------------------------
+
+[
+	["variable", "Integer"], ["attr-name", "'Size"],
+	["variable", "Character"], ["attr-name", "'Val"]
+]
+
+----------------------------------------------------
+
+Checks for attributes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/boolean_feature.test b/node_modules/prismjs/tests/languages/ada/boolean_feature.test
new file mode 100644
index 0000000..4019c44
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/boolean_feature.test
@@ -0,0 +1,13 @@
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/char_feature.test b/node_modules/prismjs/tests/languages/ada/char_feature.test
new file mode 100644
index 0000000..145f2ce
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/char_feature.test
@@ -0,0 +1,13 @@
+'f'
+'A'
+
+----------------------------------------------------
+
+[
+	["char", "'f'"],
+	["char", "'A'"]
+]
+
+----------------------------------------------------
+
+Checks for chars.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/comment_feature.test b/node_modules/prismjs/tests/languages/ada/comment_feature.test
new file mode 100644
index 0000000..adf3e0c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/comment_feature.test
@@ -0,0 +1,13 @@
+--
+-- Foo bar
+
+----------------------------------------------------
+
+[
+	["comment", "--"],
+	["comment", "-- Foo bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/keyword_feature.test b/node_modules/prismjs/tests/languages/ada/keyword_feature.test
new file mode 100644
index 0000000..e5c815f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/keyword_feature.test
@@ -0,0 +1,153 @@
+abort
+abs
+abstract
+accept
+access
+aliased
+all
+and
+array
+at
+begin
+body
+case
+constant
+declare
+delay
+delta
+digits
+do
+else
+new
+return
+elsif
+end
+entry
+exception
+exit
+for
+function
+generic
+goto
+if
+in
+interface
+is
+limited
+loop
+mod
+not
+null
+of
+others
+out
+overriding
+package
+pragma
+private
+procedure
+protected
+raise
+range
+record
+rem
+renames
+requeue
+reverse
+select
+separate
+some
+subtype
+synchronized
+tagged
+task
+terminate
+then
+type
+until
+use
+when
+while
+with
+xor
+
+----------------------------------------------------
+
+[
+	["keyword", "abort"],
+	["keyword", "abs"],
+	["keyword", "abstract"],
+	["keyword", "accept"],
+	["keyword", "access"],
+	["keyword", "aliased"],
+	["keyword", "all"],
+	["keyword", "and"],
+	["keyword", "array"],
+	["keyword", "at"],
+	["keyword", "begin"],
+	["keyword", "body"],
+	["keyword", "case"],
+	["keyword", "constant"],
+	["keyword", "declare"],
+	["keyword", "delay"],
+	["keyword", "delta"],
+	["keyword", "digits"],
+	["keyword", "do"],
+	["keyword", "else"],
+	["keyword", "new"],
+	["keyword", "return"],
+	["keyword", "elsif"],
+	["keyword", "end"],
+	["keyword", "entry"],
+	["keyword", "exception"],
+	["keyword", "exit"],
+	["keyword", "for"],
+	["keyword", "function"],
+	["keyword", "generic"],
+	["keyword", "goto"],
+	["keyword", "if"],
+	["keyword", "in"],
+	["keyword", "interface"],
+	["keyword", "is"],
+	["keyword", "limited"],
+	["keyword", "loop"],
+	["keyword", "mod"],
+	["keyword", "not"],
+	["keyword", "null"],
+	["keyword", "of"],
+	["keyword", "others"],
+	["keyword", "out"],
+	["keyword", "overriding"],
+	["keyword", "package"],
+	["keyword", "pragma"],
+	["keyword", "private"],
+	["keyword", "procedure"],
+	["keyword", "protected"],
+	["keyword", "raise"],
+	["keyword", "range"],
+	["keyword", "record"],
+	["keyword", "rem"],
+	["keyword", "renames"],
+	["keyword", "requeue"],
+	["keyword", "reverse"],
+	["keyword", "select"],
+	["keyword", "separate"],
+	["keyword", "some"],
+	["keyword", "subtype"],
+	["keyword", "synchronized"],
+	["keyword", "tagged"],
+	["keyword", "task"],
+	["keyword", "terminate"],
+	["keyword", "then"],
+	["keyword", "type"],
+	["keyword", "until"],
+	["keyword", "use"],
+	["keyword", "when"],
+	["keyword", "while"],
+	["keyword", "with"],
+	["keyword", "xor"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/number_feature.test b/node_modules/prismjs/tests/languages/ada/number_feature.test
new file mode 100644
index 0000000..a27f1af
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/number_feature.test
@@ -0,0 +1,21 @@
+42
+42_000
+3.14_15_9
+0.4E+123_456
+3.7e-7
+1_6#Bad_Face#E-32_1
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "42_000"],
+	["number", "3.14_15_9"],
+	["number", "0.4E+123_456"],
+	["number", "3.7e-7"],
+	["number", "1_6#Bad_Face#E-32_1"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/operator_feature.test b/node_modules/prismjs/tests/languages/ada/operator_feature.test
new file mode 100644
index 0000000..21a3137
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/operator_feature.test
@@ -0,0 +1,23 @@
+<>
+=> :=
+< <=
+> >=
+= /=
+& + -
+* ** /
+
+----------------------------------------------------
+
+[
+	["operator", "<>"],
+	["operator", "=>"], ["operator", ":="],
+	["operator", "<"], ["operator", "<="],
+	["operator", ">"], ["operator", ">="],
+	["operator", "="], ["operator", "/="],
+	["operator", "&"], ["operator", "+"], ["operator", "-"],
+	["operator", "*"], ["operator", "**"], ["operator", "/"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/string_feature.test b/node_modules/prismjs/tests/languages/ada/string_feature.test
new file mode 100644
index 0000000..c44e9cd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/string_feature.test
@@ -0,0 +1,13 @@
+""
+"Foo""bar"""
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"Foo\"\"bar\"\"\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/ada/variable_feature.test b/node_modules/prismjs/tests/languages/ada/variable_feature.test
new file mode 100644
index 0000000..f47a4fc
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/ada/variable_feature.test
@@ -0,0 +1,13 @@
+Byte
+foo_bar42
+
+----------------------------------------------------
+
+[
+	["variable", "Byte"],
+	["variable", "foo_bar42"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test b/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test
new file mode 100644
index 0000000..bde2288
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test
@@ -0,0 +1,15 @@
+#foo
+# bar
+# Redirect 301 /2006/oldfile.html http://subdomain.domain.tld/newfile.html
+
+----------------------------------------------------
+
+[
+	["comment", "#foo"],
+	["comment", "# bar"],
+	["comment", "# Redirect 301 /2006/oldfile.html http://subdomain.domain.tld/newfile.html"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test
new file mode 100644
index 0000000..1af6add
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+----------------------------------------------------
+
+[
+	["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"AuthnProviderAlias"
+		]],
+		["directive-block-parameter", [
+			" file file2"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+		["directive-block", [
+			["punctuation", ""]
+	]],
+
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", "<"],
+            "AuthzProviderAlias"
+        ]],
+        ["directive-block-parameter", [
+            " ldap-group ldap-group-alias1 ",
+            ["string", [
+                "\"cn=my-group,o=ctx\""
+            ]]
+        ]],
+        ["punctuation", ">"]
+    ]],
+    ["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Directory"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"/webpages/secure\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"DirectoryMatch"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"^/www/(.+/)?[0-9]{3}\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Else"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"ElseIf"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"-R '10.0.0.0/8'\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Files"
+		]],
+		["directive-block-parameter", [
+			" ~ ",
+			["string", [
+				"\"\\.(gif|jpe?g|png)$\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"FilesMatch"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\".+\\.(gif|jpe?g|png)$\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"If"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"-z req('Host')\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"IfDefine"
+		]],
+		["directive-block-parameter", [
+			" !MemCache"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"IfModule"
+		]],
+		["directive-block-parameter", [
+			" mod_rewrite.c"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"IfVersion"
+		]],
+		["directive-block-parameter", [
+			" 2.1.0"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Limit"
+		]],
+		["directive-block-parameter", [
+			" POST PUT DELETE"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"LimitExcept"
+		]],
+		["directive-block-parameter", [
+			" POST GET"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Location"
+		]],
+		["directive-block-parameter", [
+			" /private1"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"LocationMatch"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"/(extra|special)/data\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Macro"
+		]],
+		["directive-block-parameter", [
+			" LocalAccessPolicy"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"Proxy"
+		]],
+		["directive-block-parameter", [
+			["string", [
+				"\"*\""
+			]]
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"RequireAll"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"RequireAny"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"RequireNone"
+		]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]],
+
+    ["directive-block", [
+		["directive-block", [
+			["punctuation", "<"],
+			"VirtualHost"
+		]],
+		["directive-block-parameter", [
+			" [2001",
+            ["punctuation", ":"],
+            "db8",
+            ["punctuation", ":"],
+            ["punctuation", ":"],
+            "a00",
+            ["punctuation", ":"],
+            "20ff",
+            ["punctuation", ":"],
+            "fea7",
+            ["punctuation", ":"],
+            "ccea]",
+            ["punctuation", ":"],
+            "80"
+        ]],
+		["punctuation", ">"]
+	]],
+	["directive-block", [
+        ["directive-block", [
+            ["punctuation", ""]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for directive blocks.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test
new file mode 100644
index 0000000..0bb206e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test
@@ -0,0 +1,13 @@
+[OR]
+[L,QSA]
+
+----------------------------------------------------
+
+[
+	["directive-flags", "[OR]"],
+	["directive-flags", "[L,QSA]"]
+]
+
+----------------------------------------------------
+
+Checks for directive flags.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test
new file mode 100644
index 0000000..6b4df43
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test
@@ -0,0 +1,1163 @@
+AcceptFilter
+AcceptPathInfo
+AccessFileName
+Action
+AddAlt
+AddAltByEncoding
+AddAltByType
+AddCharset
+AddDefaultCharset
+AddDescription
+AddEncoding
+AddHandler
+AddIcon
+AddIconByEncoding
+AddIconByType
+AddInputFilter
+AddLanguage
+AddModuleInfo
+AddOutputFilter
+AddOutputFilterByType
+AddType
+Alias
+AliasMatch
+Allow
+AllowCONNECT
+AllowEncodedSlashes
+AllowMethods
+AllowOverride
+AllowOverrideList
+Anonymous
+Anonymous_LogEmail
+Anonymous_MustGiveEmail
+Anonymous_NoUserID
+Anonymous_VerifyEmail
+AsyncRequestWorkerFactor
+AuthBasicAuthoritative
+AuthBasicFake
+AuthBasicProvider
+AuthBasicUseDigestAlgorithm
+AuthDBDUserPWQuery
+AuthDBDUserRealmQuery
+AuthDBMGroupFile
+AuthDBMType
+AuthDBMUserFile
+AuthDigestAlgorithm
+AuthDigestDomain
+AuthDigestNonceLifetime
+AuthDigestProvider
+AuthDigestQop
+AuthDigestShmemSize
+AuthFormAuthoritative
+AuthFormBody
+AuthFormDisableNoStore
+AuthFormFakeBasicAuth
+AuthFormLocation
+AuthFormLoginRequiredLocation
+AuthFormLoginSuccessLocation
+AuthFormLogoutLocation
+AuthFormMethod
+AuthFormMimetype
+AuthFormPassword
+AuthFormProvider
+AuthFormSitePassphrase
+AuthFormSize
+AuthFormUsername
+AuthGroupFile
+AuthLDAPAuthorizePrefix
+AuthLDAPBindAuthoritative
+AuthLDAPBindDN
+AuthLDAPBindPassword
+AuthLDAPCharsetConfig
+AuthLDAPCompareAsUser
+AuthLDAPCompareDNOnServer
+AuthLDAPDereferenceAliases
+AuthLDAPGroupAttribute
+AuthLDAPGroupAttributeIsDN
+AuthLDAPInitialBindAsUser
+AuthLDAPInitialBindPattern
+AuthLDAPMaxSubGroupDepth
+AuthLDAPRemoteUserAttribute
+AuthLDAPRemoteUserIsDN
+AuthLDAPSearchAsUser
+AuthLDAPSubGroupAttribute
+AuthLDAPSubGroupClass
+AuthLDAPUrl
+AuthMerging
+AuthName
+AuthnCacheContext
+AuthnCacheEnable
+AuthnCacheProvideFor
+AuthnCacheSOCache
+AuthnCacheTimeout
+AuthnzFcgiCheckAuthnProvider
+AuthnzFcgiDefineProvider
+AuthType
+AuthUserFile
+AuthzDBDLoginToReferer
+AuthzDBDQuery
+AuthzDBDRedirectQuery
+AuthzDBMType
+AuthzSendForbiddenOnFailure
+BalancerGrowth
+BalancerInherit
+BalancerMember
+BalancerPersist
+BrowserMatch
+BrowserMatchNoCase
+BufferedLogs
+BufferSize
+CacheDefaultExpire
+CacheDetailHeader
+CacheDirLength
+CacheDirLevels
+CacheDisable
+CacheEnable
+CacheFile
+CacheHeader
+CacheIgnoreCacheControl
+CacheIgnoreHeaders
+CacheIgnoreNoLastMod
+CacheIgnoreQueryString
+CacheIgnoreURLSessionIdentifiers
+CacheKeyBaseURL
+CacheLastModifiedFactor
+CacheLock
+CacheLockMaxAge
+CacheLockPath
+CacheMaxExpire
+CacheMaxFileSize
+CacheMinExpire
+CacheMinFileSize
+CacheNegotiatedDocs
+CacheQuickHandler
+CacheReadSize
+CacheReadTime
+CacheRoot
+CacheSocache
+CacheSocacheMaxSize
+CacheSocacheMaxTime
+CacheSocacheMinTime
+CacheSocacheReadSize
+CacheSocacheReadTime
+CacheStaleOnError
+CacheStoreExpired
+CacheStoreNoStore
+CacheStorePrivate
+CGIDScriptTimeout
+CGIMapExtension
+CharsetDefault
+CharsetOptions
+CharsetSourceEnc
+CheckCaseOnly
+CheckSpelling
+ChrootDir
+ContentDigest
+CookieDomain
+CookieExpires
+CookieName
+CookieStyle
+CookieTracking
+CoreDumpDirectory
+CustomLog
+Dav
+DavDepthInfinity
+DavGenericLockDB
+DavLockDB
+DavMinTimeout
+DBDExptime
+DBDInitSQL
+DBDKeep
+DBDMax
+DBDMin
+DBDParams
+DBDPersist
+DBDPrepareSQL
+DBDriver
+DefaultIcon
+DefaultLanguage
+DefaultRuntimeDir
+DefaultType
+Define
+DeflateBufferSize
+DeflateCompressionLevel
+DeflateFilterNote
+DeflateInflateLimitRequestBody
+DeflateInflateRatioBurst
+DeflateInflateRatioLimit
+DeflateMemLevel
+DeflateWindowSize
+Deny
+DirectoryCheckHandler
+DirectoryIndex
+DirectoryIndexRedirect
+DirectorySlash
+DocumentRoot
+DTracePrivileges
+DumpIOInput
+DumpIOOutput
+EnableExceptionHook
+EnableMMAP
+EnableSendfile
+Error
+ErrorDocument
+ErrorLog
+ErrorLogFormat
+Example
+ExpiresActive
+ExpiresByType
+ExpiresDefault
+ExtendedStatus
+ExtFilterDefine
+ExtFilterOptions
+FallbackResource
+FileETag
+FilterChain
+FilterDeclare
+FilterProtocol
+FilterProvider
+FilterTrace
+ForceLanguagePriority
+ForceType
+ForensicLog
+GprofDir
+GracefulShutdownTimeout
+Group
+Header
+HeaderName
+HeartbeatAddress
+HeartbeatListen
+HeartbeatMaxServers
+HeartbeatStorage
+HeartbeatStorage
+HostnameLookups
+IdentityCheck
+IdentityCheckTimeout
+ImapBase
+ImapDefault
+ImapMenu
+Include
+IncludeOptional
+IndexHeadInsert
+IndexIgnore
+IndexIgnoreReset
+IndexOptions
+IndexOrderDefault
+IndexStyleSheet
+InputSed
+ISAPIAppendLogToErrors
+ISAPIAppendLogToQuery
+ISAPICacheFile
+ISAPIFakeAsync
+ISAPILogNotSupported
+ISAPIReadAheadBuffer
+KeepAlive
+KeepAliveTimeout
+KeptBodySize
+LanguagePriority
+LDAPCacheEntries
+LDAPCacheTTL
+LDAPConnectionPoolTTL
+LDAPConnectionTimeout
+LDAPLibraryDebug
+LDAPOpCacheEntries
+LDAPOpCacheTTL
+LDAPReferralHopLimit
+LDAPReferrals
+LDAPRetries
+LDAPRetryDelay
+LDAPSharedCacheFile
+LDAPSharedCacheSize
+LDAPTimeout
+LDAPTrustedClientCert
+LDAPTrustedGlobalCert
+LDAPTrustedMode
+LDAPVerifyServerCert
+LimitInternalRecursion
+LimitRequestBody
+LimitRequestFields
+LimitRequestFieldSize
+LimitRequestLine
+LimitXMLRequestBody
+Listen
+ListenBackLog
+LoadFile
+LoadModule
+LogFormat
+LogLevel
+LogMessage
+LuaAuthzProvider
+LuaCodeCache
+LuaHookAccessChecker
+LuaHookAuthChecker
+LuaHookCheckUserID
+LuaHookFixups
+LuaHookInsertFilter
+LuaHookLog
+LuaHookMapToStorage
+LuaHookTranslateName
+LuaHookTypeChecker
+LuaInherit
+LuaInputFilter
+LuaMapHandler
+LuaOutputFilter
+LuaPackageCPath
+LuaPackagePath
+LuaQuickHandler
+LuaRoot
+LuaScope
+MaxConnectionsPerChild
+MaxKeepAliveRequests
+MaxMemFree
+MaxRangeOverlaps
+MaxRangeReversals
+MaxRanges
+MaxRequestWorkers
+MaxSpareServers
+MaxSpareThreads
+MaxThreads
+MergeTrailers
+MetaDir
+MetaFiles
+MetaSuffix
+MimeMagicFile
+MinSpareServers
+MinSpareThreads
+MMapFile
+ModemStandard
+ModMimeUsePathInfo
+MultiviewsMatch
+Mutex
+NameVirtualHost
+NoProxy
+NWSSLTrustedCerts
+NWSSLUpgradeable
+Options
+Order
+OutputSed
+PassEnv
+PidFile
+PrivilegesMode
+Protocol
+ProtocolEcho
+ProxyAddHeaders
+ProxyBadHeader
+ProxyBlock
+ProxyDomain
+ProxyErrorOverride
+ProxyExpressDBMFile
+ProxyExpressDBMType
+ProxyExpressEnable
+ProxyFtpDirCharset
+ProxyFtpEscapeWildcards
+ProxyFtpListOnWildcard
+ProxyHTMLBufSize
+ProxyHTMLCharsetOut
+ProxyHTMLDocType
+ProxyHTMLEnable
+ProxyHTMLEvents
+ProxyHTMLExtended
+ProxyHTMLFixups
+ProxyHTMLInterp
+ProxyHTMLLinks
+ProxyHTMLMeta
+ProxyHTMLStripComments
+ProxyHTMLURLMap
+ProxyIOBufferSize
+ProxyMaxForwards
+ProxyPass
+ProxyPassInherit
+ProxyPassInterpolateEnv
+ProxyPassMatch
+ProxyPassReverse
+ProxyPassReverseCookieDomain
+ProxyPassReverseCookiePath
+ProxyPreserveHost
+ProxyReceiveBufferSize
+ProxyRemote
+ProxyRemoteMatch
+ProxyRequests
+ProxySCGIInternalRedirect
+ProxySCGISendfile
+ProxySet
+ProxySourceAddress
+ProxyStatus
+ProxyTimeout
+ProxyVia
+ReadmeName
+ReceiveBufferSize
+Redirect
+RedirectMatch
+RedirectPermanent
+RedirectTemp
+ReflectorHeader
+RemoteIPHeader
+RemoteIPInternalProxy
+RemoteIPInternalProxyList
+RemoteIPProxiesHeader
+RemoteIPTrustedProxy
+RemoteIPTrustedProxyList
+RemoveCharset
+RemoveEncoding
+RemoveHandler
+RemoveInputFilter
+RemoveLanguage
+RemoveOutputFilter
+RemoveType
+RequestHeader
+RequestReadTimeout
+Require
+RewriteBase
+RewriteCond
+RewriteEngine
+RewriteMap
+RewriteOptions
+RewriteRule
+RLimitCPU
+RLimitMEM
+RLimitNPROC
+Satisfy
+ScoreBoardFile
+Script
+ScriptAlias
+ScriptAliasMatch
+ScriptInterpreterSource
+ScriptLog
+ScriptLogBuffer
+ScriptLogLength
+ScriptSock
+SecureListen
+SeeRequestTail
+SendBufferSize
+ServerAdmin
+ServerAlias
+ServerLimit
+ServerName
+ServerPath
+ServerRoot
+ServerSignature
+ServerTokens
+Session
+SessionCookieName
+SessionCookieName2
+SessionCookieRemove
+SessionCryptoCipher
+SessionCryptoDriver
+SessionCryptoPassphrase
+SessionCryptoPassphraseFile
+SessionDBDCookieName
+SessionDBDCookieName2
+SessionDBDCookieRemove
+SessionDBDDeleteLabel
+SessionDBDInsertLabel
+SessionDBDPerUser
+SessionDBDSelectLabel
+SessionDBDUpdateLabel
+SessionEnv
+SessionExclude
+SessionHeader
+SessionInclude
+SessionMaxAge
+SetEnv
+SetEnvIf
+SetEnvIfExpr
+SetEnvIfNoCase
+SetHandler
+SetInputFilter
+SetOutputFilter
+SSIEndTag
+SSIErrorMsg
+SSIETag
+SSILastModified
+SSILegacyExprParser
+SSIStartTag
+SSITimeFormat
+SSIUndefinedEcho
+SSLCACertificateFile
+SSLCACertificatePath
+SSLCADNRequestFile
+SSLCADNRequestPath
+SSLCARevocationCheck
+SSLCARevocationFile
+SSLCARevocationPath
+SSLCertificateChainFile
+SSLCertificateFile
+SSLCertificateKeyFile
+SSLCipherSuite
+SSLCompression
+SSLCryptoDevice
+SSLEngine
+SSLFIPS
+SSLHonorCipherOrder
+SSLInsecureRenegotiation
+SSLOCSPDefaultResponder
+SSLOCSPEnable
+SSLOCSPOverrideResponder
+SSLOCSPResponderTimeout
+SSLOCSPResponseMaxAge
+SSLOCSPResponseTimeSkew
+SSLOCSPUseRequestNonce
+SSLOpenSSLConfCmd
+SSLOptions
+SSLPassPhraseDialog
+SSLProtocol
+SSLProxyCACertificateFile
+SSLProxyCACertificatePath
+SSLProxyCARevocationCheck
+SSLProxyCARevocationFile
+SSLProxyCARevocationPath
+SSLProxyCheckPeerCN
+SSLProxyCheckPeerExpire
+SSLProxyCheckPeerName
+SSLProxyCipherSuite
+SSLProxyEngine
+SSLProxyMachineCertificateChainFile
+SSLProxyMachineCertificateFile
+SSLProxyMachineCertificatePath
+SSLProxyProtocol
+SSLProxyVerify
+SSLProxyVerifyDepth
+SSLRandomSeed
+SSLRenegBufferSize
+SSLRequire
+SSLRequireSSL
+SSLSessionCache
+SSLSessionCacheTimeout
+SSLSessionTicketKeyFile
+SSLSRPUnknownUserSeed
+SSLSRPVerifierFile
+SSLStaplingCache
+SSLStaplingErrorCacheTimeout
+SSLStaplingFakeTryLater
+SSLStaplingForceURL
+SSLStaplingResponderTimeout
+SSLStaplingResponseMaxAge
+SSLStaplingResponseTimeSkew
+SSLStaplingReturnResponderErrors
+SSLStaplingStandardCacheTimeout
+SSLStrictSNIVHostCheck
+SSLUserName
+SSLUseStapling
+SSLVerifyClient
+SSLVerifyDepth
+StartServers
+StartThreads
+Substitute
+Suexec
+SuexecUserGroup
+ThreadLimit
+ThreadsPerChild
+ThreadStackSize
+TimeOut
+TraceEnable
+TransferLog
+TypesConfig
+UnDefine
+UndefMacro
+UnsetEnv
+Use
+UseCanonicalName
+UseCanonicalPhysicalPort
+User
+UserDir
+VHostCGIMode
+VHostCGIPrivs
+VHostGroup
+VHostPrivs
+VHostSecure
+VHostUser
+VirtualDocumentRoot
+VirtualDocumentRootIP
+VirtualScriptAlias
+VirtualScriptAliasIP
+WatchdogInterval
+XBitHack
+xml2EncAlias
+xml2EncDefault
+xml2StartParse
+
+----------------------------------------------------
+
+[
+	["directive-inline", "AcceptFilter"],
+	["directive-inline", "AcceptPathInfo"],
+	["directive-inline", "AccessFileName"],
+	["directive-inline", "Action"],
+	["directive-inline", "AddAlt"],
+	["directive-inline", "AddAltByEncoding"],
+	["directive-inline", "AddAltByType"],
+	["directive-inline", "AddCharset"],
+	["directive-inline", "AddDefaultCharset"],
+	["directive-inline", "AddDescription"],
+	["directive-inline", "AddEncoding"],
+	["directive-inline", "AddHandler"],
+	["directive-inline", "AddIcon"],
+	["directive-inline", "AddIconByEncoding"],
+	["directive-inline", "AddIconByType"],
+	["directive-inline", "AddInputFilter"],
+	["directive-inline", "AddLanguage"],
+	["directive-inline", "AddModuleInfo"],
+	["directive-inline", "AddOutputFilter"],
+	["directive-inline", "AddOutputFilterByType"],
+	["directive-inline", "AddType"],
+	["directive-inline", "Alias"],
+	["directive-inline", "AliasMatch"],
+	["directive-inline", "Allow"],
+	["directive-inline", "AllowCONNECT"],
+	["directive-inline", "AllowEncodedSlashes"],
+	["directive-inline", "AllowMethods"],
+	["directive-inline", "AllowOverride"],
+	["directive-inline", "AllowOverrideList"],
+	["directive-inline", "Anonymous"],
+	["directive-inline", "Anonymous_LogEmail"],
+	["directive-inline", "Anonymous_MustGiveEmail"],
+	["directive-inline", "Anonymous_NoUserID"],
+	["directive-inline", "Anonymous_VerifyEmail"],
+	["directive-inline", "AsyncRequestWorkerFactor"],
+	["directive-inline", "AuthBasicAuthoritative"],
+	["directive-inline", "AuthBasicFake"],
+	["directive-inline", "AuthBasicProvider"],
+	["directive-inline", "AuthBasicUseDigestAlgorithm"],
+	["directive-inline", "AuthDBDUserPWQuery"],
+	["directive-inline", "AuthDBDUserRealmQuery"],
+	["directive-inline", "AuthDBMGroupFile"],
+	["directive-inline", "AuthDBMType"],
+	["directive-inline", "AuthDBMUserFile"],
+	["directive-inline", "AuthDigestAlgorithm"],
+	["directive-inline", "AuthDigestDomain"],
+	["directive-inline", "AuthDigestNonceLifetime"],
+	["directive-inline", "AuthDigestProvider"],
+	["directive-inline", "AuthDigestQop"],
+	["directive-inline", "AuthDigestShmemSize"],
+	["directive-inline", "AuthFormAuthoritative"],
+	["directive-inline", "AuthFormBody"],
+	["directive-inline", "AuthFormDisableNoStore"],
+	["directive-inline", "AuthFormFakeBasicAuth"],
+	["directive-inline", "AuthFormLocation"],
+	["directive-inline", "AuthFormLoginRequiredLocation"],
+	["directive-inline", "AuthFormLoginSuccessLocation"],
+	["directive-inline", "AuthFormLogoutLocation"],
+	["directive-inline", "AuthFormMethod"],
+	["directive-inline", "AuthFormMimetype"],
+	["directive-inline", "AuthFormPassword"],
+	["directive-inline", "AuthFormProvider"],
+	["directive-inline", "AuthFormSitePassphrase"],
+	["directive-inline", "AuthFormSize"],
+	["directive-inline", "AuthFormUsername"],
+	["directive-inline", "AuthGroupFile"],
+	["directive-inline", "AuthLDAPAuthorizePrefix"],
+	["directive-inline", "AuthLDAPBindAuthoritative"],
+	["directive-inline", "AuthLDAPBindDN"],
+	["directive-inline", "AuthLDAPBindPassword"],
+	["directive-inline", "AuthLDAPCharsetConfig"],
+	["directive-inline", "AuthLDAPCompareAsUser"],
+	["directive-inline", "AuthLDAPCompareDNOnServer"],
+	["directive-inline", "AuthLDAPDereferenceAliases"],
+	["directive-inline", "AuthLDAPGroupAttribute"],
+	["directive-inline", "AuthLDAPGroupAttributeIsDN"],
+	["directive-inline", "AuthLDAPInitialBindAsUser"],
+	["directive-inline", "AuthLDAPInitialBindPattern"],
+	["directive-inline", "AuthLDAPMaxSubGroupDepth"],
+	["directive-inline", "AuthLDAPRemoteUserAttribute"],
+	["directive-inline", "AuthLDAPRemoteUserIsDN"],
+	["directive-inline", "AuthLDAPSearchAsUser"],
+	["directive-inline", "AuthLDAPSubGroupAttribute"],
+	["directive-inline", "AuthLDAPSubGroupClass"],
+	["directive-inline", "AuthLDAPUrl"],
+	["directive-inline", "AuthMerging"],
+	["directive-inline", "AuthName"],
+	["directive-inline", "AuthnCacheContext"],
+	["directive-inline", "AuthnCacheEnable"],
+	["directive-inline", "AuthnCacheProvideFor"],
+	["directive-inline", "AuthnCacheSOCache"],
+	["directive-inline", "AuthnCacheTimeout"],
+	["directive-inline", "AuthnzFcgiCheckAuthnProvider"],
+	["directive-inline", "AuthnzFcgiDefineProvider"],
+	["directive-inline", "AuthType"],
+	["directive-inline", "AuthUserFile"],
+	["directive-inline", "AuthzDBDLoginToReferer"],
+	["directive-inline", "AuthzDBDQuery"],
+	["directive-inline", "AuthzDBDRedirectQuery"],
+	["directive-inline", "AuthzDBMType"],
+	["directive-inline", "AuthzSendForbiddenOnFailure"],
+	["directive-inline", "BalancerGrowth"],
+	["directive-inline", "BalancerInherit"],
+	["directive-inline", "BalancerMember"],
+	["directive-inline", "BalancerPersist"],
+	["directive-inline", "BrowserMatch"],
+	["directive-inline", "BrowserMatchNoCase"],
+	["directive-inline", "BufferedLogs"],
+	["directive-inline", "BufferSize"],
+	["directive-inline", "CacheDefaultExpire"],
+	["directive-inline", "CacheDetailHeader"],
+	["directive-inline", "CacheDirLength"],
+	["directive-inline", "CacheDirLevels"],
+	["directive-inline", "CacheDisable"],
+	["directive-inline", "CacheEnable"],
+	["directive-inline", "CacheFile"],
+	["directive-inline", "CacheHeader"],
+	["directive-inline", "CacheIgnoreCacheControl"],
+	["directive-inline", "CacheIgnoreHeaders"],
+	["directive-inline", "CacheIgnoreNoLastMod"],
+	["directive-inline", "CacheIgnoreQueryString"],
+	["directive-inline", "CacheIgnoreURLSessionIdentifiers"],
+	["directive-inline", "CacheKeyBaseURL"],
+	["directive-inline", "CacheLastModifiedFactor"],
+	["directive-inline", "CacheLock"],
+	["directive-inline", "CacheLockMaxAge"],
+	["directive-inline", "CacheLockPath"],
+	["directive-inline", "CacheMaxExpire"],
+	["directive-inline", "CacheMaxFileSize"],
+	["directive-inline", "CacheMinExpire"],
+	["directive-inline", "CacheMinFileSize"],
+	["directive-inline", "CacheNegotiatedDocs"],
+	["directive-inline", "CacheQuickHandler"],
+	["directive-inline", "CacheReadSize"],
+	["directive-inline", "CacheReadTime"],
+	["directive-inline", "CacheRoot"],
+	["directive-inline", "CacheSocache"],
+	["directive-inline", "CacheSocacheMaxSize"],
+	["directive-inline", "CacheSocacheMaxTime"],
+	["directive-inline", "CacheSocacheMinTime"],
+	["directive-inline", "CacheSocacheReadSize"],
+	["directive-inline", "CacheSocacheReadTime"],
+	["directive-inline", "CacheStaleOnError"],
+	["directive-inline", "CacheStoreExpired"],
+	["directive-inline", "CacheStoreNoStore"],
+	["directive-inline", "CacheStorePrivate"],
+	["directive-inline", "CGIDScriptTimeout"],
+	["directive-inline", "CGIMapExtension"],
+	["directive-inline", "CharsetDefault"],
+	["directive-inline", "CharsetOptions"],
+	["directive-inline", "CharsetSourceEnc"],
+	["directive-inline", "CheckCaseOnly"],
+	["directive-inline", "CheckSpelling"],
+	["directive-inline", "ChrootDir"],
+	["directive-inline", "ContentDigest"],
+	["directive-inline", "CookieDomain"],
+	["directive-inline", "CookieExpires"],
+	["directive-inline", "CookieName"],
+	["directive-inline", "CookieStyle"],
+	["directive-inline", "CookieTracking"],
+	["directive-inline", "CoreDumpDirectory"],
+	["directive-inline", "CustomLog"],
+	["directive-inline", "Dav"],
+	["directive-inline", "DavDepthInfinity"],
+	["directive-inline", "DavGenericLockDB"],
+	["directive-inline", "DavLockDB"],
+	["directive-inline", "DavMinTimeout"],
+	["directive-inline", "DBDExptime"],
+	["directive-inline", "DBDInitSQL"],
+	["directive-inline", "DBDKeep"],
+	["directive-inline", "DBDMax"],
+	["directive-inline", "DBDMin"],
+	["directive-inline", "DBDParams"],
+	["directive-inline", "DBDPersist"],
+	["directive-inline", "DBDPrepareSQL"],
+	["directive-inline", "DBDriver"],
+	["directive-inline", "DefaultIcon"],
+	["directive-inline", "DefaultLanguage"],
+	["directive-inline", "DefaultRuntimeDir"],
+	["directive-inline", "DefaultType"],
+	["directive-inline", "Define"],
+	["directive-inline", "DeflateBufferSize"],
+	["directive-inline", "DeflateCompressionLevel"],
+	["directive-inline", "DeflateFilterNote"],
+	["directive-inline", "DeflateInflateLimitRequestBody"],
+	["directive-inline", "DeflateInflateRatioBurst"],
+	["directive-inline", "DeflateInflateRatioLimit"],
+	["directive-inline", "DeflateMemLevel"],
+	["directive-inline", "DeflateWindowSize"],
+	["directive-inline", "Deny"],
+	["directive-inline", "DirectoryCheckHandler"],
+	["directive-inline", "DirectoryIndex"],
+	["directive-inline", "DirectoryIndexRedirect"],
+	["directive-inline", "DirectorySlash"],
+	["directive-inline", "DocumentRoot"],
+	["directive-inline", "DTracePrivileges"],
+	["directive-inline", "DumpIOInput"],
+	["directive-inline", "DumpIOOutput"],
+	["directive-inline", "EnableExceptionHook"],
+	["directive-inline", "EnableMMAP"],
+	["directive-inline", "EnableSendfile"],
+	["directive-inline", "Error"],
+	["directive-inline", "ErrorDocument"],
+	["directive-inline", "ErrorLog"],
+	["directive-inline", "ErrorLogFormat"],
+	["directive-inline", "Example"],
+	["directive-inline", "ExpiresActive"],
+	["directive-inline", "ExpiresByType"],
+	["directive-inline", "ExpiresDefault"],
+	["directive-inline", "ExtendedStatus"],
+	["directive-inline", "ExtFilterDefine"],
+	["directive-inline", "ExtFilterOptions"],
+	["directive-inline", "FallbackResource"],
+	["directive-inline", "FileETag"],
+	["directive-inline", "FilterChain"],
+	["directive-inline", "FilterDeclare"],
+	["directive-inline", "FilterProtocol"],
+	["directive-inline", "FilterProvider"],
+	["directive-inline", "FilterTrace"],
+	["directive-inline", "ForceLanguagePriority"],
+	["directive-inline", "ForceType"],
+	["directive-inline", "ForensicLog"],
+	["directive-inline", "GprofDir"],
+	["directive-inline", "GracefulShutdownTimeout"],
+	["directive-inline", "Group"],
+	["directive-inline", "Header"],
+	["directive-inline", "HeaderName"],
+	["directive-inline", "HeartbeatAddress"],
+	["directive-inline", "HeartbeatListen"],
+	["directive-inline", "HeartbeatMaxServers"],
+	["directive-inline", "HeartbeatStorage"],
+	["directive-inline", "HeartbeatStorage"],
+	["directive-inline", "HostnameLookups"],
+	["directive-inline", "IdentityCheck"],
+	["directive-inline", "IdentityCheckTimeout"],
+	["directive-inline", "ImapBase"],
+	["directive-inline", "ImapDefault"],
+	["directive-inline", "ImapMenu"],
+	["directive-inline", "Include"],
+	["directive-inline", "IncludeOptional"],
+	["directive-inline", "IndexHeadInsert"],
+	["directive-inline", "IndexIgnore"],
+	["directive-inline", "IndexIgnoreReset"],
+	["directive-inline", "IndexOptions"],
+	["directive-inline", "IndexOrderDefault"],
+	["directive-inline", "IndexStyleSheet"],
+	["directive-inline", "InputSed"],
+	["directive-inline", "ISAPIAppendLogToErrors"],
+	["directive-inline", "ISAPIAppendLogToQuery"],
+	["directive-inline", "ISAPICacheFile"],
+	["directive-inline", "ISAPIFakeAsync"],
+	["directive-inline", "ISAPILogNotSupported"],
+	["directive-inline", "ISAPIReadAheadBuffer"],
+	["directive-inline", "KeepAlive"],
+	["directive-inline", "KeepAliveTimeout"],
+	["directive-inline", "KeptBodySize"],
+	["directive-inline", "LanguagePriority"],
+	["directive-inline", "LDAPCacheEntries"],
+	["directive-inline", "LDAPCacheTTL"],
+	["directive-inline", "LDAPConnectionPoolTTL"],
+	["directive-inline", "LDAPConnectionTimeout"],
+	["directive-inline", "LDAPLibraryDebug"],
+	["directive-inline", "LDAPOpCacheEntries"],
+	["directive-inline", "LDAPOpCacheTTL"],
+	["directive-inline", "LDAPReferralHopLimit"],
+	["directive-inline", "LDAPReferrals"],
+	["directive-inline", "LDAPRetries"],
+	["directive-inline", "LDAPRetryDelay"],
+	["directive-inline", "LDAPSharedCacheFile"],
+	["directive-inline", "LDAPSharedCacheSize"],
+	["directive-inline", "LDAPTimeout"],
+	["directive-inline", "LDAPTrustedClientCert"],
+	["directive-inline", "LDAPTrustedGlobalCert"],
+	["directive-inline", "LDAPTrustedMode"],
+	["directive-inline", "LDAPVerifyServerCert"],
+	["directive-inline", "LimitInternalRecursion"],
+	["directive-inline", "LimitRequestBody"],
+	["directive-inline", "LimitRequestFields"],
+	["directive-inline", "LimitRequestFieldSize"],
+	["directive-inline", "LimitRequestLine"],
+	["directive-inline", "LimitXMLRequestBody"],
+	["directive-inline", "Listen"],
+	["directive-inline", "ListenBackLog"],
+	["directive-inline", "LoadFile"],
+	["directive-inline", "LoadModule"],
+	["directive-inline", "LogFormat"],
+	["directive-inline", "LogLevel"],
+	["directive-inline", "LogMessage"],
+	["directive-inline", "LuaAuthzProvider"],
+	["directive-inline", "LuaCodeCache"],
+	["directive-inline", "LuaHookAccessChecker"],
+	["directive-inline", "LuaHookAuthChecker"],
+	["directive-inline", "LuaHookCheckUserID"],
+	["directive-inline", "LuaHookFixups"],
+	["directive-inline", "LuaHookInsertFilter"],
+	["directive-inline", "LuaHookLog"],
+	["directive-inline", "LuaHookMapToStorage"],
+	["directive-inline", "LuaHookTranslateName"],
+	["directive-inline", "LuaHookTypeChecker"],
+	["directive-inline", "LuaInherit"],
+	["directive-inline", "LuaInputFilter"],
+	["directive-inline", "LuaMapHandler"],
+	["directive-inline", "LuaOutputFilter"],
+	["directive-inline", "LuaPackageCPath"],
+	["directive-inline", "LuaPackagePath"],
+	["directive-inline", "LuaQuickHandler"],
+	["directive-inline", "LuaRoot"],
+	["directive-inline", "LuaScope"],
+	["directive-inline", "MaxConnectionsPerChild"],
+	["directive-inline", "MaxKeepAliveRequests"],
+	["directive-inline", "MaxMemFree"],
+	["directive-inline", "MaxRangeOverlaps"],
+	["directive-inline", "MaxRangeReversals"],
+	["directive-inline", "MaxRanges"],
+	["directive-inline", "MaxRequestWorkers"],
+	["directive-inline", "MaxSpareServers"],
+	["directive-inline", "MaxSpareThreads"],
+	["directive-inline", "MaxThreads"],
+	["directive-inline", "MergeTrailers"],
+	["directive-inline", "MetaDir"],
+	["directive-inline", "MetaFiles"],
+	["directive-inline", "MetaSuffix"],
+	["directive-inline", "MimeMagicFile"],
+	["directive-inline", "MinSpareServers"],
+	["directive-inline", "MinSpareThreads"],
+	["directive-inline", "MMapFile"],
+	["directive-inline", "ModemStandard"],
+	["directive-inline", "ModMimeUsePathInfo"],
+	["directive-inline", "MultiviewsMatch"],
+	["directive-inline", "Mutex"],
+	["directive-inline", "NameVirtualHost"],
+	["directive-inline", "NoProxy"],
+	["directive-inline", "NWSSLTrustedCerts"],
+	["directive-inline", "NWSSLUpgradeable"],
+	["directive-inline", "Options"],
+	["directive-inline", "Order"],
+	["directive-inline", "OutputSed"],
+	["directive-inline", "PassEnv"],
+	["directive-inline", "PidFile"],
+	["directive-inline", "PrivilegesMode"],
+	["directive-inline", "Protocol"],
+	["directive-inline", "ProtocolEcho"],
+	["directive-inline", "ProxyAddHeaders"],
+	["directive-inline", "ProxyBadHeader"],
+	["directive-inline", "ProxyBlock"],
+	["directive-inline", "ProxyDomain"],
+	["directive-inline", "ProxyErrorOverride"],
+	["directive-inline", "ProxyExpressDBMFile"],
+	["directive-inline", "ProxyExpressDBMType"],
+	["directive-inline", "ProxyExpressEnable"],
+	["directive-inline", "ProxyFtpDirCharset"],
+	["directive-inline", "ProxyFtpEscapeWildcards"],
+	["directive-inline", "ProxyFtpListOnWildcard"],
+	["directive-inline", "ProxyHTMLBufSize"],
+	["directive-inline", "ProxyHTMLCharsetOut"],
+	["directive-inline", "ProxyHTMLDocType"],
+	["directive-inline", "ProxyHTMLEnable"],
+	["directive-inline", "ProxyHTMLEvents"],
+	["directive-inline", "ProxyHTMLExtended"],
+	["directive-inline", "ProxyHTMLFixups"],
+	["directive-inline", "ProxyHTMLInterp"],
+	["directive-inline", "ProxyHTMLLinks"],
+	["directive-inline", "ProxyHTMLMeta"],
+	["directive-inline", "ProxyHTMLStripComments"],
+	["directive-inline", "ProxyHTMLURLMap"],
+	["directive-inline", "ProxyIOBufferSize"],
+	["directive-inline", "ProxyMaxForwards"],
+	["directive-inline", "ProxyPass"],
+	["directive-inline", "ProxyPassInherit"],
+	["directive-inline", "ProxyPassInterpolateEnv"],
+	["directive-inline", "ProxyPassMatch"],
+	["directive-inline", "ProxyPassReverse"],
+	["directive-inline", "ProxyPassReverseCookieDomain"],
+	["directive-inline", "ProxyPassReverseCookiePath"],
+	["directive-inline", "ProxyPreserveHost"],
+	["directive-inline", "ProxyReceiveBufferSize"],
+	["directive-inline", "ProxyRemote"],
+	["directive-inline", "ProxyRemoteMatch"],
+	["directive-inline", "ProxyRequests"],
+	["directive-inline", "ProxySCGIInternalRedirect"],
+	["directive-inline", "ProxySCGISendfile"],
+	["directive-inline", "ProxySet"],
+	["directive-inline", "ProxySourceAddress"],
+	["directive-inline", "ProxyStatus"],
+	["directive-inline", "ProxyTimeout"],
+	["directive-inline", "ProxyVia"],
+	["directive-inline", "ReadmeName"],
+	["directive-inline", "ReceiveBufferSize"],
+	["directive-inline", "Redirect"],
+	["directive-inline", "RedirectMatch"],
+	["directive-inline", "RedirectPermanent"],
+	["directive-inline", "RedirectTemp"],
+	["directive-inline", "ReflectorHeader"],
+	["directive-inline", "RemoteIPHeader"],
+	["directive-inline", "RemoteIPInternalProxy"],
+	["directive-inline", "RemoteIPInternalProxyList"],
+	["directive-inline", "RemoteIPProxiesHeader"],
+	["directive-inline", "RemoteIPTrustedProxy"],
+	["directive-inline", "RemoteIPTrustedProxyList"],
+	["directive-inline", "RemoveCharset"],
+	["directive-inline", "RemoveEncoding"],
+	["directive-inline", "RemoveHandler"],
+	["directive-inline", "RemoveInputFilter"],
+	["directive-inline", "RemoveLanguage"],
+	["directive-inline", "RemoveOutputFilter"],
+	["directive-inline", "RemoveType"],
+	["directive-inline", "RequestHeader"],
+	["directive-inline", "RequestReadTimeout"],
+	["directive-inline", "Require"],
+	["directive-inline", "RewriteBase"],
+	["directive-inline", "RewriteCond"],
+	["directive-inline", "RewriteEngine"],
+	["directive-inline", "RewriteMap"],
+	["directive-inline", "RewriteOptions"],
+	["directive-inline", "RewriteRule"],
+	["directive-inline", "RLimitCPU"],
+	["directive-inline", "RLimitMEM"],
+	["directive-inline", "RLimitNPROC"],
+	["directive-inline", "Satisfy"],
+	["directive-inline", "ScoreBoardFile"],
+	["directive-inline", "Script"],
+	["directive-inline", "ScriptAlias"],
+	["directive-inline", "ScriptAliasMatch"],
+	["directive-inline", "ScriptInterpreterSource"],
+	["directive-inline", "ScriptLog"],
+	["directive-inline", "ScriptLogBuffer"],
+	["directive-inline", "ScriptLogLength"],
+	["directive-inline", "ScriptSock"],
+	["directive-inline", "SecureListen"],
+	["directive-inline", "SeeRequestTail"],
+	["directive-inline", "SendBufferSize"],
+	["directive-inline", "ServerAdmin"],
+	["directive-inline", "ServerAlias"],
+	["directive-inline", "ServerLimit"],
+	["directive-inline", "ServerName"],
+	["directive-inline", "ServerPath"],
+	["directive-inline", "ServerRoot"],
+	["directive-inline", "ServerSignature"],
+	["directive-inline", "ServerTokens"],
+	["directive-inline", "Session"],
+	["directive-inline", "SessionCookieName"],
+	["directive-inline", "SessionCookieName2"],
+	["directive-inline", "SessionCookieRemove"],
+	["directive-inline", "SessionCryptoCipher"],
+	["directive-inline", "SessionCryptoDriver"],
+	["directive-inline", "SessionCryptoPassphrase"],
+	["directive-inline", "SessionCryptoPassphraseFile"],
+	["directive-inline", "SessionDBDCookieName"],
+	["directive-inline", "SessionDBDCookieName2"],
+	["directive-inline", "SessionDBDCookieRemove"],
+	["directive-inline", "SessionDBDDeleteLabel"],
+	["directive-inline", "SessionDBDInsertLabel"],
+	["directive-inline", "SessionDBDPerUser"],
+	["directive-inline", "SessionDBDSelectLabel"],
+	["directive-inline", "SessionDBDUpdateLabel"],
+	["directive-inline", "SessionEnv"],
+	["directive-inline", "SessionExclude"],
+	["directive-inline", "SessionHeader"],
+	["directive-inline", "SessionInclude"],
+	["directive-inline", "SessionMaxAge"],
+	["directive-inline", "SetEnv"],
+	["directive-inline", "SetEnvIf"],
+	["directive-inline", "SetEnvIfExpr"],
+	["directive-inline", "SetEnvIfNoCase"],
+	["directive-inline", "SetHandler"],
+	["directive-inline", "SetInputFilter"],
+	["directive-inline", "SetOutputFilter"],
+	["directive-inline", "SSIEndTag"],
+	["directive-inline", "SSIErrorMsg"],
+	["directive-inline", "SSIETag"],
+	["directive-inline", "SSILastModified"],
+	["directive-inline", "SSILegacyExprParser"],
+	["directive-inline", "SSIStartTag"],
+	["directive-inline", "SSITimeFormat"],
+	["directive-inline", "SSIUndefinedEcho"],
+	["directive-inline", "SSLCACertificateFile"],
+	["directive-inline", "SSLCACertificatePath"],
+	["directive-inline", "SSLCADNRequestFile"],
+	["directive-inline", "SSLCADNRequestPath"],
+	["directive-inline", "SSLCARevocationCheck"],
+	["directive-inline", "SSLCARevocationFile"],
+	["directive-inline", "SSLCARevocationPath"],
+	["directive-inline", "SSLCertificateChainFile"],
+	["directive-inline", "SSLCertificateFile"],
+	["directive-inline", "SSLCertificateKeyFile"],
+	["directive-inline", "SSLCipherSuite"],
+	["directive-inline", "SSLCompression"],
+	["directive-inline", "SSLCryptoDevice"],
+	["directive-inline", "SSLEngine"],
+	["directive-inline", "SSLFIPS"],
+	["directive-inline", "SSLHonorCipherOrder"],
+	["directive-inline", "SSLInsecureRenegotiation"],
+	["directive-inline", "SSLOCSPDefaultResponder"],
+	["directive-inline", "SSLOCSPEnable"],
+	["directive-inline", "SSLOCSPOverrideResponder"],
+	["directive-inline", "SSLOCSPResponderTimeout"],
+	["directive-inline", "SSLOCSPResponseMaxAge"],
+	["directive-inline", "SSLOCSPResponseTimeSkew"],
+	["directive-inline", "SSLOCSPUseRequestNonce"],
+	["directive-inline", "SSLOpenSSLConfCmd"],
+	["directive-inline", "SSLOptions"],
+	["directive-inline", "SSLPassPhraseDialog"],
+	["directive-inline", "SSLProtocol"],
+	["directive-inline", "SSLProxyCACertificateFile"],
+	["directive-inline", "SSLProxyCACertificatePath"],
+	["directive-inline", "SSLProxyCARevocationCheck"],
+	["directive-inline", "SSLProxyCARevocationFile"],
+	["directive-inline", "SSLProxyCARevocationPath"],
+	["directive-inline", "SSLProxyCheckPeerCN"],
+	["directive-inline", "SSLProxyCheckPeerExpire"],
+	["directive-inline", "SSLProxyCheckPeerName"],
+	["directive-inline", "SSLProxyCipherSuite"],
+	["directive-inline", "SSLProxyEngine"],
+	["directive-inline", "SSLProxyMachineCertificateChainFile"],
+	["directive-inline", "SSLProxyMachineCertificateFile"],
+	["directive-inline", "SSLProxyMachineCertificatePath"],
+	["directive-inline", "SSLProxyProtocol"],
+	["directive-inline", "SSLProxyVerify"],
+	["directive-inline", "SSLProxyVerifyDepth"],
+	["directive-inline", "SSLRandomSeed"],
+	["directive-inline", "SSLRenegBufferSize"],
+	["directive-inline", "SSLRequire"],
+	["directive-inline", "SSLRequireSSL"],
+	["directive-inline", "SSLSessionCache"],
+	["directive-inline", "SSLSessionCacheTimeout"],
+	["directive-inline", "SSLSessionTicketKeyFile"],
+	["directive-inline", "SSLSRPUnknownUserSeed"],
+	["directive-inline", "SSLSRPVerifierFile"],
+	["directive-inline", "SSLStaplingCache"],
+	["directive-inline", "SSLStaplingErrorCacheTimeout"],
+	["directive-inline", "SSLStaplingFakeTryLater"],
+	["directive-inline", "SSLStaplingForceURL"],
+	["directive-inline", "SSLStaplingResponderTimeout"],
+	["directive-inline", "SSLStaplingResponseMaxAge"],
+	["directive-inline", "SSLStaplingResponseTimeSkew"],
+	["directive-inline", "SSLStaplingReturnResponderErrors"],
+	["directive-inline", "SSLStaplingStandardCacheTimeout"],
+	["directive-inline", "SSLStrictSNIVHostCheck"],
+	["directive-inline", "SSLUserName"],
+	["directive-inline", "SSLUseStapling"],
+	["directive-inline", "SSLVerifyClient"],
+	["directive-inline", "SSLVerifyDepth"],
+	["directive-inline", "StartServers"],
+	["directive-inline", "StartThreads"],
+	["directive-inline", "Substitute"],
+	["directive-inline", "Suexec"],
+	["directive-inline", "SuexecUserGroup"],
+	["directive-inline", "ThreadLimit"],
+	["directive-inline", "ThreadsPerChild"],
+	["directive-inline", "ThreadStackSize"],
+	["directive-inline", "TimeOut"],
+	["directive-inline", "TraceEnable"],
+	["directive-inline", "TransferLog"],
+	["directive-inline", "TypesConfig"],
+	["directive-inline", "UnDefine"],
+	["directive-inline", "UndefMacro"],
+	["directive-inline", "UnsetEnv"],
+	["directive-inline", "Use"],
+	["directive-inline", "UseCanonicalName"],
+	["directive-inline", "UseCanonicalPhysicalPort"],
+	["directive-inline", "User"],
+	["directive-inline", "UserDir"],
+	["directive-inline", "VHostCGIMode"],
+	["directive-inline", "VHostCGIPrivs"],
+	["directive-inline", "VHostGroup"],
+	["directive-inline", "VHostPrivs"],
+	["directive-inline", "VHostSecure"],
+	["directive-inline", "VHostUser"],
+	["directive-inline", "VirtualDocumentRoot"],
+	["directive-inline", "VirtualDocumentRootIP"],
+	["directive-inline", "VirtualScriptAlias"],
+	["directive-inline", "VirtualScriptAliasIP"],
+	["directive-inline", "WatchdogInterval"],
+	["directive-inline", "XBitHack"],
+	["directive-inline", "xml2EncAlias"],
+	["directive-inline", "xml2EncDefault"],
+	["directive-inline", "xml2StartParse"]
+]
+
+----------------------------------------------------
+
+Checks for all inline directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test b/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test
new file mode 100644
index 0000000..322e59f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test
@@ -0,0 +1,15 @@
+^(.*)$
+^foo
+bar$
+
+----------------------------------------------------
+
+[
+	["regex", "^(.*)$"],
+	["regex", "^foo"],
+	["regex", "bar$"]
+]
+
+----------------------------------------------------
+
+Checks for regex.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/string_feature.test b/node_modules/prismjs/tests/languages/apacheconf/string_feature.test
new file mode 100644
index 0000000..d2849ca
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/string_feature.test
@@ -0,0 +1,24 @@
+"foo bar"
+'foo bar'
+"%{REMOTE_HOST}"
+
+----------------------------------------------------
+
+[
+	["string", [
+		"\"foo bar\""
+	]],
+	["string", [
+		"'foo bar'"
+	]],
+	["string", [
+		"\"",
+		["variable", "%{REMOTE_HOST}"],
+		"\""
+	]]
+]
+
+----------------------------------------------------
+
+Checks for strings.
+Also checks for variables inside strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test b/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test
new file mode 100644
index 0000000..025fe75
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test
@@ -0,0 +1,15 @@
+$port
+${docroot}
+%{REMOTE_HOST}
+
+----------------------------------------------------
+
+[
+	["variable", "$port"],
+	["variable", "${docroot}"],
+	["variable", "%{REMOTE_HOST}"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/assignment_feature.test b/node_modules/prismjs/tests/languages/apl/assignment_feature.test
new file mode 100644
index 0000000..b06cb39
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/assignment_feature.test
@@ -0,0 +1,13 @@
+a←1 2 3
+
+----------------------------------------------------
+
+[
+	"a",
+	["assignment", "←"],
+	["number", "1"], ["number", "2"], ["number", "3"]
+]
+
+----------------------------------------------------
+
+Checks for assignment.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/comment_feature.test b/node_modules/prismjs/tests/languages/apl/comment_feature.test
new file mode 100644
index 0000000..a308451
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/comment_feature.test
@@ -0,0 +1,15 @@
+⍝
+⍝ Foobar
+#!/usr/bin/env runapl
+
+----------------------------------------------------
+
+[
+	["comment", "⍝"],
+	["comment", "⍝ Foobar"],
+	["comment", "#!/usr/bin/env runapl"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/constant_feature.test b/node_modules/prismjs/tests/languages/apl/constant_feature.test
new file mode 100644
index 0000000..9f63162
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/constant_feature.test
@@ -0,0 +1,19 @@
+⍬
+⌾
+#
+⎕
+⍞
+
+----------------------------------------------------
+
+[
+	["constant", "⍬"],
+	["constant", "⌾"],
+	["constant", "#"],
+	["constant", "⎕"],
+	["constant", "⍞"]
+]
+
+----------------------------------------------------
+
+Checks for constants.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/dfn_feature.test b/node_modules/prismjs/tests/languages/apl/dfn_feature.test
new file mode 100644
index 0000000..ef4be35
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/dfn_feature.test
@@ -0,0 +1,23 @@
+{0=⍴⍴⍺:'hello' ⋄ ∇¨⍵}
+
+----------------------------------------------------
+
+[
+	["dfn", "{"],
+	["number", "0"],
+	["function", "="],
+	["function", "⍴"],
+	["function", "⍴"],
+	["dfn", "⍺"],
+	["dfn", ":"],
+	["string", "'hello'"],
+	["punctuation", "⋄"],
+	["dfn", "∇"],
+	["monadic-operator", "¨"],
+	["dfn", "⍵"],
+	["dfn", "}"]
+]
+
+----------------------------------------------------
+
+Checks for Dfns.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test b/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test
new file mode 100644
index 0000000..8d7424c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test
@@ -0,0 +1,13 @@
+. ⍣ ⍠
+⍤ ∘ ⌸
+
+----------------------------------------------------
+
+[
+	["dyadic-operator", "."], ["dyadic-operator", "⍣"], ["dyadic-operator", "⍠"],
+	["dyadic-operator", "⍤"], ["dyadic-operator", "∘"], ["dyadic-operator", "⌸"]
+]
+
+----------------------------------------------------
+
+Checks for dyadic operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/function_feature.test b/node_modules/prismjs/tests/languages/apl/function_feature.test
new file mode 100644
index 0000000..93be749
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/function_feature.test
@@ -0,0 +1,41 @@
+- + × ÷
+⌈ ⌊ ∣ |
+⍳ ⍸ ? *
+⍟ ○ ! ⌹
+< ≤ = >
+≥ ≠ ≡ ≢
+∊ ⍷ ∪ ∩
+~ ∨ ∧ ⍱
+⍲ ⍴ , ⍪
+⌽ ⊖ ⍉
+↑ ↓ ⊂ ⊃
+⌷ ⍋ ⍒
+⊤ ⊥ ⍕ ⍎
+⊣ ⊢ ⍁ ⍂
+≈ ⍯
+↗ ¤ →
+
+----------------------------------------------------
+
+[
+	["function", "-"], ["function", "+"], ["function", "×"], ["function", "÷"],
+	["function", "⌈"], ["function", "⌊"], ["function", "∣"], ["function", "|"],
+	["function", "⍳"], ["function", "⍸"], ["function", "?"], ["function", "*"],
+	["function", "⍟"], ["function", "○"], ["function", "!"], ["function", "⌹"],
+	["function", "<"], ["function", "≤"], ["function", "="], ["function", ">"],
+	["function", "≥"], ["function", "≠"], ["function", "≡"], ["function", "≢"],
+	["function", "∊"], ["function", "⍷"], ["function", "∪"], ["function", "∩"],
+	["function", "~"], ["function", "∨"], ["function", "∧"], ["function", "⍱"],
+	["function", "⍲"], ["function", "⍴"], ["function", ","], ["function", "⍪"],
+	["function", "⌽"], ["function", "⊖"], ["function", "⍉"],
+	["function", "↑"], ["function", "↓"], ["function", "⊂"], ["function", "⊃"],
+	["function", "⌷"], ["function", "⍋"], ["function", "⍒"],
+	["function", "⊤"], ["function", "⊥"], ["function", "⍕"], ["function", "⍎"],
+	["function", "⊣"], ["function", "⊢"], ["function", "⍁"], ["function", "⍂"],
+	["function", "≈"], ["function", "⍯"],
+	["function", "↗"], ["function", "¤"], ["function", "→"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test b/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test
new file mode 100644
index 0000000..0dcc9b0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test
@@ -0,0 +1,15 @@
+\ / ⌿ ⍀
+¨ ⍨ ⌶
+& ∥
+
+----------------------------------------------------
+
+[
+	["monadic-operator", "\\"], ["monadic-operator", "/"], ["monadic-operator", "⌿"], ["monadic-operator", "⍀"],
+	["monadic-operator", "¨"], ["monadic-operator", "⍨"], ["monadic-operator", "⌶"],
+	["monadic-operator", "&"], ["monadic-operator", "∥"]
+]
+
+----------------------------------------------------
+
+Checks for monadic operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/number_feature.test b/node_modules/prismjs/tests/languages/apl/number_feature.test
new file mode 100644
index 0000000..815d1ca
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/number_feature.test
@@ -0,0 +1,27 @@
+42
+3.14159
+¯2
+∞
+3E12
+2.8e¯4
+0.1e+7
+2j3
+¯4.3e2J1.9e¯4
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "¯2"],
+	["number", "∞"],
+	["number", "3E12"],
+	["number", "2.8e¯4"],
+	["number", "0.1e+7"],
+	["number", "2j3"],
+	["number", "¯4.3e2J1.9e¯4"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/statement_feature.test b/node_modules/prismjs/tests/languages/apl/statement_feature.test
new file mode 100644
index 0000000..24c6874
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/statement_feature.test
@@ -0,0 +1,13 @@
+:Ab
+:FooBar
+
+----------------------------------------------------
+
+[
+	["statement", ":Ab"],
+	["statement", ":FooBar"]
+]
+
+----------------------------------------------------
+
+Checks for statements.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/string_feature.test b/node_modules/prismjs/tests/languages/apl/string_feature.test
new file mode 100644
index 0000000..8bc8dd1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/string_feature.test
@@ -0,0 +1,15 @@
+''
+'foobar'
+'fo''obar'
+
+----------------------------------------------------
+
+[
+	["string", "''"],
+	["string", "'foobar'"],
+	["string", "'fo''obar'"]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/apl/system-function_feature.test b/node_modules/prismjs/tests/languages/apl/system-function_feature.test
new file mode 100644
index 0000000..81cbcaa
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/apl/system-function_feature.test
@@ -0,0 +1,17 @@
+⎕IO
+⎕WA
+⎕CR
+⎕TCNL
+
+----------------------------------------------------
+
+[
+	["system-function", "⎕IO"],
+	["system-function", "⎕WA"],
+	["system-function", "⎕CR"],
+	["system-function", "⎕TCNL"]
+]
+
+----------------------------------------------------
+
+Checks for system functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/class_feature.test b/node_modules/prismjs/tests/languages/applescript/class_feature.test
new file mode 100644
index 0000000..547906d
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/class_feature.test
@@ -0,0 +1,39 @@
+alias application boolean class constant
+date file integer list number
+POSIX file
+real record reference
+RGB color
+script text centimetres centimeters feet
+inches kilometres kilometers metres meters
+miles yards
+square feet square kilometres square kilometers square metres
+square meters square miles square yards
+cubic centimetres cubic centimeters cubic feet cubic inches
+cubic metres cubic meters cubic yards
+gallons litres liters quarts grams
+kilograms ounces pounds
+degrees Celsius degrees Fahrenheit degrees Kelvin
+
+----------------------------------------------------
+
+[
+	["class", "alias"], ["class", "application"], ["class", "boolean"], ["class", "class"], ["class", "constant"],
+	["class", "date"], ["class", "file"], ["class", "integer"], ["class", "list"], ["class", "number"],
+	["class", "POSIX file"],
+	["class", "real"], ["class", "record"], ["class", "reference"],
+	["class", "RGB color"],
+	["class", "script"], ["class", "text"], ["class", "centimetres"], ["class", "centimeters"], ["class", "feet"],
+	["class", "inches"], ["class", "kilometres"], ["class", "kilometers"], ["class", "metres"], ["class", "meters"],
+	["class", "miles"], ["class", "yards"],
+	["class", "square feet"], ["class", "square kilometres"], ["class", "square kilometers"], ["class", "square metres"],
+	["class", "square meters"], ["class", "square miles"], ["class", "square yards"],
+	["class", "cubic centimetres"], ["class", "cubic centimeters"], ["class", "cubic feet"], ["class", "cubic inches"],
+	["class", "cubic metres"], ["class", "cubic meters"], ["class", "cubic yards"],
+	["class", "gallons"], ["class", "litres"], ["class", "liters"], ["class", "quarts"], ["class", "grams"],
+	["class", "kilograms"], ["class", "ounces"], ["class", "pounds"],
+	["class", "degrees Celsius"], ["class", "degrees Fahrenheit"], ["class", "degrees Kelvin"]
+]
+
+----------------------------------------------------
+
+Checks for all classes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/comment_feature.test b/node_modules/prismjs/tests/languages/applescript/comment_feature.test
new file mode 100644
index 0000000..d823ba4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/comment_feature.test
@@ -0,0 +1,21 @@
+-- foo bar
+# foo bar
+(* foo
+bar *)
+(* foo
+(* bar *)
+*)
+
+----------------------------------------------------
+
+[
+	["comment", "-- foo bar"],
+	["comment", "# foo bar"],
+	["comment", "(* foo\r\nbar *)"],
+	["comment", "(* foo\r\n(* bar *)\r\n*)"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
+Also checks for one level of nesting.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/keyword_feature.test b/node_modules/prismjs/tests/languages/applescript/keyword_feature.test
new file mode 100644
index 0000000..bde63a1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/keyword_feature.test
@@ -0,0 +1,59 @@
+about above after against
+apart from
+around
+aside from
+at back before beginning behind below
+beneath beside between but by
+considering continue copy
+does eighth else end
+equal error every exit
+false fifth first for fourth
+from front get given global
+if ignoring in
+instead of
+into is it its last
+local me middle my
+ninth of on onto
+out of
+over prop property put
+repeat return returning
+second set seventh since sixth
+some tell tenth that the
+then third through thru timeout
+times to transaction true try
+until where while whose with
+without
+
+----------------------------------------------------
+
+[
+	["keyword", "about"], ["keyword", "above"], ["keyword", "after"], ["keyword", "against"],
+	["keyword", "apart from"],
+	["keyword", "around"],
+	["keyword", "aside from"],
+	["keyword", "at"], ["keyword", "back"], ["keyword", "before"], ["keyword", "beginning"], ["keyword", "behind"], ["keyword", "below"],
+	["keyword", "beneath"], ["keyword", "beside"], ["keyword", "between"], ["keyword", "but"], ["keyword", "by"],
+	["keyword", "considering"], ["keyword", "continue"], ["keyword", "copy"],
+	["keyword", "does"], ["keyword", "eighth"], ["keyword", "else"], ["keyword", "end"],
+	["keyword", "equal"], ["keyword", "error"], ["keyword", "every"], ["keyword", "exit"],
+	["keyword", "false"], ["keyword", "fifth"], ["keyword", "first"], ["keyword", "for"], ["keyword", "fourth"],
+	["keyword", "from"], ["keyword", "front"], ["keyword", "get"], ["keyword", "given"], ["keyword", "global"],
+	["keyword", "if"], ["keyword", "ignoring"], ["keyword", "in"],
+	["keyword", "instead of"],
+	["keyword", "into"], ["keyword", "is"], ["keyword", "it"], ["keyword", "its"], ["keyword", "last"],
+	["keyword", "local"], ["keyword", "me"], ["keyword", "middle"], ["keyword", "my"],
+	["keyword", "ninth"], ["keyword", "of"], ["keyword", "on"], ["keyword", "onto"],
+	["keyword", "out of"],
+	["keyword", "over"], ["keyword", "prop"], ["keyword", "property"], ["keyword", "put"],
+	["keyword", "repeat"], ["keyword", "return"], ["keyword", "returning"],
+	["keyword", "second"], ["keyword", "set"], ["keyword", "seventh"], ["keyword", "since"], ["keyword", "sixth"],
+	["keyword", "some"], ["keyword", "tell"], ["keyword", "tenth"], ["keyword", "that"], ["keyword", "the"],
+	["keyword", "then"], ["keyword", "third"], ["keyword", "through"], ["keyword", "thru"], ["keyword", "timeout"],
+	["keyword", "times"], ["keyword", "to"], ["keyword", "transaction"], ["keyword", "true"], ["keyword", "try"],
+	["keyword", "until"], ["keyword", "where"], ["keyword", "while"], ["keyword", "whose"], ["keyword", "with"],
+	["keyword", "without"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/number_feature.test b/node_modules/prismjs/tests/languages/applescript/number_feature.test
new file mode 100644
index 0000000..96eb6f2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/number_feature.test
@@ -0,0 +1,17 @@
+42
+3.14159
+3e10
+4.2E-5
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "3e10"],
+	["number", "4.2E-5"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/operator_feature.test b/node_modules/prismjs/tests/languages/applescript/operator_feature.test
new file mode 100644
index 0000000..fb4acf4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/operator_feature.test
@@ -0,0 +1,48 @@
+& = ≠ ≤ ≥
+* + - / ÷ ^
+< <= > >=
+
+start with begin with end with
+starts with begins with ends with
+does not contain doesn't contain
+contain contains
+is in isn't in is not in
+is contained by isn't contained by is not contained by
+greater than greater than or equal greater than or equal to
+less than less than or equal less than or equal to
+does not come before doesn't come before comes before
+does not come after doesn't come after comes after
+is equal isn't equal is not equal
+is equal to isn't equal to is not equal to
+does not equal doesn't equal equals
+isn't is not
+ref a ref to a reference to
+and or div mod as not
+
+----------------------------------------------------
+
+[
+	["operator", "&"], ["operator", "="], ["operator", "≠"], ["operator", "≤"], ["operator", "≥"],
+	["operator", "*"], ["operator", "+"], ["operator", "-"], ["operator", "/"], ["operator", "÷"], ["operator", "^"],
+	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
+	["operator", "start with"], ["operator", "begin with"], ["operator", "end with"],
+	["operator", "starts with"], ["operator", "begins with"], ["operator", "ends with"],
+	["operator", "does not contain"], ["operator", "doesn't contain"],
+	["operator", "contain"], ["operator", "contains"],
+	["operator", "is in"], ["operator", "isn't in"], ["operator", "is not in"],
+	["operator", "is contained by"], ["operator", "isn't contained by"], ["operator", "is not contained by"],
+	["operator", "greater than"], ["operator", "greater than or equal"], ["operator", "greater than or equal to"],
+	["operator", "less than"], ["operator", "less than or equal"], ["operator", "less than or equal to"],
+	["operator", "does not come before"], ["operator", "doesn't come before"], ["operator", "comes before"],
+	["operator", "does not come after"], ["operator", "doesn't come after"], ["operator", "comes after"],
+	["operator", "is equal"], ["operator", "isn't equal"], ["operator", "is not equal"],
+	["operator", "is equal to"], ["operator", "isn't equal to"], ["operator", "is not equal to"],
+	["operator", "does not equal"], ["operator", "doesn't equal"], ["operator", "equals"],
+	["operator", "isn't"], ["operator", "is not"],
+	["operator", "ref"], ["operator", "a ref to"], ["operator", "a reference to"],
+	["operator", "and"], ["operator", "or"], ["operator", "div"], ["operator", "mod"], ["operator", "as"], ["operator", "not"]
+]
+
+----------------------------------------------------
+
+Checks for most of the operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/applescript/string_feature.test b/node_modules/prismjs/tests/languages/applescript/string_feature.test
new file mode 100644
index 0000000..42770f6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/applescript/string_feature.test
@@ -0,0 +1,13 @@
+""
+"foo bar"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"foo bar\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test b/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test
new file mode 100644
index 0000000..6b1688f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test
@@ -0,0 +1,19 @@
+TIP: Foobar
+NOTE: Foo bar baz
+IMPORTANT: Foobar
+WARNING: Foo bar baz
+CAUTION: Foobar
+
+----------------------------------------------------
+
+[
+	["admonition", "TIP:"], " Foobar\r\n",
+	["admonition", "NOTE:"], " Foo bar baz\r\n",
+	["admonition", "IMPORTANT:"], " Foobar\r\n",
+	["admonition", "WARNING:"], " Foo bar baz\r\n",
+	["admonition", "CAUTION:"], " Foobar"
+]
+
+----------------------------------------------------
+
+Checks for admonitions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test b/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test
new file mode 100644
index 0000000..a12299a
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test
@@ -0,0 +1,58 @@
+:Foo bar: baz
+
+:Foobar: Foo +
+bar +
+baz
+
+:Foo bar!:
+:Foobar!:
+
+=====
+:Foo bar: baz
+
+:Foobar: Foo +
+bar +
+baz
+
+:Foo bar!:
+:Foobar!:
+=====
+
+|=====
+|
+:Foo bar: baz
+
+:Foobar: Foo +
+bar +
+baz
+|=====
+
+----------------------------------------------------
+
+[
+	["attribute-entry", ":Foo bar: baz"],
+	["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
+	["attribute-entry", ":Foo bar!:"],
+	["attribute-entry", ":Foobar!:"],
+
+	["other-block", [
+		["punctuation", "====="],
+		["attribute-entry", ":Foo bar: baz"],
+		["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
+		["attribute-entry", ":Foo bar!:"],
+		["attribute-entry", ":Foobar!:"],
+		["punctuation", "====="]
+	]],
+
+	["table", [
+		["punctuation", "|====="],
+		["punctuation", "|"],
+		["attribute-entry", ":Foo bar: baz"],
+		["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
+		["punctuation", "|====="]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for attribute entries.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test b/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test
new file mode 100644
index 0000000..a4eb9e2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test
@@ -0,0 +1,403 @@
+Foo [big red yellow-background]#obvious#
+
+[float]
+[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
+[quote,'"with *an* image" image:foo.png[] (TM)']
+
+[NOTE]
+[icon="./images/icons/wink.png"]
+[icons=None, caption="My Special Note"]
+[start=7]
+
+[cols="e,m,^,>s",width="25%"]
+
+=====
+Foo [big red yellow-background]#obvious#
+
+[float]
+[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
+[quote,'"with *an* image" image:foo.png[] (TM)']
+
+[NOTE]
+[icon="./images/icons/wink.png"]
+[icons=None, caption="My Special Note"]
+[start=7]
+
+[cols="e,m,^,>s",width="25%"]
+=====
+
+|=====
+|
+Foo [big red yellow-background]#obvious#
+
+[float]
+[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
+[quote,'"with *an* image" image:foo.png[] (TM)']
+
+[NOTE]
+[icon="./images/icons/wink.png"]
+[icons=None, caption="My Special Note"]
+[start=7]
+
+[cols="e,m,^,>s",width="25%"]
+|=====
+
+
+latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
+asciimath:[`x/x={(1,if x!=0),(text{undefined},if x=0):}`]
+latexmath:[$\sum_{n=1}^\infty \frac{1}{2^n}$]
+
+----------------------------------------------------
+
+[
+	"Foo ",
+	["inline", [
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "big red yellow-background"],
+			["punctuation", "]"]
+		]],
+		["punctuation", "#"], "obvious", ["punctuation", "#"]
+	]],
+
+	["attributes", [
+		["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["attr-value", "quote"], ["punctuation", ","],
+		["interpreted", [
+			["punctuation", "'"],
+			["macro", [
+				["function", "http"], ["punctuation", ":"],
+				"//en.wikipedia.org/wiki/Samuel_Johnson",
+				["attributes", [
+					["punctuation", "["],
+					["attr-value", "Samuel Johnson"],
+					["punctuation", "]"]
+				]]
+			]],
+			["punctuation", "'"]
+		]],
+		["punctuation", "]"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["attr-value", "quote"], ["punctuation", ","],
+		["interpreted", [
+			["punctuation", "'"],
+			["entity", """],
+			"with ",
+			["inline", [
+				["bold", [
+					["punctuation", "*"], "an", ["punctuation", "*"]
+				]]
+			]],
+			" image",
+			["entity", """],
+			["macro", [
+				["function", "image"], ["punctuation", ":"],
+				"foo.png",
+				["attributes", [
+					["punctuation", "["], ["punctuation", "]"]
+				]]
+			]],
+			["replacement", "(TM)"],
+			["punctuation", "'"]
+		]],
+		["punctuation", "]"]
+	]],
+
+	["attributes", [
+		["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["variable", "icon"],
+		["operator", "="],
+		["string", "\"./images/icons/wink.png\""],
+		["punctuation", "]"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["variable", "icons"],
+		["operator", "="],
+		["attr-value", "None"],
+		["punctuation", ","],
+		["variable", "caption"],
+		["operator", "="],
+		["string", "\"My Special Note\""],
+		["punctuation", "]"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["variable", "start"],
+		["operator", "="],
+		["attr-value", "7"],
+		["punctuation", "]"]
+	]],
+
+	["attributes", [
+		["punctuation", "["],
+		["variable", "cols"],
+		["operator", "="],
+		["string", "\"e,m,^,>s\""],
+		["punctuation", ","],
+		["variable", "width"],
+		["operator", "="],
+		["string", "\"25%\""],
+		["punctuation", "]"]
+	]],
+
+	["other-block", [
+		["punctuation", "====="],
+
+		"\r\nFoo ",
+		["inline", [
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "big red yellow-background"],
+				["punctuation", "]"]
+			]],
+			["punctuation", "#"], "obvious", ["punctuation", "#"]
+		]],
+
+		["attributes", [
+			["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "quote"], ["punctuation", ","],
+			["interpreted", [
+				["punctuation", "'"],
+				["macro", [
+					["function", "http"], ["punctuation", ":"],
+					"//en.wikipedia.org/wiki/Samuel_Johnson",
+					["attributes", [
+						["punctuation", "["],
+						["attr-value", "Samuel Johnson"],
+						["punctuation", "]"]
+					]]
+				]],
+				["punctuation", "'"]
+			]],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "quote"], ["punctuation", ","],
+			["interpreted", [
+				["punctuation", "'"],
+				["entity", """],
+				"with ",
+				["inline", [
+					["bold", [
+						["punctuation", "*"], "an", ["punctuation", "*"]
+					]]
+				]],
+				" image",
+				["entity", """],
+				["macro", [
+					["function", "image"], ["punctuation", ":"],
+					"foo.png",
+					["attributes", [
+						["punctuation", "["], ["punctuation", "]"]
+					]]
+				]],
+				["replacement", "(TM)"],
+				["punctuation", "'"]
+			]],
+			["punctuation", "]"]
+		]],
+
+		["attributes", [
+			["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "icon"],
+			["operator", "="],
+			["string", "\"./images/icons/wink.png\""],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "icons"],
+			["operator", "="],
+			["attr-value", "None"],
+			["punctuation", ","],
+			["variable", "caption"],
+			["operator", "="],
+			["string", "\"My Special Note\""],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "start"],
+			["operator", "="],
+			["attr-value", "7"],
+			["punctuation", "]"]
+		]],
+
+		["attributes", [
+			["punctuation", "["],
+			["variable", "cols"],
+			["operator", "="],
+			["string", "\"e,m,^,>s\""],
+			["punctuation", ","],
+			["variable", "width"],
+			["operator", "="],
+			["string", "\"25%\""],
+			["punctuation", "]"]
+		]],
+
+		["punctuation", "====="]
+	]],
+
+	["table", [
+		["punctuation", "|====="],
+		["punctuation", "|"],
+
+		"\r\nFoo ",
+		["inline", [
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "big red yellow-background"],
+				["punctuation", "]"]
+			]],
+			["punctuation", "#"], "obvious", ["punctuation", "#"]
+		]],
+
+		["attributes", [
+			["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "quote"], ["punctuation", ","],
+			["interpreted", [
+				["punctuation", "'"],
+				["macro", [
+					["function", "http"], ["punctuation", ":"],
+					"//en.wikipedia.org/wiki/Samuel_Johnson",
+					["attributes", [
+						["punctuation", "["],
+						["attr-value", "Samuel Johnson"],
+						["punctuation", "]"]
+					]]
+				]],
+				["punctuation", "'"]
+			]],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "quote"], ["punctuation", ","],
+			["interpreted", [
+				["punctuation", "'"],
+				["entity", """],
+				"with ",
+				["inline", [
+					["bold", [
+						["punctuation", "*"], "an", ["punctuation", "*"]
+					]]
+				]],
+				" image",
+				["entity", """],
+				["macro", [
+					["function", "image"], ["punctuation", ":"],
+					"foo.png",
+					["attributes", [
+						["punctuation", "["], ["punctuation", "]"]
+					]]
+				]],
+				["replacement", "(TM)"],
+				["punctuation", "'"]
+			]],
+			["punctuation", "]"]
+		]],
+
+		["attributes", [
+			["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "icon"],
+			["operator", "="],
+			["string", "\"./images/icons/wink.png\""],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "icons"],
+			["operator", "="],
+			["attr-value", "None"],
+			["punctuation", ","],
+			["variable", "caption"],
+			["operator", "="],
+			["string", "\"My Special Note\""],
+			["punctuation", "]"]
+		]],
+		["attributes", [
+			["punctuation", "["],
+			["variable", "start"],
+			["operator", "="],
+			["attr-value", "7"],
+			["punctuation", "]"]
+		]],
+
+		["attributes", [
+			["punctuation", "["],
+			["variable", "cols"],
+			["operator", "="],
+			["string", "\"e,m,^,>s\""],
+			["punctuation", ","],
+			["variable", "width"],
+			["operator", "="],
+			["string", "\"25%\""],
+			["punctuation", "]"]
+		]],
+
+		["punctuation", "|====="]
+	]],
+
+	["macro", [
+		["function", "latexmath"], ["punctuation", ":"],
+		["attributes", [
+			["punctuation", "["],
+			["quoted", [
+				["punctuation", "$"],
+				"C = \\alpha + \\beta Y^{\\gamma} + \\epsilon",
+				["punctuation", "$"]
+			]],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "asciimath"], ["punctuation", ":"],
+		["attributes", [
+			["punctuation", "["],
+			["quoted", [
+				["punctuation", "`"],
+				"x/x={(1,if x!=0),(text{undefined},if x=0):}",
+				["punctuation", "`"]
+			]],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "latexmath"], ["punctuation", ":"],
+		["attributes", [
+			["punctuation", "["],
+			["quoted", [
+				["punctuation", "$"],
+				"\\sum_{n=1}^\\infty \\frac{1}{2^n}",
+				["punctuation", "$"]
+			]],
+			["punctuation", "]"]
+		]]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for attributes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test b/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test
new file mode 100644
index 0000000..b7de9b1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test
@@ -0,0 +1,34 @@
+Foobar <1>
+<1> Foo
+1> Bar
+> Baz
+
+|====
+| Foobar <1>
+<1> Foo
+1> Bar
+> Baz
+|====
+
+----------------------------------------------------
+
+[
+	"Foobar ", ["callout", "<1>"],
+	["callout", "<1>"], " Foo\r\n",
+	["callout", "1>"], " Bar\r\n",
+	["callout", ">"], " Baz\r\n\r\n",
+
+	["table", [
+		["punctuation", "|===="],
+		["punctuation", "|"],
+		" Foobar ", ["callout", "<1>"],
+		["callout", "<1>"], " Foo\r\n",
+		["callout", "1>"], " Bar\r\n",
+		["callout", ">"], " Baz\r\n",
+		["punctuation", "|===="]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for callouts.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test
new file mode 100644
index 0000000..4c4248e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test
@@ -0,0 +1,19 @@
+////
+////
+
+////
+Foobar
+
+Baz
+////
+
+----------------------------------------------------
+
+[
+	["comment-block", "////\r\n////"],
+	["comment-block", "////\r\nFoobar\r\n\r\nBaz\r\n////"]
+]
+
+----------------------------------------------------
+
+Checks for comment blocks.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test b/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test
new file mode 100644
index 0000000..c2ccc51
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test
@@ -0,0 +1,41 @@
+//
+// Foobar
+
+******
+//
+// Foobar
+******
+
+|======
+|
+//
+|
+// Foobar
+|======
+
+----------------------------------------------------
+
+[
+	["comment", "//"],
+	["comment", "// Foobar"],
+
+	["other-block", [
+		["punctuation", "******"],
+		["comment", "//"],
+		["comment", "// Foobar"],
+		["punctuation", "******"]
+	]],
+
+	["table", [
+		["punctuation", "|======"],
+		["punctuation", "|"],
+		["comment", "//"],
+		["punctuation", "|"],
+		["comment", "// Foobar"],
+		["punctuation", "|======"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js
new file mode 100644
index 0000000..2e99cd1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js
@@ -0,0 +1,4 @@
+module.exports = {
+	'➊': '&#x278a;',
+	'¶': '&#182;'
+};
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test
new file mode 100644
index 0000000..a3d5ce8
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test
@@ -0,0 +1,48 @@
+➊ ¶
+
+➊ ¶
+============
+
+['➊ ¶']
+
+--
+➊ ¶
+--
+
+|======
+| ➊ ¶
+|======
+
+----------------------------------------------------
+
+[
+	["entity", "➊"], ["entity", "¶"],
+	["title", [
+		["entity", "➊"], ["entity", "¶"],
+		["punctuation", "============"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["interpreted", [
+			["punctuation", "'"],
+			["entity", "➊"], ["entity", "¶"],
+			["punctuation", "'"]
+		]],
+		["punctuation", "]"]
+	]],
+	["other-block", [
+		["punctuation", "--"],
+		["entity", "➊"], ["entity", "¶"],
+		["punctuation", "--"]
+	]],
+	["table", [
+		["punctuation", "|======"],
+		["punctuation", "|"],
+		["entity", "➊"], ["entity", "¶"],
+		["punctuation", "|======"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for entities.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test b/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test
new file mode 100644
index 0000000..822a7db
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test
@@ -0,0 +1,14 @@
+'''
+
+''''''''''
+
+----------------------------------------------------
+
+[
+	["hr", "'''"],
+	["hr", "''''''''''"]
+]
+
+----------------------------------------------------
+
+Checks for hr.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test
new file mode 100644
index 0000000..c6d6657
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test
@@ -0,0 +1,28 @@
+.
+
+	(TM) __foobar__
+	:bar: baz
+
+ Foo *bar* baz
+ // Foobar
+ == Foobar ==
+
+    Title
+    ~~~~~
+    .....
+    .....
+
+----------------------------------------------------
+
+[
+	".\r\n\r\n",
+	["indented-block", "\t(TM) __foobar__\r\n\t:bar: baz"],
+	["indented-block", " Foo *bar* baz\r\n // Foobar\r\n == Foobar =="],
+	["indented-block", "    Title\r\n    ~~~~~\r\n    .....\r\n    ....."]
+]
+
+----------------------------------------------------
+
+Checks for indented blocks.
+Also checks that nothing gets highlighted inside.
+The initial dot is required because tests are trimmed.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test b/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test
new file mode 100644
index 0000000..d88a570
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test
@@ -0,0 +1,521 @@
+_emphasis_
+``double quotes''
+`single quotes'
+`monospace`
+'emphasis'
+*strong*
++monospace+
+#unquoted#
+
+_foo _ bar baz_
+`foo ' bar baz'
+`foo ` bar baz`
+'foo ' bar baz'
+*foo * bar baz*
++foo + bar baz+
+#foo # bar baz#
+
+_foo
+bar_
+``foo
+bar''
+`foo
+bar'
+`foo
+bar`
+'foo
+bar'
+*foo
+bar*
++foo
+bar+
+#foo
+bar#
+
+foo__emphasis__bar
+foo**strong**bar
+foo++monospace++bar
+foo+++passthrough+++bar
+foo##unquoted##bar
+foo$$passthrough$$bar
+foo~subscript~bar
+foo^superscript^bar
+foo{attribute-reference}bar
+foo[[anchor]]bar
+foo[[[bibliography anchor]]]bar
+foo<>bar
+foo(((indexes)))bar
+foo((indexes))bar
+
+====
+_emphasis_
+``double quotes''
+`single quotes'
+`monospace`
+'emphasis'
+*strong*
++monospace+
+#unquoted#
+__emphasis__
+**strong**
+++monospace++
++++passthrough+++
+##unquoted##
+$$passthrough$$
+~subscript~
+^superscript^
+{attribute-reference}
+[[anchor]]
+[[[bibliography anchor]]]
+<>
+(((indexes)))
+((indexes))
+====
+
+|====
+|
+_emphasis_
+``double quotes''
+`single quotes'
+`monospace`
+'emphasis'
+*strong*
++monospace+
+#unquoted#
+__emphasis__
+**strong**
+++monospace++
++++passthrough+++
+##unquoted##
+$$passthrough$$
+~subscript~
+^superscript^
+{attribute-reference}
+[[anchor]]
+[[[bibliography anchor]]]
+<>
+(((indexes)))
+((indexes))
+|====
+
+['foo *bar* baz']
+
+== foo *bar* baz ==
+
+{names=value}
+{names?value}
+{names!value}
+{names#value}
+{names%value}
+{names@regexp:value1:value2}
+{names$regexp:value1:value2}
+{names$regexp::value}
+{foo,bar=foobar}
+{foo+bar=foobar}
+{counter:attrname}
+
+----------------------------------------------------
+
+[
+	["inline", [
+		["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
+	]],
+	["inline", [
+		["punctuation", "``"], "double quotes", ["punctuation", "''"]
+	]],
+	["inline", [
+		["punctuation", "`"], "single quotes", ["punctuation", "'"]
+	]],
+	["inline", [
+		["punctuation", "`"], "monospace", ["punctuation", "`"]
+	]],
+	["inline", [
+		["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
+	]],
+	["inline", [
+		["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
+	]],
+	["inline", [
+		["punctuation", "+"], "monospace", ["punctuation", "+"]
+	]],
+	["inline", [
+		["punctuation", "#"], "unquoted", ["punctuation", "#"]
+	]],
+
+	["inline", [
+		["italic", [["punctuation", "_"], "foo _ bar baz", ["punctuation", "_"]]]
+	]],
+	["inline", [
+		["punctuation", "`"], "foo ' bar baz", ["punctuation", "'"]
+	]],
+	["inline", [
+		["punctuation", "`"], "foo ` bar baz", ["punctuation", "`"]
+	]],
+	["inline", [
+		["italic", [["punctuation", "'"], "foo ' bar baz", ["punctuation", "'"]]]
+	]],
+	["inline", [
+		["bold", [["punctuation", "*"], "foo * bar baz", ["punctuation", "*"]]]
+	]],
+	["inline", [
+		["punctuation", "+"], "foo + bar baz", ["punctuation", "+"]
+	]],
+	["inline", [
+		["punctuation", "#"], "foo # bar baz", ["punctuation", "#"]
+	]],
+
+	["inline", [
+		["italic", [["punctuation", "_"], "foo\r\nbar", ["punctuation", "_"]]]
+	]],
+	["inline", [
+		["punctuation", "``"], "foo\r\nbar", ["punctuation", "''"]
+	]],
+	["inline", [
+		["punctuation", "`"], "foo\r\nbar", ["punctuation", "'"]
+	]],
+	["inline", [
+		["punctuation", "`"], "foo\r\nbar", ["punctuation", "`"]
+	]],
+	["inline", [
+		["italic", [["punctuation", "'"], "foo\r\nbar", ["punctuation", "'"]]]
+	]],
+	["inline", [
+		["bold", [["punctuation", "*"], "foo\r\nbar", ["punctuation", "*"]]]
+	]],
+	["inline", [
+		["punctuation", "+"], "foo\r\nbar", ["punctuation", "+"]
+	]],
+	["inline", [
+		["punctuation", "#"], "foo\r\nbar", ["punctuation", "#"]
+	]],
+
+	"\r\n\r\nfoo",
+	["inline", [
+		["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "++"], "monospace", ["punctuation", "++"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "##"], "unquoted", ["punctuation", "##"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "~"], "subscript", ["punctuation", "~"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "^"], "superscript", ["punctuation", "^"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "((("], "indexes", ["punctuation", ")))"]
+	]],
+	"bar\r\nfoo",
+	["inline", [
+		["punctuation", "(("], "indexes", ["punctuation", "))"]
+	]],
+	"bar\r\n\r\n",
+
+	["other-block", [
+		["punctuation", "===="],
+
+		["inline", [
+			["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
+		]],
+		["inline", [
+			["punctuation", "``"], "double quotes", ["punctuation", "''"]
+		]],
+		["inline", [
+			["punctuation", "`"], "single quotes", ["punctuation", "'"]
+		]],
+		["inline", [
+			["punctuation", "`"], "monospace", ["punctuation", "`"]
+		]],
+		["inline", [
+			["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
+		]],
+		["inline", [
+			["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
+		]],
+		["inline", [
+			["punctuation", "+"], "monospace", ["punctuation", "+"]
+		]],
+		["inline", [
+			["punctuation", "#"], "unquoted", ["punctuation", "#"]
+		]],
+		["inline", [
+			["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
+		]],
+		["inline", [
+			["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
+		]],
+		["inline", [
+			["punctuation", "++"], "monospace", ["punctuation", "++"]
+		]],
+		["inline", [
+			["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
+		]],
+		["inline", [
+			["punctuation", "##"], "unquoted", ["punctuation", "##"]
+		]],
+		["inline", [
+			["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
+		]],
+		["inline", [
+			["punctuation", "~"], "subscript", ["punctuation", "~"]
+		]],
+		["inline", [
+			["punctuation", "^"], "superscript", ["punctuation", "^"]
+		]],
+		["inline", [
+			["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
+		]],
+		["inline", [
+			["punctuation", "((("], "indexes", ["punctuation", ")))"]
+		]],
+		["inline", [
+			["punctuation", "(("], "indexes", ["punctuation", "))"]
+		]],
+
+		["punctuation", "===="]
+	]],
+
+	["table", [
+		["punctuation", "|===="],
+		["punctuation", "|"],
+
+		["inline", [
+			["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
+		]],
+		["inline", [
+			["punctuation", "``"], "double quotes", ["punctuation", "''"]
+		]],
+		["inline", [
+			["punctuation", "`"], "single quotes", ["punctuation", "'"]
+		]],
+		["inline", [
+			["punctuation", "`"], "monospace", ["punctuation", "`"]
+		]],
+		["inline", [
+			["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
+		]],
+		["inline", [
+			["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
+		]],
+		["inline", [
+			["punctuation", "+"], "monospace", ["punctuation", "+"]
+		]],
+		["inline", [
+			["punctuation", "#"], "unquoted", ["punctuation", "#"]
+		]],
+		["inline", [
+			["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
+		]],
+		["inline", [
+			["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
+		]],
+		["inline", [
+			["punctuation", "++"], "monospace", ["punctuation", "++"]
+		]],
+		["inline", [
+			["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
+		]],
+		["inline", [
+			["punctuation", "##"], "unquoted", ["punctuation", "##"]
+		]],
+		["inline", [
+			["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
+		]],
+		["inline", [
+			["punctuation", "~"], "subscript", ["punctuation", "~"]
+		]],
+		["inline", [
+			["punctuation", "^"], "superscript", ["punctuation", "^"]
+		]],
+		["inline", [
+			["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
+		]],
+		["inline", [
+			["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
+		]],
+		["inline", [
+			["punctuation", "((("], "indexes", ["punctuation", ")))"]
+		]],
+		["inline", [
+			["punctuation", "(("], "indexes", ["punctuation", "))"]
+		]],
+
+		["punctuation", "|===="]
+	]],
+
+	["attributes", [
+		["punctuation", "["],
+		["interpreted", [
+			["punctuation", "'"],
+			"foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz",
+			["punctuation", "'"]
+		]],
+		["punctuation", "]"]
+	]],
+
+	["title", [
+		["punctuation", "=="],
+		" foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz ",
+		["punctuation", "=="]
+	]],
+
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "="],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "?"],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "!"],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "#"],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "%"],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "@"],
+			"regexp", ["punctuation", ":"],
+			"value1", ["punctuation", ":"],
+			"value2",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "$"],
+			"regexp", ["punctuation", ":"],
+			"value1", ["punctuation", ":"],
+			"value2",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "names"],
+			["operator", "$"],
+			"regexp", ["punctuation", "::"],
+			"value",
+			["punctuation", "}"]
+		]]
+	]],
+    ["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "foo,bar"],
+			["operator", "="],
+			"foobar",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "foo+bar"],
+			["operator", "="],
+			"foobar",
+			["punctuation", "}"]
+		]]
+	]],
+	["inline", [
+		["attribute-ref", [
+			["punctuation", "{"],
+			["variable", "counter"],
+			["punctuation", ":"],
+			"attrname",
+			["punctuation", "}"]
+		]]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for all kinds of inline quoted text.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test b/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test
new file mode 100644
index 0000000..651fa81
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test
@@ -0,0 +1,18 @@
+Foo +
+bar
+
+* Foo
++
+bar
+
+----------------------------------------------------
+
+[
+	"Foo ", ["line-continuation", "+"], "\r\nbar\r\n\r\n",
+	["list-punctuation", "*"], " Foo\r\n",
+	["line-continuation", "+"], "\r\nbar"
+]
+
+----------------------------------------------------
+
+Checks for line continuations.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test b/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test
new file mode 100644
index 0000000..3e95bb6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test
@@ -0,0 +1,73 @@
+In::
+Lorem::
+  Foo bar baz
+Dolor:::
+  Ipsum::::
+    Donec;;
+      Foobar
+
+____
+In::
+Lorem::
+  Foo bar baz
+Dolor:::
+  Ipsum::::
+    Donec;;
+      Foobar
+____
+
+|========
+|
+In::
+Lorem::
+  Foo bar baz
+Dolor:::
+  Ipsum::::
+    Donec;;
+      Foobar
+|========
+
+----------------------------------------------------
+
+[
+	["list-label", "In::"],
+	["list-label", "Lorem::"],
+	"\r\n  Foo bar baz\r\n",
+	["list-label", "Dolor:::"],
+	["list-label", "Ipsum::::"],
+	["list-label", "Donec;;"],
+	"\r\n      Foobar\r\n\r\n",
+
+	["other-block", [
+		["punctuation", "____"],
+
+		["list-label", "In::"],
+		["list-label", "Lorem::"],
+		"\r\n  Foo bar baz\r\n",
+		["list-label", "Dolor:::"],
+		["list-label", "Ipsum::::"],
+		["list-label", "Donec;;"],
+		"\r\n      Foobar\r\n",
+
+		["punctuation", "____"]
+	]],
+
+	["table", [
+		["punctuation", "|========"],
+		["punctuation", "|"],
+
+		["list-label", "In::"],
+		["list-label", "Lorem::"],
+		"\r\n  Foo bar baz\r\n",
+		["list-label", "Dolor:::"],
+		["list-label", "Ipsum::::"],
+		["list-label", "Donec;;"],
+		"\r\n      Foobar\r\n",
+
+		["punctuation", "|========"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for list labels.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test b/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test
new file mode 100644
index 0000000..60dbf13
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test
@@ -0,0 +1,77 @@
+- Foo
+* Foo
+** Foo bar
+*** Foo
+	1. Foo
+	2. Foo bar
+	42. Foo
+**** Foo
+***** Foo bar
+
+. Foo
+.. Foo
+    a. Foo
+    b. Foo
+    z. Foo
+... Foo bar
+.... Foo
+	i) Foo
+	vi) Bar
+	xxvii) Baz
+..... Foo
+
+____
+. 1
+.. 2
+____
+
+|===
+|
+xi) a
+xii) b
+|===
+
+----------------------------------------------------
+
+[
+	["list-punctuation", "-"], " Foo\r\n",
+	["list-punctuation", "*"], " Foo\r\n",
+	["list-punctuation", "**"], " Foo bar\r\n",
+	["list-punctuation", "***"], " Foo\r\n\t",
+	["list-punctuation", "1."], " Foo\r\n\t",
+	["list-punctuation", "2."], " Foo bar\r\n\t",
+	["list-punctuation", "42."], " Foo\r\n",
+	["list-punctuation", "****"], " Foo\r\n",
+	["list-punctuation", "*****"], " Foo bar\r\n\r\n",
+
+	["list-punctuation", "."], " Foo\r\n",
+	["list-punctuation", ".."], " Foo\r\n    ",
+	["list-punctuation", "a."], " Foo\r\n    ",
+	["list-punctuation", "b."], " Foo\r\n    ",
+	["list-punctuation", "z."], " Foo\r\n",
+	["list-punctuation", "..."], " Foo bar\r\n",
+	["list-punctuation", "...."], " Foo\r\n\t",
+	["list-punctuation", "i)"], " Foo\r\n\t",
+	["list-punctuation", "vi)"], " Bar\r\n\t",
+	["list-punctuation", "xxvii)"], " Baz\r\n",
+	["list-punctuation", "....."], " Foo\r\n\r\n",
+
+	["other-block", [
+		["punctuation", "____"],
+		["list-punctuation", "."], " 1\r\n",
+		["list-punctuation", ".."], " 2\r\n",
+		["punctuation", "____"]
+	]],
+
+	["table", [
+		["punctuation", "|==="],
+		["punctuation", "|"],
+		["list-punctuation", "xi)"], " a\r\n",
+		["list-punctuation", "xii)"], " b\r\n",
+		["punctuation", "|==="]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for list punctuation.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test
new file mode 100644
index 0000000..9449ca0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test
@@ -0,0 +1,46 @@
+----
+== Foobar ==
+Bar _baz_ (TM) <1>
+* Foo <2>
+<1> Foobar
+2> Baz
+----
+
+.......
+.Foo
+. Foobar <1>
+include::addendum.txt <2>
+> Foo
+> Bar
+__Foo__**bar**{baz}
+.......
+
+----------------------------------------------------
+
+[
+	["literal-block", [
+		["punctuation", "----"],
+		"\r\n== Foobar ==\r\nBar _baz_ (TM) ",
+		["callout", "<1>"],
+		"\r\n* Foo ",
+		["callout", "<2>"],
+		["callout", "<1>"], " Foobar\r\n",
+		["callout", "2>"], " Baz\r\n",
+		["punctuation", "----"]
+	]],
+	["literal-block", [
+		["punctuation", "......."],
+		"\r\n.Foo\r\n. Foobar ",
+		["callout", "<1>"],
+		"\r\ninclude::addendum.txt ",
+		["callout", "<2>"],
+		["callout", ">"], " Foo\r\n",
+		["callout", ">"], " Bar\r\n__Foo__**bar**{baz}\r\n",
+		["punctuation", "......."]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for literal blocks and listing blocks.
+Also checks that nothing gets highlighted inside expect callouts.
diff --git a/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test b/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test
new file mode 100644
index 0000000..50ee161
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test
@@ -0,0 +1,250 @@
+footnote:[An example footnote.]
+indexterm:[Tigers,Big cats]
+
+http://www.docbook.org/[DocBook.org]
+include::chapt1.txt[tabsize=2]
+mailto:srackham@gmail.com[]
+
+image:screen-thumbnail.png[height=32,link="screen.png"]
+
+== Foo image:foo.jpg[] ==
+
+--
+footnote:[An example footnote.]
+indexterm:[Tigers,Big cats]
+
+http://www.docbook.org/[DocBook.org]
+include::chapt1.txt[tabsize=2]
+mailto:srackham@gmail.com[]
+
+image:screen-thumbnail.png[height=32,link="screen.png"]
+--
+
+|====
+|
+footnote:[An example footnote.]
+indexterm:[Tigers,Big cats]
+
+http://www.docbook.org/[DocBook.org]
+include::chapt1.txt[tabsize=2]
+mailto:srackham@gmail.com[]
+
+image:screen-thumbnail.png[height=32,link="screen.png"]
+|====
+
+----------------------------------------------------
+
+[
+	["macro", [
+		["function", "footnote"], ["punctuation", ":"],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "An example footnote."],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "indexterm"], ["punctuation", ":"],
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "Tigers"],
+			["punctuation", ","],
+			["attr-value", "Big cats"],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "http"], ["punctuation", ":"],
+		"//www.docbook.org/",
+		["attributes", [
+			["punctuation", "["],
+			["attr-value", "DocBook.org"],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "include"], ["punctuation", "::"],
+		"chapt1.txt",
+		["attributes", [
+			["punctuation", "["],
+			["variable", "tabsize"],
+			["operator", "="],
+			["attr-value", "2"],
+			["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "mailto"], ["punctuation", ":"],
+		"srackham@gmail.com",
+		["attributes", [
+			["punctuation", "["], ["punctuation", "]"]
+		]]
+	]],
+	["macro", [
+		["function", "image"], ["punctuation", ":"],
+		"screen-thumbnail.png",
+		["attributes", [
+			["punctuation", "["],
+			["variable", "height"],
+			["operator", "="],
+			["attr-value", "32"],
+			["punctuation", ","],
+			["variable", "link"],
+			["operator", "="],
+			["string", "\"screen.png\""],
+			["punctuation", "]"]
+		]]
+	]],
+
+	["title", [
+		["punctuation", "=="],
+		" Foo ",
+		["macro", [
+			["function", "image"], ["punctuation", ":"],
+			"foo.jpg",
+			["attributes", [
+				["punctuation", "["], ["punctuation", "]"]
+			]]
+		]],
+		["punctuation", "=="]
+	]],
+
+	["other-block", [
+		["punctuation", "--"],
+
+		["macro", [
+			["function", "footnote"], ["punctuation", ":"],
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "An example footnote."],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "indexterm"], ["punctuation", ":"],
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "Tigers"],
+				["punctuation", ","],
+				["attr-value", "Big cats"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "http"], ["punctuation", ":"],
+			"//www.docbook.org/",
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "DocBook.org"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "include"], ["punctuation", "::"],
+			"chapt1.txt",
+			["attributes", [
+				["punctuation", "["],
+				["variable", "tabsize"],
+				["operator", "="],
+				["attr-value", "2"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "mailto"], ["punctuation", ":"],
+			"srackham@gmail.com",
+			["attributes", [
+				["punctuation", "["], ["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "image"], ["punctuation", ":"],
+			"screen-thumbnail.png",
+			["attributes", [
+				["punctuation", "["],
+				["variable", "height"],
+				["operator", "="],
+				["attr-value", "32"],
+				["punctuation", ","],
+				["variable", "link"],
+				["operator", "="],
+				["string", "\"screen.png\""],
+				["punctuation", "]"]
+			]]
+		]],
+
+		["punctuation", "--"]
+	]],
+
+	["table", [
+		["punctuation", "|===="],
+		["punctuation", "|"],
+
+		["macro", [
+			["function", "footnote"], ["punctuation", ":"],
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "An example footnote."],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "indexterm"], ["punctuation", ":"],
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "Tigers"],
+				["punctuation", ","],
+				["attr-value", "Big cats"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "http"], ["punctuation", ":"],
+			"//www.docbook.org/",
+			["attributes", [
+				["punctuation", "["],
+				["attr-value", "DocBook.org"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "include"], ["punctuation", "::"],
+			"chapt1.txt",
+			["attributes", [
+				["punctuation", "["],
+				["variable", "tabsize"],
+				["operator", "="],
+				["attr-value", "2"],
+				["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "mailto"], ["punctuation", ":"],
+			"srackham@gmail.com",
+			["attributes", [
+				["punctuation", "["], ["punctuation", "]"]
+			]]
+		]],
+		["macro", [
+			["function", "image"], ["punctuation", ":"],
+			"screen-thumbnail.png",
+			["attributes", [
+				["punctuation", "["],
+				["variable", "height"],
+				["operator", "="],
+				["attr-value", "32"],
+				["punctuation", ","],
+				["variable", "link"],
+				["operator", "="],
+				["string", "\"screen.png\""],
+				["punctuation", "]"]
+			]]
+		]],
+
+		["punctuation", "|===="]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for macros.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test
new file mode 100644
index 0000000..fb33c20
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test
@@ -0,0 +1,45 @@
+****
+Sidebar block <1>
+****
+
+______
+Quote block <2>
+______
+
+========
+Example block <3>
+========
+
+--
+Open block <4>
+--
+
+----------------------------------------------------
+
+[
+	["other-block", [
+		["punctuation", "****"],
+		"\r\nSidebar block <1>\r\n",
+		["punctuation", "****"]
+	]],
+	["other-block", [
+		["punctuation", "______"],
+		"\r\nQuote block <2>\r\n",
+		["punctuation", "______"]
+	]],
+	["other-block", [
+		["punctuation", "========"],
+		"\r\nExample block <3>\r\n",
+		["punctuation", "========"]
+	]],
+	["other-block", [
+		["punctuation", "--"],
+		"\r\nOpen block <4>\r\n",
+		["punctuation", "--"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for sidebar blocks, quote blocks, example blocks and open blocks.
+Also checks that callouts are not highlighted.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test b/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test
new file mode 100644
index 0000000..010a590
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test
@@ -0,0 +1,14 @@
+<<<
+
+<<<<<<<<<<<<<
+
+----------------------------------------------------
+
+[
+	["page-break", "<<<"],
+	["page-break", "<<<<<<<<<<<<<"]
+]
+
+----------------------------------------------------
+
+Checks for page breaks.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test
new file mode 100644
index 0000000..a5bb08b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test
@@ -0,0 +1,29 @@
+++++
+.Fo__o__bar *baz*
+Fo(((o)))bar baz
+* Foobar baz
+include::addendum.txt[]
+++++
+
+----------------------------------------------------
+
+[
+	["passthrough-block", [
+		["punctuation", "++++"],
+		"\r\n.Fo__o__bar *baz*\r\nFo(((o)))bar baz\r\n* Foobar baz\r\n",
+		["macro", [
+			["function", "include"],
+			["punctuation", "::"],
+			"addendum.txt",
+			["attributes", [
+				["punctuation", "["], ["punctuation", "]"]
+			]]
+		]],
+		["punctuation", "++++"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for passthrough blocks.
+Also checks that nothing gets highlighted inside expect macros.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test b/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test
new file mode 100644
index 0000000..ca27610
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test
@@ -0,0 +1,48 @@
+(C) (TM) (R)
+
+(C) (TM) (R)
+============
+
+['(C) (TM) (R)']
+
+--
+(C) (TM) (R)
+--
+
+|======
+| (C) (TM) (R)
+|======
+
+----------------------------------------------------
+
+[
+	["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
+	["title", [
+		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
+		["punctuation", "============"]
+	]],
+	["attributes", [
+		["punctuation", "["],
+		["interpreted", [
+			["punctuation", "'"],
+			["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
+			["punctuation", "'"]
+		]],
+		["punctuation", "]"]
+	]],
+	["other-block", [
+		["punctuation", "--"],
+		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
+		["punctuation", "--"]
+	]],
+	["table", [
+		["punctuation", "|======"],
+		["punctuation", "|"],
+		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
+		["punctuation", "|======"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for replacements.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/table_feature.test b/node_modules/prismjs/tests/languages/asciidoc/table_feature.test
new file mode 100644
index 0000000..0b4bd3c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/table_feature.test
@@ -0,0 +1,61 @@
+|===
+|1
+|===
+
+|============================
+|1 >s|2 |3 |4
+^|5 2.2+^.^|6 .3+<.>m|7
+2*^|8
+|9 2+>|10
+|============================
+
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================
+
+----------------------------------------------------
+
+[
+	["table", [
+		["punctuation", "|==="],
+		["punctuation", "|"], "1\r\n",
+		["punctuation", "|==="]
+	]],
+
+	["table", [
+		["punctuation", "|============================"],
+		["punctuation", "|"], "1 ",
+		["specifiers", ">s"], ["punctuation", "|"], "2 ",
+		["punctuation", "|"], "3 ",
+		["punctuation", "|"], "4\r\n",
+		["specifiers", "^"], ["punctuation", "|"], "5 ",
+		["specifiers", "2.2+^.^"], ["punctuation", "|"], "6 ",
+		["specifiers", ".3+<.>m"], ["punctuation", "|"], "7\r\n",
+		["specifiers", "2*^"], ["punctuation", "|"], "8\r\n",
+		["punctuation", "|"], "9 ",
+		["specifiers", "2+>"], ["punctuation", "|"], "10\r\n",
+		["punctuation", "|============================"]
+	]],
+
+	["table", [
+		["punctuation", "|=============================================="],
+		["punctuation", "|"], "Normal cell\r\n\r\n",
+		["punctuation", "|"], "Cell with nested table\r\n\r\n",
+		["punctuation", "!=============================================="],
+		["punctuation", "!"], "Nested table cell 1 ",
+		["punctuation", "!"], "Nested table cell 2\r\n",
+		["punctuation", "!=============================================="],
+		["punctuation", "|=============================================="]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for tables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/asciidoc/title_feature.test b/node_modules/prismjs/tests/languages/asciidoc/title_feature.test
new file mode 100644
index 0000000..a9d4047
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/asciidoc/title_feature.test
@@ -0,0 +1,80 @@
+Foobar
+======
+
+Foobar
+------
+
+Foobar
+~~~~~~
+
+Foobar
+^^^^^^
+
+Foo
++++
+
+= Foo bar baz =
+== Foo bar baz
+=== Foo bar baz ===
+==== Foo bar baz
+===== Foo bar baz =====
+
+.Foo bar baz
+
+----------------------------------------------------
+
+[
+	["title", [
+		"Foobar\r\n",
+		["punctuation", "======"]
+	]],
+	["title", [
+		"Foobar\r\n",
+		["punctuation", "------"]
+	]],
+	["title", [
+		"Foobar\r\n",
+		["punctuation", "~~~~~~"]
+	]],
+	["title", [
+		"Foobar\r\n",
+		["punctuation", "^^^^^^"]
+	]],
+	["title", [
+		"Foo\r\n",
+		["punctuation", "+++"]
+	]],
+
+	["title", [
+		["punctuation", "="],
+		" Foo bar baz ",
+		["punctuation", "="]
+	]],
+	["title", [
+		["punctuation", "=="],
+		" Foo bar baz"
+	]],
+	["title", [
+		["punctuation", "==="],
+		" Foo bar baz ",
+		["punctuation", "==="]
+	]],
+	["title", [
+		["punctuation", "===="],
+		" Foo bar baz"
+	]],
+	["title", [
+		["punctuation", "====="],
+		" Foo bar baz ",
+		["punctuation", "====="]
+	]],
+
+	["title", [
+		["punctuation", "."],
+		"Foo bar baz"
+	]]
+]
+
+----------------------------------------------------
+
+Checks for titles.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/aspnet/comment_feature.test b/node_modules/prismjs/tests/languages/aspnet/comment_feature.test
new file mode 100644
index 0000000..da388e5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/aspnet/comment_feature.test
@@ -0,0 +1,16 @@
+<%----%>
+<%--foo--%>
+<%-- foo
+bar --%>
+
+----------------------------------------------------
+
+[
+	["asp comment", "<%----%>"],
+	["asp comment", "<%--foo--%>"],
+	["asp comment", "<%-- foo\r\nbar --%>"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test b/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test
new file mode 100644
index 0000000..3d79dae
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test
@@ -0,0 +1,92 @@
+<%@Assembly foo="bar"%>
+<% @Control foo="bar" %>
+<%@ Implements%>
+<%@Import%>
+<%@Master%>
+<%@MasterType%>
+<%@OutputCache%>
+<%@Page%>
+<%@PreviousPageType%>
+<%@Reference%>
+<%@Register%>
+
+----------------------------------------------------
+
+[
+	["page-directive tag", [
+		["page-directive tag", "<%@Assembly"],
+		["attr-name", [
+			"foo"
+		]],
+		["attr-value", [
+			["punctuation", "="],
+			["punctuation", "\""],
+			"bar",
+			["punctuation", "\""]
+		]],
+		["page-directive tag", "%>"]
+	]],
+
+	["page-directive tag", [
+        ["page-directive tag", "<% @Control"],
+        ["attr-name", [
+            "foo"
+        ]],
+        ["attr-value", [
+            ["punctuation", "="],
+            ["punctuation", "\""],
+            "bar",
+            ["punctuation", "\""]
+        ]],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@ Implements"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@Import"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@Master"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@MasterType"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@OutputCache"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@Page"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@PreviousPageType"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@Reference"],
+        ["page-directive tag", "%>"]
+    ]],
+
+    ["page-directive tag", [
+        ["page-directive tag", "<%@Register"],
+        ["page-directive tag", "%>"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for all page directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test b/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test
new file mode 100644
index 0000000..6d97d4b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test
@@ -0,0 +1,13 @@
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for booleans
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test b/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test
new file mode 100644
index 0000000..afbe8d3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test
@@ -0,0 +1,147 @@
+abs
+acos
+asc
+asin
+atan
+ceil
+chr
+class
+cos
+dllcall
+exp
+fileexist
+Fileopen
+floor
+il_add
+il_create
+il_destroy
+instr
+substr
+isfunc
+islabel
+IsObject
+ln
+log
+lv_add
+lv_delete
+lv_deletecol
+lv_getcount
+lv_getnext
+lv_gettext
+lv_insert
+lv_insertcol
+lv_modify
+lv_modifycol
+lv_setimagelist
+mod
+onmessage
+numget
+numput
+registercallback
+regexmatch
+regexreplace
+round
+sin
+tan
+sqrt
+strlen
+sb_seticon
+sb_setparts
+sb_settext
+strsplit
+tv_add
+tv_delete
+tv_getchild
+tv_getcount
+tv_getnext
+tv_get
+tv_getparent
+tv_getprev
+tv_getselection
+tv_gettext
+tv_modify
+varsetcapacity
+winactive
+winexist
+__New
+__Call
+__Get
+__Set
+
+----------------------------------------------------
+
+[
+	["builtin", "abs"],
+	["builtin", "acos"],
+	["builtin", "asc"],
+	["builtin", "asin"],
+	["builtin", "atan"],
+	["builtin", "ceil"],
+	["builtin", "chr"],
+	["builtin", "class"],
+	["builtin", "cos"],
+	["builtin", "dllcall"],
+	["builtin", "exp"],
+	["builtin", "fileexist"],
+	["builtin", "Fileopen"],
+	["builtin", "floor"],
+	["builtin", "il_add"],
+	["builtin", "il_create"],
+	["builtin", "il_destroy"],
+	["builtin", "instr"],
+	["builtin", "substr"],
+	["builtin", "isfunc"],
+	["builtin", "islabel"],
+	["builtin", "IsObject"],
+	["builtin", "ln"],
+	["builtin", "log"],
+	["builtin", "lv_add"],
+	["builtin", "lv_delete"],
+	["builtin", "lv_deletecol"],
+	["builtin", "lv_getcount"],
+	["builtin", "lv_getnext"],
+	["builtin", "lv_gettext"],
+	["builtin", "lv_insert"],
+	["builtin", "lv_insertcol"],
+	["builtin", "lv_modify"],
+	["builtin", "lv_modifycol"],
+	["builtin", "lv_setimagelist"],
+	["builtin", "mod"],
+	["builtin", "onmessage"],
+	["builtin", "numget"],
+	["builtin", "numput"],
+	["builtin", "registercallback"],
+	["builtin", "regexmatch"],
+	["builtin", "regexreplace"],
+	["builtin", "round"],
+	["builtin", "sin"],
+	["builtin", "tan"],
+	["builtin", "sqrt"],
+	["builtin", "strlen"],
+	["builtin", "sb_seticon"],
+	["builtin", "sb_setparts"],
+	["builtin", "sb_settext"],
+	["builtin", "strsplit"],
+	["builtin", "tv_add"],
+	["builtin", "tv_delete"],
+	["builtin", "tv_getchild"],
+	["builtin", "tv_getcount"],
+	["builtin", "tv_getnext"],
+	["builtin", "tv_get"],
+	["builtin", "tv_getparent"],
+	["builtin", "tv_getprev"],
+	["builtin", "tv_getselection"],
+	["builtin", "tv_gettext"],
+	["builtin", "tv_modify"],
+	["builtin", "varsetcapacity"],
+	["builtin", "winactive"],
+	["builtin", "winexist"],
+	["builtin", "__New"],
+	["builtin", "__Call"],
+	["builtin", "__Get"],
+	["builtin", "__Set"]
+]
+
+----------------------------------------------------
+
+Checks for all builtins.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test b/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test
new file mode 100644
index 0000000..5b00ce2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test
@@ -0,0 +1,13 @@
+;foo
+; bar
+
+----------------------------------------------------
+
+[
+	["comment", ";foo"],
+	["comment", "; bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test b/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test
new file mode 100644
index 0000000..ab11673
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test
@@ -0,0 +1,275 @@
+a_ahkpath
+a_ahkversion
+a_appdata
+a_appdatacommon
+a_autotrim
+a_batchlines
+a_caretx
+a_carety
+a_computername
+a_controldelay
+a_cursor
+a_dd
+a_ddd
+a_dddd
+a_defaultmousespeed
+a_desktop
+a_desktopcommon
+a_detecthiddentext
+a_detecthiddenwindows
+a_endchar
+a_eventinfo
+a_exitreason
+a_formatfloat
+a_formatinteger
+a_gui
+a_guievent
+a_guicontrol
+a_guicontrolevent
+a_guiheight
+a_guiwidth
+a_guix
+a_guiy
+a_hour
+a_iconfile
+a_iconhidden
+a_iconnumber
+a_icontip
+a_index
+a_ipaddress1
+a_ipaddress2
+a_ipaddress3
+a_ipaddress4
+a_isadmin
+a_iscompiled
+a_iscritical
+a_ispaused
+a_issuspended
+a_isunicode
+a_keydelay
+a_language
+a_lasterror
+a_linefile
+a_linenumber
+a_loopfield
+a_loopfileattrib
+a_loopfiledir
+a_loopfileext
+a_loopfilefullpath
+a_loopfilelongpath
+a_loopfilename
+a_loopfileshortname
+a_loopfileshortpath
+a_loopfilesize
+a_loopfilesizekb
+a_loopfilesizemb
+a_loopfiletimeaccessed
+a_loopfiletimecreated
+a_loopfiletimemodified
+a_loopreadline
+a_loopregkey
+a_loopregname
+a_loopregsubkey
+a_loopregtimemodified
+a_loopregtype
+a_mday
+a_min
+a_mm
+a_mmm
+a_mmmm
+a_mon
+a_mousedelay
+a_msec
+a_mydocuments
+a_now
+a_nowutc
+a_numbatchlines
+a_ostype
+a_osversion
+a_priorhotkey
+programfiles
+a_programfiles
+a_programs
+a_programscommon
+a_screenheight
+a_screenwidth
+a_scriptdir
+a_scriptfullpath
+a_scriptname
+a_sec
+a_space
+a_startmenu
+a_startmenucommon
+a_startup
+a_startupcommon
+a_stringcasesense
+a_tab
+a_temp
+a_thisfunc
+a_thishotkey
+a_thislabel
+a_thismenu
+a_thismenuitem
+a_thismenuitempos
+a_tickcount
+a_timeidle
+a_timeidlephysical
+a_timesincepriorhotkey
+a_timesincethishotkey
+a_titlematchmode
+a_titlematchmodespeed
+a_username
+a_wday
+a_windelay
+a_windir
+a_workingdir
+a_yday
+a_year
+a_yweek
+a_yyyy
+clipboard
+clipboardall
+comspec
+errorlevel
+
+----------------------------------------------------
+
+[
+	["constant", "a_ahkpath"],
+	["constant", "a_ahkversion"],
+	["constant", "a_appdata"],
+	["constant", "a_appdatacommon"],
+	["constant", "a_autotrim"],
+	["constant", "a_batchlines"],
+	["constant", "a_caretx"],
+	["constant", "a_carety"],
+	["constant", "a_computername"],
+	["constant", "a_controldelay"],
+	["constant", "a_cursor"],
+	["constant", "a_dd"],
+	["constant", "a_ddd"],
+	["constant", "a_dddd"],
+	["constant", "a_defaultmousespeed"],
+	["constant", "a_desktop"],
+	["constant", "a_desktopcommon"],
+	["constant", "a_detecthiddentext"],
+	["constant", "a_detecthiddenwindows"],
+	["constant", "a_endchar"],
+	["constant", "a_eventinfo"],
+	["constant", "a_exitreason"],
+	["constant", "a_formatfloat"],
+	["constant", "a_formatinteger"],
+	["constant", "a_gui"],
+	["constant", "a_guievent"],
+	["constant", "a_guicontrol"],
+	["constant", "a_guicontrolevent"],
+	["constant", "a_guiheight"],
+	["constant", "a_guiwidth"],
+	["constant", "a_guix"],
+	["constant", "a_guiy"],
+	["constant", "a_hour"],
+	["constant", "a_iconfile"],
+	["constant", "a_iconhidden"],
+	["constant", "a_iconnumber"],
+	["constant", "a_icontip"],
+	["constant", "a_index"],
+	["constant", "a_ipaddress1"],
+	["constant", "a_ipaddress2"],
+	["constant", "a_ipaddress3"],
+	["constant", "a_ipaddress4"],
+	["constant", "a_isadmin"],
+	["constant", "a_iscompiled"],
+	["constant", "a_iscritical"],
+	["constant", "a_ispaused"],
+	["constant", "a_issuspended"],
+	["constant", "a_isunicode"],
+	["constant", "a_keydelay"],
+	["constant", "a_language"],
+	["constant", "a_lasterror"],
+	["constant", "a_linefile"],
+	["constant", "a_linenumber"],
+	["constant", "a_loopfield"],
+	["constant", "a_loopfileattrib"],
+	["constant", "a_loopfiledir"],
+	["constant", "a_loopfileext"],
+	["constant", "a_loopfilefullpath"],
+	["constant", "a_loopfilelongpath"],
+	["constant", "a_loopfilename"],
+	["constant", "a_loopfileshortname"],
+	["constant", "a_loopfileshortpath"],
+	["constant", "a_loopfilesize"],
+	["constant", "a_loopfilesizekb"],
+	["constant", "a_loopfilesizemb"],
+	["constant", "a_loopfiletimeaccessed"],
+	["constant", "a_loopfiletimecreated"],
+	["constant", "a_loopfiletimemodified"],
+	["constant", "a_loopreadline"],
+	["constant", "a_loopregkey"],
+	["constant", "a_loopregname"],
+	["constant", "a_loopregsubkey"],
+	["constant", "a_loopregtimemodified"],
+	["constant", "a_loopregtype"],
+	["constant", "a_mday"],
+	["constant", "a_min"],
+	["constant", "a_mm"],
+	["constant", "a_mmm"],
+	["constant", "a_mmmm"],
+	["constant", "a_mon"],
+	["constant", "a_mousedelay"],
+	["constant", "a_msec"],
+	["constant", "a_mydocuments"],
+	["constant", "a_now"],
+	["constant", "a_nowutc"],
+	["constant", "a_numbatchlines"],
+	["constant", "a_ostype"],
+	["constant", "a_osversion"],
+	["constant", "a_priorhotkey"],
+	["constant", "programfiles"],
+	["constant", "a_programfiles"],
+	["constant", "a_programs"],
+	["constant", "a_programscommon"],
+	["constant", "a_screenheight"],
+	["constant", "a_screenwidth"],
+	["constant", "a_scriptdir"],
+	["constant", "a_scriptfullpath"],
+	["constant", "a_scriptname"],
+	["constant", "a_sec"],
+	["constant", "a_space"],
+	["constant", "a_startmenu"],
+	["constant", "a_startmenucommon"],
+	["constant", "a_startup"],
+	["constant", "a_startupcommon"],
+	["constant", "a_stringcasesense"],
+	["constant", "a_tab"],
+	["constant", "a_temp"],
+	["constant", "a_thisfunc"],
+	["constant", "a_thishotkey"],
+	["constant", "a_thislabel"],
+	["constant", "a_thismenu"],
+	["constant", "a_thismenuitem"],
+	["constant", "a_thismenuitempos"],
+	["constant", "a_tickcount"],
+	["constant", "a_timeidle"],
+	["constant", "a_timeidlephysical"],
+	["constant", "a_timesincepriorhotkey"],
+	["constant", "a_timesincethishotkey"],
+	["constant", "a_titlematchmode"],
+	["constant", "a_titlematchmodespeed"],
+	["constant", "a_username"],
+	["constant", "a_wday"],
+	["constant", "a_windelay"],
+	["constant", "a_windir"],
+	["constant", "a_workingdir"],
+	["constant", "a_yday"],
+	["constant", "a_year"],
+	["constant", "a_yweek"],
+	["constant", "a_yyyy"],
+	["constant", "clipboard"],
+	["constant", "clipboardall"],
+	["constant", "comspec"],
+	["constant", "errorlevel"]
+]
+
+----------------------------------------------------
+
+Checks for all constants.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/function_feature.test b/node_modules/prismjs/tests/languages/autohotkey/function_feature.test
new file mode 100644
index 0000000..f38a186
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/function_feature.test
@@ -0,0 +1,15 @@
+foo(
+foo_bar(
+
+----------------------------------------------------
+
+[
+	["function", "foo"],
+	["punctuation", "("],
+	["function", "foo_bar"],
+	["punctuation", "("]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/important_feature.test b/node_modules/prismjs/tests/languages/autohotkey/important_feature.test
new file mode 100644
index 0000000..aa9cbeb
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/important_feature.test
@@ -0,0 +1,67 @@
+#AllowSameLineComments
+#ClipboardTimeout
+#CommentFlag
+#ErrorStdOut
+#EscapeChar
+#HotkeyInterval
+#HotkeyModifierTimeout
+#Hotstring
+#IfWinActive
+#IfWinExist
+#IfWinNotActive
+#IfWinNotExist
+#Include
+#IncludeAgain
+#InstallKeybdHook
+#InstallMouseHook
+#KeyHistory
+#LTrim
+#MaxHotkeysPerInterval
+#MaxMem
+#MaxThreads
+#MaxThreadsBuffer
+#MaxThreadsPerHotkey
+#NoEnv
+#NoTrayIcon
+#Persistent
+#SingleInstance
+#UseHook
+#WinActivateForce
+
+----------------------------------------------------
+
+[
+	["important", "#AllowSameLineComments"],
+	["important", "#ClipboardTimeout"],
+	["important", "#CommentFlag"],
+	["important", "#ErrorStdOut"],
+	["important", "#EscapeChar"],
+	["important", "#HotkeyInterval"],
+	["important", "#HotkeyModifierTimeout"],
+	["important", "#Hotstring"],
+	["important", "#IfWinActive"],
+	["important", "#IfWinExist"],
+	["important", "#IfWinNotActive"],
+	["important", "#IfWinNotExist"],
+	["important", "#Include"],
+	["important", "#IncludeAgain"],
+	["important", "#InstallKeybdHook"],
+	["important", "#InstallMouseHook"],
+	["important", "#KeyHistory"],
+	["important", "#LTrim"],
+	["important", "#MaxHotkeysPerInterval"],
+	["important", "#MaxMem"],
+	["important", "#MaxThreads"],
+	["important", "#MaxThreadsBuffer"],
+	["important", "#MaxThreadsPerHotkey"],
+	["important", "#NoEnv"],
+	["important", "#NoTrayIcon"],
+	["important", "#Persistent"],
+	["important", "#SingleInstance"],
+	["important", "#UseHook"],
+	["important", "#WinActivateForce"]
+]
+
+----------------------------------------------------
+
+Checks for all important keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test b/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test
new file mode 100644
index 0000000..9167135
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test
@@ -0,0 +1,537 @@
+Abort
+AboveNormal
+Add
+ahk_class
+ahk_group
+ahk_id
+ahk_pid
+All
+Alnum
+Alpha
+AltSubmit
+AltTab
+AltTabAndMenu
+AltTabMenu
+AltTabMenuDismiss
+AlwaysOnTop
+AutoSize
+Background
+BackgroundTrans
+BelowNormal
+between
+BitAnd
+BitNot
+BitOr
+BitShiftLeft
+BitShiftRight
+BitXOr
+Bold
+Border
+Button
+ByRef
+Checkbox
+Checked
+CheckedGray
+Choose
+ChooseString
+Close
+Color
+ComboBox
+Contains
+ControlList
+Count
+Date
+DateTime
+Days
+DDL
+Default
+DeleteAll
+Delimiter
+Deref
+Destroy
+Digit
+Disable
+Disabled
+DropDownList
+Edit
+Eject
+Else
+Enable
+Enabled
+Error
+Exist
+Expand
+ExStyle
+FileSystem
+First
+Flash
+Float
+FloatFast
+Focus
+Font
+for
+global
+Grid
+Group
+GroupBox
+GuiClose
+GuiContextMenu
+GuiDropFiles
+GuiEscape
+GuiSize
+Hdr
+Hidden
+Hide
+High
+HKCC
+HKCR
+HKCU
+HKEY_CLASSES_ROOT
+HKEY_CURRENT_CONFIG
+HKEY_CURRENT_USER
+HKEY_LOCAL_MACHINE
+HKEY_USERS
+HKLM
+HKU
+Hours
+HScroll
+Icon
+IconSmall
+ID
+IDLast
+If
+IfEqual
+IfExist
+IfGreater
+IfGreaterOrEqual
+IfInString
+IfLess
+IfLessOrEqual
+IfMsgBox
+IfNotEqual
+IfNotExist
+IfNotInString
+IfWinActive
+IfWinExist
+IfWinNotActive
+IfWinNotExist
+Ignore
+ImageList
+in
+Integer
+IntegerFast
+Interrupt
+is
+italic
+Join
+Label
+LastFound
+LastFoundExist
+Limit
+Lines
+List
+ListBox
+ListView
+local
+Lock
+Logoff
+Low
+Lower
+Lowercase
+MainWindow
+Margin
+Maximize
+MaximizeBox
+MaxSize
+Minimize
+MinimizeBox
+MinMax
+MinSize
+Minutes
+MonthCal
+Mouse
+Move
+Multi
+NA
+No
+NoActivate
+NoDefault
+NoHide
+NoIcon
+NoMainWindow
+norm
+Normal
+NoSort
+NoSortHdr
+NoStandard
+Not
+NoTab
+NoTimers
+Number
+Off
+Ok
+On
+OwnDialogs
+Owner
+Parse
+Password
+Picture
+Pixel
+Pos
+Pow
+Priority
+ProcessName
+Radio
+Range
+Read
+ReadOnly
+Realtime
+Redraw
+REG_BINARY
+REG_DWORD
+REG_EXPAND_SZ
+REG_MULTI_SZ
+REG_SZ
+Region
+Relative
+Rename
+Report
+Resize
+Restore
+Retry
+RGB
+Screen
+Seconds
+Section
+Serial
+SetLabel
+ShiftAltTab
+Show
+Single
+Slider
+SortDesc
+Standard
+static
+Status
+StatusBar
+StatusCD
+strike
+Style
+Submit
+SysMenu
+Tab2
+TabStop
+Text
+Theme
+Tile
+ToggleCheck
+ToggleEnable
+ToolWindow
+Top
+Topmost
+TransColor
+Transparent
+Tray
+TreeView
+TryAgain
+Type
+UnCheck
+underline
+Unicode
+Unlock
+UpDown
+Upper
+Uppercase
+UseErrorLevel
+Vis
+VisFirst
+Visible
+VScroll
+Wait
+WaitClose
+WantCtrlA
+WantF2
+WantReturn
+While
+Wrap
+Xdigit
+xm
+xp
+xs
+Yes
+ym
+yp
+ys
+
+----------------------------------------------------
+
+[
+	["keyword", "Abort"],
+	["keyword", "AboveNormal"],
+	["keyword", "Add"],
+	["keyword", "ahk_class"],
+	["keyword", "ahk_group"],
+	["keyword", "ahk_id"],
+	["keyword", "ahk_pid"],
+	["keyword", "All"],
+	["keyword", "Alnum"],
+	["keyword", "Alpha"],
+	["keyword", "AltSubmit"],
+	["keyword", "AltTab"],
+	["keyword", "AltTabAndMenu"],
+	["keyword", "AltTabMenu"],
+	["keyword", "AltTabMenuDismiss"],
+	["keyword", "AlwaysOnTop"],
+	["keyword", "AutoSize"],
+	["keyword", "Background"],
+	["keyword", "BackgroundTrans"],
+	["keyword", "BelowNormal"],
+	["keyword", "between"],
+	["keyword", "BitAnd"],
+	["keyword", "BitNot"],
+	["keyword", "BitOr"],
+	["keyword", "BitShiftLeft"],
+	["keyword", "BitShiftRight"],
+	["keyword", "BitXOr"],
+	["keyword", "Bold"],
+	["keyword", "Border"],
+	["keyword", "Button"],
+	["keyword", "ByRef"],
+	["keyword", "Checkbox"],
+	["keyword", "Checked"],
+	["keyword", "CheckedGray"],
+	["keyword", "Choose"],
+	["keyword", "ChooseString"],
+	["keyword", "Close"],
+	["keyword", "Color"],
+	["keyword", "ComboBox"],
+	["keyword", "Contains"],
+	["keyword", "ControlList"],
+	["keyword", "Count"],
+	["keyword", "Date"],
+	["keyword", "DateTime"],
+	["keyword", "Days"],
+	["keyword", "DDL"],
+	["keyword", "Default"],
+	["keyword", "DeleteAll"],
+	["keyword", "Delimiter"],
+	["keyword", "Deref"],
+	["keyword", "Destroy"],
+	["keyword", "Digit"],
+	["keyword", "Disable"],
+	["keyword", "Disabled"],
+	["keyword", "DropDownList"],
+	["keyword", "Edit"],
+	["keyword", "Eject"],
+	["keyword", "Else"],
+	["keyword", "Enable"],
+	["keyword", "Enabled"],
+	["keyword", "Error"],
+	["keyword", "Exist"],
+	["keyword", "Expand"],
+	["keyword", "ExStyle"],
+	["keyword", "FileSystem"],
+	["keyword", "First"],
+	["keyword", "Flash"],
+	["keyword", "Float"],
+	["keyword", "FloatFast"],
+	["keyword", "Focus"],
+	["keyword", "Font"],
+	["keyword", "for"],
+	["keyword", "global"],
+	["keyword", "Grid"],
+	["keyword", "Group"],
+	["keyword", "GroupBox"],
+	["keyword", "GuiClose"],
+	["keyword", "GuiContextMenu"],
+	["keyword", "GuiDropFiles"],
+	["keyword", "GuiEscape"],
+	["keyword", "GuiSize"],
+	["keyword", "Hdr"],
+	["keyword", "Hidden"],
+	["keyword", "Hide"],
+	["keyword", "High"],
+	["keyword", "HKCC"],
+	["keyword", "HKCR"],
+	["keyword", "HKCU"],
+	["keyword", "HKEY_CLASSES_ROOT"],
+	["keyword", "HKEY_CURRENT_CONFIG"],
+	["keyword", "HKEY_CURRENT_USER"],
+	["keyword", "HKEY_LOCAL_MACHINE"],
+	["keyword", "HKEY_USERS"],
+	["keyword", "HKLM"],
+	["keyword", "HKU"],
+	["keyword", "Hours"],
+	["keyword", "HScroll"],
+	["keyword", "Icon"],
+	["keyword", "IconSmall"],
+	["keyword", "ID"],
+	["keyword", "IDLast"],
+	["keyword", "If"],
+	["keyword", "IfEqual"],
+	["keyword", "IfExist"],
+	["keyword", "IfGreater"],
+	["keyword", "IfGreaterOrEqual"],
+	["keyword", "IfInString"],
+	["keyword", "IfLess"],
+	["keyword", "IfLessOrEqual"],
+	["keyword", "IfMsgBox"],
+	["keyword", "IfNotEqual"],
+	["keyword", "IfNotExist"],
+	["keyword", "IfNotInString"],
+	["keyword", "IfWinActive"],
+	["keyword", "IfWinExist"],
+	["keyword", "IfWinNotActive"],
+	["keyword", "IfWinNotExist"],
+	["keyword", "Ignore"],
+	["keyword", "ImageList"],
+	["keyword", "in"],
+	["keyword", "Integer"],
+	["keyword", "IntegerFast"],
+	["keyword", "Interrupt"],
+	["keyword", "is"],
+	["keyword", "italic"],
+	["keyword", "Join"],
+	["keyword", "Label"],
+	["keyword", "LastFound"],
+	["keyword", "LastFoundExist"],
+	["keyword", "Limit"],
+	["keyword", "Lines"],
+	["keyword", "List"],
+	["keyword", "ListBox"],
+	["keyword", "ListView"],
+	["keyword", "local"],
+	["keyword", "Lock"],
+	["keyword", "Logoff"],
+	["keyword", "Low"],
+	["keyword", "Lower"],
+	["keyword", "Lowercase"],
+	["keyword", "MainWindow"],
+	["keyword", "Margin"],
+	["keyword", "Maximize"],
+	["keyword", "MaximizeBox"],
+	["keyword", "MaxSize"],
+	["keyword", "Minimize"],
+	["keyword", "MinimizeBox"],
+	["keyword", "MinMax"],
+	["keyword", "MinSize"],
+	["keyword", "Minutes"],
+	["keyword", "MonthCal"],
+	["keyword", "Mouse"],
+	["keyword", "Move"],
+	["keyword", "Multi"],
+	["keyword", "NA"],
+	["keyword", "No"],
+	["keyword", "NoActivate"],
+	["keyword", "NoDefault"],
+	["keyword", "NoHide"],
+	["keyword", "NoIcon"],
+	["keyword", "NoMainWindow"],
+	["keyword", "norm"],
+	["keyword", "Normal"],
+	["keyword", "NoSort"],
+	["keyword", "NoSortHdr"],
+	["keyword", "NoStandard"],
+	["keyword", "Not"],
+	["keyword", "NoTab"],
+	["keyword", "NoTimers"],
+	["keyword", "Number"],
+	["keyword", "Off"],
+	["keyword", "Ok"],
+	["keyword", "On"],
+	["keyword", "OwnDialogs"],
+	["keyword", "Owner"],
+	["keyword", "Parse"],
+	["keyword", "Password"],
+	["keyword", "Picture"],
+	["keyword", "Pixel"],
+	["keyword", "Pos"],
+	["keyword", "Pow"],
+	["keyword", "Priority"],
+	["keyword", "ProcessName"],
+	["keyword", "Radio"],
+	["keyword", "Range"],
+	["keyword", "Read"],
+	["keyword", "ReadOnly"],
+	["keyword", "Realtime"],
+	["keyword", "Redraw"],
+	["keyword", "REG_BINARY"],
+	["keyword", "REG_DWORD"],
+	["keyword", "REG_EXPAND_SZ"],
+	["keyword", "REG_MULTI_SZ"],
+	["keyword", "REG_SZ"],
+	["keyword", "Region"],
+	["keyword", "Relative"],
+	["keyword", "Rename"],
+	["keyword", "Report"],
+	["keyword", "Resize"],
+	["keyword", "Restore"],
+	["keyword", "Retry"],
+	["keyword", "RGB"],
+	["keyword", "Screen"],
+	["keyword", "Seconds"],
+	["keyword", "Section"],
+	["keyword", "Serial"],
+	["keyword", "SetLabel"],
+	["keyword", "ShiftAltTab"],
+	["keyword", "Show"],
+	["keyword", "Single"],
+	["keyword", "Slider"],
+	["keyword", "SortDesc"],
+	["keyword", "Standard"],
+	["keyword", "static"],
+	["keyword", "Status"],
+	["keyword", "StatusBar"],
+	["keyword", "StatusCD"],
+	["keyword", "strike"],
+	["keyword", "Style"],
+	["keyword", "Submit"],
+	["keyword", "SysMenu"],
+	["keyword", "Tab2"],
+	["keyword", "TabStop"],
+	["keyword", "Text"],
+	["keyword", "Theme"],
+	["keyword", "Tile"],
+	["keyword", "ToggleCheck"],
+	["keyword", "ToggleEnable"],
+	["keyword", "ToolWindow"],
+	["keyword", "Top"],
+	["keyword", "Topmost"],
+	["keyword", "TransColor"],
+	["keyword", "Transparent"],
+	["keyword", "Tray"],
+	["keyword", "TreeView"],
+	["keyword", "TryAgain"],
+	["keyword", "Type"],
+	["keyword", "UnCheck"],
+	["keyword", "underline"],
+	["keyword", "Unicode"],
+	["keyword", "Unlock"],
+	["keyword", "UpDown"],
+	["keyword", "Upper"],
+	["keyword", "Uppercase"],
+	["keyword", "UseErrorLevel"],
+	["keyword", "Vis"],
+	["keyword", "VisFirst"],
+	["keyword", "Visible"],
+	["keyword", "VScroll"],
+	["keyword", "Wait"],
+	["keyword", "WaitClose"],
+	["keyword", "WantCtrlA"],
+	["keyword", "WantF2"],
+	["keyword", "WantReturn"],
+	["keyword", "While"],
+	["keyword", "Wrap"],
+	["keyword", "Xdigit"],
+	["keyword", "xm"],
+	["keyword", "xp"],
+	["keyword", "xs"],
+	["keyword", "Yes"],
+	["keyword", "ym"],
+	["keyword", "yp"],
+	["keyword", "ys"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/number_feature.test b/node_modules/prismjs/tests/languages/autohotkey/number_feature.test
new file mode 100644
index 0000000..35a493a
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/number_feature.test
@@ -0,0 +1,21 @@
+42
+3.14159
+3.2e10
+2.9E-7
+0xbabe
+0xBABE
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "3.2e10"],
+	["number", "2.9E-7"],
+	["number", "0xbabe"],
+	["number", "0xBABE"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test b/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test
new file mode 100644
index 0000000..ec9e23e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test
@@ -0,0 +1,33 @@
++ - * /
+= ? & |
+< >
+++ -- ** //
+! ~ ^ .
+<< >> <= >=
+~= == <> !=
+NOT AND && OR ||
+:= += -= *=
+/= //= .=
+|= &= ^=
+>>= <<=
+
+----------------------------------------------------
+
+[
+	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"],
+	["operator", "="], ["operator", "?"], ["operator", "&"], ["operator", "|"],
+	["operator", "<"], ["operator", ">"],
+	["operator", "++"], ["operator", "--"], ["operator", "**"], ["operator", "//"],
+	["operator", "!"], ["operator", "~"], ["operator", "^"], ["operator", "."],
+	["operator", "<<"], ["operator", ">>"], ["operator", "<="], ["operator", ">="],
+	["operator", "~="], ["operator", "=="], ["operator", "<>"], ["operator", "!="],
+	["operator", "NOT"], ["operator", "AND"], ["operator", "&&"], ["operator", "OR"], ["operator", "||"],
+	["operator", ":="], ["operator", "+="], ["operator", "-="], ["operator", "*="],
+	["operator", "/="], ["operator", "//="], ["operator", ".="],
+	["operator", "|="], ["operator", "&="], ["operator", "^="],
+	["operator", ">>="], ["operator", "<<="]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test b/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test
new file mode 100644
index 0000000..29210c2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test
@@ -0,0 +1,381 @@
+AutoTrim
+BlockInput
+Break
+Click
+ClipWait
+Continue
+Control
+ControlClick
+ControlFocus
+ControlGet
+ControlGetFocus
+ControlGetPos
+ControlGetText
+ControlMove
+ControlSend
+ControlSendRaw
+ControlSetText
+CoordMode
+Critical
+DetectHiddenText
+DetectHiddenWindows
+Drive
+DriveGet
+DriveSpaceFree
+EnvAdd
+EnvDiv
+EnvGet
+EnvMult
+EnvSet
+EnvSub
+EnvUpdate
+Exit
+ExitApp
+FileAppend
+FileCopy
+FileCopyDir
+FileCreateDir
+FileCreateShortcut
+FileDelete
+FileEncoding
+FileGetAttrib
+FileGetShortcut
+FileGetSize
+FileGetTime
+FileGetVersion
+FileInstall
+FileMove
+FileMoveDir
+FileRead
+FileReadLine
+FileRecycle
+FileRecycleEmpty
+FileRemoveDir
+FileSelectFile
+FileSelectFolder
+FileSetAttrib
+FileSetTime
+FormatTime
+GetKeyState
+Gosub
+Goto
+GroupActivate
+GroupAdd
+GroupClose
+GroupDeactivate
+Gui
+GuiControl
+GuiControlGet
+Hotkey
+ImageSearch
+IniDelete
+IniRead
+IniWrite
+Input
+InputBox
+KeyWait
+ListHotkeys
+ListLines
+ListVars
+Loop
+Menu
+MouseClick
+MouseClickDrag
+MouseGetPos
+MouseMove
+MsgBox
+OnExit
+OutputDebug
+Pause
+PixelGetColor
+PixelSearch
+PostMessage
+Process
+Progress
+Random
+RegDelete
+RegRead
+RegWrite
+Reload
+Repeat
+Return
+Run
+RunAs
+RunWait
+Send
+SendEvent
+SendInput
+SendMessage
+SendMode
+SendPlay
+SendRaw
+SetBatchLines
+SetCapslockState
+SetControlDelay
+SetDefaultMouseSpeed
+SetEnv
+SetFormat
+SetKeyDelay
+SetMouseDelay
+SetNumlockState
+SetScrollLockState
+SetStoreCapslockMode
+SetTimer
+SetTitleMatchMode
+SetWinDelay
+SetWorkingDir
+Shutdown
+Sleep
+Sort
+SoundBeep
+SoundGet
+SoundGetWaveVolume
+SoundPlay
+SoundSet
+SoundSetWaveVolume
+SplashImage
+SplashTextOff
+SplashTextOn
+SplitPath
+StatusBarGetText
+StatusBarWait
+StringCaseSense
+StringGetPos
+StringLeft
+StringLen
+StringLower
+StringMid
+StringReplace
+StringRight
+StringSplit
+StringTrimLeft
+StringTrimRight
+StringUpper
+Suspend
+SysGet
+Thread
+ToolTip
+Transform
+TrayTip
+URLDownloadToFile
+WinActivate
+WinActivateBottom
+WinClose
+WinGet
+WinGetActiveStats
+WinGetActiveTitle
+WinGetClass
+WinGetPos
+WinGetText
+WinGetTitle
+WinHide
+WinKill
+WinMaximize
+WinMenuSelectItem
+WinMinimize
+WinMinimizeAll
+WinMinimizeAllUndo
+WinMove
+WinRestore
+WinSet
+WinSetTitle
+WinShow
+WinWait
+WinWaitActive
+WinWaitClose
+WinWaitNotActive
+
+----------------------------------------------------
+
+[
+	["selector", "AutoTrim"],
+	["selector", "BlockInput"],
+	["selector", "Break"],
+	["selector", "Click"],
+	["selector", "ClipWait"],
+	["selector", "Continue"],
+	["selector", "Control"],
+	["selector", "ControlClick"],
+	["selector", "ControlFocus"],
+	["selector", "ControlGet"],
+	["selector", "ControlGetFocus"],
+	["selector", "ControlGetPos"],
+	["selector", "ControlGetText"],
+	["selector", "ControlMove"],
+	["selector", "ControlSend"],
+	["selector", "ControlSendRaw"],
+	["selector", "ControlSetText"],
+	["selector", "CoordMode"],
+	["selector", "Critical"],
+	["selector", "DetectHiddenText"],
+	["selector", "DetectHiddenWindows"],
+	["selector", "Drive"],
+	["selector", "DriveGet"],
+	["selector", "DriveSpaceFree"],
+	["selector", "EnvAdd"],
+	["selector", "EnvDiv"],
+	["selector", "EnvGet"],
+	["selector", "EnvMult"],
+	["selector", "EnvSet"],
+	["selector", "EnvSub"],
+	["selector", "EnvUpdate"],
+	["selector", "Exit"],
+	["selector", "ExitApp"],
+	["selector", "FileAppend"],
+	["selector", "FileCopy"],
+	["selector", "FileCopyDir"],
+	["selector", "FileCreateDir"],
+	["selector", "FileCreateShortcut"],
+	["selector", "FileDelete"],
+	["selector", "FileEncoding"],
+	["selector", "FileGetAttrib"],
+	["selector", "FileGetShortcut"],
+	["selector", "FileGetSize"],
+	["selector", "FileGetTime"],
+	["selector", "FileGetVersion"],
+	["selector", "FileInstall"],
+	["selector", "FileMove"],
+	["selector", "FileMoveDir"],
+	["selector", "FileRead"],
+	["selector", "FileReadLine"],
+	["selector", "FileRecycle"],
+	["selector", "FileRecycleEmpty"],
+	["selector", "FileRemoveDir"],
+	["selector", "FileSelectFile"],
+	["selector", "FileSelectFolder"],
+	["selector", "FileSetAttrib"],
+	["selector", "FileSetTime"],
+	["selector", "FormatTime"],
+	["selector", "GetKeyState"],
+	["selector", "Gosub"],
+	["selector", "Goto"],
+	["selector", "GroupActivate"],
+	["selector", "GroupAdd"],
+	["selector", "GroupClose"],
+	["selector", "GroupDeactivate"],
+	["selector", "Gui"],
+	["selector", "GuiControl"],
+	["selector", "GuiControlGet"],
+	["selector", "Hotkey"],
+	["selector", "ImageSearch"],
+	["selector", "IniDelete"],
+	["selector", "IniRead"],
+	["selector", "IniWrite"],
+	["selector", "Input"],
+	["selector", "InputBox"],
+	["selector", "KeyWait"],
+	["selector", "ListHotkeys"],
+	["selector", "ListLines"],
+	["selector", "ListVars"],
+	["selector", "Loop"],
+	["selector", "Menu"],
+	["selector", "MouseClick"],
+	["selector", "MouseClickDrag"],
+	["selector", "MouseGetPos"],
+	["selector", "MouseMove"],
+	["selector", "MsgBox"],
+	["selector", "OnExit"],
+	["selector", "OutputDebug"],
+	["selector", "Pause"],
+	["selector", "PixelGetColor"],
+	["selector", "PixelSearch"],
+	["selector", "PostMessage"],
+	["selector", "Process"],
+	["selector", "Progress"],
+	["selector", "Random"],
+	["selector", "RegDelete"],
+	["selector", "RegRead"],
+	["selector", "RegWrite"],
+	["selector", "Reload"],
+	["selector", "Repeat"],
+	["selector", "Return"],
+	["selector", "Run"],
+	["selector", "RunAs"],
+	["selector", "RunWait"],
+	["selector", "Send"],
+	["selector", "SendEvent"],
+	["selector", "SendInput"],
+	["selector", "SendMessage"],
+	["selector", "SendMode"],
+	["selector", "SendPlay"],
+	["selector", "SendRaw"],
+	["selector", "SetBatchLines"],
+	["selector", "SetCapslockState"],
+	["selector", "SetControlDelay"],
+	["selector", "SetDefaultMouseSpeed"],
+	["selector", "SetEnv"],
+	["selector", "SetFormat"],
+	["selector", "SetKeyDelay"],
+	["selector", "SetMouseDelay"],
+	["selector", "SetNumlockState"],
+	["selector", "SetScrollLockState"],
+	["selector", "SetStoreCapslockMode"],
+	["selector", "SetTimer"],
+	["selector", "SetTitleMatchMode"],
+	["selector", "SetWinDelay"],
+	["selector", "SetWorkingDir"],
+	["selector", "Shutdown"],
+	["selector", "Sleep"],
+	["selector", "Sort"],
+	["selector", "SoundBeep"],
+	["selector", "SoundGet"],
+	["selector", "SoundGetWaveVolume"],
+	["selector", "SoundPlay"],
+	["selector", "SoundSet"],
+	["selector", "SoundSetWaveVolume"],
+	["selector", "SplashImage"],
+	["selector", "SplashTextOff"],
+	["selector", "SplashTextOn"],
+	["selector", "SplitPath"],
+	["selector", "StatusBarGetText"],
+	["selector", "StatusBarWait"],
+	["selector", "StringCaseSense"],
+	["selector", "StringGetPos"],
+	["selector", "StringLeft"],
+	["selector", "StringLen"],
+	["selector", "StringLower"],
+	["selector", "StringMid"],
+	["selector", "StringReplace"],
+	["selector", "StringRight"],
+	["selector", "StringSplit"],
+	["selector", "StringTrimLeft"],
+	["selector", "StringTrimRight"],
+	["selector", "StringUpper"],
+	["selector", "Suspend"],
+	["selector", "SysGet"],
+	["selector", "Thread"],
+	["selector", "ToolTip"],
+	["selector", "Transform"],
+	["selector", "TrayTip"],
+	["selector", "URLDownloadToFile"],
+	["selector", "WinActivate"],
+	["selector", "WinActivateBottom"],
+	["selector", "WinClose"],
+	["selector", "WinGet"],
+	["selector", "WinGetActiveStats"],
+	["selector", "WinGetActiveTitle"],
+	["selector", "WinGetClass"],
+	["selector", "WinGetPos"],
+	["selector", "WinGetText"],
+	["selector", "WinGetTitle"],
+	["selector", "WinHide"],
+	["selector", "WinKill"],
+	["selector", "WinMaximize"],
+	["selector", "WinMenuSelectItem"],
+	["selector", "WinMinimize"],
+	["selector", "WinMinimizeAll"],
+	["selector", "WinMinimizeAllUndo"],
+	["selector", "WinMove"],
+	["selector", "WinRestore"],
+	["selector", "WinSet"],
+	["selector", "WinSetTitle"],
+	["selector", "WinShow"],
+	["selector", "WinWait"],
+	["selector", "WinWaitActive"],
+	["selector", "WinWaitClose"],
+	["selector", "WinWaitNotActive"]
+]
+
+----------------------------------------------------
+
+Checks for all selectors.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/string_feature.test b/node_modules/prismjs/tests/languages/autohotkey/string_feature.test
new file mode 100644
index 0000000..76168fd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/string_feature.test
@@ -0,0 +1,15 @@
+""
+"foo"
+"foo""bar"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"foo\""],
+	["string", "\"foo\"\"bar\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test b/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test
new file mode 100644
index 0000000..2c47777
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test
@@ -0,0 +1,347 @@
+alt
+altdown
+altup
+appskey
+backspace
+browser_back
+browser_favorites
+browser_forward
+browser_home
+browser_refresh
+browser_search
+browser_stop
+bs
+capslock
+ctrl
+ctrlbreak
+ctrldown
+ctrlup
+del
+delete
+down
+end
+enter
+esc
+escape
+f1
+f10
+f11
+f12
+f13
+f14
+f15
+f16
+f17
+f18
+f19
+f2
+f20
+f21
+f22
+f23
+f24
+f3
+f4
+f5
+f6
+f7
+f8
+f9
+home
+ins
+insert
+joy1
+joy10
+joy11
+joy12
+joy13
+joy14
+joy15
+joy16
+joy17
+joy18
+joy19
+joy2
+joy20
+joy21
+joy22
+joy23
+joy24
+joy25
+joy26
+joy27
+joy28
+joy29
+joy3
+joy30
+joy31
+joy32
+joy4
+joy5
+joy6
+joy7
+joy8
+joy9
+joyaxes
+joybuttons
+joyinfo
+joyname
+joypov
+joyr
+joyu
+joyv
+joyx
+joyy
+joyz
+lalt
+launch_app1
+launch_app2
+launch_mail
+launch_media
+lbutton
+lcontrol
+lctrl
+left
+lshift
+lwin
+lwindown
+lwinup
+mbutton
+media_next
+media_play_pause
+media_prev
+media_stop
+numlock
+numpad0
+numpad1
+numpad2
+numpad3
+numpad4
+numpad5
+numpad6
+numpad7
+numpad8
+numpad9
+numpadadd
+numpadclear
+numpaddel
+numpaddiv
+numpaddot
+numpaddown
+numpadend
+numpadenter
+numpadhome
+numpadins
+numpadleft
+numpadmult
+numpadpgdn
+numpadpgup
+numpadright
+numpadsub
+numpadup
+pgdn
+pgup
+printscreen
+ralt
+rbutton
+rcontrol
+rctrl
+right
+rshift
+rwin
+rwindown
+rwinup
+scrolllock
+shift
+shiftdown
+shiftup
+space
+tab
+up
+volume_down
+volume_mute
+volume_up
+wheeldown
+wheelleft
+wheelright
+wheelup
+xbutton1
+xbutton2
+
+----------------------------------------------------
+
+[
+	["symbol", "alt"],
+	["symbol", "altdown"],
+	["symbol", "altup"],
+	["symbol", "appskey"],
+	["symbol", "backspace"],
+	["symbol", "browser_back"],
+	["symbol", "browser_favorites"],
+	["symbol", "browser_forward"],
+	["symbol", "browser_home"],
+	["symbol", "browser_refresh"],
+	["symbol", "browser_search"],
+	["symbol", "browser_stop"],
+	["symbol", "bs"],
+	["symbol", "capslock"],
+	["symbol", "ctrl"],
+	["symbol", "ctrlbreak"],
+	["symbol", "ctrldown"],
+	["symbol", "ctrlup"],
+	["symbol", "del"],
+	["symbol", "delete"],
+	["symbol", "down"],
+	["symbol", "end"],
+	["symbol", "enter"],
+	["symbol", "esc"],
+	["symbol", "escape"],
+	["symbol", "f1"],
+	["symbol", "f10"],
+	["symbol", "f11"],
+	["symbol", "f12"],
+	["symbol", "f13"],
+	["symbol", "f14"],
+	["symbol", "f15"],
+	["symbol", "f16"],
+	["symbol", "f17"],
+	["symbol", "f18"],
+	["symbol", "f19"],
+	["symbol", "f2"],
+	["symbol", "f20"],
+	["symbol", "f21"],
+	["symbol", "f22"],
+	["symbol", "f23"],
+	["symbol", "f24"],
+	["symbol", "f3"],
+	["symbol", "f4"],
+	["symbol", "f5"],
+	["symbol", "f6"],
+	["symbol", "f7"],
+	["symbol", "f8"],
+	["symbol", "f9"],
+	["symbol", "home"],
+	["symbol", "ins"],
+	["symbol", "insert"],
+	["symbol", "joy1"],
+	["symbol", "joy10"],
+	["symbol", "joy11"],
+	["symbol", "joy12"],
+	["symbol", "joy13"],
+	["symbol", "joy14"],
+	["symbol", "joy15"],
+	["symbol", "joy16"],
+	["symbol", "joy17"],
+	["symbol", "joy18"],
+	["symbol", "joy19"],
+	["symbol", "joy2"],
+	["symbol", "joy20"],
+	["symbol", "joy21"],
+	["symbol", "joy22"],
+	["symbol", "joy23"],
+	["symbol", "joy24"],
+	["symbol", "joy25"],
+	["symbol", "joy26"],
+	["symbol", "joy27"],
+	["symbol", "joy28"],
+	["symbol", "joy29"],
+	["symbol", "joy3"],
+	["symbol", "joy30"],
+	["symbol", "joy31"],
+	["symbol", "joy32"],
+	["symbol", "joy4"],
+	["symbol", "joy5"],
+	["symbol", "joy6"],
+	["symbol", "joy7"],
+	["symbol", "joy8"],
+	["symbol", "joy9"],
+	["symbol", "joyaxes"],
+	["symbol", "joybuttons"],
+	["symbol", "joyinfo"],
+	["symbol", "joyname"],
+	["symbol", "joypov"],
+	["symbol", "joyr"],
+	["symbol", "joyu"],
+	["symbol", "joyv"],
+	["symbol", "joyx"],
+	["symbol", "joyy"],
+	["symbol", "joyz"],
+	["symbol", "lalt"],
+	["symbol", "launch_app1"],
+	["symbol", "launch_app2"],
+	["symbol", "launch_mail"],
+	["symbol", "launch_media"],
+	["symbol", "lbutton"],
+	["symbol", "lcontrol"],
+	["symbol", "lctrl"],
+	["symbol", "left"],
+	["symbol", "lshift"],
+	["symbol", "lwin"],
+	["symbol", "lwindown"],
+	["symbol", "lwinup"],
+	["symbol", "mbutton"],
+	["symbol", "media_next"],
+	["symbol", "media_play_pause"],
+	["symbol", "media_prev"],
+	["symbol", "media_stop"],
+	["symbol", "numlock"],
+	["symbol", "numpad0"],
+	["symbol", "numpad1"],
+	["symbol", "numpad2"],
+	["symbol", "numpad3"],
+	["symbol", "numpad4"],
+	["symbol", "numpad5"],
+	["symbol", "numpad6"],
+	["symbol", "numpad7"],
+	["symbol", "numpad8"],
+	["symbol", "numpad9"],
+	["symbol", "numpadadd"],
+	["symbol", "numpadclear"],
+	["symbol", "numpaddel"],
+	["symbol", "numpaddiv"],
+	["symbol", "numpaddot"],
+	["symbol", "numpaddown"],
+	["symbol", "numpadend"],
+	["symbol", "numpadenter"],
+	["symbol", "numpadhome"],
+	["symbol", "numpadins"],
+	["symbol", "numpadleft"],
+	["symbol", "numpadmult"],
+	["symbol", "numpadpgdn"],
+	["symbol", "numpadpgup"],
+	["symbol", "numpadright"],
+	["symbol", "numpadsub"],
+	["symbol", "numpadup"],
+	["symbol", "pgdn"],
+	["symbol", "pgup"],
+	["symbol", "printscreen"],
+	["symbol", "ralt"],
+	["symbol", "rbutton"],
+	["symbol", "rcontrol"],
+	["symbol", "rctrl"],
+	["symbol", "right"],
+	["symbol", "rshift"],
+	["symbol", "rwin"],
+	["symbol", "rwindown"],
+	["symbol", "rwinup"],
+	["symbol", "scrolllock"],
+	["symbol", "shift"],
+	["symbol", "shiftdown"],
+	["symbol", "shiftup"],
+	["symbol", "space"],
+	["symbol", "tab"],
+	["symbol", "up"],
+	["symbol", "volume_down"],
+	["symbol", "volume_mute"],
+	["symbol", "volume_up"],
+	["symbol", "wheeldown"],
+	["symbol", "wheelleft"],
+	["symbol", "wheelright"],
+	["symbol", "wheelup"],
+	["symbol", "xbutton1"],
+	["symbol", "xbutton2"]
+]
+
+----------------------------------------------------
+
+Checks for all symbols.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test b/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test
new file mode 100644
index 0000000..0ca9258
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test
@@ -0,0 +1,15 @@
+foo:
+foo_bar:
+
+----------------------------------------------------
+
+[
+	["tag", "foo"],
+	["punctuation", ":"],
+	["tag", "foo_bar"],
+	["punctuation", ":"]
+]
+
+----------------------------------------------------
+
+Checks for tags (labels).
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test b/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test
new file mode 100644
index 0000000..5ed8a4c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test
@@ -0,0 +1,13 @@
+%foo%
+%foo_bar%
+
+----------------------------------------------------
+
+[
+	["variable", "%foo%"],
+	["variable", "%foo_bar%"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/boolean_feature.test b/node_modules/prismjs/tests/languages/autoit/boolean_feature.test
new file mode 100644
index 0000000..5750be0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/boolean_feature.test
@@ -0,0 +1,13 @@
+True
+False
+
+----------------------------------------------------
+
+[
+	["boolean", "True"],
+	["boolean", "False"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/comment_feature.test b/node_modules/prismjs/tests/languages/autoit/comment_feature.test
new file mode 100644
index 0000000..d88708f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/comment_feature.test
@@ -0,0 +1,33 @@
+;
+; foo
+#comments-start
+	foobar()
+#comments-end
+#cs
+	foobar()
+#ce
+;#comments-start
+	foobar()
+;#comments-end
+;#cs
+	foobar()
+;#ce
+
+----------------------------------------------------
+
+[
+	["comment", ";"],
+	["comment", "; foo"],
+	["comment", "#comments-start\r\n\tfoobar()\r\n#comments-end"],
+	["comment", "#cs\r\n\tfoobar()\r\n#ce"],
+	["comment", ";#comments-start"],
+	["function", "foobar"], ["punctuation", "("], ["punctuation", ")"],
+	["comment", ";#comments-end"],
+	["comment", ";#cs"],
+	["function", "foobar"], ["punctuation", "("], ["punctuation", ")"],
+	["comment", ";#ce"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/directive_feature.test b/node_modules/prismjs/tests/languages/autoit/directive_feature.test
new file mode 100644
index 0000000..9219f70
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/directive_feature.test
@@ -0,0 +1,13 @@
+#NoTrayIcon
+#OnAutoItStartRegister "Example"
+
+----------------------------------------------------
+
+[
+	["directive", "#NoTrayIcon"],
+	["directive", "#OnAutoItStartRegister"], ["string", ["\"Example\""]]
+]
+
+----------------------------------------------------
+
+Checks for directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/function_feature.test b/node_modules/prismjs/tests/languages/autoit/function_feature.test
new file mode 100644
index 0000000..13c82dd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/function_feature.test
@@ -0,0 +1,15 @@
+foo()
+foo_bar()
+foo_bar_42()
+
+----------------------------------------------------
+
+[
+	["function", "foo"], ["punctuation", "("], ["punctuation", ")"],
+	["function", "foo_bar"], ["punctuation", "("], ["punctuation", ")"],
+	["function", "foo_bar_42"], ["punctuation", "("], ["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/keyword_feature.test b/node_modules/prismjs/tests/languages/autoit/keyword_feature.test
new file mode 100644
index 0000000..2db276c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/keyword_feature.test
@@ -0,0 +1,83 @@
+Case
+Const
+ContinueCase
+ContinueLoop
+Default
+Dim
+Do
+Else
+ElseIf
+EndFunc
+EndIf
+EndSelect
+EndSwitch
+EndWith
+Enum
+Exit
+ExitLoop
+For
+Func
+Global
+If
+In
+Local
+Next
+Null
+ReDim
+Select
+Static
+Step
+Switch
+Then
+To
+Until
+Volatile
+WEnd
+While
+With
+
+----------------------------------------------------
+
+[
+	["keyword", "Case"],
+	["keyword", "Const"],
+	["keyword", "ContinueCase"],
+	["keyword", "ContinueLoop"],
+	["keyword", "Default"],
+	["keyword", "Dim"],
+	["keyword", "Do"],
+	["keyword", "Else"],
+	["keyword", "ElseIf"],
+	["keyword", "EndFunc"],
+	["keyword", "EndIf"],
+	["keyword", "EndSelect"],
+	["keyword", "EndSwitch"],
+	["keyword", "EndWith"],
+	["keyword", "Enum"],
+	["keyword", "Exit"],
+	["keyword", "ExitLoop"],
+	["keyword", "For"],
+	["keyword", "Func"],
+	["keyword", "Global"],
+	["keyword", "If"],
+	["keyword", "In"],
+	["keyword", "Local"],
+	["keyword", "Next"],
+	["keyword", "Null"],
+	["keyword", "ReDim"],
+	["keyword", "Select"],
+	["keyword", "Static"],
+	["keyword", "Step"],
+	["keyword", "Switch"],
+	["keyword", "Then"],
+	["keyword", "To"],
+	["keyword", "Until"],
+	["keyword", "Volatile"],
+	["keyword", "WEnd"],
+	["keyword", "While"],
+	["keyword", "With"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/number_feature.test b/node_modules/prismjs/tests/languages/autoit/number_feature.test
new file mode 100644
index 0000000..5c6ac5b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/number_feature.test
@@ -0,0 +1,21 @@
+42
+3.14159
+4e8
+3.5E-9
+0.7e+12
+0xBadFace
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "4e8"],
+	["number", "3.5E-9"],
+	["number", "0.7e+12"],
+	["number", "0xBadFace"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/operator_feature.test b/node_modules/prismjs/tests/languages/autoit/operator_feature.test
new file mode 100644
index 0000000..65f4ce4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/operator_feature.test
@@ -0,0 +1,23 @@
+< <= <>
+> >=
++ += - -=
+* *= / /=
+& &=
+? ^
+And Or Not
+
+----------------------------------------------------
+
+[
+	["operator", "<"], ["operator", "<="], ["operator", "<>"],
+	["operator", ">"], ["operator", ">="],
+	["operator", "+"], ["operator", "+="], ["operator", "-"], ["operator", "-="],
+	["operator", "*"], ["operator", "*="], ["operator", "/"], ["operator", "/="],
+	["operator", "&"], ["operator", "&="],
+	["operator", "?"], ["operator", "^"],
+	["operator", "And"], ["operator", "Or"], ["operator", "Not"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/string_feature.test b/node_modules/prismjs/tests/languages/autoit/string_feature.test
new file mode 100644
index 0000000..5ae4bb7
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/string_feature.test
@@ -0,0 +1,37 @@
+""
+"foo""bar"
+"foo %foo% bar $bar$ baz @baz@"
+''
+'foo''bar'
+'foo %foo% bar $bar$ baz @baz@'
+
+----------------------------------------------------
+
+[
+	["string", ["\"\""]],
+	["string", ["\"foo\"\"bar\""]],
+	["string", [
+		"\"foo ",
+		["variable", "%foo%"],
+		" bar ",
+		["variable", "$bar$"],
+		" baz ",
+		["variable", "@baz@"],
+		"\""
+	]],
+	["string", ["''"]],
+	["string", ["'foo''bar'"]],
+	["string", [
+		"'foo ",
+		["variable", "%foo%"],
+		" bar ",
+		["variable", "$bar$"],
+		" baz ",
+		["variable", "@baz@"],
+		"'"
+	]]
+]
+
+----------------------------------------------------
+
+Checks for strings and interpolation.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/url_feature.test b/node_modules/prismjs/tests/languages/autoit/url_feature.test
new file mode 100644
index 0000000..1f6d3cd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/url_feature.test
@@ -0,0 +1,15 @@
+#include 
+#include "foo.au3"
+
+----------------------------------------------------
+
+[
+	["directive", "#include"],
+	["url", ""],
+	["directive", "#include"],
+	["url", "\"foo.au3\""]
+]
+
+----------------------------------------------------
+
+Checks for files in includes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/autoit/variable_feature.test b/node_modules/prismjs/tests/languages/autoit/variable_feature.test
new file mode 100644
index 0000000..e36ffe3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/autoit/variable_feature.test
@@ -0,0 +1,19 @@
+$foo
+$foo_bar_42
+@ComputerName
+@CPUArch
+@TAB
+
+----------------------------------------------------
+
+[
+	["variable", "$foo"],
+	["variable", "$foo_bar_42"],
+	["variable", "@ComputerName"],
+	["variable", "@CPUArch"],
+	["variable", "@TAB"]
+]
+
+----------------------------------------------------
+
+Checks for variables and macros.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test b/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test
new file mode 100644
index 0000000..a9c5663
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test
@@ -0,0 +1,53 @@
+(( 4 + 5 ))
+$((5 * 7))
+"foo $((5 * 7)) bar"
+for (( NUM=1 ; NUM<=1000 ; NUM++ ))
+
+----------------------------------------------------
+
+[
+	["variable", [
+		["punctuation", "(("],
+		["number", "4"],
+		["operator", "+"],
+		["number", "5"],
+		["punctuation", "))"]
+	]],
+	["variable", [
+		["variable", "$(("],
+		["number", "5"],
+		["operator", "*"],
+		["number", "7"],
+		["variable", "))"]
+	]],
+	["string", [
+		"\"foo ",
+		["variable", [
+			["variable", "$(("],
+			["number", "5"],
+			["operator", "*"],
+			["number", "7"],
+			["variable", "))"]
+		]],
+		" bar\""
+	]],
+	["keyword", "for"],
+	["variable", [
+		["punctuation", "(("],
+		" NUM",
+		["operator", "="],
+		["number", "1"],
+		["punctuation", ";"],
+		" NUM",
+		["operator", "<="],
+		["number", "1000"],
+		["punctuation", ";"],
+		" NUM",
+		["operator", "++"],
+		["punctuation", "))"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks arithmetic environments
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test b/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test
new file mode 100644
index 0000000..f849829
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test
@@ -0,0 +1,34 @@
+$(echo foo)
+`echo foo`
+"$(echo foo) bar"
+
+----------------------------------------------------
+
+[
+	["variable", [
+		["variable", "$("],
+		["keyword", "echo"], 
+		" foo",
+		["variable", ")"]
+	]],
+	["variable", [
+		["variable", "`"],
+		["keyword", "echo"], 
+		" foo",
+		["variable", "`"]
+	]],
+	["string", [
+		"\"",
+		["variable", [
+			["variable", "$("],
+			["keyword", "echo"], 
+			" foo",
+			["variable", ")"]
+		]],
+		" bar\""
+	]]
+]
+
+----------------------------------------------------
+
+Checks for command substitution.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/comment_feature.test b/node_modules/prismjs/tests/languages/bash/comment_feature.test
new file mode 100644
index 0000000..5824909
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/comment_feature.test
@@ -0,0 +1,13 @@
+#foo
+# bar
+
+----------------------------------------------------
+
+[
+	["comment", "#foo"],
+	["comment", "# bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/function_feature.test b/node_modules/prismjs/tests/languages/bash/function_feature.test
new file mode 100644
index 0000000..cb0def2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/function_feature.test
@@ -0,0 +1,101 @@
+alias apropos apt-get aptitude aspell
+awk basename bash bc bg
+builtin bzip2 cal cat cd
+cfdisk chgrp chmod chown chroot
+chkconfig cksum clear cmp comm
+command cp cron crontab csplit
+cut date dc dd ddrescue
+df diff diff3 dig dir dircolors
+dirname dirs dmesg du
+egrep eject enable env ethtool
+eval exec expand expect
+export expr fdformat fdisk
+fg fgrep file find fmt
+fold format free fsck ftp
+fuser gawk getopts git grep
+groupadd groupdel groupmod groups
+gzip hash head help hg history
+hostname htop iconv id ifconfig
+ifdown ifup import install jobs
+join kill killall less link ln
+locate logname logout look lpc lpr
+lprint lprintd lprintq lprm ls
+lsof make man mkdir mkfifo
+mkisofs mknod more most mount
+mtools mtr mv mmv nano netstat
+nice nl nohup notify-send nslookup
+open op passwd paste pathchk ping
+pkill popd pr printcap printenv
+printf ps pushd pv pwd quota
+quotacheck quotactl ram rar rcp
+read readarray readonly reboot
+rename renice remsync rev rm
+rmdir rsync screen scp sdiff sed
+seq service sftp shift
+shopt shutdown sleep slocate
+sort source split ssh stat strace
+su sudo sum suspend sync tail tar
+tee test time timeout times
+touch top traceroute trap tr
+tsort tty type ulimit umask
+umount unalias uname unexpand uniq
+units unrar unshar uptime
+useradd userdel usermod users uuencode
+uudecode v vdir vi vmstat wait watch
+wc wget whereis which who whoami write
+xargs xdg-open yes zip
+
+----------------------------------------------------
+
+[
+	["function", "alias"], ["function", "apropos"], ["function", "apt-get"], ["function", "aptitude"], ["function", "aspell"],
+	["function", "awk"], ["function", "basename"], ["function", "bash"], ["function", "bc"], ["function", "bg"],
+	["function", "builtin"], ["function", "bzip2"], ["function", "cal"], ["function", "cat"], ["function", "cd"],
+	["function", "cfdisk"], ["function", "chgrp"], ["function", "chmod"], ["function", "chown"], ["function", "chroot"],
+	["function", "chkconfig"], ["function", "cksum"], ["function", "clear"], ["function", "cmp"], ["function", "comm"],
+	["function", "command"], ["function", "cp"], ["function", "cron"], ["function", "crontab"], ["function", "csplit"],
+	["function", "cut"], ["function", "date"], ["function", "dc"], ["function", "dd"], ["function", "ddrescue"],
+	["function", "df"], ["function", "diff"], ["function", "diff3"], ["function", "dig"], ["function", "dir"], ["function", "dircolors"],
+	["function", "dirname"], ["function", "dirs"], ["function", "dmesg"], ["function", "du"],
+	["function", "egrep"], ["function", "eject"], ["function", "enable"], ["function", "env"], ["function", "ethtool"],
+	["function", "eval"], ["function", "exec"], ["function", "expand"], ["function", "expect"],
+	["function", "export"], ["function", "expr"], ["function", "fdformat"], ["function", "fdisk"],
+	["function", "fg"], ["function", "fgrep"], ["function", "file"], ["function", "find"], ["function", "fmt"],
+	["function", "fold"], ["function", "format"], ["function", "free"], ["function", "fsck"], ["function", "ftp"],
+	["function", "fuser"], ["function", "gawk"], ["function", "getopts"], ["function", "git"], ["function", "grep"],
+	["function", "groupadd"], ["function", "groupdel"], ["function", "groupmod"], ["function", "groups"],
+	["function", "gzip"], ["function", "hash"], ["function", "head"], ["function", "help"], ["function", "hg"], ["function", "history"],
+	["function", "hostname"], ["function", "htop"], ["function", "iconv"], ["function", "id"], ["function", "ifconfig"],
+	["function", "ifdown"], ["function", "ifup"], ["function", "import"], ["function", "install"], ["function", "jobs"],
+	["function", "join"], ["function", "kill"], ["function", "killall"], ["function", "less"], ["function", "link"], ["function", "ln"],
+	["function", "locate"], ["function", "logname"], ["function", "logout"], ["function", "look"], ["function", "lpc"], ["function", "lpr"],
+	["function", "lprint"], ["function", "lprintd"], ["function", "lprintq"], ["function", "lprm"], ["function", "ls"],
+	["function", "lsof"], ["function", "make"], ["function", "man"], ["function", "mkdir"], ["function", "mkfifo"],
+	["function", "mkisofs"], ["function", "mknod"], ["function", "more"], ["function", "most"], ["function", "mount"],
+	["function", "mtools"], ["function", "mtr"], ["function", "mv"], ["function", "mmv"], ["function", "nano"], ["function", "netstat"],
+	["function", "nice"], ["function", "nl"], ["function", "nohup"], ["function", "notify-send"], ["function", "nslookup"],
+	["function", "open"], ["function", "op"], ["function", "passwd"], ["function", "paste"], ["function", "pathchk"], ["function", "ping"],
+	["function", "pkill"], ["function", "popd"], ["function", "pr"], ["function", "printcap"], ["function", "printenv"],
+	["function", "printf"], ["function", "ps"], ["function", "pushd"], ["function", "pv"], ["function", "pwd"], ["function", "quota"],
+	["function", "quotacheck"], ["function", "quotactl"], ["function", "ram"], ["function", "rar"], ["function", "rcp"],
+	["function", "read"], ["function", "readarray"], ["function", "readonly"], ["function", "reboot"],
+	["function", "rename"], ["function", "renice"], ["function", "remsync"], ["function", "rev"], ["function", "rm"],
+	["function", "rmdir"], ["function", "rsync"], ["function", "screen"], ["function", "scp"], ["function", "sdiff"], ["function", "sed"],
+	["function", "seq"], ["function", "service"], ["function", "sftp"], ["function", "shift"],
+	["function", "shopt"], ["function", "shutdown"], ["function", "sleep"], ["function", "slocate"],
+	["function", "sort"], ["function", "source"], ["function", "split"], ["function", "ssh"], ["function", "stat"], ["function", "strace"],
+	["function", "su"], ["function", "sudo"], ["function", "sum"], ["function", "suspend"], ["function", "sync"], ["function", "tail"], ["function", "tar"],
+	["function", "tee"], ["function", "test"], ["function", "time"], ["function", "timeout"], ["function", "times"],
+	["function", "touch"], ["function", "top"], ["function", "traceroute"], ["function", "trap"], ["function", "tr"],
+	["function", "tsort"], ["function", "tty"], ["function", "type"], ["function", "ulimit"], ["function", "umask"],
+	["function", "umount"], ["function", "unalias"], ["function", "uname"], ["function", "unexpand"], ["function", "uniq"],
+	["function", "units"], ["function", "unrar"], ["function", "unshar"], ["function", "uptime"],
+	["function", "useradd"], ["function", "userdel"], ["function", "usermod"], ["function", "users"], ["function", "uuencode"],
+	["function", "uudecode"], ["function", "v"], ["function", "vdir"], ["function", "vi"], ["function", "vmstat"], ["function", "wait"], ["function", "watch"],
+	["function", "wc"], ["function", "wget"], ["function", "whereis"], ["function", "which"], ["function", "who"], ["function", "whoami"], ["function", "write"],
+	["function", "xargs"], ["function", "xdg-open"], ["function", "yes"], ["function", "zip"]
+]
+
+----------------------------------------------------
+
+Checks for all functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/keyword_feature.test b/node_modules/prismjs/tests/languages/bash/keyword_feature.test
new file mode 100644
index 0000000..b3bacf5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/keyword_feature.test
@@ -0,0 +1,20 @@
+if then else elif fi
+for break continue while
+in case function select
+do done until echo exit
+return set declare
+. :
+----------------------------------------------------
+
+[
+	["keyword", "if"], ["keyword", "then"], ["keyword", "else"], ["keyword", "elif"], ["keyword", "fi"],
+	["keyword", "for"], ["keyword", "break"], ["keyword", "continue"], ["keyword", "while"],
+	["keyword", "in"], ["keyword", "case"], ["keyword", "function"], ["keyword", "select"],
+	["keyword", "do"], ["keyword", "done"], ["keyword", "until"], ["keyword", "echo"], ["keyword", "exit"],
+	["keyword", "return"], ["keyword", "set"], ["keyword", "declare"],
+	["keyword", "."], ["keyword", ":"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/shebang_feature.test b/node_modules/prismjs/tests/languages/bash/shebang_feature.test
new file mode 100644
index 0000000..c41860d
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/shebang_feature.test
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+----------------------------------------------------
+
+[
+	["shebang", "#!/bin/bash"]
+]
+
+----------------------------------------------------
+
+Checks for shebang.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/string_feature.test b/node_modules/prismjs/tests/languages/bash/string_feature.test
new file mode 100644
index 0000000..fd2a303
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/string_feature.test
@@ -0,0 +1,67 @@
+""
+''
+"foo"
+'foo'
+"foo
+bar"
+'foo
+bar'
+"'foo'"
+'"bar"'
+"$@"
+"${foo}"
+<< STRING_END
+foo
+bar
+STRING_END
+<<   EOF
+foo $@
+bar
+EOF
+<< 'EOF'
+'single quoted string'
+"double quoted string"
+EOF
+<< "EOF"
+foo
+bar
+EOF
+<< STRING_END
+# comment
+STRING_END
+"  # comment  "
+
+----------------------------------------------------
+
+[
+	["string", ["\"\""]],
+	["string", ["''"]],
+	["string", ["\"foo\""]],
+	["string", ["'foo'"]],
+	["string", ["\"foo\r\nbar\""]],
+	["string", ["'foo\r\nbar'"]],
+	["string", ["\"'foo'\""]],
+	["string", ["'\"bar\"'"]],
+	["string", [
+		"\"", ["variable", "$@"], "\""
+	]],
+	["string", [
+		"\"", ["variable", "${foo}"], "\""
+	]],
+	["operator", "<<"],
+	["string", ["STRING_END\r\nfoo\r\nbar\r\nSTRING_END"]],
+	["operator", "<<"],
+	["string", ["EOF\r\nfoo ", ["variable", "$@"], "\r\nbar\r\nEOF"]],
+	["operator", "<<"],
+	["string", ["'EOF'\r\n'single quoted string'\r\n\"double quoted string\"\r\nEOF"]],
+	["operator", "<<"],
+	["string", ["\"EOF\"\r\nfoo\r\nbar\r\nEOF"]],
+	["operator", "<<"],
+	["string", ["STRING_END\r\n# comment\r\nSTRING_END"]],
+	["string", ["\"  # comment  \""]]
+]
+
+----------------------------------------------------
+
+Checks for single-quoted and double-quoted strings.
+Also checks for variables in strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bash/variable_feature.test b/node_modules/prismjs/tests/languages/bash/variable_feature.test
new file mode 100644
index 0000000..16b7448
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bash/variable_feature.test
@@ -0,0 +1,15 @@
+$foo
+$@
+${foo bar}
+
+----------------------------------------------------
+
+[
+	["variable", "$foo"],
+	["variable", "$@"],
+	["variable", "${foo bar}"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/comment_feature.test b/node_modules/prismjs/tests/languages/basic/comment_feature.test
new file mode 100644
index 0000000..d306176
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/comment_feature.test
@@ -0,0 +1,13 @@
+! Foobar
+REM Foobar
+
+----------------------------------------------------
+
+[
+	["comment", ["! Foobar"]],
+	["comment", [["keyword", "REM"], " Foobar"]]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/function_feature.test b/node_modules/prismjs/tests/languages/basic/function_feature.test
new file mode 100644
index 0000000..5fe8d76
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/function_feature.test
@@ -0,0 +1,309 @@
+ABS
+ACCESS
+ACOS
+ANGLE
+AREA
+ARITHMETIC
+ARRAY
+ASIN
+ASK
+AT
+ATN
+BASE
+BEGIN
+BREAK
+CAUSE
+CEIL
+CHR
+CLIP
+COLLATE
+COLOR
+CON
+COS
+COSH
+COT
+CSC
+DATE
+DATUM
+DEBUG
+DECIMAL
+DEF
+DEG
+DEGREES
+DELETE
+DET
+DEVICE
+DISPLAY
+DOT
+ELAPSED
+EPS
+ERASABLE
+EXLINE
+EXP
+EXTERNAL
+EXTYPE
+FILETYPE
+FIXED
+FP
+GO
+GRAPH
+HANDLER
+IDN
+IMAGE
+IN
+INT
+INTERNAL
+IP
+IS
+KEYED
+LBOUND
+LCASE
+LEFT
+LEN
+LENGTH
+LET
+LINE
+LINES
+LOG
+LOG10
+LOG2
+LTRIM
+MARGIN
+MAT
+MAX
+MAXNUM
+MID
+MIN
+MISSING
+MOD
+NATIVE
+NUL
+NUMERIC
+OF
+OPTION
+ORD
+ORGANIZATION
+OUTIN
+OUTPUT
+PI
+POINT
+POINTER
+POINTS
+POS
+PRINT
+PROGRAM
+PROMPT
+RAD
+RADIANS
+RANDOMIZE
+RECORD
+RECSIZE
+RECTYPE
+RELATIVE
+REMAINDER
+REPEAT
+REST
+RETRY
+REWRITE
+RIGHT
+RND
+ROUND
+RTRIM
+SAME
+SEC
+SELECT
+SEQUENTIAL
+SET
+SETTER
+SGN
+SIN
+SINH
+SIZE
+SKIP
+SQR
+STANDARD
+STATUS
+STR
+STREAM
+STYLE
+TAB
+TAN
+TANH
+TEMPLATE
+TEXT
+THERE
+TIME
+TIMEOUT
+TRACE
+TRANSFORM
+TRUNCATE
+UBOUND
+UCASE
+USE
+VAL
+VARIABLE
+VIEWPORT
+WHEN
+WINDOW
+WITH
+ZER
+ZONEWIDTH
+
+----------------------------------------------------
+
+[
+	["function", "ABS"],
+	["function", "ACCESS"],
+	["function", "ACOS"],
+	["function", "ANGLE"],
+	["function", "AREA"],
+	["function", "ARITHMETIC"],
+	["function", "ARRAY"],
+	["function", "ASIN"],
+	["function", "ASK"],
+	["function", "AT"],
+	["function", "ATN"],
+	["function", "BASE"],
+	["function", "BEGIN"],
+	["function", "BREAK"],
+	["function", "CAUSE"],
+	["function", "CEIL"],
+	["function", "CHR"],
+	["function", "CLIP"],
+	["function", "COLLATE"],
+	["function", "COLOR"],
+	["function", "CON"],
+	["function", "COS"],
+	["function", "COSH"],
+	["function", "COT"],
+	["function", "CSC"],
+	["function", "DATE"],
+	["function", "DATUM"],
+	["function", "DEBUG"],
+	["function", "DECIMAL"],
+	["function", "DEF"],
+	["function", "DEG"],
+	["function", "DEGREES"],
+	["function", "DELETE"],
+	["function", "DET"],
+	["function", "DEVICE"],
+	["function", "DISPLAY"],
+	["function", "DOT"],
+	["function", "ELAPSED"],
+	["function", "EPS"],
+	["function", "ERASABLE"],
+	["function", "EXLINE"],
+	["function", "EXP"],
+	["function", "EXTERNAL"],
+	["function", "EXTYPE"],
+	["function", "FILETYPE"],
+	["function", "FIXED"],
+	["function", "FP"],
+	["function", "GO"],
+	["function", "GRAPH"],
+	["function", "HANDLER"],
+	["function", "IDN"],
+	["function", "IMAGE"],
+	["function", "IN"],
+	["function", "INT"],
+	["function", "INTERNAL"],
+	["function", "IP"],
+	["function", "IS"],
+	["function", "KEYED"],
+	["function", "LBOUND"],
+	["function", "LCASE"],
+	["function", "LEFT"],
+	["function", "LEN"],
+	["function", "LENGTH"],
+	["function", "LET"],
+	["function", "LINE"],
+	["function", "LINES"],
+	["function", "LOG"],
+	["function", "LOG10"],
+	["function", "LOG2"],
+	["function", "LTRIM"],
+	["function", "MARGIN"],
+	["function", "MAT"],
+	["function", "MAX"],
+	["function", "MAXNUM"],
+	["function", "MID"],
+	["function", "MIN"],
+	["function", "MISSING"],
+	["function", "MOD"],
+	["function", "NATIVE"],
+	["function", "NUL"],
+	["function", "NUMERIC"],
+	["function", "OF"],
+	["function", "OPTION"],
+	["function", "ORD"],
+	["function", "ORGANIZATION"],
+	["function", "OUTIN"],
+	["function", "OUTPUT"],
+	["function", "PI"],
+	["function", "POINT"],
+	["function", "POINTER"],
+	["function", "POINTS"],
+	["function", "POS"],
+	["function", "PRINT"],
+	["function", "PROGRAM"],
+	["function", "PROMPT"],
+	["function", "RAD"],
+	["function", "RADIANS"],
+	["function", "RANDOMIZE"],
+	["function", "RECORD"],
+	["function", "RECSIZE"],
+	["function", "RECTYPE"],
+	["function", "RELATIVE"],
+	["function", "REMAINDER"],
+	["function", "REPEAT"],
+	["function", "REST"],
+	["function", "RETRY"],
+	["function", "REWRITE"],
+	["function", "RIGHT"],
+	["function", "RND"],
+	["function", "ROUND"],
+	["function", "RTRIM"],
+	["function", "SAME"],
+	["function", "SEC"],
+	["function", "SELECT"],
+	["function", "SEQUENTIAL"],
+	["function", "SET"],
+	["function", "SETTER"],
+	["function", "SGN"],
+	["function", "SIN"],
+	["function", "SINH"],
+	["function", "SIZE"],
+	["function", "SKIP"],
+	["function", "SQR"],
+	["function", "STANDARD"],
+	["function", "STATUS"],
+	["function", "STR"],
+	["function", "STREAM"],
+	["function", "STYLE"],
+	["function", "TAB"],
+	["function", "TAN"],
+	["function", "TANH"],
+	["function", "TEMPLATE"],
+	["function", "TEXT"],
+	["function", "THERE"],
+	["function", "TIME"],
+	["function", "TIMEOUT"],
+	["function", "TRACE"],
+	["function", "TRANSFORM"],
+	["function", "TRUNCATE"],
+	["function", "UBOUND"],
+	["function", "UCASE"],
+	["function", "USE"],
+	["function", "VAL"],
+	["function", "VARIABLE"],
+	["function", "VIEWPORT"],
+	["function", "WHEN"],
+	["function", "WINDOW"],
+	["function", "WITH"],
+	["function", "ZER"],
+	["function", "ZONEWIDTH"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/keyword_feature.test b/node_modules/prismjs/tests/languages/basic/keyword_feature.test
new file mode 100644
index 0000000..ecac685
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/keyword_feature.test
@@ -0,0 +1,213 @@
+AS
+BEEP
+BLOAD
+BSAVE
+CALL
+CALL ABSOLUTE
+CASE
+CHAIN
+CHDIR
+CLEAR
+CLOSE
+CLS
+COM
+COMMON
+CONST
+DATA
+DECLARE
+DEF FN
+DEF SEG
+DEFDBL
+DEFINT
+DEFLNG
+DEFSNG
+DEFSTR
+DIM
+DO
+DOUBLE
+ELSE
+ELSEIF
+END
+ENVIRON
+ERASE
+ERROR
+EXIT
+FIELD
+FILES
+FOR
+FUNCTION
+GET
+GOSUB
+GOTO
+IF
+INPUT
+INTEGER
+IOCTL
+KEY
+KILL
+LINE INPUT
+LOCATE
+LOCK
+LONG
+LOOP
+LSET
+MKDIR
+NAME
+NEXT
+OFF
+ON
+ON COM
+ON ERROR
+ON KEY
+ON TIMER
+OPEN
+OPTION BASE
+OUT
+POKE
+PUT
+READ
+REDIM
+REM
+RESTORE
+RESUME
+RETURN
+RMDIR
+RSET
+RUN
+SHARED
+SINGLE
+SELECT CASE
+SHELL
+SLEEP
+STATIC
+STEP
+STOP
+STRING
+SUB
+SWAP
+SYSTEM
+THEN
+TIMER
+TO
+TROFF
+TRON
+TYPE
+UNLOCK
+UNTIL
+USING
+VIEW PRINT
+WAIT
+WEND
+WHILE
+WRITE
+
+----------------------------------------------------
+
+[
+	["keyword", "AS"],
+	["keyword", "BEEP"],
+	["keyword", "BLOAD"],
+	["keyword", "BSAVE"],
+	["keyword", "CALL"],
+	["keyword", "CALL ABSOLUTE"],
+	["keyword", "CASE"],
+	["keyword", "CHAIN"],
+	["keyword", "CHDIR"],
+	["keyword", "CLEAR"],
+	["keyword", "CLOSE"],
+	["keyword", "CLS"],
+	["keyword", "COM"],
+	["keyword", "COMMON"],
+	["keyword", "CONST"],
+	["keyword", "DATA"],
+	["keyword", "DECLARE"],
+	["keyword", "DEF FN"],
+	["keyword", "DEF SEG"],
+	["keyword", "DEFDBL"],
+	["keyword", "DEFINT"],
+	["keyword", "DEFLNG"],
+	["keyword", "DEFSNG"],
+	["keyword", "DEFSTR"],
+	["keyword", "DIM"],
+	["keyword", "DO"],
+	["keyword", "DOUBLE"],
+	["keyword", "ELSE"],
+	["keyword", "ELSEIF"],
+	["keyword", "END"],
+	["keyword", "ENVIRON"],
+	["keyword", "ERASE"],
+	["keyword", "ERROR"],
+	["keyword", "EXIT"],
+	["keyword", "FIELD"],
+	["keyword", "FILES"],
+	["keyword", "FOR"],
+	["keyword", "FUNCTION"],
+	["keyword", "GET"],
+	["keyword", "GOSUB"],
+	["keyword", "GOTO"],
+	["keyword", "IF"],
+	["keyword", "INPUT"],
+	["keyword", "INTEGER"],
+	["keyword", "IOCTL"],
+	["keyword", "KEY"],
+	["keyword", "KILL"],
+	["keyword", "LINE INPUT"],
+	["keyword", "LOCATE"],
+	["keyword", "LOCK"],
+	["keyword", "LONG"],
+	["keyword", "LOOP"],
+	["keyword", "LSET"],
+	["keyword", "MKDIR"],
+	["keyword", "NAME"],
+	["keyword", "NEXT"],
+	["keyword", "OFF"],
+	["keyword", "ON"],
+	["keyword", "ON COM"],
+	["keyword", "ON ERROR"],
+	["keyword", "ON KEY"],
+	["keyword", "ON TIMER"],
+	["keyword", "OPEN"],
+	["keyword", "OPTION BASE"],
+	["keyword", "OUT"],
+	["keyword", "POKE"],
+	["keyword", "PUT"],
+	["keyword", "READ"],
+	["keyword", "REDIM"],
+	["keyword", "REM"],
+	["keyword", "RESTORE"],
+	["keyword", "RESUME"],
+	["keyword", "RETURN"],
+	["keyword", "RMDIR"],
+	["keyword", "RSET"],
+	["keyword", "RUN"],
+	["keyword", "SHARED"],
+	["keyword", "SINGLE"],
+	["keyword", "SELECT CASE"],
+	["keyword", "SHELL"],
+	["keyword", "SLEEP"],
+	["keyword", "STATIC"],
+	["keyword", "STEP"],
+	["keyword", "STOP"],
+	["keyword", "STRING"],
+	["keyword", "SUB"],
+	["keyword", "SWAP"],
+	["keyword", "SYSTEM"],
+	["keyword", "THEN"],
+	["keyword", "TIMER"],
+	["keyword", "TO"],
+	["keyword", "TROFF"],
+	["keyword", "TRON"],
+	["keyword", "TYPE"],
+	["keyword", "UNLOCK"],
+	["keyword", "UNTIL"],
+	["keyword", "USING"],
+	["keyword", "VIEW PRINT"],
+	["keyword", "WAIT"],
+	["keyword", "WEND"],
+	["keyword", "WHILE"],
+	["keyword", "WRITE"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/number_feature.test b/node_modules/prismjs/tests/languages/basic/number_feature.test
new file mode 100644
index 0000000..5adeb7a
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/number_feature.test
@@ -0,0 +1,19 @@
+42
+3.14159
+2e8
+3.4E-9
+0.7E+12
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "2e8"],
+	["number", "3.4E-9"],
+	["number", "0.7E+12"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/operator_feature.test b/node_modules/prismjs/tests/languages/basic/operator_feature.test
new file mode 100644
index 0000000..b2d93f6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/operator_feature.test
@@ -0,0 +1,21 @@
+< <= <>
+> >=
++ - * /
+^ = &
+AND EQV IMP
+NOT OR XOR
+
+----------------------------------------------------
+
+[
+	["operator", "<"], ["operator", "<="], ["operator", "<>"],
+	["operator", ">"], ["operator", ">="],
+	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"],
+	["operator", "^"], ["operator", "="], ["operator", "&"],
+	["operator", "AND"], ["operator", "EQV"], ["operator", "IMP"],
+	["operator", "NOT"], ["operator", "OR"], ["operator", "XOR"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/basic/string_feature.test b/node_modules/prismjs/tests/languages/basic/string_feature.test
new file mode 100644
index 0000000..83fea35
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/basic/string_feature.test
@@ -0,0 +1,13 @@
+""
+"fo""obar"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo\"\"obar\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/batch/command_feature.test b/node_modules/prismjs/tests/languages/batch/command_feature.test
new file mode 100644
index 0000000..350788a
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/batch/command_feature.test
@@ -0,0 +1,103 @@
+FOR /l %%a in (5,-1,1) do (TITLE %title% -- closing in %%as)
+SET title=%~n0
+echo.Hello World
+@ECHO OFF
+if not defined ProgressFormat set "ProgressFormat=[PPPP]"
+EXIT /b
+set /a ProgressCnt+=1
+IF "%~1" NEQ "" (SET %~1=%new%) ELSE (echo.%new%)
+
+----------------------------------------------------
+
+[
+	["command", [
+		["keyword", "FOR"],
+		["parameter", ["/l"]],
+		["variable", "%%a"],
+		["keyword", "in"],
+		["punctuation", "("],
+		["number", "5"], ["punctuation", ","],
+		["number", "-1"], ["punctuation", ","],
+		["number", "1"], ["punctuation", ")"],
+		["keyword", "do"]
+	]],
+	["punctuation", "("],
+	["command", [
+		["keyword", "TITLE"],
+		["variable", "%title%"],
+		" -- closing in ",
+		["variable", "%%as"]
+	]],
+	["punctuation", ")"],
+
+	["command", [
+		["keyword", "SET"],
+		["variable", "title"],
+		["operator", "="],
+		["variable", "%~n0"]
+	]],
+
+	["command", [
+		["keyword", "echo"],
+		".Hello World"
+	]],
+
+	["operator", "@"],
+	["command", [
+		["keyword", "ECHO"],
+		" OFF"
+	]],
+
+	["command", [
+		["keyword", "if"],
+		["keyword", "not"],
+		["keyword", "defined"],
+		" ProgressFormat"
+	]],
+	["command", [
+		["keyword", "set"],
+		["string", "\"ProgressFormat=[PPPP]\""]
+	]],
+
+	["command", [
+		["keyword", "EXIT"],
+		["parameter", ["/b"]]
+	]],
+
+	["command", [
+		["keyword", "set"],
+		["parameter", ["/a"]],
+		["variable", "ProgressCnt"],
+		["operator", "+="],
+		["number", "1"]
+	]],
+
+	["command", [
+		["keyword", "IF"],
+		["string", "\"%~1\""],
+		["operator", "NEQ"],
+		["string", "\"\""]
+	]],
+	["punctuation", "("],
+	["command", [
+		["keyword", "SET"],
+		["variable", "%~1"],
+		["operator", "="],
+		["variable", "%new%"]
+	]],
+	["punctuation", ")"],
+	["command", [
+		["keyword", "ELSE"]
+	]],
+	["punctuation", "("],
+	["command", [
+		["keyword", "echo"],
+		".",
+		["variable", "%new%"]
+	]],
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for commands.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/batch/comment_feature.test b/node_modules/prismjs/tests/languages/batch/comment_feature.test
new file mode 100644
index 0000000..83759d8
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/batch/comment_feature.test
@@ -0,0 +1,18 @@
+::
+:: Foobar
+REM Foobar
+rem foo^
+bar
+
+----------------------------------------------------
+
+[
+	["comment", "::"],
+	["comment", ":: Foobar"],
+	["comment", "REM Foobar"],
+	["comment", "rem foo^\r\nbar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/batch/label_feature.test b/node_modules/prismjs/tests/languages/batch/label_feature.test
new file mode 100644
index 0000000..a672ba0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/batch/label_feature.test
@@ -0,0 +1,13 @@
+:foo
+:Foo_Bar
+
+----------------------------------------------------
+
+[
+	["label", ":foo"],
+	["label", ":Foo_Bar"]
+]
+
+----------------------------------------------------
+
+Checks for labels.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/c_feature.test b/node_modules/prismjs/tests/languages/bison/c_feature.test
new file mode 100644
index 0000000..4d8be83
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/c_feature.test
@@ -0,0 +1,56 @@
+%{
+	#include 
+%}
+%code {
+	if(foo) {
+
+	}
+}
+%%
+exp:
+	NUM {
+		$$ = f($3, $4);
+		@$.first_column = @1.first_column;
+		$result = $left + $1;
+	}
+%%
+
+----------------------------------------------------
+
+[
+	["bison", [
+		["c", [
+			["delimiter", "%{"],
+			["macro", ["#", ["directive", "include"], ["string", ""]]],
+			["delimiter", "%}"]
+		]],
+		["keyword", "%code"],
+		["c", [
+			["delimiter", "{"],
+			["keyword", "if"], ["punctuation", "("], "foo", ["punctuation", ")"],
+			["punctuation", "{"], ["punctuation", "}"],
+			["delimiter", "}"]
+		]],
+		["punctuation", "%%"],
+		["property", "exp"], ["punctuation", ":"],
+		"\r\n\tNUM ",
+		["c", [
+			["delimiter", "{"],
+			["bison-variable", ["$$"]], ["operator", "="],
+			["function", "f"], ["punctuation", "("],
+			["bison-variable", ["$3"]], ["punctuation", ","],
+			["bison-variable", ["$4"]], ["punctuation", ")"], ["punctuation", ";"],
+			["bison-variable", ["@$"]], ["punctuation", "."], "first_column ", ["operator", "="],
+			["bison-variable", ["@1"]], ["punctuation", "."], "first_column", ["punctuation", ";"],
+			["bison-variable", ["$result"]], ["operator", "="],
+			["bison-variable", ["$left"]], ["operator", "+"],
+			["bison-variable", ["$", ["punctuation", "<"], "itype", ["punctuation", ">"], "1"]], ["punctuation", ";"],
+			["delimiter", "}"]
+		]],
+		["punctuation", "%%"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for C inside Bison, along with special Bison variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/comment_feature.test b/node_modules/prismjs/tests/languages/bison/comment_feature.test
new file mode 100644
index 0000000..15ed152
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/comment_feature.test
@@ -0,0 +1,25 @@
+// Foobar
+/* Foo
+bar */
+%%
+// Foobar
+/* Foo
+bar */
+%%
+
+----------------------------------------------------
+
+[
+	["bison", [
+		["comment", "// Foobar"],
+		["comment", "/* Foo\r\nbar */"],
+		["punctuation", "%%"],
+		["comment", "// Foobar"],
+		["comment", "/* Foo\r\nbar */"],
+		["punctuation", "%%"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/keyword_feature.test b/node_modules/prismjs/tests/languages/bison/keyword_feature.test
new file mode 100644
index 0000000..49fb373
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/keyword_feature.test
@@ -0,0 +1,22 @@
+%union
+%token
+%%
+exp: %empty
+%%
+
+----------------------------------------------------
+
+[
+	["bison", [
+		["keyword", "%union"],
+		["keyword", "%token"],
+		["punctuation", "%%"],
+		["property", "exp"], ["punctuation", ":"],
+		["keyword", "%empty"],
+		["punctuation", "%%"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/number_feature.test b/node_modules/prismjs/tests/languages/bison/number_feature.test
new file mode 100644
index 0000000..ddbacff
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/number_feature.test
@@ -0,0 +1,15 @@
+42
+0
+0xBadFace
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "0"],
+	["number", "0xBadFace"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/property_feature.test b/node_modules/prismjs/tests/languages/bison/property_feature.test
new file mode 100644
index 0000000..c1b6cb2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/property_feature.test
@@ -0,0 +1,21 @@
+%%
+foo:
+bar_42:
+$@1:
+%%
+
+----------------------------------------------------
+
+[
+	["bison", [
+		["punctuation", "%%"],
+		["property", "foo"], ["punctuation", ":"],
+		["property", "bar_42"], ["punctuation", ":"],
+		["property", "$@1"], ["punctuation", ":"],
+		["punctuation", "%%"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for properties.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bison/string_feature.test b/node_modules/prismjs/tests/languages/bison/string_feature.test
new file mode 100644
index 0000000..3f3f6c0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bison/string_feature.test
@@ -0,0 +1,21 @@
+%%
+foo: 'foo' "foo";
+bar: '\'' "\"";
+%%
+
+----------------------------------------------------
+
+[
+	["bison", [
+		["punctuation", "%%"],
+		["property", "foo"], ["punctuation", ":"],
+		["string", "'foo'"], ["string", "\"foo\""], ["punctuation", ";"],
+		["property", "bar"], ["punctuation", ":"],
+		["string", "'\\''"], ["string", "\"\\\"\""], ["punctuation", ";"],
+		["punctuation", "%%"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/brainfuck/all_feature.test b/node_modules/prismjs/tests/languages/brainfuck/all_feature.test
new file mode 100644
index 0000000..284f758
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/brainfuck/all_feature.test
@@ -0,0 +1,19 @@
+++ foobar
+[
+	>.
+	<-,
+]
+
+----------------------------------------------------
+
+[
+	["increment", "+"], ["increment", "+"], ["comment", "foobar"],
+	["branching", "["],
+	["pointer", ">"], ["operator", "."],
+	["pointer", "<"], ["decrement", "-"], ["operator", ","],
+	["branching", "]"]
+]
+
+----------------------------------------------------
+
+Checks for all patterns.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/builtin_feature.test b/node_modules/prismjs/tests/languages/bro/builtin_feature.test
new file mode 100644
index 0000000..cd5a121
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/builtin_feature.test
@@ -0,0 +1,29 @@
+@load-sigs
+@load-plugin
+@unload
+@prefixes
+@ifndef
+@ifdef
+@else
+&redef
+&priority
+redef
+
+----------------------------------------------------
+
+[
+	["builtin", "@load-sigs"],
+	["builtin", "@load-plugin"],
+	["builtin", "@unload"],
+	["builtin", "@prefixes"],
+	["builtin", "@ifndef"],
+	["builtin", "@ifdef"],
+	["builtin", "@else"],
+	["builtin", "&redef"],
+	["builtin", "&priority"],
+	["builtin", "redef"]
+]
+
+----------------------------------------------------
+
+Checks for the builtins
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/comment_feature.test b/node_modules/prismjs/tests/languages/bro/comment_feature.test
new file mode 100644
index 0000000..e1eff30
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/comment_feature.test
@@ -0,0 +1,17 @@
+## comment
+#TODO
+## FIXME
+# XXX
+
+----------------------------------------------------
+
+[
+	["comment", [ "## comment"]],
+	["comment", [ "#", ["italic", "TODO"]]],
+	["comment", [ "## ", ["italic", "FIXME"]]],
+	["comment", [ "# ", ["italic", "XXX"]]]
+]
+
+----------------------------------------------------
+
+Checks for the highlighting of comments
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/function_feature.test b/node_modules/prismjs/tests/languages/bro/function_feature.test
new file mode 100644
index 0000000..a10d792
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/function_feature.test
@@ -0,0 +1,21 @@
+function foo
+hook foo
+event foo
+function foo::bar
+hook foo::bar
+event foo::bar
+
+----------------------------------------------------
+
+[
+	["function", [["keyword", "function"], " foo"]],
+	["function", [["keyword", "hook"], " foo"]],
+	["function", [["keyword", "event"], " foo"]],
+	["function", [["keyword", "function"], " foo::bar"]],
+	["function", [["keyword", "hook"], " foo::bar"]],
+	["function", [["keyword", "event"], " foo::bar"]]
+]
+
+----------------------------------------------------
+
+Checks for the function feature
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/keyword_feature.test b/node_modules/prismjs/tests/languages/bro/keyword_feature.test
new file mode 100644
index 0000000..aa025cd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/keyword_feature.test
@@ -0,0 +1,87 @@
+break
+next
+continue
+alarm
+using
+of
+add
+delete
+export
+print
+return
+schedule
+when
+timeout
+addr
+any
+bool
+count
+double
+enum
+file
+int
+interval
+pattern
+opaque
+port
+record
+set
+string
+subnet
+table
+time
+vector
+for
+if
+else
+in
+module
+function
+
+----------------------------------------------------
+
+[
+	["keyword", "break"],
+	["keyword", "next"],
+	["keyword", "continue"],
+	["keyword", "alarm"],
+	["keyword", "using"],
+	["keyword", "of"],
+	["keyword", "add"],
+	["keyword", "delete"],
+	["keyword", "export"],
+	["keyword", "print"],
+	["keyword", "return"],
+	["keyword", "schedule"],
+	["keyword", "when"],
+	["keyword", "timeout"],
+	["keyword", "addr"],
+	["keyword", "any"],
+	["keyword", "bool"],
+	["keyword", "count"],
+	["keyword", "double"],
+	["keyword", "enum"],
+	["keyword", "file"],
+	["keyword", "int"],
+	["keyword", "interval"],
+	["keyword", "pattern"],
+	["keyword", "opaque"],
+	["keyword", "port"],
+	["keyword", "record"],
+	["keyword", "set"],
+	["keyword", "string"],
+	["keyword", "subnet"],
+	["keyword", "table"],
+	["keyword", "time"],
+	["keyword", "vector"],
+	["keyword", "for"],
+	["keyword", "if"],
+	["keyword", "else"],
+	["keyword", "in"],
+	["keyword", "module"],
+	["keyword", "function"]
+]
+
+----------------------------------------------------
+
+Checks for the builtins
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/string_feature.test b/node_modules/prismjs/tests/languages/bro/string_feature.test
new file mode 100644
index 0000000..68277b5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/string_feature.test
@@ -0,0 +1,23 @@
+""
+''
+"foo"
+'foo'
+"'foo'"
+'"bar"'
+"  # comment  "
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "''"],
+	["string", "\"foo\""],
+	["string", "'foo'"],
+	["string", "\"'foo'\""],
+	["string", "'\"bar\"'"],
+	["string", "\"  # comment  \""]
+]
+
+----------------------------------------------------
+
+Checks for single-quoted and double-quoted strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/bro/variable_feature.test b/node_modules/prismjs/tests/languages/bro/variable_feature.test
new file mode 100644
index 0000000..daf5120
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/bro/variable_feature.test
@@ -0,0 +1,25 @@
+local foo
+global foo
+local bool = T;
+const bar
+local baz = 66;
+
+----------------------------------------------------
+
+[
+	["variable", [["keyword", "local"], " foo"]],
+	["variable", [["keyword", "global"], " foo"]],
+	["variable", [["keyword", "local"], " bool"]],
+	["operator", "="],
+	["boolean", "T"],
+	["punctuation", ";"],
+	["constant", [["keyword", "const"], " bar"]],
+	["variable", [["keyword", "local"], " baz"]],
+	["operator", "="],
+	["number", "66"],
+	["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for the highlighting of variables
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test b/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test
new file mode 100644
index 0000000..312fde2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test
@@ -0,0 +1,28 @@
+%<
+asm ();
+%>
+
+%< -*- C -*-
+asm ();
+%>
+
+----------------------------------------------------
+
+[
+	["inline-lang", [
+		["delimiter", "%<"],
+		["keyword", "asm"], ["punctuation", "("], ["punctuation", ")"], ["punctuation", ";"],
+		["delimiter", "%>"]
+	]],
+
+	["inline-lang-c", [
+		["delimiter", "%< "],
+		["lang", "-*- C -*-"],
+		["keyword", "asm"], ["punctuation", "("], ["punctuation", ")"], ["punctuation", ";"],
+		["delimiter", "%>"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for C in Pure.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/c/keyword_feature.test b/node_modules/prismjs/tests/languages/c/keyword_feature.test
new file mode 100644
index 0000000..3c9f6e0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/c/keyword_feature.test
@@ -0,0 +1,23 @@
+asm typeof inline auto break
+case char const continue default
+do double else enum extern
+float for goto if int
+long register return short signed
+sizeof static struct switch typedef
+union unsigned void volatile while
+
+----------------------------------------------------
+
+[
+	["keyword", "asm"], ["keyword", "typeof"], ["keyword", "inline"], ["keyword", "auto"], ["keyword", "break"],
+	["keyword", "case"], ["keyword", "char"], ["keyword", "const"], ["keyword", "continue"], ["keyword", "default"],
+	["keyword", "do"], ["keyword", "double"], ["keyword", "else"], ["keyword", "enum"], ["keyword", "extern"],
+	["keyword", "float"], ["keyword", "for"], ["keyword", "goto"], ["keyword", "if"], ["keyword", "int"],
+	["keyword", "long"], ["keyword", "register"], ["keyword", "return"], ["keyword", "short"], ["keyword", "signed"],
+	["keyword", "sizeof"], ["keyword", "static"], ["keyword", "struct"], ["keyword", "switch"], ["keyword", "typedef"],
+	["keyword", "union"], ["keyword", "unsigned"], ["keyword", "void"], ["keyword", "volatile"], ["keyword", "while"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/c/macro_feature.test b/node_modules/prismjs/tests/languages/c/macro_feature.test
new file mode 100644
index 0000000..2860f54
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/c/macro_feature.test
@@ -0,0 +1,43 @@
+# include 
+  #define PG_locked 0
+
+#elif
+#else
+#endif
+#error
+#ifdef
+#ifndef
+#if
+#import
+#include
+#line
+#pragma
+#undef
+#using
+
+----------------------------------------------------
+
+[
+	["macro", [
+		"# ", ["directive", "include"],
+		["string", ""]
+	]],
+	["macro", ["#", ["directive", "define"], " PG_locked 0"]],
+	["macro", ["#", ["directive", "elif"]]],
+	["macro", ["#", ["directive", "else"]]],
+    ["macro", ["#", ["directive", "endif"]]],
+    ["macro", ["#", ["directive", "error"]]],
+    ["macro", ["#", ["directive", "ifdef"]]],
+    ["macro", ["#", ["directive", "ifndef"]]],
+    ["macro", ["#", ["directive", "if"]]],
+    ["macro", ["#", ["directive", "import"]]],
+    ["macro", ["#", ["directive", "include"]]],
+    ["macro", ["#", ["directive", "line"]]],
+    ["macro", ["#", ["directive", "pragma"]]],
+    ["macro", ["#", ["directive", "undef"]]],
+    ["macro", ["#", ["directive", "using"]]]
+]
+
+----------------------------------------------------
+
+Checks for macros, multi-line macros and paths inside include statements.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/c/number_feature.test b/node_modules/prismjs/tests/languages/c/number_feature.test
new file mode 100644
index 0000000..0542683
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/c/number_feature.test
@@ -0,0 +1,35 @@
+42
+3.14159
+4e10
+2.1e-10
+0.4e+2
+0xbabe
+0xBABE
+42f
+42F
+42u
+42U
+42l
+42L
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "4e10"],
+	["number", "2.1e-10"],
+	["number", "0.4e+2"],
+	["number", "0xbabe"],
+	["number", "0xBABE"],
+	["number", "42f"],
+	["number", "42F"],
+	["number", "42u"],
+	["number", "42U"],
+	["number", "42l"],
+	["number", "42L"]
+]
+
+----------------------------------------------------
+
+Checks for decimal numbers and hexadecimal numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/c/operator_feature.test b/node_modules/prismjs/tests/languages/c/operator_feature.test
new file mode 100644
index 0000000..fdcfb19
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/c/operator_feature.test
@@ -0,0 +1,19 @@
++ - ++ -- ! !=
+< << <= <<=
+> >> >= >>=
+-> == ^ ~ %
+& && | || ? * /
+
+----------------------------------------------------
+
+[
+	["operator", "+"], ["operator", "-"], ["operator", "++"], ["operator", "--"], ["operator", "!"], ["operator", "!="],
+	["operator", "<"], ["operator", "<<"], ["operator", "<="], ["operator", "<<="],
+	["operator", ">"], ["operator", ">>"], ["operator", ">="], ["operator", ">>="],
+	["operator", "->"], ["operator", "=="], ["operator", "^"], ["operator", "~"], ["operator", "%"],
+	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"], ["operator", "?"], ["operator", "*"], ["operator", "/"]
+]
+
+----------------------------------------------------
+
+Checks for all operators
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/boolean_feature.test b/node_modules/prismjs/tests/languages/clike/boolean_feature.test
new file mode 100644
index 0000000..6a1ad0c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/boolean_feature.test
@@ -0,0 +1,12 @@
+true; false;
+
+----------------------------------------------------
+
+[
+	["boolean", "true"], ["punctuation", ";"],
+	["boolean", "false"], ["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/class-name_feature.test b/node_modules/prismjs/tests/languages/clike/class-name_feature.test
new file mode 100644
index 0000000..04c2112
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/class-name_feature.test
@@ -0,0 +1,53 @@
+class Foo
+interface bar
+extends Foo
+implements bar
+trait Foo
+instanceof \bar
+new \Foo
+catch (bar)
+
+----------------------------------------------------
+
+[
+	"class ",
+	["class-name", [
+		"Foo"
+	]],
+	"\r\ninterface ",
+	["class-name", [
+		"bar"
+	]],
+	"\r\nextends ",
+	["class-name", [
+		"Foo"
+	]],
+	"\r\nimplements ",
+	["class-name", [
+		"bar"
+	]],
+	"\r\ntrait ",
+	["class-name", [
+		"Foo"
+	]],
+	["keyword", "instanceof"],
+	["class-name", [
+		["punctuation", "\\"],
+		"bar"
+	]],
+	["keyword", "new"],
+	["class-name", [
+		["punctuation", "\\"],
+		"Foo"
+	]],
+	["keyword", "catch"],
+	["punctuation", "("],
+	["class-name", [
+		"bar"
+	]],
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for class names.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/comment_feature.test b/node_modules/prismjs/tests/languages/clike/comment_feature.test
new file mode 100644
index 0000000..00bb289
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/comment_feature.test
@@ -0,0 +1,16 @@
+// foobar
+/**/
+/* foo
+bar */
+
+----------------------------------------------------
+
+[
+	["comment", "// foobar"],
+	["comment", "/**/"],
+	["comment", "/* foo\r\nbar */"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/function_feature.test b/node_modules/prismjs/tests/languages/clike/function_feature.test
new file mode 100644
index 0000000..031ed1c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/function_feature.test
@@ -0,0 +1,23 @@
+foo()
+foo_bar()
+f42()
+
+----------------------------------------------------
+
+[
+	["function", "foo"],
+	["punctuation", "("],
+	["punctuation", ")"],
+
+	["function", "foo_bar"],
+	["punctuation", "("],
+	["punctuation", ")"],
+
+	["function", "f42"],
+	["punctuation", "("],
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/keyword_feature.test b/node_modules/prismjs/tests/languages/clike/keyword_feature.test
new file mode 100644
index 0000000..4313f7c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/keyword_feature.test
@@ -0,0 +1,30 @@
+if; else; while; do; for;
+return; in; instanceof; function; new;
+try; throw; catch; finally; null;
+break; continue;
+
+----------------------------------------------------
+
+[
+	["keyword", "if"], ["punctuation", ";"],
+	["keyword", "else"], ["punctuation", ";"],
+	["keyword", "while"], ["punctuation", ";"],
+	["keyword", "do"], ["punctuation", ";"],
+	["keyword", "for"], ["punctuation", ";"],
+	["keyword", "return"], ["punctuation", ";"],
+	["keyword", "in"], ["punctuation", ";"],
+	["keyword", "instanceof"], ["punctuation", ";"],
+	["keyword", "function"], ["punctuation", ";"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "try"], ["punctuation", ";"],
+	["keyword", "throw"], ["punctuation", ";"],
+	["keyword", "catch"], ["punctuation", ";"],
+	["keyword", "finally"], ["punctuation", ";"],
+	["keyword", "null"], ["punctuation", ";"],
+	["keyword", "break"], ["punctuation", ";"],
+	["keyword", "continue"], ["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/number_feature.test b/node_modules/prismjs/tests/languages/clike/number_feature.test
new file mode 100644
index 0000000..f6bcc0b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/number_feature.test
@@ -0,0 +1,23 @@
+42
+3.14159
+4e10
+2.1e-10
+0.4e+2
+0xbabe
+0xBABE
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "4e10"],
+	["number", "2.1e-10"],
+	["number", "0.4e+2"],
+	["number", "0xbabe"],
+	["number", "0xBABE"]
+]
+
+----------------------------------------------------
+
+Checks for decimal numbers and hexadecimal numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/operator_feature.test b/node_modules/prismjs/tests/languages/clike/operator_feature.test
new file mode 100644
index 0000000..1a4c649
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/operator_feature.test
@@ -0,0 +1,21 @@
+- + -- ++
+< <= > >=
+= == ===
+! != !==
+& && | ||
+? * / ~ ^ %
+
+----------------------------------------------------
+
+[
+	["operator", "-"], ["operator", "+"], ["operator", "--"], ["operator", "++"],
+	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
+	["operator", "="], ["operator", "=="], ["operator", "==="],
+	["operator", "!"], ["operator", "!="], ["operator", "!=="],
+	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"],
+	["operator", "?"], ["operator", "*"], ["operator", "/"], ["operator", "~"], ["operator", "^"], ["operator", "%"]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/clike/string_feature.test b/node_modules/prismjs/tests/languages/clike/string_feature.test
new file mode 100644
index 0000000..983ca42
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/clike/string_feature.test
@@ -0,0 +1,28 @@
+""
+''
+"f\"oo"
+'b\'ar'
+"foo\
+bar"
+'foo\
+bar'
+"foo /* comment */ bar"
+'foo // bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "''"],
+	["string", "\"f\\\"oo\""],
+	["string", "'b\\'ar'"],
+	["string", "\"foo\\\r\nbar\""],
+	["string", "'foo\\\r\nbar'"],
+	["string", "\"foo /* comment */ bar\""],
+	["string", "'foo // bar'"]
+]
+
+----------------------------------------------------
+
+Checks for empty strings, single-line strings and
+multi-line strings, both single-quoted and double-quoted.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test b/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test
new file mode 100644
index 0000000..7a77516
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test
@@ -0,0 +1,24 @@
+:coffee
+	'This is coffee script'
+
+~
+	:coffee
+	  'This is coffee script'
+
+----------------------------------------------------
+
+[
+	["filter-coffee", [
+		["filter-name", ":coffee"],
+		["string", "'This is coffee script'"]
+	]],
+	["punctuation", "~"],
+	["filter-coffee", [
+        ["filter-name", ":coffee"],
+        ["string", "'This is coffee script'"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for CoffeeScript filter in Haml. The tilde serves only as a separator.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test b/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test
new file mode 100644
index 0000000..ccf8963
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test
@@ -0,0 +1,19 @@
+:coffee
+	"#{foo}"
+
+----------------------------------------------------
+
+[
+	["filter-coffee", [
+		["filter-name", ":coffee"],
+		["string", [
+			"\"",
+			["interpolation", "#{foo}"],
+			"\""
+		]]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for coffee filter (CoffeeScript) in Jade.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test b/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test
new file mode 100644
index 0000000..b01a9a4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test
@@ -0,0 +1,33 @@
+///foo[bar]///
+///foo
+[bar]///
+///foo
+b#{ar}baz///
+///foo #bar
+baz///
+
+----------------------------------------------------
+
+[
+	["block-regex", [
+        "///foo[bar]///"
+    ]],
+    ["block-regex", [
+        "///foo\r\n[bar]///"
+    ]],
+    ["block-regex", [
+        "///foo\r\nb",
+        ["interpolation", "#{ar}"],
+        "baz///"
+    ]],
+    ["block-regex", [
+        "///foo ",
+        ["comment", "#bar"],
+        "\r\nbaz///"
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for block regex.
+Also checks for comments and interpolations inside block regex.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test b/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test
new file mode 100644
index 0000000..6fdbcf3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test
@@ -0,0 +1,13 @@
+@name
+@foo_bar
+
+----------------------------------------------------
+
+[
+	["class-member", "@name"],
+	["class-member", "@foo_bar"]
+]
+
+----------------------------------------------------
+
+Checks for class members.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test b/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test
new file mode 100644
index 0000000..5d034ff
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test
@@ -0,0 +1,16 @@
+#foo
+# foo bar
+### foo bar
+baz ###
+
+----------------------------------------------------
+
+[
+	["comment", "#foo"],
+	["comment", "# foo bar"],
+	["multiline-comment", "### foo bar\r\nbaz ###"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test b/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test
new file mode 100644
index 0000000..cf15e26
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test
@@ -0,0 +1,22 @@
+`/* JS here */`
+`/*
+JS here */`
+
+----------------------------------------------------
+
+[
+	["inline-javascript", [
+		["delimiter", "`"],
+		["comment", "/* JS here */"],
+		["delimiter", "`"]
+	]],
+	["inline-javascript", [
+        ["delimiter", "`"],
+        ["comment", "/*\r\nJS here */"],
+        ["delimiter", "`"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for inline JavaScript.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test b/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test
new file mode 100644
index 0000000..3207e39
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test
@@ -0,0 +1,41 @@
+and break by catch
+class;
+continue debugger delete
+do each else extend
+extends;
+false finally for if in
+instanceof;
+is isnt let
+loop namespace
+new;
+no not null of off on
+or own return super
+switch then this throw
+true try typeof undefined
+unless until when while
+window with yes yield
+
+----------------------------------------------------
+
+[
+	["keyword", "and"], ["keyword", "break"], ["keyword", "by"], ["keyword", "catch"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "continue"], ["keyword", "debugger"], ["keyword", "delete"],
+	["keyword", "do"], ["keyword", "each"], ["keyword", "else"], ["keyword", "extend"],
+	["keyword", "extends"], ["punctuation", ";"],
+	["keyword", "false"], ["keyword", "finally"], ["keyword", "for"], ["keyword", "if"], ["keyword", "in"],
+	["keyword", "instanceof"], ["punctuation", ";"],
+	["keyword", "is"], ["keyword", "isnt"], ["keyword", "let"],
+	["keyword", "loop"], ["keyword", "namespace"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "no"], ["keyword", "not"], ["keyword", "null"], ["keyword", "of"], ["keyword", "off"], ["keyword", "on"],
+	["keyword", "or"], ["keyword", "own"], ["keyword", "return"], ["keyword", "super"],
+	["keyword", "switch"], ["keyword", "then"], ["keyword", "this"], ["keyword", "throw"],
+	["keyword", "true"], ["keyword", "try"], ["keyword", "typeof"], ["keyword", "undefined"],
+	["keyword", "unless"], ["keyword", "until"], ["keyword", "when"], ["keyword", "while"],
+	["keyword", "window"], ["keyword", "with"], ["keyword", "yes"], ["keyword", "yield"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/property_feature.test b/node_modules/prismjs/tests/languages/coffeescript/property_feature.test
new file mode 100644
index 0000000..0f25679
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/property_feature.test
@@ -0,0 +1,15 @@
+foo:
+foo_bar :
+
+----------------------------------------------------
+
+[
+	["property", "foo"],
+	["punctuation", ":"],
+	["property", "foo_bar"],
+	["punctuation", ":"]
+]
+
+----------------------------------------------------
+
+Checks for object properties.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/coffeescript/string_feature.test b/node_modules/prismjs/tests/languages/coffeescript/string_feature.test
new file mode 100644
index 0000000..f5a6868
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/coffeescript/string_feature.test
@@ -0,0 +1,64 @@
+''
+'foo'
+'foo\
+bar'
+""
+"foo"
+"foo\
+bar"
+"foo #{interpolation} bar"
+''''''
+'''foo'''
+'''foo
+bar'''
+
+""""""
+"""foo"""
+"""foo
+bar"""
+"""foo #{interpolation} bar"""
+"foo # comment bar"
+'foo # bar'
+"""foo
+#comment
+bar"""
+'''foo
+#comment
+bar'''
+
+----------------------------------------------------
+
+[
+	["string", "''"],
+	["string", "'foo'"],
+	["string", "'foo\\\r\nbar'"],
+	["string", ["\"\""]],
+	["string", ["\"foo\""]],
+	["string", ["\"foo\\\r\nbar\""]],
+	["string", [
+		"\"foo ",
+		["interpolation", "#{interpolation}"],
+		" bar\""
+	]],
+
+	["multiline-string", "''''''"],
+	["multiline-string", "'''foo'''"],
+	["multiline-string", "'''foo\r\nbar'''"],
+	["multiline-string", ["\"\"\"\"\"\""]],
+	["multiline-string", ["\"\"\"foo\"\"\""]],
+	["multiline-string", ["\"\"\"foo\r\nbar\"\"\""]],
+	["multiline-string", [
+		"\"\"\"foo ",
+		["interpolation", "#{interpolation}"],
+		" bar\"\"\""
+	]],
+	["string", ["\"foo # comment bar\""]],
+	["string", "'foo # bar'"],
+	["multiline-string", ["\"\"\"foo\r\n#comment\r\nbar\"\"\""]],
+	["multiline-string", "'''foo\r\n#comment\r\nbar'''"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line strings and block strings.
+Also checks for string interpolation inside double-quoted strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test b/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test
new file mode 100644
index 0000000..150080e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test
@@ -0,0 +1,18 @@
+%< -*- C++ -*-
+alignas
+%>
+
+----------------------------------------------------
+
+[
+	["inline-lang-cpp", [
+		["delimiter", "%< "],
+		["lang", "-*- C++ -*-"],
+		["keyword", "alignas"],
+		["delimiter", "%>"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for C++ in Pure.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/cpp/boolean_feature.test b/node_modules/prismjs/tests/languages/cpp/boolean_feature.test
new file mode 100644
index 0000000..4019c44
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/cpp/boolean_feature.test
@@ -0,0 +1,13 @@
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/cpp/class-name_feature.test b/node_modules/prismjs/tests/languages/cpp/class-name_feature.test
new file mode 100644
index 0000000..f3d5df5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/cpp/class-name_feature.test
@@ -0,0 +1,13 @@
+class Foo
+class Foo_bar
+
+----------------------------------------------------
+
+[
+	["keyword", "class"], ["class-name", "Foo"],
+	["keyword", "class"], ["class-name", "Foo_bar"]
+]
+
+----------------------------------------------------
+
+Checks for class names.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/cpp/keyword_feature.test b/node_modules/prismjs/tests/languages/cpp/keyword_feature.test
new file mode 100644
index 0000000..e3ca630
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/cpp/keyword_feature.test
@@ -0,0 +1,45 @@
+alignas alignof asm auto bool
+break case catch char char16_t char32_t
+class;
+compl const constexpr
+const_cast continue decltype default
+delete do double dynamic_cast
+else enum explicit export extern
+float for friend goto if
+inline int long mutable namespace
+new noexcept nullptr operator
+private protected public register
+reinterpret_cast return short
+signed sizeof static static_assert
+static_cast struct switch template
+this thread_local throw try
+typedef typeid typename union
+unsigned using virtual void
+volatile wchar_t while
+
+----------------------------------------------------
+
+[
+	["keyword", "alignas"], ["keyword", "alignof"], ["keyword", "asm"], ["keyword", "auto"], ["keyword", "bool"],
+	["keyword", "break"], ["keyword", "case"], ["keyword", "catch"], ["keyword", "char"], ["keyword", "char16_t"], ["keyword", "char32_t"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "compl"], ["keyword", "const"], ["keyword", "constexpr"],
+	["keyword", "const_cast"], ["keyword", "continue"], ["keyword", "decltype"], ["keyword", "default"],
+	["keyword", "delete"], ["keyword", "do"], ["keyword", "double"], ["keyword", "dynamic_cast"],
+	["keyword", "else"], ["keyword", "enum"], ["keyword", "explicit"], ["keyword", "export"], ["keyword", "extern"],
+	["keyword", "float"], ["keyword", "for"], ["keyword", "friend"], ["keyword", "goto"], ["keyword", "if"],
+	["keyword", "inline"], ["keyword", "int"], ["keyword", "long"], ["keyword", "mutable"], ["keyword", "namespace"],
+	["keyword", "new"], ["keyword", "noexcept"], ["keyword", "nullptr"], ["keyword", "operator"],
+	["keyword", "private"], ["keyword", "protected"], ["keyword", "public"], ["keyword", "register"],
+	["keyword", "reinterpret_cast"], ["keyword", "return"], ["keyword", "short"],
+	["keyword", "signed"], ["keyword", "sizeof"], ["keyword", "static"], ["keyword", "static_assert"],
+	["keyword", "static_cast"], ["keyword", "struct"], ["keyword", "switch"], ["keyword", "template"],
+	["keyword", "this"], ["keyword", "thread_local"], ["keyword", "throw"], ["keyword", "try"],
+	["keyword", "typedef"], ["keyword", "typeid"], ["keyword", "typename"], ["keyword", "union"],
+	["keyword", "unsigned"], ["keyword", "using"], ["keyword", "virtual"], ["keyword", "void"],
+	["keyword", "volatile"], ["keyword", "wchar_t"], ["keyword", "while"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/crystal/attribute_feature.test b/node_modules/prismjs/tests/languages/crystal/attribute_feature.test
new file mode 100644
index 0000000..02d07af
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/crystal/attribute_feature.test
@@ -0,0 +1,21 @@
+@[AlwaysInline]
+@[CallConvention("X86_StdCall")]
+
+----------------------------------------------------
+
+[
+	["attribute", [
+		["delimiter", "@["],
+		["constant", "AlwaysInline"],
+		["delimiter", "]"]
+	]],
+	["attribute", [
+		["delimiter", "@["],
+		["function", "CallConvention"], ["punctuation", "("], ["string", [ "\"X86_StdCall\"" ]], ["punctuation", ")"],
+		["delimiter", "]"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for attributes.
diff --git a/node_modules/prismjs/tests/languages/crystal/expansion_feature.test b/node_modules/prismjs/tests/languages/crystal/expansion_feature.test
new file mode 100644
index 0000000..b40bd1f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/crystal/expansion_feature.test
@@ -0,0 +1,37 @@
+{{ 1_u32 }}
+{% 2_u32 %}
+{{ { 3_u32 } }}
+{% % 4_u32 % %}
+
+----------------------------------------------------
+
+[
+	["expansion", [
+		["delimiter", "{{"],
+		["number", "1_u32"],
+		["delimiter", "}}"]
+	]],
+	["expansion", [
+		["delimiter", "{%"],
+		["number", "2_u32"],
+		["delimiter", "%}"]
+	]],
+	["expansion", [
+		["delimiter", "{{"],
+		["punctuation", "{"],
+		["number", "3_u32"],
+		["punctuation", "}"],
+		["delimiter", "}}"]
+	]],
+	["expansion", [
+		["delimiter", "{%"],
+		["operator", "%"],
+		["number", "4_u32"],
+		["operator", "%"],
+		["delimiter", "%}"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for macro expansions.
diff --git a/node_modules/prismjs/tests/languages/crystal/keyword_feature.test b/node_modules/prismjs/tests/languages/crystal/keyword_feature.test
new file mode 100644
index 0000000..ca575ef
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/crystal/keyword_feature.test
@@ -0,0 +1,33 @@
+abstract alias as asm begin break case
+class;
+def do else elsif
+end ensure enum extend for fun
+if ifdef include instance_sizeof
+.is_a?
+lib macro module next of out pointerof
+private protected rescue
+.responds_to?
+return require self sizeof struct super
+then type typeof union unless until when
+while with yield __DIR__ __FILE__ __LINE__
+
+----------------------------------------------------
+
+[
+	["keyword", "abstract"], ["keyword", "alias"], ["keyword", "as"], ["keyword", "asm"], ["keyword", "begin"], ["keyword", "break"], ["keyword", "case"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "def"], ["keyword", "do"], ["keyword", "else"], ["keyword", "elsif"],
+	["keyword", "end"], ["keyword", "ensure"], ["keyword", "enum"], ["keyword", "extend"], ["keyword", "for"], ["keyword", "fun"],
+	["keyword", "if"], ["keyword", "ifdef"], ["keyword", "include"], ["keyword", "instance_sizeof"],
+	["punctuation", "."], ["keyword", "is_a?"],
+	["keyword", "lib"], ["keyword", "macro"], ["keyword", "module"], ["keyword", "next"], ["keyword", "of"], ["keyword", "out"], ["keyword", "pointerof"],
+	["keyword", "private"], ["keyword", "protected"], ["keyword", "rescue"],
+	["punctuation", "."], ["keyword", "responds_to?"],
+	["keyword", "return"], ["keyword", "require"], ["keyword", "self"], ["keyword", "sizeof"], ["keyword", "struct"], ["keyword", "super"],
+	["keyword", "then"], ["keyword", "type"], ["keyword", "typeof"], ["keyword", "union"], ["keyword", "unless"], ["keyword", "until"], ["keyword", "when"],
+	["keyword", "while"], ["keyword", "with"], ["keyword", "yield"], ["keyword", "__DIR__"], ["keyword", "__FILE__"], ["keyword", "__LINE__"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
diff --git a/node_modules/prismjs/tests/languages/crystal/number_feature.test b/node_modules/prismjs/tests/languages/crystal/number_feature.test
new file mode 100644
index 0000000..cefdc5e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/crystal/number_feature.test
@@ -0,0 +1,23 @@
+1
+1_1
+1_1_1
+0b10_01
+0o1_2_3
+0x123456789abcdef
+012_345.678_9e+10_f64
+
+----------------------------------------------------
+
+[
+	["number", "1"],
+	["number", "1_1"],
+	["number", "1_1_1"],
+	["number", "0b10_01"],
+	["number", "0o1_2_3"],
+	["number", "0x123456789abcdef"],
+	["number", "012_345.678_9e+10_f64"]
+]
+
+----------------------------------------------------
+
+Checks for number literals.
diff --git a/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test b/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test
new file mode 100644
index 0000000..9eaa005
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test
@@ -0,0 +1,71 @@
+<%: Page.Title %>
+<%#:Item.ProductID%>
+
+<% if(foo) { %>
+	foobar
+<% } %>
+
+----------------------------------------------------
+
+[
+	["directive tag", [
+		["directive tag", "<%:"],
+		" Page",
+		["punctuation", "."],
+		"Title ",
+		["directive tag", "%>"]
+	]],
+
+	["directive tag", [
+        ["directive tag", "<%#:"],
+        "Item",
+        ["punctuation", "."],
+        "ProductID",
+        ["directive tag", "%>"]
+    ]],
+
+    ["tag", [
+        ["tag", [
+            ["punctuation", "<"],
+            "a"
+        ]],
+        ["attr-name", [
+            "href"
+        ]],
+        ["attr-value", [
+            ["punctuation", "="],
+            ["punctuation", "\""],
+            "ProductDetails.aspx?productID",
+            ["punctuation", "="],
+            ["directive tag", [
+                ["directive tag", "<%#:"],
+                "Item",
+		        ["punctuation", "."],
+		        "ProductID",
+		        ["directive tag", "%>"]
+            ]],
+            ["punctuation", "\""]
+        ]],
+        ["punctuation", ">"]
+    ]],
+
+    ["directive tag", [
+        ["directive tag", "<%"],
+        ["keyword", "if"],
+        ["punctuation", "("],
+        "foo",
+        ["punctuation", ")"],
+        ["punctuation", "{"],
+        ["directive tag", "%>"]
+    ]],
+    "\r\n\tfoobar\r\n",
+    ["directive tag", [
+        ["directive tag", "<%"],
+        ["punctuation", "}"],
+        ["directive tag", "%>"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/generic_feature.test b/node_modules/prismjs/tests/languages/csharp/generic_feature.test
new file mode 100644
index 0000000..01115cf
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/generic_feature.test
@@ -0,0 +1,32 @@
+void method();
+method();
+
+----------------------------------------------------
+
+[
+	["keyword", "void"],
+	["generic-method", [ "method",
+		["punctuation", "<"],
+		"T",
+		["punctuation", ","],
+		" U",
+		["punctuation", ">"]
+	]],
+	["punctuation", "("],
+	["punctuation", ")"],
+	["punctuation", ";"],
+	["generic-method", [ "method",
+		["punctuation", "<"],
+		["keyword", "int"],
+		["punctuation", ","],
+		["keyword", "char"],
+		["punctuation", ">"]
+	]],
+	["punctuation", "("],
+	["punctuation", ")"],
+	["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for generic methods
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/issue806.test b/node_modules/prismjs/tests/languages/csharp/issue806.test
new file mode 100644
index 0000000..f7a4096
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/issue806.test
@@ -0,0 +1,12 @@
+0.3f
+
+----------------------------------------------------
+
+[
+	["number", "0.3f"]
+]
+
+----------------------------------------------------
+
+Checks that "f" prefix is properly highlighted as part of the number.
+See #806.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/keyword_feature.test b/node_modules/prismjs/tests/languages/csharp/keyword_feature.test
new file mode 100644
index 0000000..1a729bc
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/keyword_feature.test
@@ -0,0 +1,63 @@
+abstract as async await base
+bool break byte case catch
+char checked
+class;
+const continue
+decimal default delegate do
+double else enum event explicit
+extern false finally fixed float
+for foreach goto if implicit in
+int
+interface;
+internal is lock
+long namespace
+new;
+null object
+operator out override params
+private protected public readonly
+ref return sbyte sealed short
+sizeof stackalloc static string
+struct switch this throw true
+try typeof uint ulong unchecked
+unsafe ushort using virtual void
+volatile while add alias ascending
+async await descending dynamic
+from get global group into
+join let orderby partial remove
+select set value var where yield
+
+----------------------------------------------------
+
+[
+	["keyword", "abstract"], ["keyword", "as"], ["keyword", "async"], ["keyword", "await"], ["keyword", "base"],
+	["keyword", "bool"], ["keyword", "break"], ["keyword", "byte"], ["keyword", "case"], ["keyword", "catch"],
+	["keyword", "char"], ["keyword", "checked"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"], ["keyword", "continue"],
+	["keyword", "decimal"], ["keyword", "default"], ["keyword", "delegate"], ["keyword", "do"],
+	["keyword", "double"], ["keyword", "else"], ["keyword", "enum"], ["keyword", "event"], ["keyword", "explicit"],
+	["keyword", "extern"], ["keyword", "false"], ["keyword", "finally"], ["keyword", "fixed"], ["keyword", "float"],
+	["keyword", "for"], ["keyword", "foreach"], ["keyword", "goto"], ["keyword", "if"], ["keyword", "implicit"], ["keyword", "in"],
+	["keyword", "int"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "internal"], ["keyword", "is"], ["keyword", "lock"],
+	["keyword", "long"], ["keyword", "namespace"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "null"], ["keyword", "object"],
+	["keyword", "operator"], ["keyword", "out"], ["keyword", "override"], ["keyword", "params"],
+	["keyword", "private"], ["keyword", "protected"], ["keyword", "public"], ["keyword", "readonly"],
+	["keyword", "ref"], ["keyword", "return"], ["keyword", "sbyte"], ["keyword", "sealed"], ["keyword", "short"],
+	["keyword", "sizeof"], ["keyword", "stackalloc"], ["keyword", "static"], ["keyword", "string"],
+	["keyword", "struct"], ["keyword", "switch"], ["keyword", "this"], ["keyword", "throw"], ["keyword", "true"],
+	["keyword", "try"], ["keyword", "typeof"], ["keyword", "uint"], ["keyword", "ulong"], ["keyword", "unchecked"],
+	["keyword", "unsafe"], ["keyword", "ushort"], ["keyword", "using"], ["keyword", "virtual"], ["keyword", "void"],
+	["keyword", "volatile"], ["keyword", "while"], ["keyword", "add"], ["keyword", "alias"], ["keyword", "ascending"],
+	["keyword", "async"], ["keyword", "await"], ["keyword", "descending"], ["keyword", "dynamic"],
+	["keyword", "from"], ["keyword", "get"], ["keyword", "global"], ["keyword", "group"], ["keyword", "into"],
+	["keyword", "join"], ["keyword", "let"], ["keyword", "orderby"], ["keyword", "partial"], ["keyword", "remove"],
+	["keyword", "select"], ["keyword", "set"], ["keyword", "value"], ["keyword", "var"], ["keyword", "where"], ["keyword", "yield"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/number_feature.test b/node_modules/prismjs/tests/languages/csharp/number_feature.test
new file mode 100644
index 0000000..1268080
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/number_feature.test
@@ -0,0 +1,17 @@
+42
+3.14159
+0xbabe
+0XBABE
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "0xbabe"],
+	["number", "0XBABE"]
+]
+
+----------------------------------------------------
+
+Checks for decimal and hexadecimal numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test b/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test
new file mode 100644
index 0000000..93ad490
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test
@@ -0,0 +1,35 @@
+#define DEBUG
+#if DEBUG
+#endif
+
+#elif
+#else
+#endregion
+#error
+#line
+#pragma
+#region
+#undef
+#warning
+
+----------------------------------------------------
+
+[
+	["preprocessor", ["#", ["directive", "define"], " DEBUG"]],
+	["preprocessor", ["#", ["directive", "if"], " DEBUG"]],
+	["preprocessor", ["#", ["directive", "endif"]]],
+	
+	["preprocessor", ["#", ["directive", "elif"]]],
+    ["preprocessor", ["#", ["directive", "else"]]],
+    ["preprocessor", ["#", ["directive", "endregion"]]],
+    ["preprocessor", ["#", ["directive", "error"]]],
+    ["preprocessor", ["#", ["directive", "line"]]],
+    ["preprocessor", ["#", ["directive", "pragma"]]],
+    ["preprocessor", ["#", ["directive", "region"]]],
+    ["preprocessor", ["#", ["directive", "undef"]]],
+    ["preprocessor", ["#", ["directive", "warning"]]]
+]
+
+----------------------------------------------------
+
+Checks for preprocessor directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/csharp/string_feature.test b/node_modules/prismjs/tests/languages/csharp/string_feature.test
new file mode 100644
index 0000000..2814cb5
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/csharp/string_feature.test
@@ -0,0 +1,32 @@
+""
+"fo\"o"
+
+@""
+@"foo"
+@"fo""o"
+@"foo
+bar"
+
+'a'
+'\''
+'\\'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo\\\"o\""],
+
+	["string", "@\"\""],
+	["string", "@\"foo\""],
+	["string", "@\"fo\"\"o\""],
+	["string", "@\"foo\r\nbar\""],
+	["string", "'a'"],
+	["string", "'\\''"],
+	["string", "'\\\\'"]
+]
+
+----------------------------------------------------
+
+Checks for normal and verbatim strings.
+Also checks for single quoted characters.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test
new file mode 100644
index 0000000..c1c91a2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test
@@ -0,0 +1,13 @@
+\0022
+\20B9
+
+----------------------------------------------------
+
+[
+	["entity", "\\0022"],
+	["entity", "\\20B9"]
+]
+
+----------------------------------------------------
+
+Checks for entities.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test
new file mode 100644
index 0000000..cac0b44
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test
@@ -0,0 +1,17 @@
+#ff0000
+#BADA55
+#4dd
+#D0C
+
+----------------------------------------------------
+
+[
+	["hexcode", "#ff0000"],
+	["hexcode", "#BADA55"],
+	["hexcode", "#4dd"],
+	["hexcode", "#D0C"]
+]
+
+----------------------------------------------------
+
+Checks for hexadecimal colors.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test
new file mode 100644
index 0000000..24ed530
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test
@@ -0,0 +1,17 @@
+42
+3.14159
+42%
+3.14%
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "42%"],
+	["number", "3.14%"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test
new file mode 100644
index 0000000..3931a66
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test
@@ -0,0 +1,58 @@
+foo:after {
+foo::first-letter {
+
+foo:nth-child(2n+1) {
+
+foo.bar {
+
+foo#bar {
+
+#foo > .bar:not(baz):after {
+
+div[foo="bar"] {
+
+----------------------------------------------------
+
+[
+	["selector", [
+		"foo",
+		["pseudo-element", ":after"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		"foo",
+		["pseudo-element", "::first-letter"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		"foo",
+		["pseudo-class", ":nth-child(2n+1)"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		"foo",
+		["class", ".bar"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		"foo",
+		["id", "#bar"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		["id", "#foo"],
+		" > ",
+		["class", ".bar"],
+		["pseudo-class", ":not(baz)"],
+		["pseudo-element", ":after"]
+	]], ["punctuation", "{"],
+
+	["selector", [
+		"div",
+		["attribute", "[foo=\"bar\"]"]
+	]], ["punctuation", "{"]
+]
+
+----------------------------------------------------
+
+Checks for pseudo-elements, pseudo-classes, classes and ids inside selectors.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test b/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test
new file mode 100644
index 0000000..c90047f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test
@@ -0,0 +1,28 @@
+:css
+	.test {}
+
+~
+	:css
+	  .test {}
+
+----------------------------------------------------
+
+[
+	["filter-css", [
+		["filter-name", ":css"],
+		["selector", ".test"],
+		["punctuation", "{"],
+		["punctuation", "}"]
+	]],
+	["punctuation", "~"],
+	["filter-css", [
+        ["filter-name", ":css"],
+        ["selector", ".test"],
+        ["punctuation", "{"],
+        ["punctuation", "}"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for CSS filter in Haml. The tilde serves only as a separator.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test b/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test
new file mode 100644
index 0000000..8b6f605
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test
@@ -0,0 +1,117 @@
+h3{color: red}. Baz
+
+h4[fr]{text-decoration:underline;}(#bar). Foobar
+
+*{color:red}bold*
+"(foo)[en]{color:blue;}Foo":bar
+
+#[fr](#foo){background:pink} Foobar
+
+!(foo)[en]{border:1px solid #ccc}foo.png!
+
+{color: blue}.|{font-weight:bold}.Baz|
+(foo#bar){font-style:italic}[fr].|{background:red;}(bar#baz)[en].Baz|
+
+----------------------------------------------------
+
+[
+	["phrase", [
+		["block-tag", [
+			["tag", "h3"],
+			["modifier", [
+				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], " red", ["punctuation", "}"]]]
+			]],
+			["punctuation", "."]
+		]],
+		" Baz"
+	]],
+	["phrase", [
+		["block-tag", [
+			["tag", "h4"],
+			["modifier", [
+				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"],
+				["css", [["punctuation", "{"], ["property", "text-decoration"], ["punctuation", ":"], "underline", ["punctuation", ";"], ["punctuation", "}"]]],
+				["punctuation", "("], ["class-id", "#bar"], ["punctuation", ")"]
+			]],
+			["punctuation", "."]
+		]],
+		" Foobar"
+	]],
+
+	["phrase", [
+		["inline", [
+			["punctuation", "*"],
+			["modifier", [
+				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], "red", ["punctuation", "}"]]]
+			]],
+			["bold", ["bold"]],
+			["punctuation", "*"]
+		]],
+		["link", [
+			["punctuation", "\""],
+			["modifier", [
+				["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"],
+				["punctuation", "["], ["lang", "en"], ["punctuation", "]"],
+				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], "blue", ["punctuation", ";"], ["punctuation", "}"]]]
+			]],
+			["text", "Foo"],
+			["punctuation", "\""], ["punctuation", ":"],
+			["url", "bar"]
+		]]
+	]],
+
+	["phrase", [
+		["list", [
+			["punctuation", "#"],
+			["modifier", [
+				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"],
+				["punctuation", "("], ["class-id", "#foo"], ["punctuation", ")"],
+				["css", [["punctuation", "{"], ["property", "background"], ["punctuation", ":"], "pink", ["punctuation", "}"]]]
+			]],
+			" Foobar"
+		]]
+	]],
+
+	["phrase", [
+		["image", [
+			["punctuation", "!"],
+			["modifier", [
+				["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"],
+				["punctuation", "["], ["lang", "en"], ["punctuation", "]"],
+				["css", [["punctuation", "{"], ["property", "border"], ["punctuation", ":"], "1px solid #ccc", ["punctuation", "}"]]]
+			]],
+			["source", "foo.png"],
+			["punctuation", "!"]
+		]]
+	]],
+
+	["phrase", [
+		["table", [
+			["modifier", [
+				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], " blue", ["punctuation", "}"]]]
+			]],
+			["punctuation", "."], ["punctuation", "|"],
+			["modifier", [
+				["css", [["punctuation", "{"], ["property", "font-weight"], ["punctuation", ":"], "bold", ["punctuation", "}"]]]
+			]],
+			["punctuation", "."], "Baz", ["punctuation", "|"],
+
+			["modifier", [
+				["punctuation", "("], ["class-id", "foo#bar"], ["punctuation", ")"],
+				["css", [["punctuation", "{"], ["property", "font-style"], ["punctuation", ":"], "italic", ["punctuation", "}"]]],
+				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"]
+			]],
+			["punctuation", "."], ["punctuation", "|"],
+			["modifier", [
+				["css", [["punctuation", "{"], ["property", "background"], ["punctuation", ":"], "red", ["punctuation", ";"], ["punctuation", "}"]]],
+				["punctuation", "("], ["class-id", "bar#baz"], ["punctuation", ")"],
+				["punctuation", "["], ["lang", "en"], ["punctuation", "]"]
+			]],
+			["punctuation", "."], "Baz", ["punctuation", "|"]
+		]]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for CSS modifier.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/atrule_feature.test b/node_modules/prismjs/tests/languages/css/atrule_feature.test
new file mode 100644
index 0000000..abc75de
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/atrule_feature.test
@@ -0,0 +1,47 @@
+@import url(foo.css);
+@media print {}
+@media (min-width: 640px) and (min-height: 1000px) {}
+@main-color: red;
+
+----------------------------------------------------
+
+[
+	["atrule", [
+		["rule", "@import"],
+		["url", "url(foo.css)"],
+		["punctuation", ";"]
+	]],
+	["atrule", [
+		["rule", "@media"],
+		" print"
+	]],
+	["punctuation", "{"],
+	["punctuation", "}"],
+	["atrule", [
+		["rule", "@media"],
+		["punctuation", "("],
+		["property", "min-width"],
+		["punctuation", ":"],
+		" 640px",
+		["punctuation", ")"],
+		" and ",
+		["punctuation", "("],
+        ["property", "min-height"],
+        ["punctuation", ":"],
+        " 1000px",
+        ["punctuation", ")"]
+	]],
+	["punctuation", "{"],
+    ["punctuation", "}"],
+	["atrule", [
+		["rule", "@main-color"],
+		["punctuation", ":"],
+		" red",
+		["punctuation", ";"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for at-rules.
+Also checks for LESS variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/comment_feature.test b/node_modules/prismjs/tests/languages/css/comment_feature.test
new file mode 100644
index 0000000..a3899ed
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/comment_feature.test
@@ -0,0 +1,16 @@
+/**/
+/* foo */
+/* foo
+bar */
+
+----------------------------------------------------
+
+[
+	["comment", "/**/"],
+	["comment", "/* foo */"],
+	["comment", "/* foo\r\nbar */"]
+]
+
+----------------------------------------------------
+
+Checks for empty comment, single-line comment and multi-line comment.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/function_feature.test b/node_modules/prismjs/tests/languages/css/function_feature.test
new file mode 100644
index 0000000..0ed4f12
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/function_feature.test
@@ -0,0 +1,35 @@
+transform: translate(-50%);
+background: rgba(0, 0, 0, 0.2);
+filter: opacity(alpha=0);
+
+----------------------------------------------------
+
+[
+	["property", "transform"],
+	["punctuation", ":"],
+	["function", "translate"],
+	["punctuation", "("],
+	"-50%",
+	["punctuation", ")"],
+	["punctuation", ";"],
+
+	["property", "background"],
+	["punctuation", ":"],
+	["function", "rgba"],
+	["punctuation", "("],
+	"0, 0, 0, 0.2",
+	["punctuation", ")"],
+	["punctuation", ";"],
+
+	["property", "filter"],
+	["punctuation", ":"],
+	["function", "opacity"],
+	["punctuation", "("],
+	"alpha=0",
+	["punctuation", ")"],
+	["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/important_feature.test b/node_modules/prismjs/tests/languages/css/important_feature.test
new file mode 100644
index 0000000..ad69c39
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/important_feature.test
@@ -0,0 +1,21 @@
+color: red !important;
+padding: 10px 20px 30px !important;
+
+----------------------------------------------------
+
+[
+	["property", "color"],
+	["punctuation", ":"],
+	" red ",
+	["important", "!important"],
+	["punctuation", ";"],
+	["property", "padding"],
+    ["punctuation", ":"],
+    " 10px 20px 30px ",
+    ["important", "!important"],
+    ["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for !important rule.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/property_feature.test b/node_modules/prismjs/tests/languages/css/property_feature.test
new file mode 100644
index 0000000..30ff466
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/property_feature.test
@@ -0,0 +1,24 @@
+color: red;
+background-color: blue;
+-webkit-transform: none;
+
+----------------------------------------------------
+
+[
+	["property", "color"],
+	["punctuation", ":"],
+	" red",
+	["punctuation", ";"],
+	["property", "background-color"],
+	["punctuation", ":"],
+	" blue",
+    ["punctuation", ";"],
+	["property", "-webkit-transform"],
+	["punctuation", ":"],
+	" none",
+    ["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Checks for properties.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/selector_feature.test b/node_modules/prismjs/tests/languages/css/selector_feature.test
new file mode 100644
index 0000000..5a59720
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/selector_feature.test
@@ -0,0 +1,25 @@
+foo{
+foo + bar {
+foo:first-child:hover {
+* {
+foo,
+bar{
+
+----------------------------------------------------
+
+[
+	["selector", "foo"],
+	["punctuation", "{"],
+	["selector", "foo + bar"],
+	["punctuation", "{"],
+	["selector", "foo:first-child:hover"],
+	["punctuation", "{"],
+	["selector", "*"],
+	["punctuation", "{"],
+	["selector", "foo,\r\nbar"],
+	["punctuation", "{"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line selectors.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/string_feature.test b/node_modules/prismjs/tests/languages/css/string_feature.test
new file mode 100644
index 0000000..c7dee29
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/string_feature.test
@@ -0,0 +1,19 @@
+"f\"oo"
+'f\'oo'
+"foo\
+bar"
+'foo\
+bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"f\\\"oo\""],
+	["string", "'f\\'oo'"],
+	["string", "\"foo\\\r\nbar\""],
+    ["string", "'foo\\\r\nbar'"]
+]
+
+----------------------------------------------------
+
+Checks for single-quoted and double-quoted strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/css/url_feature.test b/node_modules/prismjs/tests/languages/css/url_feature.test
new file mode 100644
index 0000000..05ce8f9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/css/url_feature.test
@@ -0,0 +1,21 @@
+url(foo.png)
+url('foo.png')
+url("foo.png")
+url('foo\
+bar.png')
+url("foo\
+bar.png")
+
+----------------------------------------------------
+
+[
+	["url", "url(foo.png)"],
+	["url", "url('foo.png')"],
+	["url", "url(\"foo.png\")"],
+	["url", "url('foo\\\r\nbar.png')"],
+	["url", "url(\"foo\\\r\nbar.png\")"]
+]
+
+----------------------------------------------------
+
+Checks for url(), unquoted, single-quoted and double-quoted.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/comment_feature.test b/node_modules/prismjs/tests/languages/d/comment_feature.test
new file mode 100644
index 0000000..fbc2389
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/comment_feature.test
@@ -0,0 +1,23 @@
+#!/usr/bin/env rdmd
+
+/++/
+/+ foo
+bar +/
+/+ foo
+	/+
+	bar +/
+baz +/
+
+----------------------------------------------------
+
+[
+	["comment", "#!/usr/bin/env rdmd"],
+	["comment", "/++/"],
+	["comment", "/+ foo\r\nbar +/"],
+	["comment", "/+ foo\r\n\t/+\r\n\tbar +/\r\nbaz +/"]
+]
+
+----------------------------------------------------
+
+Checks for shebang and nestable multi-line comments.
+Other comments are tested in clike.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/keyword_feature.test b/node_modules/prismjs/tests/languages/d/keyword_feature.test
new file mode 100644
index 0000000..a5a0368
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/keyword_feature.test
@@ -0,0 +1,251 @@
+$
+abstract
+alias
+align
+asm
+assert
+auto
+body
+bool
+break
+byte
+case
+cast
+catch
+cdouble
+cent
+cfloat
+char
+class;
+const
+continue
+creal
+dchar
+debug
+default
+delegate
+delete
+deprecated
+do
+double
+else
+enum
+export
+extern
+false
+final
+finally
+float
+for
+foreach
+foreach_reverse
+function
+goto
+idouble
+if
+ifloat
+immutable
+import
+inout
+int
+interface;
+invariant
+ireal
+lazy
+long
+macro
+mixin
+module
+new;
+nothrow
+null
+out
+override
+package
+pragma
+private
+protected
+public
+pure
+real
+ref
+return
+scope
+shared
+short
+static
+struct
+super
+switch
+synchronized
+template
+this
+throw
+true
+try
+typedef
+typeid
+typeof
+ubyte
+ucent
+uint
+ulong
+union
+unittest
+ushort
+version
+void
+volatile
+wchar
+while
+with
+__FILE__
+__MODULE__
+__LINE__
+__FUNCTION__
+__PRETTY_FUNCTION__
+__DATE__
+__EOF__
+__TIME__
+__TIMESTAMP__
+__VENDOR__
+__VERSION__
+__gshared
+__traits
+__vector
+__parameters
+string
+wstring
+dstring
+size_t
+ptrdiff_t
+
+----------------------------------------------------
+
+[
+	["keyword", "$"],
+	["keyword", "abstract"],
+	["keyword", "alias"],
+	["keyword", "align"],
+	["keyword", "asm"],
+	["keyword", "assert"],
+	["keyword", "auto"],
+	["keyword", "body"],
+	["keyword", "bool"],
+	["keyword", "break"],
+	["keyword", "byte"],
+	["keyword", "case"],
+	["keyword", "cast"],
+	["keyword", "catch"],
+	["keyword", "cdouble"],
+	["keyword", "cent"],
+	["keyword", "cfloat"],
+	["keyword", "char"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"],
+	["keyword", "continue"],
+	["keyword", "creal"],
+	["keyword", "dchar"],
+	["keyword", "debug"],
+	["keyword", "default"],
+	["keyword", "delegate"],
+	["keyword", "delete"],
+	["keyword", "deprecated"],
+	["keyword", "do"],
+	["keyword", "double"],
+	["keyword", "else"],
+	["keyword", "enum"],
+	["keyword", "export"],
+	["keyword", "extern"],
+	["keyword", "false"],
+	["keyword", "final"],
+	["keyword", "finally"],
+	["keyword", "float"],
+	["keyword", "for"],
+	["keyword", "foreach"],
+	["keyword", "foreach_reverse"],
+	["keyword", "function"],
+	["keyword", "goto"],
+	["keyword", "idouble"],
+	["keyword", "if"],
+	["keyword", "ifloat"],
+	["keyword", "immutable"],
+	["keyword", "import"],
+	["keyword", "inout"],
+	["keyword", "int"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "invariant"],
+	["keyword", "ireal"],
+	["keyword", "lazy"],
+	["keyword", "long"],
+	["keyword", "macro"],
+	["keyword", "mixin"],
+	["keyword", "module"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "nothrow"],
+	["keyword", "null"],
+	["keyword", "out"],
+	["keyword", "override"],
+	["keyword", "package"],
+	["keyword", "pragma"],
+	["keyword", "private"],
+	["keyword", "protected"],
+	["keyword", "public"],
+	["keyword", "pure"],
+	["keyword", "real"],
+	["keyword", "ref"],
+	["keyword", "return"],
+	["keyword", "scope"],
+	["keyword", "shared"],
+	["keyword", "short"],
+	["keyword", "static"],
+	["keyword", "struct"],
+	["keyword", "super"],
+	["keyword", "switch"],
+	["keyword", "synchronized"],
+	["keyword", "template"],
+	["keyword", "this"],
+	["keyword", "throw"],
+	["keyword", "true"],
+	["keyword", "try"],
+	["keyword", "typedef"],
+	["keyword", "typeid"],
+	["keyword", "typeof"],
+	["keyword", "ubyte"],
+	["keyword", "ucent"],
+	["keyword", "uint"],
+	["keyword", "ulong"],
+	["keyword", "union"],
+	["keyword", "unittest"],
+	["keyword", "ushort"],
+	["keyword", "version"],
+	["keyword", "void"],
+	["keyword", "volatile"],
+	["keyword", "wchar"],
+	["keyword", "while"],
+	["keyword", "with"],
+	["keyword", "__FILE__"],
+	["keyword", "__MODULE__"],
+	["keyword", "__LINE__"],
+	["keyword", "__FUNCTION__"],
+	["keyword", "__PRETTY_FUNCTION__"],
+	["keyword", "__DATE__"],
+	["keyword", "__EOF__"],
+	["keyword", "__TIME__"],
+	["keyword", "__TIMESTAMP__"],
+	["keyword", "__VENDOR__"],
+	["keyword", "__VERSION__"],
+	["keyword", "__gshared"],
+	["keyword", "__traits"],
+	["keyword", "__vector"],
+	["keyword", "__parameters"],
+	["keyword", "string"],
+	["keyword", "wstring"],
+	["keyword", "dstring"],
+	["keyword", "size_t"],
+	["keyword", "ptrdiff_t"]
+]
+
+----------------------------------------------------
+
+Checks for $, keywords, special tokens and globally defined symbols.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/number_feature.test b/node_modules/prismjs/tests/languages/d/number_feature.test
new file mode 100644
index 0000000..817bd7e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/number_feature.test
@@ -0,0 +1,55 @@
+42
+42_000
+42L
+42U
+42UL
+3.14_15_9
+3.2e8
+0.4e-7
+62.14e+4
+
+0xBAD_FACE
+0xFFU
+0xfaL
+0x42UL
+0x2.AFp4
+0xFp-3
+0xFBp+9
+
+0b0000_1111
+
+6.3i
+6.3fi
+6.3Li
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "42_000"],
+	["number", "42L"],
+	["number", "42U"],
+	["number", "42UL"],
+	["number", "3.14_15_9"],
+	["number", "3.2e8"],
+	["number", "0.4e-7"],
+	["number", "62.14e+4"],
+
+	["number", "0xBAD_FACE"],
+	["number", "0xFFU"],
+	["number", "0xfaL"],
+	["number", "0x42UL"],
+	["number", "0x2.AFp4"],
+	["number", "0xFp-3"],
+	["number", "0xFBp+9"],
+
+	["number", "0b0000_1111"],
+
+	["number", "6.3i"],
+	["number", "6.3fi"],
+	["number", "6.3Li"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/operator_feature.test b/node_modules/prismjs/tests/languages/d/operator_feature.test
new file mode 100644
index 0000000..d7e291d
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/operator_feature.test
@@ -0,0 +1,63 @@
+||
+&&
+++
+--
+.. ...
+=>
+in is
+!in !is
+<< <<=
+>> >>> >>= >>>=
+^^ ^^=
+<> !<> <>= !<>=
+!< !<=
+!> !>=
++ +=
+- -=
+* *=
+/ /=
+% %=
+& &=
+| |=
+^ ^=
+~ ~=
+= ==
+! !=
+< <=
+> >=
+
+----------------------------------------------------
+
+[
+	["operator", "||"],
+	["operator", "&&"],
+	["operator", "++"],
+	["operator", "--"],
+	["operator", ".."], ["operator", "..."],
+	["operator", "=>"],
+	["operator", "in"], ["operator", "is"],
+	["operator", "!in"], ["operator", "!is"],
+	["operator", "<<"], ["operator", "<<="],
+	["operator", ">>"], ["operator", ">>>"], ["operator", ">>="], ["operator", ">>>="],
+	["operator", "^^"], ["operator", "^^="],
+	["operator", "<>"], ["operator", "!<>"], ["operator", "<>="], ["operator", "!<>="],
+	["operator", "!<"], ["operator", "!<="],
+	["operator", "!>"], ["operator", "!>="],
+	["operator", "+"], ["operator", "+="],
+	["operator", "-"], ["operator", "-="],
+	["operator", "*"], ["operator", "*="],
+	["operator", "/"], ["operator", "/="],
+	["operator", "%"], ["operator", "%="],
+	["operator", "&"], ["operator", "&="],
+	["operator", "|"], ["operator", "|="],
+	["operator", "^"], ["operator", "^="],
+	["operator", "~"], ["operator", "~="],
+	["operator", "="], ["operator", "=="],
+	["operator", "!"], ["operator", "!="],
+	["operator", "<"], ["operator", "<="],
+	["operator", ">"], ["operator", ">="]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/property_feature.test b/node_modules/prismjs/tests/languages/d/property_feature.test
new file mode 100644
index 0000000..9e61b06
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/property_feature.test
@@ -0,0 +1,17 @@
+@property int data()
+@disable this();
+
+----------------------------------------------------
+
+[
+	["property", "@property"],
+	["keyword", "int"],
+	["function", "data"], ["punctuation", "("], ["punctuation", ")"],
+	["property", "@disable"],
+	["keyword", "this"], ["punctuation", "("], ["punctuation", ")"],
+	["punctuation", ";"]
+]
+
+----------------------------------------------------
+
+Check for properties.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/register_feature.test b/node_modules/prismjs/tests/languages/d/register_feature.test
new file mode 100644
index 0000000..3eb57c6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/register_feature.test
@@ -0,0 +1,75 @@
+AL AH AX EAX
+BL BH BX EBX
+CL CH CX ECX
+DL DH DX EDX
+BP EBP
+SP ESP
+DI EDI
+SI ESI
+ES CS SS DS GS FS
+CR0 CR2 CR3 CR4
+DR0 DR1 DR2 DR3 DR6 DR7
+TR3 TR4 TR5 TR6 TR7
+ST
+ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7)
+MM0  MM1  MM2  MM3  MM4  MM5  MM6  MM7
+XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7
+
+RAX  RBX  RCX  RDX
+BPL  RBP
+SPL  RSP
+DIL  RDI
+SIL  RSI
+R8B  R8W  R8D  R8
+R9B  R9W  R9D  R9
+R10B R10W R10D R10
+R11B R11W R11D R11
+R12B R12W R12D R12
+R13B R13W R13D R13
+R14B R14W R14D R14
+R15B R15W R15D R15
+XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15
+YMM0 YMM1 YMM2  YMM3  YMM4  YMM5  YMM6  YMM7
+YMM8 YMM9 YMM10 YMM11 YMM12 YMM13 YMM14 YMM15
+
+----------------------------------------------------
+
+[
+	["register", "AL"], ["register", "AH"], ["register", "AX"], ["register", "EAX"],
+	["register", "BL"], ["register", "BH"], ["register", "BX"], ["register", "EBX"],
+	["register", "CL"], ["register", "CH"], ["register", "CX"], ["register", "ECX"],
+	["register", "DL"], ["register", "DH"], ["register", "DX"], ["register", "EDX"],
+	["register", "BP"], ["register", "EBP"],
+	["register", "SP"], ["register", "ESP"],
+	["register", "DI"], ["register", "EDI"],
+	["register", "SI"], ["register", "ESI"],
+	["register", "ES"], ["register", "CS"], ["register", "SS"], ["register", "DS"], ["register", "GS"], ["register", "FS"],
+	["register", "CR0"], ["register", "CR2"], ["register", "CR3"], ["register", "CR4"],
+	["register", "DR0"], ["register", "DR1"], ["register", "DR2"], ["register", "DR3"], ["register", "DR6"], ["register", "DR7"],
+	["register", "TR3"], ["register", "TR4"], ["register", "TR5"], ["register", "TR6"], ["register", "TR7"],
+	["register", "ST"],
+	["register", "ST(0)"], ["register", "ST(1)"], ["register", "ST(2)"], ["register", "ST(3)"], ["register", "ST(4)"], ["register", "ST(5)"], ["register", "ST(6)"], ["register", "ST(7)"],
+	["register", "MM0"],  ["register", "MM1"],  ["register", "MM2"],  ["register", "MM3"],  ["register", "MM4"],  ["register", "MM5"],  ["register", "MM6"],  ["register", "MM7"],
+	["register", "XMM0"], ["register", "XMM1"], ["register", "XMM2"], ["register", "XMM3"], ["register", "XMM4"], ["register", "XMM5"], ["register", "XMM6"], ["register", "XMM7"],
+
+	["register", "RAX"],  ["register", "RBX"],  ["register", "RCX"],  ["register", "RDX"],
+	["register", "BPL"],  ["register", "RBP"],
+	["register", "SPL"],  ["register", "RSP"],
+	["register", "DIL"],  ["register", "RDI"],
+	["register", "SIL"],  ["register", "RSI"],
+	["register", "R8B"],  ["register", "R8W"],  ["register", "R8D"],  ["register", "R8"],
+	["register", "R9B"],  ["register", "R9W"],  ["register", "R9D"],  ["register", "R9"],
+	["register", "R10B"], ["register", "R10W"], ["register", "R10D"], ["register", "R10"],
+	["register", "R11B"], ["register", "R11W"], ["register", "R11D"], ["register", "R11"],
+	["register", "R12B"], ["register", "R12W"], ["register", "R12D"], ["register", "R12"],
+	["register", "R13B"], ["register", "R13W"], ["register", "R13D"], ["register", "R13"],
+	["register", "R14B"], ["register", "R14W"], ["register", "R14D"], ["register", "R14"],
+	["register", "R15B"], ["register", "R15W"], ["register", "R15D"], ["register", "R15"],
+	["register", "XMM8"], ["register", "XMM9"], ["register", "XMM10"], ["register", "XMM11"], ["register", "XMM12"], ["register", "XMM13"], ["register", "XMM14"], ["register", "XMM15"],
+	["register", "YMM0"], ["register", "YMM1"], ["register", "YMM2"],  ["register", "YMM3"],  ["register", "YMM4"],  ["register", "YMM5"],  ["register", "YMM6"],  ["register", "YMM7"],
+	["register", "YMM8"], ["register", "YMM9"], ["register", "YMM10"], ["register", "YMM11"], ["register", "YMM12"], ["register", "YMM13"], ["register", "YMM14"], ["register", "YMM15"]
+]
+
+----------------------------------------------------
+
+Checks for Iasm registers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/string_feature.test b/node_modules/prismjs/tests/languages/d/string_feature.test
new file mode 100644
index 0000000..fc501b1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/string_feature.test
@@ -0,0 +1,56 @@
+r"" x""
+r"fo\"o"c x"00 FBCD"w r"baz"d
+
+q"[fo"o
+bar]"
+q"(fo"o
+bar)"
+q""
+q"{fo"o
+bar}"
+
+q"FOO
+Bar "baz"
+FOO"
+
+q"/fo"o
+bar/"
+q"|fo"o
+bar|"
+
+'a' '\'' '\u000A'
+
+""
+"foo"c "bar"w "baz"d
+"fo\"o
+bar"
+`foo`
+
+----------------------------------------------------
+
+[
+	["string", "r\"\""], ["string", "x\"\""],
+	["string", "r\"fo\\\"o\"c"], ["string", "x\"00 FBCD\"w"], ["string", "r\"baz\"d"],
+
+	["string", "q\"[fo\"o\r\nbar]\""],
+	["string", "q\"(fo\"o\r\nbar)\""],
+	["string", "q\"\""],
+	["string", "q\"{fo\"o\r\nbar}\""],
+
+	["string", "q\"FOO\r\nBar \"baz\"\r\nFOO\""],
+
+	["string", "q\"/fo\"o\r\nbar/\""],
+	["string", "q\"|fo\"o\r\nbar|\""],
+
+	["string", "'a'"], ["string", "'\\''"], ["string", "'\\u000A'"],
+
+	["string", "\"\""],
+	["string", "\"foo\"c"], ["string", "\"bar\"w"], ["string", "\"baz\"d"],
+	["string", "\"fo\\\"o\r\nbar\""],
+	["string", "`foo`"]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/d/token-string_feature.test b/node_modules/prismjs/tests/languages/d/token-string_feature.test
new file mode 100644
index 0000000..01627c4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/d/token-string_feature.test
@@ -0,0 +1,13 @@
+q{foo}
+q{ q{bar} }
+
+----------------------------------------------------
+
+[
+	["token-string", "q{foo}"],
+	["token-string", "q{ q{bar} }"]
+]
+
+----------------------------------------------------
+
+Checks for token strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/dart/keyword_feature.test b/node_modules/prismjs/tests/languages/dart/keyword_feature.test
new file mode 100644
index 0000000..a5e3c6c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/dart/keyword_feature.test
@@ -0,0 +1,49 @@
+async* sync* yield*
+abstract assert async await
+break case catch
+class;
+const
+continue default deferred
+do dynamic else enum
+export external
+extends;
+factory final finally for
+get if
+implements;
+import
+in library
+new;
+null
+operator part rethrow return
+set static super switch this
+throw try typedef var
+void while with yield
+
+----------------------------------------------------
+
+[
+	["keyword", "async*"], ["keyword", "sync*"], ["keyword", "yield*"],
+	["keyword", "abstract"], ["keyword", "assert"], ["keyword", "async"], ["keyword", "await"],
+	["keyword", "break"], ["keyword", "case"], ["keyword", "catch"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"],
+	["keyword", "continue"], ["keyword", "default"], ["keyword", "deferred"],
+	["keyword", "do"], ["keyword", "dynamic"], ["keyword", "else"], ["keyword", "enum"],
+	["keyword", "export"], ["keyword", "external"],
+	["keyword", "extends"], ["punctuation", ";"],
+	["keyword", "factory"], ["keyword", "final"], ["keyword", "finally"], ["keyword", "for"],
+	["keyword", "get"], ["keyword", "if"],
+	["keyword", "implements"], ["punctuation", ";"],
+	["keyword", "import"],
+	["keyword", "in"], ["keyword", "library"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "null"],
+	["keyword", "operator"], ["keyword", "part"], ["keyword", "rethrow"], ["keyword", "return"],
+	["keyword", "set"], ["keyword", "static"], ["keyword", "super"], ["keyword", "switch"], ["keyword", "this"],
+	["keyword", "throw"], ["keyword", "try"], ["keyword", "typedef"], ["keyword", "var"],
+	["keyword", "void"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/dart/metadata_feature.test b/node_modules/prismjs/tests/languages/dart/metadata_feature.test
new file mode 100644
index 0000000..e88e7ba
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/dart/metadata_feature.test
@@ -0,0 +1,20 @@
+@deprecated
+@override
+@todo('seth', 'make this do something')
+
+----------------------------------------------------
+
+[
+	["metadata", "@deprecated"],
+	["metadata", "@override"],
+	["metadata", "@todo"],
+	["punctuation", "("],
+	["string", "'seth'"],
+	["punctuation", ","],
+	["string", "'make this do something'"],
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for metadata.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/dart/operator_feature.test b/node_modules/prismjs/tests/languages/dart/operator_feature.test
new file mode 100644
index 0000000..5d631fd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/dart/operator_feature.test
@@ -0,0 +1,33 @@
+++ --
+* / % ~/
++ - ! ~
+<< >> ?
+& ^ |
+>= > <= <
+as is is!
+== != && ||
+= *= /= ~/=
+%= += -=
+<<= >>=
+&= ^= |=
+
+----------------------------------------------------
+
+[
+	["operator", "++"], ["operator", "--"],
+	["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "~/"],
+	["operator", "+"], ["operator", "-"], ["operator", "!"], ["operator", "~"],
+	["operator", "<<"], ["operator", ">>"], ["operator", "?"],
+	["operator", "&"], ["operator", "^"], ["operator", "|"],
+	["operator", ">="], ["operator", ">"], ["operator", "<="], ["operator", "<"],
+	["operator", "as"], ["operator", "is"], ["operator", "is!"],
+	["operator", "=="], ["operator", "!="], ["operator", "&&"], ["operator", "||"],
+	["operator", "="], ["operator", "*="], ["operator", "/="], ["operator", "~/="],
+	["operator", "%="], ["operator", "+="], ["operator", "-="],
+	["operator", "<<="], ["operator", ">>="],
+	["operator", "&="], ["operator", "^="], ["operator", "|="]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/dart/string_feature.test b/node_modules/prismjs/tests/languages/dart/string_feature.test
new file mode 100644
index 0000000..feffdbc
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/dart/string_feature.test
@@ -0,0 +1,25 @@
+"" ''
+r"" r''
+"""""" ''''''
+r"""""" r''''''
+"fo\"o" 'fo\'o'
+"""foo
+bar"""
+'''foo
+bar'''
+
+----------------------------------------------------
+
+[
+	["string", "\"\""], ["string", "''"],
+	["string", "r\"\""], ["string", "r''"],
+	["string", "\"\"\"\"\"\""], ["string", "''''''"],
+	["string", "r\"\"\"\"\"\""], ["string", "r''''''"],
+	["string", "\"fo\\\"o\""], ["string", "'fo\\'o'"],
+	["string", "\"\"\"foo\r\nbar\"\"\""], ["string", "'''foo\r\nbar'''"]
+]
+
+----------------------------------------------------
+
+Checks for single quoted and double quoted strings,
+multi-line strings and "raw" strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/diff/coord_feature.test b/node_modules/prismjs/tests/languages/diff/coord_feature.test
new file mode 100644
index 0000000..c082693
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/diff/coord_feature.test
@@ -0,0 +1,21 @@
+7c7
+
+*** 4,8 ****
+--- 4,8 ----
+
+@@ -4,5 +4,5 @@
+
+----------------------------------------------------
+
+[
+	["coord", "7c7"],
+
+	["coord", "*** 4,8 ****"],
+	["coord", "--- 4,8 ----"],
+
+	["coord", "@@ -4,5 +4,5 @@"]
+]
+
+----------------------------------------------------
+
+Checks for coords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/diff/diff_feature.test b/node_modules/prismjs/tests/languages/diff/diff_feature.test
new file mode 100644
index 0000000..0e53490
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/diff/diff_feature.test
@@ -0,0 +1,21 @@
+!     qt: core
+
+-    qt: core
++    qt: core gui
+
+< qt: core
+> qt: core quick
+
+----------------------------------------------------
+
+[
+	["diff", "!     qt: core"],
+	["deleted", "-    qt: core"],
+	["inserted", "+    qt: core gui"],
+	["deleted", "< qt: core"],
+	["inserted", "> qt: core quick"]
+]
+
+----------------------------------------------------
+
+Checks for deleted, inserted and different lines.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/docker/comment_feature.test b/node_modules/prismjs/tests/languages/docker/comment_feature.test
new file mode 100644
index 0000000..054d602
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/docker/comment_feature.test
@@ -0,0 +1,13 @@
+#
+# foobar
+
+----------------------------------------------------
+
+[
+	["comment", "#"],
+	["comment", "# foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/docker/keyword_feature.test b/node_modules/prismjs/tests/languages/docker/keyword_feature.test
new file mode 100644
index 0000000..8b39af9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/docker/keyword_feature.test
@@ -0,0 +1,37 @@
+ONBUILD ADD . /app/src
+FROM ubuntu
+MAINTAINER SvenDowideit@home.org.au
+RUN cd /tmp
+EXPOSE 5900
+ENV myName John Doe
+COPY hom* /mydir/
+VOLUME /myvol
+USER daemon
+WORKDIR /a
+CMD echo "foo"
+LABEL version="1.0"
+ENTRYPOINT ["top", "-b"]
+
+----------------------------------------------------
+
+[
+	["keyword", "ONBUILD"], ["keyword", "ADD"], " . /app/src\r\n",
+	["keyword", "FROM"], " ubuntu\r\n",
+	["keyword", "MAINTAINER"], " SvenDowideit@home.org.au\r\n",
+	["keyword", "RUN"], " cd /tmp\r\n",
+	["keyword", "EXPOSE"], " 5900\r\n",
+	["keyword", "ENV"], " myName John Doe\r\n",
+	["keyword", "COPY"], " hom* /mydir/\r\n",
+	["keyword", "VOLUME"], " /myvol\r\n",
+	["keyword", "USER"], " daemon\r\n",
+	["keyword", "WORKDIR"], " /a\r\n",
+	["keyword", "CMD"], " echo ", ["string", "\"foo\""],
+	["keyword", "LABEL"], " version=", ["string", "\"1.0\""],
+	["keyword", "ENTRYPOINT"],
+	["punctuation", "["], ["string", "\"top\""], ["punctuation", ","],
+	["string", "\"-b\""], ["punctuation", "]"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/docker/string_feature.test b/node_modules/prismjs/tests/languages/docker/string_feature.test
new file mode 100644
index 0000000..e131f02
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/docker/string_feature.test
@@ -0,0 +1,23 @@
+""
+"fo\"obar"
+"foo\
+bar"
+''
+'fo\'obar'
+'foo\
+bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo\\\"obar\""],
+	["string", "\"foo\\\r\nbar\""],
+	["string", "''"],
+	["string", "'fo\\'obar'"],
+	["string", "'foo\\\r\nbar'"]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test b/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test
new file mode 100644
index 0000000..5750be0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test
@@ -0,0 +1,13 @@
+True
+False
+
+----------------------------------------------------
+
+[
+	["boolean", "True"],
+	["boolean", "False"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/char_feature.test b/node_modules/prismjs/tests/languages/eiffel/char_feature.test
new file mode 100644
index 0000000..6a9b124
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/char_feature.test
@@ -0,0 +1,15 @@
+'a'
+'%''
+'%/123/'
+
+----------------------------------------------------
+
+[
+	["char", "'a'"],
+	["char", "'%''"],
+	["char", "'%/123/'"]
+]
+
+----------------------------------------------------
+
+Checks for chars.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/comment_feature.test b/node_modules/prismjs/tests/languages/eiffel/comment_feature.test
new file mode 100644
index 0000000..d911aa7
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/comment_feature.test
@@ -0,0 +1,13 @@
+--
+-- foo bar
+
+----------------------------------------------------
+
+[
+	["comment", "--"],
+	["comment", "-- foo bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test b/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test
new file mode 100644
index 0000000..cb6ae29
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test
@@ -0,0 +1,39 @@
+across agent alias all and
+attached as assign attribute
+check class convert create
+Current debug deferred detachable
+do else elseif end ensure
+expanded export external
+feature from frozen if
+implies inherit inspect
+invariant like local loop
+not note obsolete old
+once or Precursor redefine
+rename require rescue Result
+retry select separate some
+then undefine until variant
+Void when xor
+
+----------------------------------------------------
+
+[
+	["keyword", "across"], ["keyword", "agent"], ["keyword", "alias"], ["keyword", "all"], ["keyword", "and"],
+	["keyword", "attached"], ["keyword", "as"], ["keyword", "assign"], ["keyword", "attribute"],
+	["keyword", "check"], ["keyword", "class"], ["keyword", "convert"], ["keyword", "create"],
+	["keyword", "Current"], ["keyword", "debug"], ["keyword", "deferred"], ["keyword", "detachable"],
+	["keyword", "do"], ["keyword", "else"], ["keyword", "elseif"], ["keyword", "end"], ["keyword", "ensure"],
+	["keyword", "expanded"], ["keyword", "export"], ["keyword", "external"],
+	["keyword", "feature"], ["keyword", "from"], ["keyword", "frozen"], ["keyword", "if"],
+	["keyword", "implies"], ["keyword", "inherit"], ["keyword", "inspect"],
+	["keyword", "invariant"], ["keyword", "like"], ["keyword", "local"], ["keyword", "loop"],
+	["keyword", "not"], ["keyword", "note"], ["keyword", "obsolete"], ["keyword", "old"],
+	["keyword", "once"], ["keyword", "or"], ["keyword", "Precursor"], ["keyword", "redefine"],
+	["keyword", "rename"], ["keyword", "require"], ["keyword", "rescue"], ["keyword", "Result"],
+	["keyword", "retry"], ["keyword", "select"], ["keyword", "separate"], ["keyword", "some"],
+	["keyword", "then"], ["keyword", "undefine"], ["keyword", "until"], ["keyword", "variant"],
+	["keyword", "Void"], ["keyword", "when"], ["keyword", "xor"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/number_feature.test b/node_modules/prismjs/tests/languages/eiffel/number_feature.test
new file mode 100644
index 0000000..beb3cc7
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/number_feature.test
@@ -0,0 +1,29 @@
+0xbabe
+0xBAD_A55
+0c7654_1234
+0b1111_0000_0101
+42
+42.
+.42
+1_845.123_456
+3.14e+4
+4_2.5_7e-1_0
+
+----------------------------------------------------
+
+[
+	["number", "0xbabe"],
+	["number", "0xBAD_A55"],
+	["number", "0c7654_1234"],
+	["number", "0b1111_0000_0101"],
+	["number", "42"],
+	["number", "42."],
+	["number", ".42"],
+	["number", "1_845.123_456"],
+	["number", "3.14e+4"],
+	["number", "4_2.5_7e-1_0"]
+]
+
+----------------------------------------------------
+
+Checks for hexadecimal, octal, binary and decimal numbers.
diff --git a/node_modules/prismjs/tests/languages/eiffel/operator_feature.test b/node_modules/prismjs/tests/languages/eiffel/operator_feature.test
new file mode 100644
index 0000000..fcba4b3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/operator_feature.test
@@ -0,0 +1,19 @@
+\\ |..| .. //
+/~ / /=
+< <= > >=
++ - *
+^ = ~
+
+----------------------------------------------------
+
+[
+	["operator", "\\\\"], ["operator", "|..|"], ["operator", ".."], ["operator", "//"],
+	["operator", "/~"], ["operator", "/"], ["operator", "/="],
+	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
+	["operator", "+"], ["operator", "-"], ["operator", "*"],
+	["operator", "^"], ["operator", "="], ["operator", "~"]
+]
+
+----------------------------------------------------
+
+Checks for all operators
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/eiffel/string_feature.test b/node_modules/prismjs/tests/languages/eiffel/string_feature.test
new file mode 100644
index 0000000..183bf99
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/eiffel/string_feature.test
@@ -0,0 +1,30 @@
+""
+"fo%"o"
+"foo%
+%bar"
+
+"[fo"o
+bar]"
+"!-[fo"o[]
+bar]!-"
+"{fo"o
+bar}"
+"*?{fo"o{}
+bar}*?"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo%\"o\""],
+	["string", "\"foo%\r\n%bar\""],
+
+	["string", "\"[fo\"o\r\nbar]\""],
+	["string", "\"!-[fo\"o[]\r\nbar]!-\""],
+	["string", "\"{fo\"o\r\nbar}\""],
+	["string", "\"*?{fo\"o{}\r\nbar}*?\""]
+]
+
+----------------------------------------------------
+
+Checks for strings, multi-line strings, and aligned and non aligned verbatim strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/atom_feature.test b/node_modules/prismjs/tests/languages/elixir/atom_feature.test
new file mode 100644
index 0000000..5b1c47d
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/atom_feature.test
@@ -0,0 +1,15 @@
+:true
+:false
+:FooBar42
+
+----------------------------------------------------
+
+[
+	["atom", ":true"],
+	["atom", ":false"],
+	["atom", ":FooBar42"]
+]
+
+----------------------------------------------------
+
+Checks for atoms.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test b/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test
new file mode 100644
index 0000000..de7cadc
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test
@@ -0,0 +1,24 @@
+[a: 1, b: 2]
+do: :this, else: :that
+where: foo,
+select: bar
+
+----------------------------------------------------
+
+[
+	["punctuation", "["],
+	["attr-name", "a:"],
+	["number", "1"], ["punctuation", ","],
+	["attr-name", "b:"],
+	["number", "2"], ["punctuation", "]"],
+
+	["attr-name", "do:"], ["atom", ":this"],
+	["punctuation", ","],
+	["attr-name", "else:"], ["atom", ":that"],
+	["attr-name", "where:"], " foo", ["punctuation", ","],
+	["attr-name", "select:"], " bar"
+]
+
+----------------------------------------------------
+
+Checks for keyword list keys.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/attribute_feature.test b/node_modules/prismjs/tests/languages/elixir/attribute_feature.test
new file mode 100644
index 0000000..273c2a4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/attribute_feature.test
@@ -0,0 +1,19 @@
+@vsn 2
+@moduledoc """
+foobar
+"""
+@tag :external
+
+----------------------------------------------------
+
+[
+	["attribute", "@vsn"], ["number", "2"],
+	["attribute", "@moduledoc"], ["string", [
+		"\"\"\"\r\nfoobar\r\n\"\"\""
+	]],
+	["attribute", "@tag"], ["atom", ":external"]
+]
+
+----------------------------------------------------
+
+Checks for module attributes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/boolean_feature.test b/node_modules/prismjs/tests/languages/elixir/boolean_feature.test
new file mode 100644
index 0000000..aa94979
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/boolean_feature.test
@@ -0,0 +1,15 @@
+true
+false
+nil
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"],
+	["boolean", "nil"]
+]
+
+----------------------------------------------------
+
+Checks for booleans and nil.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/capture_feature.test b/node_modules/prismjs/tests/languages/elixir/capture_feature.test
new file mode 100644
index 0000000..8a64b66
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/capture_feature.test
@@ -0,0 +1,28 @@
+fun = &Math.zero?/1
+(&is_function/1).(fun)
+fun = &(&1 + 1)
+&List.flatten(&1, &2)
+
+----------------------------------------------------
+
+[
+	"fun ", ["operator", "="],
+	["capture", "&Math.zero?/1"],
+	["punctuation", "("],
+	["capture", "&is_function/1"],
+	["punctuation", ")"],
+	["punctuation", "."],
+	["punctuation", "("], "fun", ["punctuation", ")"],
+	"\r\nfun ", ["operator", "="],
+	["capture", "&"],
+	["punctuation", "("], ["argument", "&1"],
+	["operator", "+"], ["number", "1"], ["punctuation", ")"],
+	["capture", "&List.flatten"],
+	["punctuation", "("], ["argument", "&1"],
+	["punctuation", ","], ["argument", "&2"],
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for function capturing and arguments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/comment_feature.test b/node_modules/prismjs/tests/languages/elixir/comment_feature.test
new file mode 100644
index 0000000..09493ab
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/comment_feature.test
@@ -0,0 +1,13 @@
+#
+# Foobar
+
+----------------------------------------------------
+
+[
+	["comment", "#"],
+	["comment", "# Foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/issue775.test b/node_modules/prismjs/tests/languages/elixir/issue775.test
new file mode 100644
index 0000000..d3243f8
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/issue775.test
@@ -0,0 +1,17 @@
+@doc """
+## Parameters
+"""
+
+----------------------------------------------------
+
+[
+	["attribute", "@doc"],
+	["string", [
+		"\"\"\"\r\n## Parameters\r\n\"\"\""
+	]]
+]
+
+----------------------------------------------------
+
+Ensures that markdown headers are not highlighted as comments inside strings.
+See #775 for details.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/keyword_feature.test b/node_modules/prismjs/tests/languages/elixir/keyword_feature.test
new file mode 100644
index 0000000..e1b02a1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/keyword_feature.test
@@ -0,0 +1,31 @@
+after alias and case
+catch cond def
+defcallback
+defexception
+defimpl defmodule
+defp defprotocol
+defstruct do else
+end fn for if
+import not or
+require rescue try
+unless use when
+
+----------------------------------------------------
+
+[
+	["keyword", "after"], ["keyword", "alias"], ["keyword", "and"], ["keyword", "case"],
+	["keyword", "catch"], ["keyword", "cond"], ["keyword", "def"],
+	["keyword", "defcallback"],
+	["keyword", "defexception"],
+	["keyword", "defimpl"], ["keyword", "defmodule"],
+	["keyword", "defp"], ["keyword", "defprotocol"],
+	["keyword", "defstruct"], ["keyword", "do"], ["keyword", "else"],
+	["keyword", "end"], ["keyword", "fn"], ["keyword", "for"], ["keyword", "if"],
+	["keyword", "import"], ["keyword", "not"], ["keyword", "or"],
+	["keyword", "require"], ["keyword", "rescue"], ["keyword", "try"],
+	["keyword", "unless"], ["keyword", "use"], ["keyword", "when"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/number_feature.test b/node_modules/prismjs/tests/languages/elixir/number_feature.test
new file mode 100644
index 0000000..ae06684
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/number_feature.test
@@ -0,0 +1,27 @@
+0b1111_0000
+0o754_123
+0xBadFace
+42
+42_000
+3.14159
+2e6
+3.241_753E-7
+0.7e+15
+
+----------------------------------------------------
+
+[
+	["number", "0b1111_0000"],
+	["number", "0o754_123"],
+	["number", "0xBadFace"],
+	["number", "42"],
+	["number", "42_000"],
+	["number", "3.14159"],
+	["number", "2e6"],
+	["number", "3.241_753E-7"],
+	["number", "0.7e+15"]
+]
+
+----------------------------------------------------
+
+Checks for binary, octal, hexadecimal and decimal numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/operator_feature.test b/node_modules/prismjs/tests/languages/elixir/operator_feature.test
new file mode 100644
index 0000000..c97dcce
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/operator_feature.test
@@ -0,0 +1,41 @@
+in
+\\
+::
+..
+...
++ ++
+- -- ->
+*
+/
+^
+& &&
+| || |>
+< <= <> <-
+> >=
+! != !==
+= =~ == === =>
+
+----------------------------------------------------
+
+[
+	["operator", "in"],
+	["operator", "\\\\"],
+	["operator", "::"],
+	["operator", ".."],
+	["operator", "..."],
+	["operator", "+"], ["operator", "++"],
+	["operator", "-"], ["operator", "--"], ["operator", "->"],
+	["operator", "*"],
+	["operator", "/"],
+	["operator", "^"],
+	["operator", "&"], ["operator", "&&"],
+	["operator", "|"], ["operator", "||"], ["operator", "|>"],
+	["operator", "<"], ["operator", "<="], ["operator", "<>"], ["operator", "<-"],
+	["operator", ">"], ["operator", ">="],
+	["operator", "!"], ["operator", "!="], ["operator", "!=="],
+	["operator", "="], ["operator", "=~"], ["operator", "=="], ["operator", "==="], ["operator", "=>"]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
diff --git a/node_modules/prismjs/tests/languages/elixir/regex_feature.test b/node_modules/prismjs/tests/languages/elixir/regex_feature.test
new file mode 100644
index 0000000..81eb31a
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/regex_feature.test
@@ -0,0 +1,29 @@
+~r"""foobar"""im
+~R'''foobar'''ux
+~r/fo\/obar/smfr
+~R|fo\|obar|uismxfr
+~r"fo\"obar"x
+~R'fo\'obar's
+~r(fo\)obar)
+~R[fo\]obar]
+~r{fo\}obar}
+~Robar>
+
+----------------------------------------------------
+
+[
+	["regex", "~r\"\"\"foobar\"\"\"im"],
+	["regex", "~R'''foobar'''ux"],
+	["regex", "~r/fo\\/obar/smfr"],
+	["regex", "~R|fo\\|obar|uismxfr"],
+	["regex", "~r\"fo\\\"obar\"x"],
+	["regex", "~R'fo\\'obar's"],
+	["regex", "~r(fo\\)obar)"],
+	["regex", "~R[fo\\]obar]"],
+	["regex", "~r{fo\\}obar}"],
+	["regex", "~Robar>"]
+]
+
+----------------------------------------------------
+
+Checks for regexes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/elixir/string_feature.test b/node_modules/prismjs/tests/languages/elixir/string_feature.test
new file mode 100644
index 0000000..ca54f4b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/elixir/string_feature.test
@@ -0,0 +1,115 @@
+~s/foobar/
+~s/foo#{42}bar/
+~S|foobar|
+~c"foobar"
+~c"foo#{42}bar"
+~C'foobar'
+~w(foobar)c
+~w(foo#{42}bar)s
+~W[foobar]a
+~s{foobar}
+~s{foo#{42}bar}
+~S
+
+"""
+Foo bar
+"""
+
+'''
+Foo bar
+'''
+
+~S"""
+Foo bar
+"""
+
+~c"""
+Foo bar
+"""
+
+~w"""
+Foo bar
+"""
+
+""
+"foo"
+"fo\"o\
+#{42}bar"
+''
+'foo'
+'fo\'o\
+bar'
+
+----------------------------------------------------
+
+[
+	["string", ["~s/foobar/"]],
+	["string", [
+		"~s/foo",
+		["interpolation", [
+			["delimiter", "#{"],
+			["number", "42"],
+			["delimiter", "}"]
+		]],
+		"bar/"
+	]],
+	["string", ["~S|foobar|"]],
+	["string", ["~c\"foobar\""]],
+	["string", [
+		"~c\"foo",
+		["interpolation", [
+			["delimiter", "#{"],
+			["number", "42"],
+			["delimiter", "}"]
+		]],
+		"bar\""
+	]],
+	["string", ["~C'foobar'"]],
+	["string", ["~w(foobar)c"]],
+	["string", [
+		"~w(foo",
+		["interpolation", [
+			["delimiter", "#{"],
+			["number", "42"],
+			["delimiter", "}"]
+		]],
+		"bar)s"
+	]],
+	["string", ["~W[foobar]a"]],
+	["string", ["~s{foobar}"]],
+	["string", [
+		"~s{foo",
+		["interpolation", [
+			["delimiter", "#{"],
+			["number", "42"],
+			["delimiter", "}"]
+		]],
+		"bar}"
+	]],
+	["string", ["~S"]],
+
+	["string", ["\"\"\"\r\nFoo bar\r\n\"\"\""]],
+	["string", ["'''\r\nFoo bar\r\n'''"]],
+	["string", ["~S\"\"\"\r\nFoo bar\r\n\"\"\""]],
+	["string", ["~c\"\"\"\r\nFoo bar\r\n\"\"\""]],
+	["string", ["~w\"\"\"\r\nFoo bar\r\n\"\"\""]],
+
+	["string", ["\"\""]],
+	["string", ["\"foo\""]],
+	["string", [
+		"\"fo\\\"o\\\r\n",
+		["interpolation", [
+			["delimiter", "#{"],
+			["number", "42"],
+			["delimiter", "}"]
+		]],
+		"bar\""
+	]],
+	["string", ["''"]],
+	["string", ["'foo'"]],
+	["string", ["'fo\\'o\\\r\nbar'"]]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/atom_feature.test b/node_modules/prismjs/tests/languages/erlang/atom_feature.test
new file mode 100644
index 0000000..1761a8b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/atom_feature.test
@@ -0,0 +1,17 @@
+foo
+foo@_bar
+'foo bar'
+'\'\\'
+
+----------------------------------------------------
+
+[
+	["atom", "foo"],
+	["atom", "foo@_bar"],
+	["quoted-atom", "'foo bar'"],
+    ["quoted-atom", "'\\'\\\\'"]
+]
+
+----------------------------------------------------
+
+Checks for atoms and quoted atoms.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/boolean_feature.test b/node_modules/prismjs/tests/languages/erlang/boolean_feature.test
new file mode 100644
index 0000000..4019c44
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/boolean_feature.test
@@ -0,0 +1,13 @@
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/comment_feature.test b/node_modules/prismjs/tests/languages/erlang/comment_feature.test
new file mode 100644
index 0000000..b879c5e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/comment_feature.test
@@ -0,0 +1,11 @@
+% foo bar
+
+----------------------------------------------------
+
+[
+	["comment", "% foo bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/function_feature.test b/node_modules/prismjs/tests/languages/erlang/function_feature.test
new file mode 100644
index 0000000..72d8857
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/function_feature.test
@@ -0,0 +1,17 @@
+spawn(
+foo@_bar(
+'foo bar'(
+'\'\\'(
+
+----------------------------------------------------
+
+[
+	["function", "spawn"], ["punctuation", "("],
+	["function", "foo@_bar"], ["punctuation", "("],
+	["quoted-function", "'foo bar'"], ["punctuation", "("],
+	["quoted-function", "'\\'\\\\'"], ["punctuation", "("]
+]
+
+----------------------------------------------------
+
+Checks for functions and quoted functions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/keyword_feature.test b/node_modules/prismjs/tests/languages/erlang/keyword_feature.test
new file mode 100644
index 0000000..3af1da3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/keyword_feature.test
@@ -0,0 +1,15 @@
+fun when case of
+end if receive
+after try catch
+
+----------------------------------------------------
+
+[
+	["keyword", "fun"], ["keyword", "when"], ["keyword", "case"], ["keyword", "of"],
+	["keyword", "end"], ["keyword", "if"], ["keyword", "receive"],
+	["keyword", "after"], ["keyword", "try"], ["keyword", "catch"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/number_feature.test b/node_modules/prismjs/tests/languages/erlang/number_feature.test
new file mode 100644
index 0000000..0e5890f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/number_feature.test
@@ -0,0 +1,25 @@
+42
+2#101
+16#1f
+2.3
+2.3e3
+2.3e-3
+$A
+$\n
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "2#101"],
+	["number", "16#1f"],
+	["number", "2.3"],
+	["number", "2.3e3"],
+	["number", "2.3e-3"],
+	["number", "$A"],
+	["number", "$\\n"]
+]
+
+----------------------------------------------------
+
+Checks for numbers and character codes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/operator_feature.test b/node_modules/prismjs/tests/languages/erlang/operator_feature.test
new file mode 100644
index 0000000..addd5d3
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/operator_feature.test
@@ -0,0 +1,27 @@
+== /= >= :=
+=:= =/=
++ ++ - --
+= * / !
+<= < >
+bnot div rem band
+bor bxor bsl bsr
+not and or xor
+orelse andalso
+
+----------------------------------------------------
+
+[
+	["operator", "=="], ["operator", "/="], ["operator", ">="], ["operator", ":="],
+	["operator", "=:="], ["operator", "=/="],
+	["operator", "+"], ["operator", "++"], ["operator", "-"], ["operator", "--"],
+	["operator", "="], ["operator", "*"], ["operator", "/"], ["operator", "!"],
+	["operator", "<="], ["operator", "<"], ["operator", ">"],
+	["operator", "bnot"], ["operator", "div"], ["operator", "rem"], ["operator", "band"],
+	["operator", "bor"], ["operator", "bxor"], ["operator", "bsl"], ["operator", "bsr"],
+	["operator", "not"], ["operator", "and"], ["operator", "or"], ["operator", "xor"],
+	["operator", "orelse"], ["operator", "andalso"]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/string_feature.test b/node_modules/prismjs/tests/languages/erlang/string_feature.test
new file mode 100644
index 0000000..42770f6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/string_feature.test
@@ -0,0 +1,13 @@
+""
+"foo bar"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"foo bar\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/erlang/variable_feature.test b/node_modules/prismjs/tests/languages/erlang/variable_feature.test
new file mode 100644
index 0000000..f7492e4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/erlang/variable_feature.test
@@ -0,0 +1,17 @@
+Foo
+?Bar
+_
+Foo@_bar
+
+----------------------------------------------------
+
+[
+	["variable", "Foo"],
+	["variable", "?Bar"],
+	["variable", "_"],
+	["variable", "Foo@_bar"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test b/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test
new file mode 100644
index 0000000..176cad9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test
@@ -0,0 +1,18 @@
+%< -*- Fortran90 -*-
+21_SHORT
+%>
+
+----------------------------------------------------
+
+[
+	["inline-lang-fortran", [
+		["delimiter", "%< "],
+		["lang", "-*- Fortran90 -*-"],
+		["number", "21_SHORT"],
+		["delimiter", "%>"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for Fortran in Pure.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/boolean_feature.test b/node_modules/prismjs/tests/languages/fortran/boolean_feature.test
new file mode 100644
index 0000000..88bdb6b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/boolean_feature.test
@@ -0,0 +1,13 @@
+.TRUE.
+.false.
+
+----------------------------------------------------
+
+[
+	["boolean", ".TRUE."],
+	["boolean", ".false."]
+]
+
+----------------------------------------------------
+
+Checks for boolean.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/comment_feature.test b/node_modules/prismjs/tests/languages/fortran/comment_feature.test
new file mode 100644
index 0000000..c1fe029
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/comment_feature.test
@@ -0,0 +1,13 @@
+!
+! foobar
+
+----------------------------------------------------
+
+[
+	["comment", "!"],
+	["comment", "! foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/keyword_feature.test b/node_modules/prismjs/tests/languages/fortran/keyword_feature.test
new file mode 100644
index 0000000..e3bb493
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/keyword_feature.test
@@ -0,0 +1,199 @@
+INTEGER
+REAL
+DOUBLE PRECISION
+DOUBLEPRECISION
+COMPLEX
+CHARACTER
+LOGICAL
+
+ALLOCATABLE
+ALLOCATE
+BACKSPACE
+CALL
+CASE
+CLOSE
+COMMON
+CONTAINS
+CONTINUE
+CYCLE
+DATA
+DEALLOCATE
+DIMENSION
+DO
+END
+EQUIVALENCE
+EXIT
+EXTERNAL
+FORMAT
+GO TO
+GOTO
+IMPLICIT
+IMPLICIT NONE
+INQUIRE
+INTENT
+INTRINSIC
+MODULE PROCEDURE
+NAMELIST
+NULLIFY
+OPEN
+OPTIONAL
+PARAMETER
+POINTER
+PRINT
+PRIVATE
+PUBLIC
+READ
+RETURN
+REWIND
+SAVE
+SELECT
+STOP
+TARGET
+WHILE
+WRITE
+
+BLOCK DATA
+BLOCKDATA
+END BLOCK DATA
+ENDBLOCKDATA
+DO
+ENDDO
+FILE
+FORALL
+FUNCTION
+IF
+END IF
+INTERFACE
+MODULE
+PROGRAM
+SELECT
+SUBROUTINE
+TYPE
+WHERE
+
+ASSIGNMENT
+DEFAULT
+ELEMENTAL
+ELSE
+ELSEWHERE
+ELSEIF
+ENTRY
+IN
+INCLUDE
+INOUT
+KIND
+NULL
+ONLY
+OPERATOR
+OUT
+PURE
+RECURSIVE
+RESULT
+SEQUENCE
+STAT
+THEN
+USE
+
+----------------------------------------------------
+
+[
+	["keyword", "INTEGER"],
+	["keyword", "REAL"],
+	["keyword", "DOUBLE PRECISION"],
+	["keyword", "DOUBLEPRECISION"],
+	["keyword", "COMPLEX"],
+	["keyword", "CHARACTER"],
+	["keyword", "LOGICAL"],
+
+	["keyword", "ALLOCATABLE"],
+	["keyword", "ALLOCATE"],
+	["keyword", "BACKSPACE"],
+	["keyword", "CALL"],
+	["keyword", "CASE"],
+	["keyword", "CLOSE"],
+	["keyword", "COMMON"],
+	["keyword", "CONTAINS"],
+	["keyword", "CONTINUE"],
+	["keyword", "CYCLE"],
+	["keyword", "DATA"],
+	["keyword", "DEALLOCATE"],
+	["keyword", "DIMENSION"],
+	["keyword", "DO"],
+	["keyword", "END"],
+	["keyword", "EQUIVALENCE"],
+	["keyword", "EXIT"],
+	["keyword", "EXTERNAL"],
+	["keyword", "FORMAT"],
+	["keyword", "GO TO"],
+	["keyword", "GOTO"],
+	["keyword", "IMPLICIT"],
+	["keyword", "IMPLICIT NONE"],
+	["keyword", "INQUIRE"],
+	["keyword", "INTENT"],
+	["keyword", "INTRINSIC"],
+	["keyword", "MODULE PROCEDURE"],
+	["keyword", "NAMELIST"],
+	["keyword", "NULLIFY"],
+	["keyword", "OPEN"],
+	["keyword", "OPTIONAL"],
+	["keyword", "PARAMETER"],
+	["keyword", "POINTER"],
+	["keyword", "PRINT"],
+	["keyword", "PRIVATE"],
+	["keyword", "PUBLIC"],
+	["keyword", "READ"],
+	["keyword", "RETURN"],
+	["keyword", "REWIND"],
+	["keyword", "SAVE"],
+	["keyword", "SELECT"],
+	["keyword", "STOP"],
+	["keyword", "TARGET"],
+	["keyword", "WHILE"],
+	["keyword", "WRITE"],
+
+	["keyword", "BLOCK DATA"],
+	["keyword", "BLOCKDATA"],
+	["keyword", "END BLOCK DATA"],
+	["keyword", "ENDBLOCKDATA"],
+	["keyword", "DO"],
+	["keyword", "ENDDO"],
+	["keyword", "FILE"],
+	["keyword", "FORALL"],
+	["keyword", "FUNCTION"],
+	["keyword", "IF"],
+	["keyword", "END IF"],
+	["keyword", "INTERFACE"],
+	["keyword", "MODULE"],
+	["keyword", "PROGRAM"],
+	["keyword", "SELECT"],
+	["keyword", "SUBROUTINE"],
+	["keyword", "TYPE"],
+	["keyword", "WHERE"],
+
+	["keyword", "ASSIGNMENT"],
+	["keyword", "DEFAULT"],
+	["keyword", "ELEMENTAL"],
+	["keyword", "ELSE"],
+	["keyword", "ELSEWHERE"],
+	["keyword", "ELSEIF"],
+	["keyword", "ENTRY"],
+	["keyword", "IN"],
+	["keyword", "INCLUDE"],
+	["keyword", "INOUT"],
+	["keyword", "KIND"],
+	["keyword", "NULL"],
+	["keyword", "ONLY"],
+	["keyword", "OPERATOR"],
+	["keyword", "OUT"],
+	["keyword", "PURE"],
+	["keyword", "RECURSIVE"],
+	["keyword", "RESULT"],
+	["keyword", "SEQUENCE"],
+	["keyword", "STAT"],
+	["keyword", "THEN"],
+	["keyword", "USE"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/number_feature.test b/node_modules/prismjs/tests/languages/fortran/number_feature.test
new file mode 100644
index 0000000..c7b4a4c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/number_feature.test
@@ -0,0 +1,37 @@
+473
+21_2
+21_SHORT
+1976354279568241_8
+1.6E3
+0.45E-4
+10.93E7_QUAD
+3E4
+B'01110'
+B"010"
+O'047'
+O"642"
+Z'F41A'
+Z"00BC"
+
+----------------------------------------------------
+
+[
+	["number", "473"],
+	["number", "21_2"],
+	["number", "21_SHORT"],
+	["number", "1976354279568241_8"],
+	["number", "1.6E3"],
+	["number", "0.45E-4"],
+	["number", "10.93E7_QUAD"],
+	["number", "3E4"],
+	["quoted-number", "B'01110'"],
+    ["quoted-number", "B\"010\""],
+    ["quoted-number", "O'047'"],
+    ["quoted-number", "O\"642\""],
+    ["quoted-number", "Z'F41A'"],
+    ["quoted-number", "Z\"00BC\""]
+]
+
+----------------------------------------------------
+
+Checks for numbers and quoted numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/operator_feature.test b/node_modules/prismjs/tests/languages/fortran/operator_feature.test
new file mode 100644
index 0000000..d2d3003
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/operator_feature.test
@@ -0,0 +1,25 @@
+** // =>
+== /= ::
+< <= > >=
++ - * / = %
+.EQ. .NE. .LT. .LE.
+.GT. .GE. .NOT. .AND.
+.OR. .EQV. .NEQV.
+.foobar.
+
+----------------------------------------------------
+
+[
+	["operator", "**"], ["operator", "//"], ["operator", "=>"],
+	["operator", "=="], ["operator", "/="], ["operator", "::"],
+	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
+	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], ["operator", "="], ["operator", "%"],
+	["operator", ".EQ."], ["operator", ".NE."], ["operator", ".LT."], ["operator", ".LE."],
+	["operator", ".GT."], ["operator", ".GE."], ["operator", ".NOT."], ["operator", ".AND."],
+	["operator", ".OR."], ["operator", ".EQV."], ["operator", ".NEQV."],
+	["operator", ".foobar."]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fortran/string_feature.test b/node_modules/prismjs/tests/languages/fortran/string_feature.test
new file mode 100644
index 0000000..3fa6f74
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fortran/string_feature.test
@@ -0,0 +1,31 @@
+""
+''
+"foo ""bar"" baz"
+'foo ''bar'' baz'
+ITALICS_'foobar'
+"foo &
+	&bar"
+"foo &
+	! Comment
+	&bar"
+
+----------------------------------------------------
+
+[
+	["string", ["\"\""]],
+	["string", ["''"]],
+	["string", ["\"foo \"\"bar\"\" baz\""]],
+	["string", ["'foo ''bar'' baz'"]],
+	["string", ["ITALICS_'foobar'"]],
+	["string", ["\"foo &\r\n\t&bar\""]],
+	["string", [
+		"\"foo &\r\n\t",
+		["comment", "! Comment"],
+		"\r\n\t&bar\""
+	]]
+]
+
+----------------------------------------------------
+
+Checks for strings and line continuation.
+Also checks for comments inside strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fsharp/comment_feature.test b/node_modules/prismjs/tests/languages/fsharp/comment_feature.test
new file mode 100644
index 0000000..ff9170b
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fsharp/comment_feature.test
@@ -0,0 +1,16 @@
+// foobar
+(**)
+(* foo
+bar *)
+
+----------------------------------------------------
+
+[
+	["comment", "// foobar"],
+	["comment", "(**)"],
+	["comment", "(* foo\r\nbar *)"]
+]
+
+----------------------------------------------------
+
+Checks for single-line and multi-line comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test b/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test
new file mode 100644
index 0000000..d2ef996
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test
@@ -0,0 +1,71 @@
+abstract and as assert
+base begin
+class;
+default
+delegate do done downcast
+downto elif else end
+exception extern false finally
+for fun function global
+if in inherit inline
+interface;
+internal lazy let
+let! match member module
+mutable namespace
+new;
+not
+null of open or override
+private public rec return
+return! select static struct
+then to true try type
+upcast use use! val void
+when while with yield
+yield! asr land lor lsl
+lsr lxor mod sig atomic
+break checked component
+const constraint constructor
+continue eager event external
+fixed functor include method
+mixin object parallel process
+protected pure sealed tailcall
+trait;
+virtual volatile
+
+----------------------------------------------------
+
+[
+	["keyword", "abstract"], ["keyword", "and"], ["keyword", "as"], ["keyword", "assert"],
+	["keyword", "base"], ["keyword", "begin"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "default"],
+	["keyword", "delegate"], ["keyword", "do"], ["keyword", "done"], ["keyword", "downcast"],
+	["keyword", "downto"], ["keyword", "elif"], ["keyword", "else"], ["keyword", "end"],
+	["keyword", "exception"], ["keyword", "extern"], ["keyword", "false"], ["keyword", "finally"],
+	["keyword", "for"], ["keyword", "fun"], ["keyword", "function"], ["keyword", "global"],
+	["keyword", "if"], ["keyword", "in"], ["keyword", "inherit"], ["keyword", "inline"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "internal"], ["keyword", "lazy"], ["keyword", "let"],
+	["keyword", "let!"], ["keyword", "match"], ["keyword", "member"], ["keyword", "module"],
+	["keyword", "mutable"], ["keyword", "namespace"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "not"],
+	["keyword", "null"], ["keyword", "of"], ["keyword", "open"], ["keyword", "or"], ["keyword", "override"],
+	["keyword", "private"], ["keyword", "public"], ["keyword", "rec"], ["keyword", "return"],
+	["keyword", "return!"], ["keyword", "select"], ["keyword", "static"], ["keyword", "struct"],
+	["keyword", "then"], ["keyword", "to"], ["keyword", "true"], ["keyword", "try"], ["keyword", "type"],
+	["keyword", "upcast"], ["keyword", "use"], ["keyword", "use!"], ["keyword", "val"], ["keyword", "void"],
+	["keyword", "when"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"],
+	["keyword", "yield!"], ["keyword", "asr"], ["keyword", "land"], ["keyword", "lor"], ["keyword", "lsl"],
+	["keyword", "lsr"], ["keyword", "lxor"], ["keyword", "mod"], ["keyword", "sig"], ["keyword", "atomic"],
+	["keyword", "break"], ["keyword", "checked"], ["keyword", "component"],
+	["keyword", "const"], ["keyword", "constraint"], ["keyword", "constructor"],
+	["keyword", "continue"], ["keyword", "eager"], ["keyword", "event"], ["keyword", "external"],
+	["keyword", "fixed"], ["keyword", "functor"], ["keyword", "include"], ["keyword", "method"],
+	["keyword", "mixin"], ["keyword", "object"], ["keyword", "parallel"], ["keyword", "process"],
+	["keyword", "protected"], ["keyword", "pure"], ["keyword", "sealed"], ["keyword", "tailcall"],
+	["keyword", "trait"], ["punctuation", ";"],
+	["keyword", "virtual"], ["keyword", "volatile"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fsharp/number_feature.test b/node_modules/prismjs/tests/languages/fsharp/number_feature.test
new file mode 100644
index 0000000..f2f86ed
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fsharp/number_feature.test
@@ -0,0 +1,65 @@
+0xbabe
+0xBABEun
+0xflf
+0xfLF
+
+0b1001
+0b1001y
+0b1001uy
+
+42
+1.5
+2.3E+32
+2.3e-32
+4.14F
+4.14f
+0.7833M
+0.7833m
+
+86y
+86uy
+86s
+86us
+86l
+86u
+86ul
+86L
+86UL
+9999999999999999999999999999I
+
+----------------------------------------------------
+
+[
+	["number", "0xbabe"],
+	["number", "0xBABEun"],
+	["number", "0xflf"],
+	["number", "0xfLF"],
+
+	["number", "0b1001"],
+	["number", "0b1001y"],
+	["number", "0b1001uy"],
+
+	["number", "42"],
+	["number", "1.5"],
+	["number", "2.3E+32"],
+	["number", "2.3e-32"],
+	["number", "4.14F"],
+	["number", "4.14f"],
+	["number", "0.7833M"],
+	["number", "0.7833m"],
+
+	["number", "86y"],
+	["number", "86uy"],
+	["number", "86s"],
+	["number", "86us"],
+	["number", "86l"],
+	["number", "86u"],
+	["number", "86ul"],
+	["number", "86L"],
+	["number", "86UL"],
+	["number", "9999999999999999999999999999I"]
+]
+
+----------------------------------------------------
+
+Checks for decimal, hexadecimal and binary numbers, with all possible suffixes.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test b/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test
new file mode 100644
index 0000000..4ee0639
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test
@@ -0,0 +1,22 @@
+#if foo
+#else
+#endif
+
+#light
+#line
+#nowarn
+
+----------------------------------------------------
+
+[
+	["preprocessor", ["#", ["directive", "if"], " foo"]],
+	["preprocessor", ["#", ["directive", "else"]]],
+	["preprocessor", ["#", ["directive", "endif"]]],
+	["preprocessor", ["#", ["directive", "light"]]],
+	["preprocessor", ["#", ["directive", "line"]]],
+	["preprocessor", ["#", ["directive", "nowarn"]]]
+]
+
+----------------------------------------------------
+
+Checks for preprocessor directives.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/fsharp/string_feature.test b/node_modules/prismjs/tests/languages/fsharp/string_feature.test
new file mode 100644
index 0000000..89412ac
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/fsharp/string_feature.test
@@ -0,0 +1,45 @@
+""
+"fo\"o"
+"foo\
+bar"
+"foo"B
+
+@""
+@"foo"
+@"fo""o"
+@"foo"B
+
+""""""
+"""fo""o"
+bar"""
+"""foo"""B
+
+'a'
+'\''
+'\\'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo\\\"o\""],
+	["string", "\"foo\\\r\nbar\""],
+	["string", "\"foo\"B"],
+
+	["string", "@\"\""],
+	["string", "@\"foo\""],
+	["string", "@\"fo\"\"o\""],
+	["string", "@\"foo\"B"],
+
+	["string", "\"\"\"\"\"\""],
+	["string", "\"\"\"fo\"\"o\"\r\nbar\"\"\""],
+	["string", "\"\"\"foo\"\"\"B"],
+
+	["string", "'a'"],
+	["string", "'\\''"],
+	["string", "'\\\\'"]
+]
+
+----------------------------------------------------
+
+Checks for normal strings, verbatim strings, triple-quoted strings and character literals.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test b/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test
new file mode 100644
index 0000000..23bc540
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test
@@ -0,0 +1,1211 @@
+Scenario: foo
+	'ach foobar
+	'a foobar
+	'ej foobar
+	7 foobar
+	a foobar
+	A také foobar
+	A taktiež foobar
+	A tiež foobar
+	A zároveň foobar
+	Aber foobar
+	Ac foobar
+	Adott foobar
+	Akkor foobar
+	Ak foobar
+	Aleshores foobar
+	Ale foobar
+	Ali foobar
+	Allora foobar
+	Alors foobar
+	Als foobar
+	Ama foobar
+	Amennyiben foobar
+	Amikor foobar
+	Ampak foobar
+	an foobar
+	AN foobar
+	Ananging foobar
+	And y'all foobar
+	And foobar
+	Angenommen foobar
+	Anrhegedig a foobar
+	An foobar
+	Apabila foobar
+	Atès foobar
+	Atesa foobar
+	Atunci foobar
+	Avast! foobar
+	Aye foobar
+	A foobar
+	awer foobar
+	Bagi foobar
+	Banjur foobar
+	Bet foobar
+	Biết foobar
+	Blimey! foobar
+	Buh foobar
+	But at the end of the day I reckon foobar
+	But y'all foobar
+	But foobar
+	BUT foobar
+	Cal foobar
+	Când foobar
+	Cando foobar
+	Cand foobar
+	Ce foobar
+	Cuando foobar
+	Če foobar
+	Ða ðe foobar
+	Ða foobar
+	Dadas foobar
+	Dada foobar
+	Dados foobar
+	Dado foobar
+	DaH ghu' bejlu' foobar
+	dann foobar
+	Dann foobar
+	Dano foobar
+	Dan foobar
+	Dar foobar
+	Dat fiind foobar
+	Data foobar
+	Date fiind foobar
+	Date foobar
+	Dati fiind foobar
+	Dati foobar
+	Daţi fiind foobar
+	Dați fiind foobar
+	Dato foobar
+	DEN foobar
+	Den youse gotta foobar
+	Dengan foobar
+	De foobar
+	Diberi foobar
+	Diyelim ki foobar
+	Donada foobar
+	Donat foobar
+	Donitaĵo foobar
+	Do foobar
+	Dun foobar
+	Duota foobar
+	Ðurh foobar
+	Eeldades foobar
+	Ef foobar
+	Eğer ki foobar
+	Entao foobar
+	Então foobar
+	Entón foobar
+	Entonces foobar
+	En foobar
+	Epi foobar
+	E foobar
+	És foobar
+	Etant donnée foobar
+	Etant donné foobar
+	Et foobar
+	Étant données foobar
+	Étant donnée foobar
+	Étant donné foobar
+	Etant données foobar
+	Etant donnés foobar
+	Étant donnés foobar
+	Fakat foobar
+	Gangway! foobar
+	Gdy foobar
+	Gegeben seien foobar
+	Gegeben sei foobar
+	Gegeven foobar
+	Gegewe foobar
+	ghu' noblu' foobar
+	Gitt foobar
+	Given y'all foobar
+	Given foobar
+	Givet foobar
+	Givun foobar
+	Ha foobar
+	Cho foobar
+	I CAN HAZ foobar
+	In foobar
+	Ir foobar
+	It's just unbelievable foobar
+	I foobar
+	Ja foobar
+	Jeśli foobar
+	Jeżeli foobar
+	Kadar foobar
+	Kada foobar
+	Kad foobar
+	Kai foobar
+	Kaj foobar
+	Když foobar
+	Keď foobar
+	Kemudian foobar
+	Ketika foobar
+	Khi foobar
+	Kiedy foobar
+	Ko foobar
+	Kuid foobar
+	Kui foobar
+	Kun foobar
+	Lan foobar
+	latlh foobar
+	Le sa a foobar
+	Let go and haul foobar
+	Le foobar
+	Lè sa a foobar
+	Lè foobar
+	Logo foobar
+	Lorsqu'< foobar
+	Lorsque foobar
+	mä foobar
+	Maar foobar
+	Mais foobar
+	Mając foobar
+	Majd foobar
+	Maka foobar
+	Manawa foobar
+	Mas foobar
+	Ma foobar
+	Menawa foobar
+	Men foobar
+	Mutta foobar
+	Nalikaning foobar
+	Nalika foobar
+	Nanging foobar
+	Når foobar
+	När foobar
+	Nato foobar
+	Nhưng foobar
+	Niin foobar
+	Njuk foobar
+	O zaman foobar
+	Og foobar
+	Och foobar
+	Oletetaan foobar
+	Onda foobar
+	Ond foobar
+	Oraz foobar
+	Pak foobar
+	Pero foobar
+	Però foobar
+	Podano foobar
+	Pokiaľ foobar
+	Pokud foobar
+	Potem foobar
+	Potom foobar
+	Privzeto foobar
+	Pryd foobar
+	qaSDI' foobar
+	Quando foobar
+	Quand foobar
+	Quan foobar
+	Så foobar
+	Sed foobar
+	Se foobar
+	Siis foobar
+	Sipoze ke foobar
+	Sipoze Ke foobar
+	Sipoze foobar
+	Si foobar
+	Şi foobar
+	Și foobar
+	Soit foobar
+	Stel foobar
+	Tada foobar
+	Tad foobar
+	Takrat foobar
+	Tak foobar
+	Tapi foobar
+	Ter foobar
+	Tetapi foobar
+	Tha the foobar
+	Tha foobar
+	Then y'all foobar
+	Then foobar
+	Thì foobar
+	Thurh foobar
+	Toda foobar
+	Too right foobar
+	ugeholl foobar
+	Und foobar
+	Un foobar
+	Và foobar
+	vaj foobar
+	Vendar foobar
+	Ve foobar
+	wann foobar
+	Wanneer foobar
+	WEN foobar
+	Wenn foobar
+	When y'all foobar
+	When foobar
+	Wtedy foobar
+	Wun foobar
+	Y'know foobar
+	Yeah nah foobar
+	Yna foobar
+	Youse know like when foobar
+	Youse know when youse got foobar
+	Y foobar
+	Za predpokladu foobar
+	Za předpokladu foobar
+	Zadani foobar
+	Zadano foobar
+	Zadan foobar
+	Zadate foobar
+	Zadato foobar
+	Zakładając foobar
+	Zaradi foobar
+	Zatati foobar
+	Þa foobar
+	Þá foobar
+	Þa þe foobar
+	Þegar foobar
+	Þurh foobar
+	Αλλά foobar
+	Δεδομένου foobar
+	Και foobar
+	Όταν foobar
+	Τότε foobar
+	А також foobar
+	Агар foobar
+	Але foobar
+	Али foobar
+	Аммо foobar
+	А foobar
+	Әгәр foobar
+	Әйтик foobar
+	Әмма foobar
+	Бирок foobar
+	Ва foobar
+	Вә foobar
+	Дадено foobar
+	Дано foobar
+	Допустим foobar
+	Если foobar
+	Задате foobar
+	Задати foobar
+	Задато foobar
+	И foobar
+	І foobar
+	К тому же foobar
+	Када foobar
+	Кад foobar
+	Когато foobar
+	Когда foobar
+	Коли foobar
+	Ләкин foobar
+	Лекин foobar
+	Нәтиҗәдә foobar
+	Нехай foobar
+	Но foobar
+	Онда foobar
+	Припустимо, що foobar
+	Припустимо foobar
+	Пусть foobar
+	Также foobar
+	Та foobar
+	Тогда foobar
+	Тоді foobar
+	То foobar
+	Унда foobar
+	Һәм foobar
+	Якщо foobar
+	אבל foobar
+	אזי foobar
+	אז foobar
+	בהינתן foobar
+	וגם foobar
+	כאשר foobar
+	آنگاه foobar
+	اذاً foobar
+	اگر foobar
+	اما foobar
+	اور foobar
+	با فرض foobar
+	بالفرض foobar
+	بفرض foobar
+	پھر foobar
+	تب foobar
+	ثم foobar
+	جب foobar
+	عندما foobar
+	فرض کیا foobar
+	لكن foobar
+	لیکن foobar
+	متى foobar
+	هنگامی foobar
+	و foobar
+	अगर foobar
+	और foobar
+	कदा foobar
+	किन्तु foobar
+	चूंकि foobar
+	जब foobar
+	तथा foobar
+	तदा foobar
+	तब foobar
+	परन्तु foobar
+	पर foobar
+	यदि foobar
+	ਅਤੇ foobar
+	ਜਦੋਂ foobar
+	ਜਿਵੇਂ ਕਿ foobar
+	ਜੇਕਰ foobar
+	ਤਦ foobar
+	ਪਰ foobar
+	అప్పుడు foobar
+	ఈ పరిస్థితిలో foobar
+	కాని foobar
+	చెప్పబడినది foobar
+	మరియు foobar
+	ಆದರೆ foobar
+	ನಂತರ foobar
+	ನೀಡಿದ foobar
+	ಮತ್ತು foobar
+	ಸ್ಥಿತಿಯನ್ನು foobar
+	กำหนดให้ foobar
+	ดังนั้น foobar
+	แต่ foobar
+	เมื่อ foobar
+	และ foobar
+	그러면< foobar
+	그리고< foobar
+	단< foobar
+	만약< foobar
+	만일< foobar
+	먼저< foobar
+	조건< foobar
+	하지만< foobar
+	かつ< foobar
+	しかし< foobar
+	ただし< foobar
+	ならば< foobar
+	もし< foobar
+	並且< foobar
+	但し< foobar
+	但是< foobar
+	假如< foobar
+	假定< foobar
+	假設< foobar
+	假设< foobar
+	前提< foobar
+	同时< foobar
+	同時< foobar
+	并且< foobar
+	当< foobar
+	當< foobar
+	而且< foobar
+	那么< foobar
+	那麼< foobar
+
+----------------------------------------------------
+
+[
+	["scenario", [["keyword", "Scenario:"], ["important", " foo"]]],
+	["atrule", "'ach"],
+	" foobar\r\n\t",
+	["atrule", "'a"],
+	" foobar\r\n\t",
+	["atrule", "'ej"],
+	" foobar\r\n\t",
+	["atrule", "7"],
+	" foobar\r\n\t",
+	["atrule", "a"],
+	" foobar\r\n\t",
+	["atrule", "A také"],
+	" foobar\r\n\t",
+	["atrule", "A taktiež"],
+	" foobar\r\n\t",
+	["atrule", "A tiež"],
+	" foobar\r\n\t",
+	["atrule", "A zároveň"],
+	" foobar\r\n\t",
+	["atrule", "Aber"],
+	" foobar\r\n\t",
+	["atrule", "Ac"],
+	" foobar\r\n\t",
+	["atrule", "Adott"],
+	" foobar\r\n\t",
+	["atrule", "Akkor"],
+	" foobar\r\n\t",
+	["atrule", "Ak"],
+	" foobar\r\n\t",
+	["atrule", "Aleshores"],
+	" foobar\r\n\t",
+	["atrule", "Ale"],
+	" foobar\r\n\t",
+	["atrule", "Ali"],
+	" foobar\r\n\t",
+	["atrule", "Allora"],
+	" foobar\r\n\t",
+	["atrule", "Alors"],
+	" foobar\r\n\t",
+	["atrule", "Als"],
+	" foobar\r\n\t",
+	["atrule", "Ama"],
+	" foobar\r\n\t",
+	["atrule", "Amennyiben"],
+	" foobar\r\n\t",
+	["atrule", "Amikor"],
+	" foobar\r\n\t",
+	["atrule", "Ampak"],
+	" foobar\r\n\t",
+	["atrule", "an"],
+	" foobar\r\n\t",
+	["atrule", "AN"],
+	" foobar\r\n\t",
+	["atrule", "Ananging"],
+	" foobar\r\n\t",
+	["atrule", "And y'all"],
+	" foobar\r\n\t",
+	["atrule", "And"],
+	" foobar\r\n\t",
+	["atrule", "Angenommen"],
+	" foobar\r\n\t",
+	["atrule", "Anrhegedig a"],
+	" foobar\r\n\t",
+	["atrule", "An"],
+	" foobar\r\n\t",
+	["atrule", "Apabila"],
+	" foobar\r\n\t",
+	["atrule", "Atès"],
+	" foobar\r\n\t",
+	["atrule", "Atesa"],
+	" foobar\r\n\t",
+	["atrule", "Atunci"],
+	" foobar\r\n\t",
+	["atrule", "Avast!"],
+	" foobar\r\n\t",
+	["atrule", "Aye"],
+	" foobar\r\n\t",
+	["atrule", "A"],
+	" foobar\r\n\t",
+	["atrule", "awer"],
+	" foobar\r\n\t",
+	["atrule", "Bagi"],
+	" foobar\r\n\t",
+	["atrule", "Banjur"],
+	" foobar\r\n\t",
+	["atrule", "Bet"],
+	" foobar\r\n\t",
+	["atrule", "Biết"],
+	" foobar\r\n\t",
+	["atrule", "Blimey!"],
+	" foobar\r\n\t",
+	["atrule", "Buh"],
+	" foobar\r\n\t",
+	["atrule", "But at the end of the day I reckon"],
+	" foobar\r\n\t",
+	["atrule", "But y'all"],
+	" foobar\r\n\t",
+	["atrule", "But"],
+	" foobar\r\n\t",
+	["atrule", "BUT"],
+	" foobar\r\n\t",
+	["atrule", "Cal"],
+	" foobar\r\n\t",
+	["atrule", "Când"],
+	" foobar\r\n\t",
+	["atrule", "Cando"],
+	" foobar\r\n\t",
+	["atrule", "Cand"],
+	" foobar\r\n\t",
+	["atrule", "Ce"],
+	" foobar\r\n\t",
+	["atrule", "Cuando"],
+	" foobar\r\n\t",
+	["atrule", "Če"],
+	" foobar\r\n\t",
+	["atrule", "Ða ðe"],
+	" foobar\r\n\t",
+	["atrule", "Ða"],
+	" foobar\r\n\t",
+	["atrule", "Dadas"],
+	" foobar\r\n\t",
+	["atrule", "Dada"],
+	" foobar\r\n\t",
+	["atrule", "Dados"],
+	" foobar\r\n\t",
+	["atrule", "Dado"],
+	" foobar\r\n\t",
+	["atrule", "DaH ghu' bejlu'"],
+	" foobar\r\n\t",
+	["atrule", "dann"],
+	" foobar\r\n\t",
+	["atrule", "Dann"],
+	" foobar\r\n\t",
+	["atrule", "Dano"],
+	" foobar\r\n\t",
+	["atrule", "Dan"],
+	" foobar\r\n\t",
+	["atrule", "Dar"],
+	" foobar\r\n\t",
+	["atrule", "Dat fiind"],
+	" foobar\r\n\t",
+	["atrule", "Data"],
+	" foobar\r\n\t",
+	["atrule", "Date fiind"],
+	" foobar\r\n\t",
+	["atrule", "Date"],
+	" foobar\r\n\t",
+	["atrule", "Dati fiind"],
+	" foobar\r\n\t",
+	["atrule", "Dati"],
+	" foobar\r\n\t",
+	["atrule", "Daţi fiind"],
+	" foobar\r\n\t",
+	["atrule", "Dați fiind"],
+	" foobar\r\n\t",
+	["atrule", "Dato"],
+	" foobar\r\n\t",
+	["atrule", "DEN"],
+	" foobar\r\n\t",
+	["atrule", "Den youse gotta"],
+	" foobar\r\n\t",
+	["atrule", "Dengan"],
+	" foobar\r\n\t",
+	["atrule", "De"],
+	" foobar\r\n\t",
+	["atrule", "Diberi"],
+	" foobar\r\n\t",
+	["atrule", "Diyelim ki"],
+	" foobar\r\n\t",
+	["atrule", "Donada"],
+	" foobar\r\n\t",
+	["atrule", "Donat"],
+	" foobar\r\n\t",
+	["atrule", "Donitaĵo"],
+	" foobar\r\n\t",
+	["atrule", "Do"],
+	" foobar\r\n\t",
+	["atrule", "Dun"],
+	" foobar\r\n\t",
+	["atrule", "Duota"],
+	" foobar\r\n\t",
+	["atrule", "Ðurh"],
+	" foobar\r\n\t",
+	["atrule", "Eeldades"],
+	" foobar\r\n\t",
+	["atrule", "Ef"],
+	" foobar\r\n\t",
+	["atrule", "Eğer ki"],
+	" foobar\r\n\t",
+	["atrule", "Entao"],
+	" foobar\r\n\t",
+	["atrule", "Então"],
+	" foobar\r\n\t",
+	["atrule", "Entón"],
+	" foobar\r\n\t",
+	["atrule", "Entonces"],
+	" foobar\r\n\t",
+	["atrule", "En"],
+	" foobar\r\n\t",
+	["atrule", "Epi"],
+	" foobar\r\n\t",
+	["atrule", "E"],
+	" foobar\r\n\t",
+	["atrule", "És"],
+	" foobar\r\n\t",
+	["atrule", "Etant donnée"],
+	" foobar\r\n\t",
+	["atrule", "Etant donné"],
+	" foobar\r\n\t",
+	["atrule", "Et"],
+	" foobar\r\n\t",
+	["atrule", "Étant données"],
+	" foobar\r\n\t",
+	["atrule", "Étant donnée"],
+	" foobar\r\n\t",
+	["atrule", "Étant donné"],
+	" foobar\r\n\t",
+	["atrule", "Etant données"],
+	" foobar\r\n\t",
+	["atrule", "Etant donnés"],
+	" foobar\r\n\t",
+	["atrule", "Étant donnés"],
+	" foobar\r\n\t",
+	["atrule", "Fakat"],
+	" foobar\r\n\t",
+	["atrule", "Gangway!"],
+	" foobar\r\n\t",
+	["atrule", "Gdy"],
+	" foobar\r\n\t",
+	["atrule", "Gegeben seien"],
+	" foobar\r\n\t",
+	["atrule", "Gegeben sei"],
+	" foobar\r\n\t",
+	["atrule", "Gegeven"],
+	" foobar\r\n\t",
+	["atrule", "Gegewe"],
+	" foobar\r\n\t",
+	["atrule", "ghu' noblu'"],
+	" foobar\r\n\t",
+	["atrule", "Gitt"],
+	" foobar\r\n\t",
+	["atrule", "Given y'all"],
+	" foobar\r\n\t",
+	["atrule", "Given"],
+	" foobar\r\n\t",
+	["atrule", "Givet"],
+	" foobar\r\n\t",
+	["atrule", "Givun"],
+	" foobar\r\n\t",
+	["atrule", "Ha"],
+	" foobar\r\n\t",
+	["atrule", "Cho"],
+	" foobar\r\n\t",
+	["atrule", "I CAN HAZ"],
+	" foobar\r\n\t",
+	["atrule", "In"],
+	" foobar\r\n\t",
+	["atrule", "Ir"],
+	" foobar\r\n\t",
+	["atrule", "It's just unbelievable"],
+	" foobar\r\n\t",
+	["atrule", "I"],
+	" foobar\r\n\t",
+	["atrule", "Ja"],
+	" foobar\r\n\t",
+	["atrule", "Jeśli"],
+	" foobar\r\n\t",
+	["atrule", "Jeżeli"],
+	" foobar\r\n\t",
+	["atrule", "Kadar"],
+	" foobar\r\n\t",
+	["atrule", "Kada"],
+	" foobar\r\n\t",
+	["atrule", "Kad"],
+	" foobar\r\n\t",
+	["atrule", "Kai"],
+	" foobar\r\n\t",
+	["atrule", "Kaj"],
+	" foobar\r\n\t",
+	["atrule", "Když"],
+	" foobar\r\n\t",
+	["atrule", "Keď"],
+	" foobar\r\n\t",
+	["atrule", "Kemudian"],
+	" foobar\r\n\t",
+	["atrule", "Ketika"],
+	" foobar\r\n\t",
+	["atrule", "Khi"],
+	" foobar\r\n\t",
+	["atrule", "Kiedy"],
+	" foobar\r\n\t",
+	["atrule", "Ko"],
+	" foobar\r\n\t",
+	["atrule", "Kuid"],
+	" foobar\r\n\t",
+	["atrule", "Kui"],
+	" foobar\r\n\t",
+	["atrule", "Kun"],
+	" foobar\r\n\t",
+	["atrule", "Lan"],
+	" foobar\r\n\t",
+	["atrule", "latlh"],
+	" foobar\r\n\t",
+	["atrule", "Le sa a"],
+	" foobar\r\n\t",
+	["atrule", "Let go and haul"],
+	" foobar\r\n\t",
+	["atrule", "Le"],
+	" foobar\r\n\t",
+	["atrule", "Lè sa a"],
+	" foobar\r\n\t",
+	["atrule", "Lè"],
+	" foobar\r\n\t",
+	["atrule", "Logo"],
+	" foobar\r\n\t",
+	["atrule", "Lorsqu'<"],
+	" foobar\r\n\t",
+	["atrule", "Lorsque"],
+	" foobar\r\n\t",
+	["atrule", "mä"],
+	" foobar\r\n\t",
+	["atrule", "Maar"],
+	" foobar\r\n\t",
+	["atrule", "Mais"],
+	" foobar\r\n\t",
+	["atrule", "Mając"],
+	" foobar\r\n\t",
+	["atrule", "Majd"],
+	" foobar\r\n\t",
+	["atrule", "Maka"],
+	" foobar\r\n\t",
+	["atrule", "Manawa"],
+	" foobar\r\n\t",
+	["atrule", "Mas"],
+	" foobar\r\n\t",
+	["atrule", "Ma"],
+	" foobar\r\n\t",
+	["atrule", "Menawa"],
+	" foobar\r\n\t",
+	["atrule", "Men"],
+	" foobar\r\n\t",
+	["atrule", "Mutta"],
+	" foobar\r\n\t",
+	["atrule", "Nalikaning"],
+	" foobar\r\n\t",
+	["atrule", "Nalika"],
+	" foobar\r\n\t",
+	["atrule", "Nanging"],
+	" foobar\r\n\t",
+	["atrule", "Når"],
+	" foobar\r\n\t",
+	["atrule", "När"],
+	" foobar\r\n\t",
+	["atrule", "Nato"],
+	" foobar\r\n\t",
+	["atrule", "Nhưng"],
+	" foobar\r\n\t",
+	["atrule", "Niin"],
+	" foobar\r\n\t",
+	["atrule", "Njuk"],
+	" foobar\r\n\t",
+	["atrule", "O zaman"],
+	" foobar\r\n\t",
+	["atrule", "Og"],
+	" foobar\r\n\t",
+	["atrule", "Och"],
+	" foobar\r\n\t",
+	["atrule", "Oletetaan"],
+	" foobar\r\n\t",
+	["atrule", "Onda"],
+	" foobar\r\n\t",
+	["atrule", "Ond"],
+	" foobar\r\n\t",
+	["atrule", "Oraz"],
+	" foobar\r\n\t",
+	["atrule", "Pak"],
+	" foobar\r\n\t",
+	["atrule", "Pero"],
+	" foobar\r\n\t",
+	["atrule", "Però"],
+	" foobar\r\n\t",
+	["atrule", "Podano"],
+	" foobar\r\n\t",
+	["atrule", "Pokiaľ"],
+	" foobar\r\n\t",
+	["atrule", "Pokud"],
+	" foobar\r\n\t",
+	["atrule", "Potem"],
+	" foobar\r\n\t",
+	["atrule", "Potom"],
+	" foobar\r\n\t",
+	["atrule", "Privzeto"],
+	" foobar\r\n\t",
+	["atrule", "Pryd"],
+	" foobar\r\n\t",
+	["atrule", "qaSDI'"],
+	" foobar\r\n\t",
+	["atrule", "Quando"],
+	" foobar\r\n\t",
+	["atrule", "Quand"],
+	" foobar\r\n\t",
+	["atrule", "Quan"],
+	" foobar\r\n\t",
+	["atrule", "Så"],
+	" foobar\r\n\t",
+	["atrule", "Sed"],
+	" foobar\r\n\t",
+	["atrule", "Se"],
+	" foobar\r\n\t",
+	["atrule", "Siis"],
+	" foobar\r\n\t",
+	["atrule", "Sipoze ke"],
+	" foobar\r\n\t",
+	["atrule", "Sipoze Ke"],
+	" foobar\r\n\t",
+	["atrule", "Sipoze"],
+	" foobar\r\n\t",
+	["atrule", "Si"],
+	" foobar\r\n\t",
+	["atrule", "Şi"],
+	" foobar\r\n\t",
+	["atrule", "Și"],
+	" foobar\r\n\t",
+	["atrule", "Soit"],
+	" foobar\r\n\t",
+	["atrule", "Stel"],
+	" foobar\r\n\t",
+	["atrule", "Tada"],
+	" foobar\r\n\t",
+	["atrule", "Tad"],
+	" foobar\r\n\t",
+	["atrule", "Takrat"],
+	" foobar\r\n\t",
+	["atrule", "Tak"],
+	" foobar\r\n\t",
+	["atrule", "Tapi"],
+	" foobar\r\n\t",
+	["atrule", "Ter"],
+	" foobar\r\n\t",
+	["atrule", "Tetapi"],
+	" foobar\r\n\t",
+	["atrule", "Tha the"],
+	" foobar\r\n\t",
+	["atrule", "Tha"],
+	" foobar\r\n\t",
+	["atrule", "Then y'all"],
+	" foobar\r\n\t",
+	["atrule", "Then"],
+	" foobar\r\n\t",
+	["atrule", "Thì"],
+	" foobar\r\n\t",
+	["atrule", "Thurh"],
+	" foobar\r\n\t",
+	["atrule", "Toda"],
+	" foobar\r\n\t",
+	["atrule", "Too right"],
+	" foobar\r\n\t",
+	["atrule", "ugeholl"],
+	" foobar\r\n\t",
+	["atrule", "Und"],
+	" foobar\r\n\t",
+	["atrule", "Un"],
+	" foobar\r\n\t",
+	["atrule", "Và"],
+	" foobar\r\n\t",
+	["atrule", "vaj"],
+	" foobar\r\n\t",
+	["atrule", "Vendar"],
+	" foobar\r\n\t",
+	["atrule", "Ve"],
+	" foobar\r\n\t",
+	["atrule", "wann"],
+	" foobar\r\n\t",
+	["atrule", "Wanneer"],
+	" foobar\r\n\t",
+	["atrule", "WEN"],
+	" foobar\r\n\t",
+	["atrule", "Wenn"],
+	" foobar\r\n\t",
+	["atrule", "When y'all"],
+	" foobar\r\n\t",
+	["atrule", "When"],
+	" foobar\r\n\t",
+	["atrule", "Wtedy"],
+	" foobar\r\n\t",
+	["atrule", "Wun"],
+	" foobar\r\n\t",
+	["atrule", "Y'know"],
+	" foobar\r\n\t",
+	["atrule", "Yeah nah"],
+	" foobar\r\n\t",
+	["atrule", "Yna"],
+	" foobar\r\n\t",
+	["atrule", "Youse know like when"],
+	" foobar\r\n\t",
+	["atrule", "Youse know when youse got"],
+	" foobar\r\n\t",
+	["atrule", "Y"],
+	" foobar\r\n\t",
+	["atrule", "Za predpokladu"],
+	" foobar\r\n\t",
+	["atrule", "Za předpokladu"],
+	" foobar\r\n\t",
+	["atrule", "Zadani"],
+	" foobar\r\n\t",
+	["atrule", "Zadano"],
+	" foobar\r\n\t",
+	["atrule", "Zadan"],
+	" foobar\r\n\t",
+	["atrule", "Zadate"],
+	" foobar\r\n\t",
+	["atrule", "Zadato"],
+	" foobar\r\n\t",
+	["atrule", "Zakładając"],
+	" foobar\r\n\t",
+	["atrule", "Zaradi"],
+	" foobar\r\n\t",
+	["atrule", "Zatati"],
+	" foobar\r\n\t",
+	["atrule", "Þa"],
+	" foobar\r\n\t",
+	["atrule", "Þá"],
+	" foobar\r\n\t",
+	["atrule", "Þa þe"],
+	" foobar\r\n\t",
+	["atrule", "Þegar"],
+	" foobar\r\n\t",
+	["atrule", "Þurh"],
+	" foobar\r\n\t",
+	["atrule", "Αλλά"],
+	" foobar\r\n\t",
+	["atrule", "Δεδομένου"],
+	" foobar\r\n\t",
+	["atrule", "Και"],
+	" foobar\r\n\t",
+	["atrule", "Όταν"],
+	" foobar\r\n\t",
+	["atrule", "Τότε"],
+	" foobar\r\n\t",
+	["atrule", "А також"],
+	" foobar\r\n\t",
+	["atrule", "Агар"],
+	" foobar\r\n\t",
+	["atrule", "Але"],
+	" foobar\r\n\t",
+	["atrule", "Али"],
+	" foobar\r\n\t",
+	["atrule", "Аммо"],
+	" foobar\r\n\t",
+	["atrule", "А"],
+	" foobar\r\n\t",
+	["atrule", "Әгәр"],
+	" foobar\r\n\t",
+	["atrule", "Әйтик"],
+	" foobar\r\n\t",
+	["atrule", "Әмма"],
+	" foobar\r\n\t",
+	["atrule", "Бирок"],
+	" foobar\r\n\t",
+	["atrule", "Ва"],
+	" foobar\r\n\t",
+	["atrule", "Вә"],
+	" foobar\r\n\t",
+	["atrule", "Дадено"],
+	" foobar\r\n\t",
+	["atrule", "Дано"],
+	" foobar\r\n\t",
+	["atrule", "Допустим"],
+	" foobar\r\n\t",
+	["atrule", "Если"],
+	" foobar\r\n\t",
+	["atrule", "Задате"],
+	" foobar\r\n\t",
+	["atrule", "Задати"],
+	" foobar\r\n\t",
+	["atrule", "Задато"],
+	" foobar\r\n\t",
+	["atrule", "И"],
+	" foobar\r\n\t",
+	["atrule", "І"],
+	" foobar\r\n\t",
+	["atrule", "К тому же"],
+	" foobar\r\n\t",
+	["atrule", "Када"],
+	" foobar\r\n\t",
+	["atrule", "Кад"],
+	" foobar\r\n\t",
+	["atrule", "Когато"],
+	" foobar\r\n\t",
+	["atrule", "Когда"],
+	" foobar\r\n\t",
+	["atrule", "Коли"],
+	" foobar\r\n\t",
+	["atrule", "Ләкин"],
+	" foobar\r\n\t",
+	["atrule", "Лекин"],
+	" foobar\r\n\t",
+	["atrule", "Нәтиҗәдә"],
+	" foobar\r\n\t",
+	["atrule", "Нехай"],
+	" foobar\r\n\t",
+	["atrule", "Но"],
+	" foobar\r\n\t",
+	["atrule", "Онда"],
+	" foobar\r\n\t",
+	["atrule", "Припустимо, що"],
+	" foobar\r\n\t",
+	["atrule", "Припустимо"],
+	" foobar\r\n\t",
+	["atrule", "Пусть"],
+	" foobar\r\n\t",
+	["atrule", "Также"],
+	" foobar\r\n\t",
+	["atrule", "Та"],
+	" foobar\r\n\t",
+	["atrule", "Тогда"],
+	" foobar\r\n\t",
+	["atrule", "Тоді"],
+	" foobar\r\n\t",
+	["atrule", "То"],
+	" foobar\r\n\t",
+	["atrule", "Унда"],
+	" foobar\r\n\t",
+	["atrule", "Һәм"],
+	" foobar\r\n\t",
+	["atrule", "Якщо"],
+	" foobar\r\n\t",
+	["atrule", "אבל"],
+	" foobar\r\n\t",
+	["atrule", "אזי"],
+	" foobar\r\n\t",
+	["atrule", "אז"],
+	" foobar\r\n\t",
+	["atrule", "בהינתן"],
+	" foobar\r\n\t",
+	["atrule", "וגם"],
+	" foobar\r\n\t",
+	["atrule", "כאשר"],
+	" foobar\r\n\t",
+	["atrule", "آنگاه"],
+	" foobar\r\n\t",
+	["atrule", "اذاً"],
+	" foobar\r\n\t",
+	["atrule", "اگر"],
+	" foobar\r\n\t",
+	["atrule", "اما"],
+	" foobar\r\n\t",
+	["atrule", "اور"],
+	" foobar\r\n\t",
+	["atrule", "با فرض"],
+	" foobar\r\n\t",
+	["atrule", "بالفرض"],
+	" foobar\r\n\t",
+	["atrule", "بفرض"],
+	" foobar\r\n\t",
+	["atrule", "پھر"],
+	" foobar\r\n\t",
+	["atrule", "تب"],
+	" foobar\r\n\t",
+	["atrule", "ثم"],
+	" foobar\r\n\t",
+	["atrule", "جب"],
+	" foobar\r\n\t",
+	["atrule", "عندما"],
+	" foobar\r\n\t",
+	["atrule", "فرض کیا"],
+	" foobar\r\n\t",
+	["atrule", "لكن"],
+	" foobar\r\n\t",
+	["atrule", "لیکن"],
+	" foobar\r\n\t",
+	["atrule", "متى"],
+	" foobar\r\n\t",
+	["atrule", "هنگامی"],
+	" foobar\r\n\t",
+	["atrule", "و"],
+	" foobar\r\n\t",
+	["atrule", "अगर"],
+	" foobar\r\n\t",
+	["atrule", "और"],
+	" foobar\r\n\t",
+	["atrule", "कदा"],
+	" foobar\r\n\t",
+	["atrule", "किन्तु"],
+	" foobar\r\n\t",
+	["atrule", "चूंकि"],
+	" foobar\r\n\t",
+	["atrule", "जब"],
+	" foobar\r\n\t",
+	["atrule", "तथा"],
+	" foobar\r\n\t",
+	["atrule", "तदा"],
+	" foobar\r\n\t",
+	["atrule", "तब"],
+	" foobar\r\n\t",
+	["atrule", "परन्तु"],
+	" foobar\r\n\t",
+	["atrule", "पर"],
+	" foobar\r\n\t",
+	["atrule", "यदि"],
+	" foobar\r\n\t",
+	["atrule", "ਅਤੇ"],
+	" foobar\r\n\t",
+	["atrule", "ਜਦੋਂ"],
+	" foobar\r\n\t",
+	["atrule", "ਜਿਵੇਂ ਕਿ"],
+	" foobar\r\n\t",
+	["atrule", "ਜੇਕਰ"],
+	" foobar\r\n\t",
+	["atrule", "ਤਦ"],
+	" foobar\r\n\t",
+	["atrule", "ਪਰ"],
+	" foobar\r\n\t",
+	["atrule", "అప్పుడు"],
+	" foobar\r\n\t",
+	["atrule", "ఈ పరిస్థితిలో"],
+	" foobar\r\n\t",
+	["atrule", "కాని"],
+	" foobar\r\n\t",
+	["atrule", "చెప్పబడినది"],
+	" foobar\r\n\t",
+	["atrule", "మరియు"],
+	" foobar\r\n\t",
+	["atrule", "ಆದರೆ"],
+	" foobar\r\n\t",
+	["atrule", "ನಂತರ"],
+	" foobar\r\n\t",
+	["atrule", "ನೀಡಿದ"],
+	" foobar\r\n\t",
+	["atrule", "ಮತ್ತು"],
+	" foobar\r\n\t",
+	["atrule", "ಸ್ಥಿತಿಯನ್ನು"],
+	" foobar\r\n\t",
+	["atrule", "กำหนดให้"],
+	" foobar\r\n\t",
+	["atrule", "ดังนั้น"],
+	" foobar\r\n\t",
+	["atrule", "แต่"],
+	" foobar\r\n\t",
+	["atrule", "เมื่อ"],
+	" foobar\r\n\t",
+	["atrule", "และ"],
+	" foobar\r\n\t",
+	["atrule", "그러면<"],
+	" foobar\r\n\t",
+	["atrule", "그리고<"],
+	" foobar\r\n\t",
+	["atrule", "단<"],
+	" foobar\r\n\t",
+	["atrule", "만약<"],
+	" foobar\r\n\t",
+	["atrule", "만일<"],
+	" foobar\r\n\t",
+	["atrule", "먼저<"],
+	" foobar\r\n\t",
+	["atrule", "조건<"],
+	" foobar\r\n\t",
+	["atrule", "하지만<"],
+	" foobar\r\n\t",
+	["atrule", "かつ<"],
+	" foobar\r\n\t",
+	["atrule", "しかし<"],
+	" foobar\r\n\t",
+	["atrule", "ただし<"],
+	" foobar\r\n\t",
+	["atrule", "ならば<"],
+	" foobar\r\n\t",
+	["atrule", "もし<"],
+	" foobar\r\n\t",
+	["atrule", "並且<"],
+	" foobar\r\n\t",
+	["atrule", "但し<"],
+	" foobar\r\n\t",
+	["atrule", "但是<"],
+	" foobar\r\n\t",
+	["atrule", "假如<"],
+	" foobar\r\n\t",
+	["atrule", "假定<"],
+	" foobar\r\n\t",
+	["atrule", "假設<"],
+	" foobar\r\n\t",
+	["atrule", "假设<"],
+	" foobar\r\n\t",
+	["atrule", "前提<"],
+	" foobar\r\n\t",
+	["atrule", "同时<"],
+	" foobar\r\n\t",
+	["atrule", "同時<"],
+	" foobar\r\n\t",
+	["atrule", "并且<"],
+	" foobar\r\n\t",
+	["atrule", "当<"],
+	" foobar\r\n\t",
+	["atrule", "當<"],
+	" foobar\r\n\t",
+	["atrule", "而且<"],
+	" foobar\r\n\t",
+	["atrule", "那么<"],
+	" foobar\r\n\t",
+	["atrule", "那麼<"],
+	" foobar"
+]
+
+----------------------------------------------------
+
+Checks for at-rules in all languages.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/comment_feature.test b/node_modules/prismjs/tests/languages/gherkin/comment_feature.test
new file mode 100644
index 0000000..ce88cc9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/comment_feature.test
@@ -0,0 +1,15 @@
+#
+# foo bar
+	# foobar
+
+----------------------------------------------------
+
+[
+	["comment", "#"],
+	["comment", "# foo bar"],
+	["comment", "# foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/feature_feature.test b/node_modules/prismjs/tests/languages/gherkin/feature_feature.test
new file mode 100644
index 0000000..774dd36
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/feature_feature.test
@@ -0,0 +1,196 @@
+Ability: foobar
+baz
+Ahoy matey!:
+Arwedd: foobar
+Aspekt: foobar
+Besigheid Behoefte: foobar
+Business Need: foobar
+Caracteristica: foobar
+Característica: foobar
+Egenskab: foobar
+Egenskap: foobar
+Eiginleiki: foobar
+Feature: foobar
+Fīča: foobar
+Fitur: foobar
+Fonctionnalité: foobar
+Fonksyonalite: foobar
+Funcionalidade: foobar
+Funcionalitat: foobar
+Functionalitate: foobar
+Funcţionalitate: foobar
+Funcționalitate: foobar
+Functionaliteit: foobar
+Fungsi: foobar
+Funkcia: foobar
+Funkcija: foobar
+Funkcionalitāte: foobar
+Funkcionalnost: foobar
+Funkcja: foobar
+Funksie: foobar
+Funktionalität: foobar
+Funktionalitéit: foobar
+Funzionalità: foobar
+Hwaet: foobar
+Hwæt: foobar
+Jellemző: foobar
+Karakteristik: foobar
+laH: foobar
+Lastnost: foobar
+Mak: foobar
+Mogucnost: foobar
+Mogućnost: foobar
+Moznosti: foobar
+Možnosti: foobar
+OH HAI: foobar
+Omadus: foobar
+Ominaisuus: foobar
+Osobina: foobar
+Özellik: foobar
+perbogh: foobar
+poQbogh malja': foobar
+Potrzeba biznesowa: foobar
+Požadavek: foobar
+Požiadavka: foobar
+Pretty much: foobar
+Qap: foobar
+Qu'meH 'ut: foobar
+Savybė: foobar
+Tính năng: foobar
+Trajto: foobar
+Vermoë: foobar
+Vlastnosť: foobar
+Właściwość: foobar
+Značilnost: foobar
+Δυνατότητα: foobar
+Λειτουργία: foobar
+Могућност: foobar
+Мөмкинлек: foobar
+Особина: foobar
+Свойство: foobar
+Үзенчәлеклелек: foobar
+Функционал: foobar
+Функционалност: foobar
+Функция: foobar
+Функціонал: foobar
+תכונה: foobar
+خاصية: foobar
+خصوصیت: foobar
+صلاحیت: foobar
+کاروبار کی ضرورت: foobar
+وِیژگی: foobar
+रूप लेख: foobar
+ਖਾਸੀਅਤ: foobar
+ਨਕਸ਼ ਨੁਹਾਰ: foobar
+ਮੁਹਾਂਦਰਾ: foobar
+గుణము: foobar
+ಹೆಚ್ಚಳ: foobar
+ความต้องการทางธุรกิจ: foobar
+ความสามารถ: foobar
+โครงหลัก: foobar
+기능: foobar
+フィーチャ: foobar
+功能: foobar
+機能: foobar
+
+----------------------------------------------------
+
+[
+	["feature", [["keyword", "Ability:"], ["important", " foobar"], "\r\nbaz\r\n"]],
+	["feature", [["keyword", "Ahoy matey!:"]]],
+	["feature", [["keyword", "Arwedd:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Aspekt:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Besigheid Behoefte:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Business Need:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Caracteristica:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Característica:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Egenskab:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Egenskap:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Eiginleiki:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Feature:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Fīča:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Fitur:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Fonctionnalité:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Fonksyonalite:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funcionalidade:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funcionalitat:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Functionalitate:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funcţionalitate:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funcționalitate:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Functionaliteit:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Fungsi:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funkcia:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funkcija:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funkcionalitāte:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funkcionalnost:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funkcja:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funksie:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funktionalität:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funktionalitéit:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Funzionalità:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Hwaet:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Hwæt:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Jellemző:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Karakteristik:"], ["important", " foobar"]]],
+	["feature", [["keyword", "laH:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Lastnost:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Mak:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Mogucnost:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Mogućnost:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Moznosti:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Možnosti:"], ["important", " foobar"]]],
+	["feature", [["keyword", "OH HAI:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Omadus:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Ominaisuus:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Osobina:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Özellik:"], ["important", " foobar"]]],
+	["feature", [["keyword", "perbogh:"], ["important", " foobar"]]],
+	["feature", [["keyword", "poQbogh malja':"], ["important", " foobar"]]],
+	["feature", [["keyword", "Potrzeba biznesowa:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Požadavek:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Požiadavka:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Pretty much:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Qap:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Qu'meH 'ut:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Savybė:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Tính năng:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Trajto:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Vermoë:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Vlastnosť:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Właściwość:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Značilnost:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Δυνατότητα:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Λειτουργία:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Могућност:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Мөмкинлек:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Особина:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Свойство:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Үзенчәлеклелек:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Функционал:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Функционалност:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Функция:"], ["important", " foobar"]]],
+	["feature", [["keyword", "Функціонал:"], ["important", " foobar"]]],
+	["feature", [["keyword", "תכונה:"], ["important", " foobar"]]],
+	["feature", [["keyword", "خاصية:"], ["important", " foobar"]]],
+	["feature", [["keyword", "خصوصیت:"], ["important", " foobar"]]],
+	["feature", [["keyword", "صلاحیت:"], ["important", " foobar"]]],
+	["feature", [["keyword", "کاروبار کی ضرورت:"], ["important", " foobar"]]],
+	["feature", [["keyword", "وِیژگی:"], ["important", " foobar"]]],
+	["feature", [["keyword", "रूप लेख:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ਖਾਸੀਅਤ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ਨਕਸ਼ ਨੁਹਾਰ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ਮੁਹਾਂਦਰਾ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "గుణము:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ಹೆಚ್ಚಳ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ความต้องการทางธุรกิจ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "ความสามารถ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "โครงหลัก:"], ["important", " foobar"]]],
+	["feature", [["keyword", "기능:"], ["important", " foobar"]]],
+	["feature", [["keyword", "フィーチャ:"], ["important", " foobar"]]],
+	["feature", [["keyword", "功能:"], ["important", " foobar"]]],
+	["feature", [["keyword", "機能:"], ["important", " foobar"]]]
+]
+
+----------------------------------------------------
+
+Checks for features in all languages.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/outline_feature.test b/node_modules/prismjs/tests/languages/gherkin/outline_feature.test
new file mode 100644
index 0000000..19fc54f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/outline_feature.test
@@ -0,0 +1,11 @@
+
+
+----------------------------------------------------
+
+[
+	["outline", ""]
+]
+
+----------------------------------------------------
+
+Checks for single outlines.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test b/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test
new file mode 100644
index 0000000..17fd2b4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test
@@ -0,0 +1,20 @@
+"""
+foo
+bar
+"""
+
+'''
+foo
+bar
+'''
+
+----------------------------------------------------
+
+[
+	["pystring", "\"\"\"\r\nfoo\r\nbar\r\n\"\"\""],
+	["pystring", "'''\r\nfoo\r\nbar\r\n'''"]
+]
+
+----------------------------------------------------
+
+Checks for pystrings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test b/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test
new file mode 100644
index 0000000..0979c69
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test
@@ -0,0 +1,581 @@
+Abstract Scenario: foobar
+Abstrakt Scenario: foobar
+Achtergrond: foobar
+Aer: foobar
+Ær: foobar
+Agtergrond: foobar
+All y'all: foobar
+Antecedentes: foobar
+Antecedents: foobar
+Atburðarás: foobar
+Atburðarásir: foobar
+Awww, look mate: foobar
+B4: foobar
+Background: foobar
+Baggrund: foobar
+Bakgrund: foobar
+Bakgrunn: foobar
+Bakgrunnur: foobar
+Beispiele: foobar
+Beispiller: foobar
+Bối cảnh: foobar
+Cefndir: foobar
+Cenario: foobar
+Cenário: foobar
+Cenario de Fundo: foobar
+Cenário de Fundo: foobar
+Cenarios: foobar
+Cenários: foobar
+Contesto: foobar
+Context: foobar
+Contexte: foobar
+Contexto: foobar
+Conto: foobar
+Contoh: foobar
+Contone: foobar
+Dæmi: foobar
+Dasar: foobar
+Dead men tell no tales: foobar
+Delineacao do Cenario: foobar
+Delineação do Cenário: foobar
+Dis is what went down: foobar
+Dữ liệu: foobar
+Dyagram senaryo: foobar
+Dyagram Senaryo: foobar
+Egzanp: foobar
+Ejemplos: foobar
+Eksempler: foobar
+Ekzemploj: foobar
+Enghreifftiau: foobar
+Esbozo do escenario: foobar
+Escenari: foobar
+Escenario: foobar
+Esempi: foobar
+Esquema de l'escenari: foobar
+Esquema del escenario: foobar
+Esquema do Cenario: foobar
+Esquema do Cenário: foobar
+Examples: foobar
+EXAMPLZ: foobar
+Exempel: foobar
+Exemple: foobar
+Exemples: foobar
+Exemplos: foobar
+First off: foobar
+Fono: foobar
+Forgatókönyv: foobar
+Forgatókönyv vázlat: foobar
+Fundo: foobar
+Geçmiş: foobar
+ghantoH: foobar
+Grundlage: foobar
+Hannergrond: foobar
+Háttér: foobar
+Heave to: foobar
+Istorik: foobar
+Juhtumid: foobar
+Keadaan: foobar
+Khung kịch bản: foobar
+Khung tình huống: foobar
+Kịch bản: foobar
+Koncept: foobar
+Konsep skenario: foobar
+Kontèks: foobar
+Kontekst: foobar
+Kontekstas: foobar
+Konteksts: foobar
+Kontext: foobar
+Konturo de la scenaro: foobar
+Latar Belakang: foobar
+lut: foobar
+lut chovnatlh: foobar
+lutmey: foobar
+Lýsing Atburðarásar: foobar
+Lýsing Dæma: foobar
+Menggariskan Senario: foobar
+MISHUN: foobar
+MISHUN SRSLY: foobar
+mo': foobar
+Náčrt Scenára: foobar
+Náčrt Scénáře: foobar
+Náčrt Scenáru: foobar
+Oris scenarija: foobar
+Örnekler: foobar
+Osnova: foobar
+Osnova Scenára: foobar
+Osnova scénáře: foobar
+Osnutek: foobar
+Ozadje: foobar
+Paraugs: foobar
+Pavyzdžiai: foobar
+Példák: foobar
+Piemēri: foobar
+Plan du scénario: foobar
+Plan du Scénario: foobar
+Plan senaryo: foobar
+Plan Senaryo: foobar
+Plang vum Szenario: foobar
+Pozadí: foobar
+Pozadie: foobar
+Pozadina: foobar
+Príklady: foobar
+Příklady: foobar
+Primer: foobar
+Primeri: foobar
+Primjeri: foobar
+Przykłady: foobar
+Raamstsenaarium: foobar
+Reckon it's like: foobar
+Rerefons: foobar
+Scenár: foobar
+Scénář: foobar
+Scenarie: foobar
+Scenarij: foobar
+Scenarijai: foobar
+Scenarijaus šablonas: foobar
+Scenariji: foobar
+Scenārijs: foobar
+Scenārijs pēc parauga: foobar
+Scenarijus: foobar
+Scenario: foobar
+Scénario: foobar
+Scenario Amlinellol: foobar
+Scenario Outline: foobar
+Scenario Template: foobar
+Scenariomal: foobar
+Scenariomall: foobar
+Scenarios: foobar
+Scenariu: foobar
+Scenariusz: foobar
+Scenaro: foobar
+Schema dello scenario: foobar
+Se ðe: foobar
+Se the: foobar
+Se þe: foobar
+Senario: foobar
+Senaryo: foobar
+Senaryo deskripsyon: foobar
+Senaryo Deskripsyon: foobar
+Senaryo taslağı: foobar
+Shiver me timbers: foobar
+Situācija: foobar
+Situai: foobar
+Situasie: foobar
+Situasie Uiteensetting: foobar
+Skenario: foobar
+Skenario konsep: foobar
+Skica: foobar
+Structura scenariu: foobar
+Structură scenariu: foobar
+Struktura scenarija: foobar
+Stsenaarium: foobar
+Swa: foobar
+Swa hwaer swa: foobar
+Swa hwær swa: foobar
+Szablon scenariusza: foobar
+Szenario: foobar
+Szenariogrundriss: foobar
+Tapaukset: foobar
+Tapaus: foobar
+Tapausaihio: foobar
+Taust: foobar
+Tausta: foobar
+Template Keadaan: foobar
+Template Senario: foobar
+Template Situai: foobar
+The thing of it is: foobar
+Tình huống: foobar
+Variantai: foobar
+Voorbeelde: foobar
+Voorbeelden: foobar
+Wharrimean is: foobar
+Yo-ho-ho: foobar
+You'll wanna: foobar
+Założenia: foobar
+Παραδείγματα: foobar
+Περιγραφή Σεναρίου: foobar
+Σενάρια: foobar
+Σενάριο: foobar
+Υπόβαθρο: foobar
+Кереш: foobar
+Контекст: foobar
+Концепт: foobar
+Мисаллар: foobar
+Мисоллар: foobar
+Основа: foobar
+Передумова: foobar
+Позадина: foobar
+Предистория: foobar
+Предыстория: foobar
+Приклади: foobar
+Пример: foobar
+Примери: foobar
+Примеры: foobar
+Рамка на сценарий: foobar
+Скица: foobar
+Структура сценарија: foobar
+Структура сценария: foobar
+Структура сценарію: foobar
+Сценарий: foobar
+Сценарий структураси: foobar
+Сценарийның төзелеше: foobar
+Сценарији: foobar
+Сценарио: foobar
+Сценарій: foobar
+Тарих: foobar
+Үрнәкләр: foobar
+דוגמאות: foobar
+רקע: foobar
+תבנית תרחיש: foobar
+תרחיש: foobar
+الخلفية: foobar
+الگوی سناریو: foobar
+امثلة: foobar
+پس منظر: foobar
+زمینه: foobar
+سناریو: foobar
+سيناريو: foobar
+سيناريو مخطط: foobar
+مثالیں: foobar
+منظر نامے کا خاکہ: foobar
+منظرنامہ: foobar
+نمونه ها: foobar
+उदाहरण: foobar
+परिदृश्य: foobar
+परिदृश्य रूपरेखा: foobar
+पृष्ठभूमि: foobar
+ਉਦਾਹਰਨਾਂ: foobar
+ਪਟਕਥਾ: foobar
+ਪਟਕਥਾ ਢਾਂਚਾ: foobar
+ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ: foobar
+ਪਿਛੋਕੜ: foobar
+ఉదాహరణలు: foobar
+కథనం: foobar
+నేపథ్యం: foobar
+సన్నివేశం: foobar
+ಉದಾಹರಣೆಗಳು: foobar
+ಕಥಾಸಾರಾಂಶ: foobar
+ವಿವರಣೆ: foobar
+ಹಿನ್ನೆಲೆ: foobar
+โครงสร้างของเหตุการณ์: foobar
+ชุดของตัวอย่าง: foobar
+ชุดของเหตุการณ์: foobar
+แนวคิด: foobar
+สรุปเหตุการณ์: foobar
+เหตุการณ์: foobar
+배경: foobar
+시나리오: foobar
+시나리오 개요: foobar
+예: foobar
+サンプル: foobar
+シナリオ: foobar
+シナリオアウトライン: foobar
+シナリオテンプレ: foobar
+シナリオテンプレート: foobar
+テンプレ: foobar
+例: foobar
+例子: foobar
+剧本: foobar
+剧本大纲: foobar
+劇本: foobar
+劇本大綱: foobar
+场景: foobar
+场景大纲: foobar
+場景: foobar
+場景大綱: foobar
+背景: foobar
+
+----------------------------------------------------
+
+[
+	["scenario", [["keyword", "Abstract Scenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Abstrakt Scenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Achtergrond:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Aer:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Ær:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Agtergrond:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "All y'all:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Antecedentes:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Antecedents:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Atburðarás:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Atburðarásir:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Awww, look mate:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "B4:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Background:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Baggrund:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Bakgrund:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Bakgrunn:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Bakgrunnur:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Beispiele:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Beispiller:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Bối cảnh:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cefndir:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenário:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenario de Fundo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenário de Fundo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenarios:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Cenários:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Contesto:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Context:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Contexte:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Contexto:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Conto:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Contoh:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Contone:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dæmi:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dasar:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dead men tell no tales:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Delineacao do Cenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Delineação do Cenário:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dis is what went down:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dữ liệu:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dyagram senaryo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Dyagram Senaryo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Egzanp:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Ejemplos:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Eksempler:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Ekzemploj:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Enghreifftiau:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esbozo do escenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Escenari:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Escenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esempi:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esquema de l'escenari:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esquema del escenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esquema do Cenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Esquema do Cenário:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Examples:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "EXAMPLZ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Exempel:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Exemple:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Exemples:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Exemplos:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "First off:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Fono:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Forgatókönyv:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Forgatókönyv vázlat:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Fundo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Geçmiş:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ghantoH:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Grundlage:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Hannergrond:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Háttér:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Heave to:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Istorik:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Juhtumid:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Keadaan:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Khung kịch bản:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Khung tình huống:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Kịch bản:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Koncept:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Konsep skenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Kontèks:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Kontekst:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Kontekstas:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Konteksts:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Kontext:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Konturo de la scenaro:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Latar Belakang:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "lut:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "lut chovnatlh:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "lutmey:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Lýsing Atburðarásar:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Lýsing Dæma:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Menggariskan Senario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "MISHUN:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "MISHUN SRSLY:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "mo':"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Náčrt Scenára:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Náčrt Scénáře:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Náčrt Scenáru:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Oris scenarija:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Örnekler:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Osnova:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Osnova Scenára:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Osnova scénáře:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Osnutek:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Ozadje:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Paraugs:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Pavyzdžiai:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Példák:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Piemēri:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Plan du scénario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Plan du Scénario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Plan senaryo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Plan Senaryo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Plang vum Szenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Pozadí:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Pozadie:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Pozadina:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Príklady:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Příklady:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Primer:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Primeri:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Primjeri:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Przykłady:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Raamstsenaarium:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Reckon it's like:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Rerefons:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenár:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scénář:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarie:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarij:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarijai:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarijaus šablonas:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenariji:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenārijs:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenārijs pēc parauga:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarijus:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scénario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenario Amlinellol:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenario Outline:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenario Template:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenariomal:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenariomall:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenarios:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenariu:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenariusz:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Scenaro:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Schema dello scenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Se ðe:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Se the:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Se þe:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Senario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Senaryo:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Senaryo deskripsyon:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Senaryo Deskripsyon:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Senaryo taslağı:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Shiver me timbers:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Situācija:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Situai:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Situasie:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Situasie Uiteensetting:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Skenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Skenario konsep:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Skica:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Structura scenariu:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Structură scenariu:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Struktura scenarija:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Stsenaarium:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Swa:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Swa hwaer swa:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Swa hwær swa:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Szablon scenariusza:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Szenario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Szenariogrundriss:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Tapaukset:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Tapaus:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Tapausaihio:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Taust:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Tausta:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Template Keadaan:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Template Senario:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Template Situai:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "The thing of it is:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Tình huống:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Variantai:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Voorbeelde:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Voorbeelden:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Wharrimean is:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Yo-ho-ho:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "You'll wanna:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Założenia:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Παραδείγματα:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Περιγραφή Σεναρίου:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Σενάρια:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Σενάριο:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Υπόβαθρο:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Кереш:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Контекст:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Концепт:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Мисаллар:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Мисоллар:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Основа:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Передумова:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Позадина:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Предистория:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Предыстория:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Приклади:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Пример:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Примери:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Примеры:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Рамка на сценарий:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Скица:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Структура сценарија:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Структура сценария:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Структура сценарію:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарий:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарий структураси:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарийның төзелеше:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарији:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарио:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Сценарій:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Тарих:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "Үрнәкләр:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "דוגמאות:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "רקע:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "תבנית תרחיש:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "תרחיש:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "الخلفية:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "الگوی سناریو:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "امثلة:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "پس منظر:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "زمینه:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "سناریو:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "سيناريو:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "سيناريو مخطط:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "مثالیں:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "منظر نامے کا خاکہ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "منظرنامہ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "نمونه ها:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "उदाहरण:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "परिदृश्य:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "परिदृश्य रूपरेखा:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "पृष्ठभूमि:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ਉਦਾਹਰਨਾਂ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ਪਟਕਥਾ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ਪਟਕਥਾ ਢਾਂਚਾ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ਪਿਛੋਕੜ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ఉదాహరణలు:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "కథనం:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "నేపథ్యం:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "సన్నివేశం:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ಉದಾಹರಣೆಗಳು:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ಕಥಾಸಾರಾಂಶ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ವಿವರಣೆ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ಹಿನ್ನೆಲೆ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "โครงสร้างของเหตุการณ์:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ชุดของตัวอย่าง:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "ชุดของเหตุการณ์:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "แนวคิด:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "สรุปเหตุการณ์:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "เหตุการณ์:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "배경:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "시나리오:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "시나리오 개요:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "예:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "サンプル:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "シナリオ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "シナリオアウトライン:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "シナリオテンプレ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "シナリオテンプレート:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "テンプレ:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "例:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "例子:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "剧本:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "剧本大纲:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "劇本:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "劇本大綱:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "场景:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "场景大纲:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "場景:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "場景大綱:"], ["important", " foobar"]]],
+	["scenario", [["keyword", "背景:"], ["important", " foobar"]]]
+]
+
+----------------------------------------------------
+
+Checks for scenarios in all languages.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/string_feature.test b/node_modules/prismjs/tests/languages/gherkin/string_feature.test
new file mode 100644
index 0000000..bcb152f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/string_feature.test
@@ -0,0 +1,29 @@
+""
+"foobar"
+"foobaz"
+''
+'foobar'
+'foobaz'
+
+----------------------------------------------------
+
+[
+	["string", ["\"\""]],
+	["string", ["\"foobar\""]],
+	["string", [
+		"\"foo",
+		["outline", ""],
+		"baz\""
+	]],
+	["string", ["''"]],
+	["string", ["'foobar'"]],
+	["string", [
+        "'foo",
+        ["outline", ""],
+        "baz'"
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for double-quoted and single-quoted strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/table_feature.test b/node_modules/prismjs/tests/languages/gherkin/table_feature.test
new file mode 100644
index 0000000..00eaef8
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/table_feature.test
@@ -0,0 +1,40 @@
+Examples: foo
+| start  | eat | left |
+|   |  5  |  7   |
+	|  20    |  5  |  15  |
+
+----------------------------------------------------
+
+[
+	["scenario", [["keyword", "Examples:"], ["important", " foo"]]],
+	["table-head", [
+		["punctuation", "|"],
+		["th", " start  "],
+		["punctuation", "|"],
+        ["th", " eat "],
+        ["punctuation", "|"],
+        ["th", " left "],
+        ["punctuation", "|"]
+    ]],
+    ["table-body", [
+		["punctuation", "|"],
+		["outline", ""],
+		["punctuation", "|"],
+		["td", "  5  "],
+		["punctuation", "|"],
+        ["td", "  7   "],
+        ["punctuation", "|"],
+
+        ["punctuation", "|"],
+        ["td", "  20    "],
+        ["punctuation", "|"],
+        ["td", "  5  "],
+        ["punctuation", "|"],
+        ["td", "  15  "],
+        ["punctuation", "|"]
+    ]]
+]
+
+----------------------------------------------------
+
+Checks for table heads and table bodies.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/gherkin/tag_feature.test b/node_modules/prismjs/tests/languages/gherkin/tag_feature.test
new file mode 100644
index 0000000..51026ea
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/gherkin/tag_feature.test
@@ -0,0 +1,17 @@
+@important
+@billing @bicker @annoy
+	@foo
+
+----------------------------------------------------
+
+[
+	["tag", "@important"],
+	["tag", "@billing"],
+	["tag", "@bicker"],
+	["tag", "@annoy"],
+	["tag", "@foo"]
+]
+
+----------------------------------------------------
+
+Checks for tags.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/command_feature.test b/node_modules/prismjs/tests/languages/git/command_feature.test
new file mode 100644
index 0000000..488f0be
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/command_feature.test
@@ -0,0 +1,15 @@
+$ git add file.txt
+foo@foobar ~ $ git diff --cached
+$ git log -p -i
+
+----------------------------------------------------
+
+[
+	["command", ["$ git add file.txt"]],
+	["command", ["foo@foobar ~ $ git diff", ["parameter", " --cached"]]],
+	["command", ["$ git log", ["parameter", " -p"], ["parameter", " -i"]]]
+]
+
+----------------------------------------------------
+
+Checks for git commands, with and without parameters.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/comment_feature.test b/node_modules/prismjs/tests/languages/git/comment_feature.test
new file mode 100644
index 0000000..c3d0358
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/comment_feature.test
@@ -0,0 +1,17 @@
+# On branch gh-pages
+# Changes to be committed:
+#   (use "git reset HEAD ..." to unstage)
+#
+
+----------------------------------------------------
+
+[
+	["comment", "# On branch gh-pages"],
+	["comment", "# Changes to be committed:"],
+	["comment", "#   (use \"git reset HEAD ...\" to unstage)"],
+	["comment", "#"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test b/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test
new file mode 100644
index 0000000..fbc58ed
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test
@@ -0,0 +1,15 @@
+commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09
+commit 87edc4ad8c71b95f6e46f736eb98b742859abd95
+commit 3102416a90c431400d2e2a14e707fb7fd6d9e06d
+
+----------------------------------------------------
+
+[
+	["commit_sha1", "commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09"],
+	["commit_sha1", "commit 87edc4ad8c71b95f6e46f736eb98b742859abd95"],
+	["commit_sha1", "commit 3102416a90c431400d2e2a14e707fb7fd6d9e06d"]
+]
+
+----------------------------------------------------
+
+Checks for commit SHA1.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/coord_feature.test b/node_modules/prismjs/tests/languages/git/coord_feature.test
new file mode 100644
index 0000000..8d8c5e2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/coord_feature.test
@@ -0,0 +1,13 @@
+@@ -1 +1,2 @@
+@@@ -98,20 -98,12 +98,20 @@@
+
+----------------------------------------------------
+
+[
+	["coord", "@@ -1 +1,2 @@"],
+	["coord", "@@@ -98,20 -98,12 +98,20 @@@"]
+]
+
+----------------------------------------------------
+
+Checks for coords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/diff_feature.test b/node_modules/prismjs/tests/languages/git/diff_feature.test
new file mode 100644
index 0000000..b93fb18
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/diff_feature.test
@@ -0,0 +1,31 @@
+-Here's my tetx file
++Here's my text file
++And this is the second line
+
+––– a/web/js/lazy.js
++++ b/web/js/lazy.js
+
+-      if (url !== null && url !== '' && typeof url !== 'undefined') {
++      if (url === null || url === '' || typeof url === 'undefined') {
++        return;
++      }
++
+
+----------------------------------------------------
+
+[
+	["deleted", "-Here's my tetx file"],
+	["inserted", "+Here's my text file"],
+	["inserted", "+And this is the second line"],
+	["deleted", "––– a/web/js/lazy.js"],
+	["inserted", "+++ b/web/js/lazy.js"],
+	["deleted", "-      if (url !== null && url !== '' && typeof url !== 'undefined') {"],
+	["inserted", "+      if (url === null || url === '' || typeof url === 'undefined') {"],
+	["inserted", "+        return;"],
+	["inserted", "+      }"],
+	["inserted", "+"]
+]
+
+----------------------------------------------------
+
+Checks for inserted and deleted lines in git diff output.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/git/string_feature.test b/node_modules/prismjs/tests/languages/git/string_feature.test
new file mode 100644
index 0000000..ebff3bf
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/git/string_feature.test
@@ -0,0 +1,17 @@
+""
+"foo"
+''
+'bar'
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"foo\""],
+	["string", "''"],
+	["string", "'bar'"]
+]
+
+----------------------------------------------------
+
+Checks for double-quoted and single-quoted strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/glsl/comment_feature.test b/node_modules/prismjs/tests/languages/glsl/comment_feature.test
new file mode 100644
index 0000000..b45a6bd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/glsl/comment_feature.test
@@ -0,0 +1,21 @@
+/**/
+/* foo
+bar */
+//
+// foo
+// foo\
+bar
+
+----------------------------------------------------
+
+[
+	["comment", "/**/"],
+	["comment", "/* foo\r\nbar */"],
+	["comment", "//"],
+	["comment", "// foo"],
+	["comment", "// foo\\\r\nbar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/glsl/keyword_feature.test b/node_modules/prismjs/tests/languages/glsl/keyword_feature.test
new file mode 100644
index 0000000..e07768c
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/glsl/keyword_feature.test
@@ -0,0 +1,263 @@
+attribute
+const
+uniform
+varying
+buffer
+shared
+coherent
+volatile
+restrict
+readonly
+writeonly
+atomic_uint
+layout
+centroid
+flat
+smooth
+noperspective
+patch
+sample
+break
+continue
+do
+for
+while
+switch
+case
+default
+if
+else
+subroutine
+in
+out
+inout
+float
+double
+int
+void
+bool
+true
+false
+invariant
+precise
+discard
+return
+mat2 mat3 mat4
+mat2x2 mat2x3 mat2x4
+mat3x2 mat3x3 mat3x4
+mat4x2 mat4x3 mat4x4
+dmat2 dmat3 dmat4
+dmat2x2 dmat2x3 dmat2x4
+dmat3x2 dmat3x3 dmat3x4
+dmat4x2 dmat4x3 dmat4x4
+vec2 vec3 vec4
+ivec2 ivec3 ivec4
+bvec2 bvec3 bvec4
+dvec2 dvec3 dvec4
+uvec2 uvec3 uvec4
+uint
+lowp
+mediump
+highp
+precision
+sampler1D sampler2D sampler3D
+isampler1D isampler2D isampler3D
+usampler1D usampler2D usampler3D
+samplerCube isamplerCube usamplerCube
+sampler1DShadow sampler2DShadow
+samplerCubeShadow
+sampler1DArray sampler2DArray
+isampler1DArray isampler2DArray
+usampler1DArray usampler2DArray
+sampler1DArrayShadow sampler2DArrayShadow
+sampler2DRect isampler2DRect usampler2DRect
+sampler2DRectShadow
+samplerBuffer isamplerBuffer usamplerBuffer
+sampler2DMS isampler2DMS usampler2DMS
+sampler2DMSArray isampler2DMSArray usampler2DMSArray
+samplerCubeArray isamplerCubeArray usamplerCubeArray
+samplerCubeArrayShadow
+image1D image2D image3D
+iimage1D iimage2D iimage3D
+uimage1D uimage2D uimage3D
+image2DRect iimage2DRect uimage2DRect
+imageCube iimageCube uimageCube
+imageBuffer iimageBuffer uimageBuffer
+image1DArray image2DArray
+iimage1DArray iimage2DArray
+uimage1DArray uimage2DArray
+imageCubeArray iimageCubeArray uimageCubeArray
+image2DMS iimage2DMS uimage2DMS
+image2DMSArray iimage2DMSArray uimage2DMSArray
+struct
+common
+partition
+active
+asm
+class;
+union
+enum
+typedef
+template
+this
+resource
+goto
+inline
+noinline
+public
+static
+extern
+external
+interface;
+long
+short
+half
+fixed
+unsigned
+superp
+input
+output
+hvec2 hvec3 hvec4
+fvec2 fvec3 fvec4
+sampler3DRect
+filter
+sizeof
+cast
+namespace
+using
+
+----------------------------------------------------
+
+[
+	["keyword", "attribute"],
+	["keyword", "const"],
+	["keyword", "uniform"],
+	["keyword", "varying"],
+	["keyword", "buffer"],
+	["keyword", "shared"],
+	["keyword", "coherent"],
+	["keyword", "volatile"],
+	["keyword", "restrict"],
+	["keyword", "readonly"],
+	["keyword", "writeonly"],
+	["keyword", "atomic_uint"],
+	["keyword", "layout"],
+	["keyword", "centroid"],
+	["keyword", "flat"],
+	["keyword", "smooth"],
+	["keyword", "noperspective"],
+	["keyword", "patch"],
+	["keyword", "sample"],
+	["keyword", "break"],
+	["keyword", "continue"],
+	["keyword", "do"],
+	["keyword", "for"],
+	["keyword", "while"],
+	["keyword", "switch"],
+	["keyword", "case"],
+	["keyword", "default"],
+	["keyword", "if"],
+	["keyword", "else"],
+	["keyword", "subroutine"],
+	["keyword", "in"],
+	["keyword", "out"],
+	["keyword", "inout"],
+	["keyword", "float"],
+	["keyword", "double"],
+	["keyword", "int"],
+	["keyword", "void"],
+	["keyword", "bool"],
+	["keyword", "true"],
+	["keyword", "false"],
+	["keyword", "invariant"],
+	["keyword", "precise"],
+	["keyword", "discard"],
+	["keyword", "return"],
+	["keyword", "mat2"], ["keyword", "mat3"], ["keyword", "mat4"],
+	["keyword", "mat2x2"], ["keyword", "mat2x3"], ["keyword", "mat2x4"],
+	["keyword", "mat3x2"], ["keyword", "mat3x3"], ["keyword", "mat3x4"],
+	["keyword", "mat4x2"], ["keyword", "mat4x3"], ["keyword", "mat4x4"],
+	["keyword", "dmat2"], ["keyword", "dmat3"], ["keyword", "dmat4"],
+	["keyword", "dmat2x2"], ["keyword", "dmat2x3"], ["keyword", "dmat2x4"],
+	["keyword", "dmat3x2"], ["keyword", "dmat3x3"], ["keyword", "dmat3x4"],
+	["keyword", "dmat4x2"], ["keyword", "dmat4x3"], ["keyword", "dmat4x4"],
+	["keyword", "vec2"], ["keyword", "vec3"], ["keyword", "vec4"],
+	["keyword", "ivec2"], ["keyword", "ivec3"], ["keyword", "ivec4"],
+	["keyword", "bvec2"], ["keyword", "bvec3"], ["keyword", "bvec4"],
+	["keyword", "dvec2"], ["keyword", "dvec3"], ["keyword", "dvec4"],
+	["keyword", "uvec2"], ["keyword", "uvec3"], ["keyword", "uvec4"],
+	["keyword", "uint"],
+	["keyword", "lowp"],
+	["keyword", "mediump"],
+	["keyword", "highp"],
+	["keyword", "precision"],
+	["keyword", "sampler1D"], ["keyword", "sampler2D"], ["keyword", "sampler3D"],
+	["keyword", "isampler1D"], ["keyword", "isampler2D"], ["keyword", "isampler3D"],
+	["keyword", "usampler1D"], ["keyword", "usampler2D"], ["keyword", "usampler3D"],
+	["keyword", "samplerCube"], ["keyword", "isamplerCube"], ["keyword", "usamplerCube"],
+	["keyword", "sampler1DShadow"], ["keyword", "sampler2DShadow"],
+	["keyword", "samplerCubeShadow"],
+	["keyword", "sampler1DArray"], ["keyword", "sampler2DArray"],
+	["keyword", "isampler1DArray"], ["keyword", "isampler2DArray"],
+	["keyword", "usampler1DArray"], ["keyword", "usampler2DArray"],
+	["keyword", "sampler1DArrayShadow"], ["keyword", "sampler2DArrayShadow"],
+	["keyword", "sampler2DRect"], ["keyword", "isampler2DRect"], ["keyword", "usampler2DRect"],
+	["keyword", "sampler2DRectShadow"],
+	["keyword", "samplerBuffer"], ["keyword", "isamplerBuffer"], ["keyword", "usamplerBuffer"],
+	["keyword", "sampler2DMS"], ["keyword", "isampler2DMS"], ["keyword", "usampler2DMS"],
+	["keyword", "sampler2DMSArray"], ["keyword", "isampler2DMSArray"], ["keyword", "usampler2DMSArray"],
+	["keyword", "samplerCubeArray"], ["keyword", "isamplerCubeArray"], ["keyword", "usamplerCubeArray"],
+	["keyword", "samplerCubeArrayShadow"],
+	["keyword", "image1D"], ["keyword", "image2D"], ["keyword", "image3D"],
+	["keyword", "iimage1D"], ["keyword", "iimage2D"], ["keyword", "iimage3D"],
+	["keyword", "uimage1D"], ["keyword", "uimage2D"], ["keyword", "uimage3D"],
+	["keyword", "image2DRect"], ["keyword", "iimage2DRect"], ["keyword", "uimage2DRect"],
+	["keyword", "imageCube"], ["keyword", "iimageCube"], ["keyword", "uimageCube"],
+	["keyword", "imageBuffer"], ["keyword", "iimageBuffer"], ["keyword", "uimageBuffer"],
+	["keyword", "image1DArray"], ["keyword", "image2DArray"],
+	["keyword", "iimage1DArray"], ["keyword", "iimage2DArray"],
+	["keyword", "uimage1DArray"], ["keyword", "uimage2DArray"],
+	["keyword", "imageCubeArray"], ["keyword", "iimageCubeArray"], ["keyword", "uimageCubeArray"],
+	["keyword", "image2DMS"], ["keyword", "iimage2DMS"], ["keyword", "uimage2DMS"],
+	["keyword", "image2DMSArray"], ["keyword", "iimage2DMSArray"], ["keyword", "uimage2DMSArray"],
+	["keyword", "struct"],
+	["keyword", "common"],
+	["keyword", "partition"],
+	["keyword", "active"],
+	["keyword", "asm"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "union"],
+	["keyword", "enum"],
+	["keyword", "typedef"],
+	["keyword", "template"],
+	["keyword", "this"],
+	["keyword", "resource"],
+	["keyword", "goto"],
+	["keyword", "inline"],
+	["keyword", "noinline"],
+	["keyword", "public"],
+	["keyword", "static"],
+	["keyword", "extern"],
+	["keyword", "external"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "long"],
+	["keyword", "short"],
+	["keyword", "half"],
+	["keyword", "fixed"],
+	["keyword", "unsigned"],
+	["keyword", "superp"],
+	["keyword", "input"],
+	["keyword", "output"],
+	["keyword", "hvec2"], ["keyword", "hvec3"], ["keyword", "hvec4"],
+	["keyword", "fvec2"], ["keyword", "fvec3"], ["keyword", "fvec4"],
+	["keyword", "sampler3DRect"],
+	["keyword", "filter"],
+	["keyword", "sizeof"],
+	["keyword", "cast"],
+	["keyword", "namespace"],
+	["keyword", "using"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/glsl/number_feature.test b/node_modules/prismjs/tests/languages/glsl/number_feature.test
new file mode 100644
index 0000000..20ac4d1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/glsl/number_feature.test
@@ -0,0 +1,31 @@
+0xBadFace
+42
+3.14159
+3e8
+3.6e-7
+4.7E+12
+4u
+42U
+3.1l
+42f
+2.0LF
+
+----------------------------------------------------
+
+[
+	["number", "0xBadFace"],
+	["number", "42"],
+	["number", "3.14159"],
+	["number", "3e8"],
+	["number", "3.6e-7"],
+	["number", "4.7E+12"],
+	["number", "4u"],
+	["number", "42U"],
+	["number", "3.1l"],
+	["number", "42f"],
+	["number", "2.0LF"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test b/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test
new file mode 100644
index 0000000..a720d35
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test
@@ -0,0 +1,35 @@
+#define
+#undef
+#if
+#ifdef
+#ifndef
+#else
+#elif
+#endif
+#error
+#pragma
+#extension
+#version
+#line
+
+----------------------------------------------------
+
+[
+	["preprocessor", "#define"],
+	["preprocessor", "#undef"],
+	["preprocessor", "#if"],
+	["preprocessor", "#ifdef"],
+	["preprocessor", "#ifndef"],
+	["preprocessor", "#else"],
+	["preprocessor", "#elif"],
+	["preprocessor", "#endif"],
+	["preprocessor", "#error"],
+	["preprocessor", "#pragma"],
+	["preprocessor", "#extension"],
+	["preprocessor", "#version"],
+	["preprocessor", "#line"]
+]
+
+----------------------------------------------------
+
+Checks for preprocessor instructions.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/boolean_feature.test b/node_modules/prismjs/tests/languages/go/boolean_feature.test
new file mode 100644
index 0000000..1ee1192
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/boolean_feature.test
@@ -0,0 +1,19 @@
+_
+iota
+nil
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "_"],
+	["boolean", "iota"],
+	["boolean", "nil"],
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for all boolean values.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/builtin_feature.test b/node_modules/prismjs/tests/languages/go/builtin_feature.test
new file mode 100644
index 0000000..414018f
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/builtin_feature.test
@@ -0,0 +1,79 @@
+bool
+byte
+complex64
+complex128
+error
+float32
+float64
+rune
+string
+int
+int8
+int16
+int32
+int64
+uint
+uint8
+uint16
+uint32
+uint64
+uintptr
+append
+cap
+close
+complex
+copy
+delete
+imag
+len
+make
+new
+panic
+print
+println
+real
+recover
+
+----------------------------------------------------
+
+[
+	["builtin", "bool"],
+	["builtin", "byte"],
+	["builtin", "complex64"],
+	["builtin", "complex128"],
+	["builtin", "error"],
+	["builtin", "float32"],
+	["builtin", "float64"],
+	["builtin", "rune"],
+	["builtin", "string"],
+	["builtin", "int"],
+	["builtin", "int8"],
+	["builtin", "int16"],
+	["builtin", "int32"],
+	["builtin", "int64"],
+	["builtin", "uint"],
+	["builtin", "uint8"],
+	["builtin", "uint16"],
+	["builtin", "uint32"],
+	["builtin", "uint64"],
+	["builtin", "uintptr"],
+	["builtin", "append"],
+	["builtin", "cap"],
+	["builtin", "close"],
+	["builtin", "complex"],
+	["builtin", "copy"],
+	["builtin", "delete"],
+	["builtin", "imag"],
+	["builtin", "len"],
+	["builtin", "make"],
+	["builtin", "new"],
+	["builtin", "panic"],
+	["builtin", "print"],
+	["builtin", "println"],
+	["builtin", "real"],
+	["builtin", "recover"]
+]
+
+----------------------------------------------------
+
+Checks for all builtins.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/keyword_feature.test b/node_modules/prismjs/tests/languages/go/keyword_feature.test
new file mode 100644
index 0000000..a2799f7
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/keyword_feature.test
@@ -0,0 +1,59 @@
+break
+case
+chan
+const
+continue
+default
+defer
+else
+fallthrough
+for
+func
+go
+goto
+if
+import
+interface
+map
+package
+range
+return
+select
+struct
+switch
+type
+var
+
+----------------------------------------------------
+
+[
+	["keyword", "break"],
+	["keyword", "case"],
+	["keyword", "chan"],
+	["keyword", "const"],
+	["keyword", "continue"],
+	["keyword", "default"],
+	["keyword", "defer"],
+	["keyword", "else"],
+	["keyword", "fallthrough"],
+	["keyword", "for"],
+	["keyword", "func"],
+	["keyword", "go"],
+	["keyword", "goto"],
+	["keyword", "if"],
+	["keyword", "import"],
+	["keyword", "interface"],
+	["keyword", "map"],
+	["keyword", "package"],
+	["keyword", "range"],
+	["keyword", "return"],
+	["keyword", "select"],
+	["keyword", "struct"],
+	["keyword", "switch"],
+	["keyword", "type"],
+	["keyword", "var"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/number_feature.test b/node_modules/prismjs/tests/languages/go/number_feature.test
new file mode 100644
index 0000000..f21b3e8
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/number_feature.test
@@ -0,0 +1,43 @@
+42
+0600
+0xBadFace
+170141183460469231731687303715884105727
+72.40
+072.40
+2.71828
+1.e+0
+6.67428e-11
+1E6
+0i
+011i
+0.i
+2.71828i
+1.e+0i
+6.67428e-11i
+1E6i
+
+----------------------------------------------------
+
+[
+	["number", "42"],
+	["number", "0600"],
+	["number", "0xBadFace"],
+	["number", "170141183460469231731687303715884105727"],
+	["number", "72.40"],
+	["number", "072.40"],
+	["number", "2.71828"],
+	["number", "1.e+0"],
+	["number", "6.67428e-11"],
+	["number", "1E6"],
+	["number", "0i"],
+	["number", "011i"],
+	["number", "0.i"],
+	["number", "2.71828i"],
+	["number", "1.e+0i"],
+	["number", "6.67428e-11i"],
+	["number", "1E6i"]
+]
+
+----------------------------------------------------
+
+Checks for integers, floats and imaginary numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/operator_feature.test b/node_modules/prismjs/tests/languages/go/operator_feature.test
new file mode 100644
index 0000000..cda5386
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/operator_feature.test
@@ -0,0 +1,27 @@
+* / % ^ ! =
+*= /= %= ^= != ==
++ += ++
+- -= --
+| |= ||
+& &= && &^ &^=
+> >> >>= >=
+< << <<= <= <-
+:= ...
+
+----------------------------------------------------
+
+[
+	["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "^"], ["operator", "!"], ["operator", "="],
+	["operator", "*="], ["operator", "/="], ["operator", "%="], ["operator", "^="], ["operator", "!="], ["operator", "=="],
+	["operator", "+"], ["operator", "+="], ["operator", "++"],
+	["operator", "-"], ["operator", "-="], ["operator", "--"],
+	["operator", "|"], ["operator", "|="], ["operator", "||"],
+	["operator", "&"], ["operator", "&="], ["operator", "&&"], ["operator", "&^"], ["operator", "&^="],
+	["operator", ">"], ["operator", ">>"], ["operator", ">>="], ["operator", ">="],
+	["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<-"],
+	["operator", ":="], ["operator", "..."]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/go/string_feature.test b/node_modules/prismjs/tests/languages/go/string_feature.test
new file mode 100644
index 0000000..97e3960
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/go/string_feature.test
@@ -0,0 +1,37 @@
+'a'
+'ä'
+'本'
+'\t'
+'\xff'
+'\u12e4'
+
+`abc`
+`\n
+\n`
+"\n"
+"\""
+"Hello, world!\n"
+"日本語"
+"\xff\u00FF"
+
+----------------------------------------------------
+
+[
+	["string", "'a'"],
+	["string", "'ä'"],
+	["string", "'本'"],
+	["string", "'\\t'"],
+	["string", "'\\xff'"],
+	["string", "'\\u12e4'"],
+	["string", "`abc`"],
+	["string", "`\\n\r\n\\n`"],
+	["string", "\"\\n\""],
+	["string", "\"\\\"\""],
+	["string", "\"Hello, world!\\n\""],
+	["string", "\"日本語\""],
+	["string", "\"\\xff\\u00FF\""]
+]
+
+----------------------------------------------------
+
+Checks for runes and strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test b/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test
new file mode 100644
index 0000000..7f976e6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test
@@ -0,0 +1,27 @@
+{
+	zuck: user(id: 4) {
+		name
+	}
+}
+
+----------------------------------------------------
+
+[
+	["punctuation", "{"],
+	["attr-name", "zuck"],
+	["punctuation", ":"],
+	" user",
+	["punctuation", "("],
+	["attr-name", "id"],
+	["punctuation", ":"],
+	["number", "4"],
+	["punctuation", ")"],
+	["punctuation", "{"],
+	"\r\n\t\tname\r\n\t",
+	["punctuation", "}"],
+	["punctuation", "}"]
+]
+
+----------------------------------------------------
+
+Checks for aliases, parameter names, etc.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/boolean_feature.test b/node_modules/prismjs/tests/languages/graphql/boolean_feature.test
new file mode 100644
index 0000000..4019c44
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/boolean_feature.test
@@ -0,0 +1,13 @@
+true
+false
+
+----------------------------------------------------
+
+[
+	["boolean", "true"],
+	["boolean", "false"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/comment_feature.test b/node_modules/prismjs/tests/languages/graphql/comment_feature.test
new file mode 100644
index 0000000..054d602
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/comment_feature.test
@@ -0,0 +1,13 @@
+#
+# foobar
+
+----------------------------------------------------
+
+[
+	["comment", "#"],
+	["comment", "# foobar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/directive_feature.test b/node_modules/prismjs/tests/languages/graphql/directive_feature.test
new file mode 100644
index 0000000..ca9b700
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/directive_feature.test
@@ -0,0 +1,13 @@
+@skip
+@include
+
+----------------------------------------------------
+
+[
+	["directive", "@skip"],
+	["directive", "@include"]
+]
+
+----------------------------------------------------
+
+Checks for directives
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/keyword_feature.test b/node_modules/prismjs/tests/languages/graphql/keyword_feature.test
new file mode 100644
index 0000000..06d16f2
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/keyword_feature.test
@@ -0,0 +1,24 @@
+query
+fragment
+mutation
+fragment foo on Bar
+... on Foo
+
+----------------------------------------------------
+
+[
+	["keyword", "query"],
+	["keyword", "fragment"],
+	["keyword", "mutation"],
+	["keyword", "fragment"],
+	" foo ",
+	["keyword", "on"],
+	" Bar\r\n",
+	["operator", "..."],
+	["keyword", "on"],
+	" Foo"
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/number_feature.test b/node_modules/prismjs/tests/languages/graphql/number_feature.test
new file mode 100644
index 0000000..c58cc24
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/number_feature.test
@@ -0,0 +1,23 @@
+0
+42
+-5
+3.14159
+5e4
+6E-78
+0.3e+1
+
+----------------------------------------------------
+
+[
+	["number", "0"],
+	["number", "42"],
+	["number", "-5"],
+	["number", "3.14159"],
+	["number", "5e4"],
+	["number", "6E-78"],
+	["number", "0.3e+1"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/string_feature.test b/node_modules/prismjs/tests/languages/graphql/string_feature.test
new file mode 100644
index 0000000..a3d26be
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/string_feature.test
@@ -0,0 +1,15 @@
+""
+"foo bar"
+"foo\"bar\\baz"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"foo bar\""],
+	["string", "\"foo\\\"bar\\\\baz\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/graphql/variable_feature.test b/node_modules/prismjs/tests/languages/graphql/variable_feature.test
new file mode 100644
index 0000000..642d173
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/graphql/variable_feature.test
@@ -0,0 +1,13 @@
+$foo
+$Foo_bar42
+
+----------------------------------------------------
+
+[
+	["variable", "$foo"],
+	["variable", "$Foo_bar42"]
+]
+
+----------------------------------------------------
+
+Checks for variables.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/annotation_feature.test b/node_modules/prismjs/tests/languages/groovy/annotation_feature.test
new file mode 100644
index 0000000..f956c52
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/annotation_feature.test
@@ -0,0 +1,17 @@
+@BaseScript MyBaseClass baseScript
+@DelegatesTo(EmailSpec)
+
+----------------------------------------------------
+
+[
+	["annotation", "@BaseScript"],
+	" MyBaseClass baseScript\r\n",
+	["annotation", "@DelegatesTo"],
+	["punctuation", "("],
+	"EmailSpec",
+	["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for annotations.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/issue1049.js b/node_modules/prismjs/tests/languages/groovy/issue1049.js
new file mode 100644
index 0000000..2ce8153
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/issue1049.js
@@ -0,0 +1,8 @@
+module.exports = {
+	'"&"': '"&amp;"',
+	'"&&"': '"&amp;&amp;"',
+	'"<"': '"&lt;"',
+	'"<<"': '"&lt;&lt;"',
+	'"&lt;"': '"&amp;lt;"',
+	'">"': '"&gt;"',
+};
diff --git a/node_modules/prismjs/tests/languages/groovy/keyword_feature.test b/node_modules/prismjs/tests/languages/groovy/keyword_feature.test
new file mode 100644
index 0000000..57b7e16
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/keyword_feature.test
@@ -0,0 +1,61 @@
+as def in abstract
+assert boolean break
+byte case catch char
+class;
+const continue
+default do double else
+enum
+extends;
+final
+finally float for goto
+if
+implements;
+import
+instanceof;
+int
+interface;
+long native
+new;
+package private protected
+public return short
+static strictfp super
+switch synchronized this
+throw throws
+trait;
+transient
+try void volatile while
+
+----------------------------------------------------
+
+[
+	["keyword", "as"], ["keyword", "def"], ["keyword", "in"], ["keyword", "abstract"],
+	["keyword", "assert"], ["keyword", "boolean"], ["keyword", "break"],
+	["keyword", "byte"], ["keyword", "case"], ["keyword", "catch"], ["keyword", "char"],
+	["keyword", "class"], ["punctuation", ";"],
+	["keyword", "const"], ["keyword", "continue"],
+	["keyword", "default"], ["keyword", "do"], ["keyword", "double"], ["keyword", "else"],
+	["keyword", "enum"],
+	["keyword", "extends"], ["punctuation", ";"],
+	["keyword", "final"],
+	["keyword", "finally"], ["keyword", "float"], ["keyword", "for"], ["keyword", "goto"],
+	["keyword", "if"],
+	["keyword", "implements"], ["punctuation", ";"],
+	["keyword", "import"],
+	["keyword", "instanceof"], ["punctuation", ";"],
+	["keyword", "int"],
+	["keyword", "interface"], ["punctuation", ";"],
+	["keyword", "long"], ["keyword", "native"],
+	["keyword", "new"], ["punctuation", ";"],
+	["keyword", "package"], ["keyword", "private"], ["keyword", "protected"],
+	["keyword", "public"], ["keyword", "return"], ["keyword", "short"],
+	["keyword", "static"], ["keyword", "strictfp"], ["keyword", "super"],
+	["keyword", "switch"], ["keyword", "synchronized"], ["keyword", "this"],
+	["keyword", "throw"], ["keyword", "throws"],
+	["keyword", "trait"], ["punctuation", ";"],
+	["keyword", "transient"],
+	["keyword", "try"], ["keyword", "void"], ["keyword", "volatile"], ["keyword", "while"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/number_feature.test b/node_modules/prismjs/tests/languages/groovy/number_feature.test
new file mode 100644
index 0000000..bd12ff9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/number_feature.test
@@ -0,0 +1,43 @@
+0b0110
+0b0110_1111_0000
+0b01G 0b01L 0b01I
+0b01D 0b01F
+
+0xBABE
+0xBad_Face
+0x1.8p1
+0xa.fp-2
+
+42_000
+3.14_15_9
+1.2e3
+3E+1
+4E-2
+42g 42l 42i
+42d 42f
+
+----------------------------------------------------
+
+[
+	["number", "0b0110"],
+	["number", "0b0110_1111_0000"],
+	["number", "0b01G"], ["number", "0b01L"], ["number", "0b01I"],
+	["number", "0b01D"], ["number", "0b01F"],
+
+	["number", "0xBABE"],
+	["number", "0xBad_Face"],
+	["number", "0x1.8p1"],
+	["number", "0xa.fp-2"],
+
+	["number", "42_000"],
+	["number", "3.14_15_9"],
+	["number", "1.2e3"],
+	["number", "3E+1"],
+	["number", "4E-2"],
+	["number", "42g"], ["number", "42l"], ["number", "42i"],
+	["number", "42d"], ["number", "42f"]
+]
+
+----------------------------------------------------
+
+Checks for binary, hexadecimal and decimal numbers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/operator_feature.test b/node_modules/prismjs/tests/languages/groovy/operator_feature.test
new file mode 100644
index 0000000..cce07a9
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/operator_feature.test
@@ -0,0 +1,45 @@
+~
+= == =~ ==~
+? ?. ?:
+* ** *. *= **=
+. .@ .&
+5..8
+5..<8
+- -- -= ->
++ ++ +=
+! !=
+< << <<= <= <=>
+> >> >>> >>= >>>= >=
+& && &=
+| || |=
+/
+/=
+^ ^=
+% %=
+
+----------------------------------------------------
+
+[
+	["operator", "~"],
+	["operator", "="], ["operator", "=="], ["operator", "=~"], ["operator", "==~"],
+	["operator", "?"], ["operator", "?."], ["operator", "?:"],
+	["operator", "*"], ["operator", "**"], ["operator", "*."], ["operator", "*="], ["operator", "**="],
+	["operator", "."], ["operator", ".@"], ["operator", ".&"],
+	["number", "5"], ["operator", ".."], ["number", "8"],
+	["number", "5"], ["operator", "..<"], ["number", "8"],
+	["operator", "-"], ["operator", "--"], ["operator", "-="], ["operator", "->"],
+	["operator", "+"], ["operator", "++"], ["operator", "+="],
+	["operator", "!"], ["operator", "!="],
+	["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<=>"],
+	["operator", ">"], ["operator", ">>"], ["operator", ">>>"], ["operator", ">>="], ["operator", ">>>="], ["operator", ">="],
+	["operator", "&"], ["operator", "&&"], ["operator", "&="],
+	["operator", "|"], ["operator", "||"], ["operator", "|="],
+	["operator", "/"],
+	["operator", "/="],
+	["operator", "^"], ["operator", "^="],
+	["operator", "%"], ["operator", "%="]
+]
+
+----------------------------------------------------
+
+Checks for all operators.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/shebang_feature.test b/node_modules/prismjs/tests/languages/groovy/shebang_feature.test
new file mode 100644
index 0000000..c5806eb
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/shebang_feature.test
@@ -0,0 +1,13 @@
+#!foobar
+#!/usr/bin/env groovy
+
+----------------------------------------------------
+
+[
+	["shebang", "#!foobar"],
+	["shebang", "#!/usr/bin/env groovy"]
+]
+
+----------------------------------------------------
+
+Check for shebang comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test b/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test
new file mode 100644
index 0000000..5cc72fe
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test
@@ -0,0 +1,25 @@
+setup:
+given:
+when:
+then:
+and:
+cleanup:
+expect:
+where:
+
+----------------------------------------------------
+
+[
+	["spock-block", "setup:"],
+	["spock-block", "given:"],
+	["spock-block", "when:"],
+	["spock-block", "then:"],
+	["spock-block", "and:"],
+	["spock-block", "cleanup:"],
+	["spock-block", "expect:"],
+	["spock-block", "where:"]
+]
+
+----------------------------------------------------
+
+Checks for all spock blocks.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js b/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js
new file mode 100644
index 0000000..ddecdfd
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js
@@ -0,0 +1,28 @@
+module.exports = {
+	// Double quoted: interpolation
+	'"$foo"': '"$foo"',
+	'"${42}"': '"${42}"',
+	// Triple double quoted: interpolation
+	'"""$foo"""': '"""$foo"""',
+	'"""${42}"""': '"""${42}"""',
+	// Slashy string: interpolation
+	'/$foo/': '/$foo/',
+	'/${42}/': '/${42}/',
+	// Dollar slashy string: interpolation
+	'$/$foo/$': '$/$foo/$',
+	'$/${42}/$': '$/${42}/$',
+
+	// Double quoted: no interpolation (escaped)
+	'"\\$foo \\${42}"': '"\\$foo \\${42}"',
+	// Triple double quoted: no interpolation (escaped)
+	'"""\\$foo \\${42}"""': '"""\\$foo \\${42}"""',
+	// Slashy string: no interpolation (escaped)
+	'/\\$foo \\${42}/': '/\\$foo \\${42}/',
+	// Dollar slashy string: no interpolation (escaped)
+	'$/$$foo $${42}/$': '$/$$foo $${42}/$',
+
+	// Single quoted string: no interpolation
+	'\'$foo ${42}\'': '\'$foo ${42}\'',
+	// Triple single quoted string: no interpolation
+	'\'\'\'$foo ${42}\'\'\'': '\'\'\'$foo ${42}\'\'\''
+};
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/groovy/string_feature.test b/node_modules/prismjs/tests/languages/groovy/string_feature.test
new file mode 100644
index 0000000..639db82
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/groovy/string_feature.test
@@ -0,0 +1,60 @@
+""""""
+"""foo"""
+"""foo
+bar"""
+
+''''''
+'''foo'''
+'''foo
+bar'''
+
+""
+"fo\"o"
+''
+'fo\'o'
+
+/foo/
+/fo\/o/
+
+$/fo$/$o/$
+$/foo
+bar/$
+"foo /* comment */ bar"
+'foo // bar'
+'''foo
+/* comment */
+bar'''
+"""foo
+// comment
+bar"""
+
+----------------------------------------------------
+
+[
+	["string", "\"\"\"\"\"\""],
+	["string", "\"\"\"foo\"\"\""],
+	["string", "\"\"\"foo\r\nbar\"\"\""],
+	["string", "''''''"],
+	["string", "'''foo'''"],
+	["string", "'''foo\r\nbar'''"],
+
+	["string", "\"\""],
+	["string", "\"fo\\\"o\""],
+	["string", "''"],
+	["string", "'fo\\'o'"],
+
+	["string", "/foo/"],
+	["string", "/fo\\/o/"],
+
+	["string", "$/fo$/$o/$"],
+	["string", "$/foo\r\nbar/$"],
+	["string", "\"foo /* comment */ bar\""],
+	["string", "'foo // bar'"],
+	["string", "'''foo\r\n/* comment */\r\nbar'''"],
+	["string", "\"\"\"foo\r\n// comment\r\nbar\"\"\""]
+]
+
+----------------------------------------------------
+
+Checks for single quoted, triple single quoted, double quoted,
+triple double quoted, slashy and dollar slashy strings.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/haml/code_feature.test b/node_modules/prismjs/tests/languages/haml/code_feature.test
new file mode 100644
index 0000000..51315e6
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/code_feature.test
@@ -0,0 +1,19 @@
+~ 42
+- 42
+= 42
+&= 42
+!= 42
+
+----------------------------------------------------
+
+[
+	["punctuation", "~"], ["code", [["number", "42"]]],
+	["punctuation", "-"], ["code", [["number", "42"]]],
+	["punctuation", "="], ["code", [["number", "42"]]],
+	["punctuation", "&="], ["code", [["number", "42"]]],
+	["punctuation", "!="], ["code", [["number", "42"]]]
+]
+
+----------------------------------------------------
+
+Checks for single-line code.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/haml/doctype_feature.test b/node_modules/prismjs/tests/languages/haml/doctype_feature.test
new file mode 100644
index 0000000..5f5a731
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/doctype_feature.test
@@ -0,0 +1,15 @@
+!!!
+!!! 5
+!!! Strict
+
+----------------------------------------------------
+
+[
+	["doctype", "!!!"],
+	["doctype", "!!! 5"],
+	["doctype", "!!! Strict"]
+]
+
+----------------------------------------------------
+
+Checks for doctypes.
diff --git a/node_modules/prismjs/tests/languages/haml/interpolation_feature.test b/node_modules/prismjs/tests/languages/haml/interpolation_feature.test
new file mode 100644
index 0000000..ed13c87
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/interpolation_feature.test
@@ -0,0 +1,21 @@
+#{ 42 }
+#{ "foobar" }
+
+----------------------------------------------------
+
+[
+	["interpolation", [
+		["delimiter", "#{"],
+		["number", "42"],
+		["delimiter", "}"]
+	]],
+	["interpolation", [
+		["delimiter", "#{"],
+		["string", ["\"foobar\""]],
+		["delimiter", "}"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for interpolation in plain text.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test b/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test
new file mode 100644
index 0000000..06cb2b4
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test
@@ -0,0 +1,58 @@
+	~ 1,
+	  1,
+	  1
+~ 2 |
+  2 |
+  2 |
+
+- 3,
+  3,
+  3
+	- 4 |
+	  4 |
+	  4 |
+
+  = 5,
+    5,
+    5
+= 6 |
+  6 |
+  6 |
+
+&= 7,
+   7,
+   7
+  &= 8 |
+     8 |
+     8 |
+
+!= 9,
+   9,
+   9
+!= 10 |
+   10 |
+   10 |
+
+----------------------------------------------------
+
+[
+	["punctuation", "~"], ["multiline-code", [["number", "1"], ["punctuation", ","], ["number", "1"], ["punctuation", ","], ["number", "1"]]],
+	["punctuation", "~"], ["multiline-code", [["number", "2"], ["operator", "|"], ["number", "2"], ["operator", "|"], ["number", "2"], ["operator", "|"]]],
+    
+	["punctuation", "-"], ["multiline-code", [["number", "3"], ["punctuation", ","], ["number", "3"], ["punctuation", ","], ["number", "3"]]],
+    ["punctuation", "-"], ["multiline-code", [["number", "4"], ["operator", "|"], ["number", "4"], ["operator", "|"], ["number", "4"], ["operator", "|"]]],
+    
+    ["punctuation", "="], ["multiline-code", [["number", "5"], ["punctuation", ","], ["number", "5"], ["punctuation", ","], ["number", "5"]]],
+	["punctuation", "="], ["multiline-code", [["number", "6"], ["operator", "|"], ["number", "6"], ["operator", "|"], ["number", "6"], ["operator", "|"]]],
+	
+	["punctuation", "&="], ["multiline-code", [["number", "7"], ["punctuation", ","], ["number", "7"], ["punctuation", ","], ["number", "7"]]],
+	["punctuation", "&="], ["multiline-code", [["number", "8"], ["operator", "|"], ["number", "8"], ["operator", "|"], ["number", "8"], ["operator", "|"]]],
+	
+	["punctuation", "!="], ["multiline-code", [["number", "9"], ["punctuation", ","], ["number", "9"], ["punctuation", ","], ["number", "9"]]],
+	["punctuation", "!="], ["multiline-code", [["number", "10"], ["operator", "|"], ["number", "10"], ["operator", "|"], ["number", "10"], ["operator", "|"]]]
+]
+
+----------------------------------------------------
+
+Checks for inline code, with all possible prefixes, some not indented, some
+indented with two spaces, some indented with one tab.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test b/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test
new file mode 100644
index 0000000..809aaff
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test
@@ -0,0 +1,46 @@
+/
+
+/ foo
+
+/foo
+ bar
+
+  /foo
+   bar
+
+	/foo
+	 bar
+
+-#
+
+-# foo
+
+-#foo
+ bar
+
+  -#foo
+   bar
+
+	-#foo
+	 bar
+
+----------------------------------------------------
+
+[
+	["multiline-comment", "/"],
+	["multiline-comment", "/ foo"],
+	["multiline-comment", "/foo\r\n bar"],
+	["multiline-comment", "/foo\r\n   bar"],
+	["multiline-comment", "/foo\r\n\t bar"],
+
+	["multiline-comment", "-#"],
+    ["multiline-comment", "-# foo"],
+    ["multiline-comment", "-#foo\r\n bar"],
+    ["multiline-comment", "-#foo\r\n   bar"],
+    ["multiline-comment", "-#foo\r\n\t bar"]
+]
+
+----------------------------------------------------
+
+Checks for multi-line comments, not indented, indented with two spaces and
+indented with one tab.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/haml/tag_feature.test b/node_modules/prismjs/tests/languages/haml/tag_feature.test
new file mode 100644
index 0000000..e5927d0
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/haml/tag_feature.test
@@ -0,0 +1,161 @@
+%one
+	%two
+
+%div#things
+%div.articles
+%div.article.title
+
+%script{:type => "text/javascript",
+        :src  => "javascripts/script_#{42}"}
+
+%div{:id => [@item.type, @item.number]}
+
+%a(title=@title href=href)
+%input(selected)
+
+%html{html_attrs('fr-fr')}
+
+%div[@user, :greeting]
+	%bar[290]/
+
+%div#Article.article.entry{:id => @article.number}
+
+#collection
+	.item
+
+%br/
+%blockquote<
+%img>
+
+----------------------------------------------------
+
+[
+	["tag", ["%one"]],
+	["tag", ["%two"]],
+
+	["tag", ["%div#things"]],
+	["tag", ["%div.articles"]],
+	["tag", ["%div.article.title"]],
+
+	["tag", [
+		"%script",
+		["attributes", [
+			["punctuation", "{"],
+			["symbol", ":type"],
+			["operator", "="], ["operator", ">"],
+			["string", ["\"text/javascript\""]],
+			["punctuation", ","],
+			["symbol", ":src"],
+			["operator", "="], ["operator", ">"],
+			["string", [
+				"\"javascripts/script_",
+				["interpolation", [
+					["delimiter", "#{"],
+					["number", "42"],
+					["delimiter", "}"]
+				]],
+				"\""
+			]],
+			["punctuation", "}"]
+		]]
+	]],
+
+	["tag", [
+		"%div",
+		["attributes", [
+			["punctuation", "{"],
+			["symbol", ":id"],
+			["operator", "="], ["operator", ">"],
+			["punctuation", "["],
+			["variable", "@item"],
+			["punctuation", "."],
+			"type",
+			["punctuation", ","],
+			["variable", "@item"],
+			["punctuation", "."],
+			"number",
+			["punctuation", "]"],
+			["punctuation", "}"]
+		]]
+	]],
+
+	["tag", [
+		"%a",
+		["attributes", [
+			["punctuation", "("],
+			["attr-name", "title"],
+			["punctuation", "="],
+			["attr-value", "@title"],
+			["attr-name", "href"],
+			["punctuation", "="],
+            ["attr-value", "href"],
+            ["punctuation", ")"]
+		]]
+	]],
+	["tag", [
+		"%input",
+		["attributes", [
+			["punctuation", "("],
+			["attr-name", "selected"],
+			["punctuation", ")"]
+		]]
+	]],
+
+	["tag", [
+		"%html",
+		["attributes", [
+			["punctuation", "{"],
+			["function", "html_attrs"],
+			["punctuation", "("],
+			["string", ["'fr-fr'"]],
+			["punctuation", ")"],
+			["punctuation", "}"]
+		]]
+	]],
+
+	["tag", [
+		"%div",
+		["attributes", [
+			["punctuation", "["],
+			["variable", "@user"],
+			["punctuation", ","],
+			["symbol", ":greeting"],
+			["punctuation", "]"]
+		]]
+	]],
+	["tag", [
+		"%bar",
+		["attributes", [
+			["punctuation", "["],
+			["number", "290"],
+			["punctuation", "]"]
+		]],
+		"/"
+	]],
+
+	["tag", [
+		"%div#Article.article.entry",
+		["attributes", [
+			["punctuation", "{"],
+			["symbol", ":id"],
+			["operator", "="], ["operator", ">"],
+			["variable", "@article"],
+			["punctuation", "."],
+			"number",
+			["punctuation", "}"]
+		]]
+	]],
+
+	["tag", ["#collection"]],
+	["tag", [".item"]],
+
+	["tag", ["%br/"]],
+	["tag", ["%blockquote", ["punctuation", "<"]]],
+	["tag", ["%img", ["punctuation", ">"]]]
+]
+
+----------------------------------------------------
+
+Checks for tags: basic element names, attributes, html-style attributes,
+attribute methods, boolean attributes, class and id shortcuts,
+implicit div elements, empty tags and whitespace removal.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test b/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test
new file mode 100644
index 0000000..f95ba77
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test
@@ -0,0 +1,15 @@
+:handlebars
+	{{!comment}}
+
+----------------------------------------------------
+
+[
+	["filter-handlebars", [
+		["filter-name", ":handlebars"],
+		["handlebars-comment", "{{!comment}}"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for handlebars filter in Jade.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/handlebars/block_feature.test b/node_modules/prismjs/tests/languages/handlebars/block_feature.test
new file mode 100644
index 0000000..dd2c74e
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/handlebars/block_feature.test
@@ -0,0 +1,23 @@
+{{#each comments}}{{/each}}
+{{~#if isActive~}}{{~/if~}}
+
+----------------------------------------------------
+
+[
+	["handlebars", [
+		["delimiter", "{{"], ["block", "#each"], ["variable", "comments"], ["delimiter", "}}"]
+	]],
+	["handlebars", [
+		["delimiter", "{{"], ["block", "/each"], ["delimiter", "}}"]
+	]],
+	["handlebars", [
+		["delimiter", "{{"], ["punctuation", "~"], ["block", "#if"], ["variable", "isActive"], ["punctuation", "~"], ["delimiter", "}}"]
+	]],
+	["handlebars", [
+		["delimiter", "{{"], ["punctuation", "~"], ["block", "/if"], ["punctuation", "~"], ["delimiter", "}}"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for block helpers.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test b/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test
new file mode 100644
index 0000000..1f252a1
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test
@@ -0,0 +1,17 @@
+{{ true }}
+{{{ false }}}
+
+----------------------------------------------------
+
+[
+	["handlebars", [
+		["delimiter", "{{"], ["boolean", "true"], ["delimiter", "}}"]
+	]],
+	["handlebars", [
+		["delimiter", "{{{"], ["boolean", "false"], ["delimiter", "}}}"]
+	]]
+]
+
+----------------------------------------------------
+
+Checks for all booleans.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/handlebars/comment_feature.test b/node_modules/prismjs/tests/languages/handlebars/comment_feature.test
new file mode 100644
index 0000000..813f978
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/handlebars/comment_feature.test
@@ -0,0 +1,19 @@
+{{! foobar}}
+{{!-- foo bar baz --}}
+{{! foo
+bar }}
+{{!-- foo
+bar --}}
+
+----------------------------------------------------
+
+[
+	["handlebars-comment", "{{! foobar}}"],
+	["handlebars-comment", "{{!-- foo bar baz --}}"],
+	["handlebars-comment", "{{! foo\r\nbar }}"],
+	["handlebars-comment", "{{!-- foo\r\nbar --}}"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js b/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js
new file mode 100644
index 0000000..13f51db
--- /dev/null
+++ b/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js
@@ -0,0 +1,4 @@
+module.exports = {
+	'
{{{intro}}}
': '<div>{{{intro}}}</div>', + '
': '<div class="{{foo}}">' +}; \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/handlebars/number_feature.test b/node_modules/prismjs/tests/languages/handlebars/number_feature.test new file mode 100644 index 0000000..aa894ec --- /dev/null +++ b/node_modules/prismjs/tests/languages/handlebars/number_feature.test @@ -0,0 +1,29 @@ +{{ 0xBadFace }} +{{{ 42 }}} +{{{ 4e2 }}} +{{ 3.5e+1 }} +{{ 0.15e-9 }} + +---------------------------------------------------- + +[ + ["handlebars", [ + ["delimiter", "{{"], ["number", "0xBadFace"], ["delimiter", "}}"] + ]], + ["handlebars", [ + ["delimiter", "{{{"], ["number", "42"], ["delimiter", "}}}"] + ]], + ["handlebars", [ + ["delimiter", "{{{"], ["number", "4e2"], ["delimiter", "}}}"] + ]], + ["handlebars", [ + ["delimiter", "{{"], ["number", "3.5e+1"], ["delimiter", "}}"] + ]], + ["handlebars", [ + ["delimiter", "{{"], ["number", "0.15e-9"], ["delimiter", "}}"] + ]] +] + +---------------------------------------------------- + +Checks for decimal and hexadecimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/handlebars/string_feature.test b/node_modules/prismjs/tests/languages/handlebars/string_feature.test new file mode 100644 index 0000000..f9f9d70 --- /dev/null +++ b/node_modules/prismjs/tests/languages/handlebars/string_feature.test @@ -0,0 +1,25 @@ +{{ "" }} +{{{''}}} +{{{"foobar"}}} +{{ 'foobar' }} + +---------------------------------------------------- + +[ + ["handlebars", [ + ["delimiter", "{{"], ["string", "\"\""], ["delimiter", "}}"] + ]], + ["handlebars", [ + ["delimiter", "{{{"], ["string", "''"], ["delimiter", "}}}"] + ]], + ["handlebars", [ + ["delimiter", "{{{"], ["string", "\"foobar\""], ["delimiter", "}}}"] + ]], + ["handlebars", [ + ["delimiter", "{{"], ["string", "'foobar'"], ["delimiter", "}}"] + ]] +] + +---------------------------------------------------- + +Checks for strings \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/builtin_feature.test b/node_modules/prismjs/tests/languages/haskell/builtin_feature.test new file mode 100644 index 0000000..c50ca40 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/builtin_feature.test @@ -0,0 +1,137 @@ +abs acos acosh all and +any appendFile approxRational +asTypeOf asin asinh atan +atan2 atanh basicIORun break +catch ceiling chr compare +concat concatMap const +cos cosh curry cycle +decodeFloat denominator +digitToInt div divMod +drop dropWhile either +elem encodeFloat enumFrom +enumFromThen enumFromThenTo +enumFromTo error even exp +exponent fail filter flip +floatDigits floatRadix +floatRange floor fmap +foldl foldl1 foldr foldr1 +fromDouble fromEnum fromInt +fromInteger fromIntegral +fromRational fst gcd +getChar getContents getLine +group head id inRange index +init intToDigit interact +ioError isAlpha isAlphaNum +isAscii isControl isDenormalized +isDigit isHexDigit isIEEE +isInfinite isLower isNaN +isNegativeZero isOctDigit +isPrint isSpace isUpper iterate +last lcm length lex +lexDigits lexLitChar lines +log logBase lookup map +mapM mapM_ max maxBound +maximum maybe min minBound +minimum mod negate not +notElem null numerator odd +or ord otherwise pack pi +pred primExitWith print +product properFraction +putChar putStr putStrLn quot +quotRem range rangeSize read +readDec readFile readFloat readHex +readIO readInt readList +readLitChar readLn readOct +readParen readSigned reads +readsPrec realToFrac recip +rem repeat replicate return +reverse round scaleFloat +scanl scanl1 scanr scanr1 +seq sequence sequence_ show +showChar showInt showList +showLitChar showParen showSigned +showString shows showsPrec +significand signum sin sinh +snd sort span splitAt sqrt +subtract succ sum tail take +takeWhile tan tanh threadToIOResult +toEnum toInt toInteger +toLower toRational toUpper +truncate uncurry undefined +unlines until unwords +unzip unzip3 userError words +writeFile zip zip3 zipWith +zipWith3 + +---------------------------------------------------- + +[ + ["builtin", "abs"], ["builtin", "acos"], ["builtin", "acosh"], ["builtin", "all"], ["builtin", "and"], + ["builtin", "any"], ["builtin", "appendFile"], ["builtin", "approxRational"], + ["builtin", "asTypeOf"], ["builtin", "asin"], ["builtin", "asinh"], ["builtin", "atan"], + ["builtin", "atan2"], ["builtin", "atanh"], ["builtin", "basicIORun"], ["builtin", "break"], + ["builtin", "catch"], ["builtin", "ceiling"], ["builtin", "chr"], ["builtin", "compare"], + ["builtin", "concat"], ["builtin", "concatMap"], ["builtin", "const"], + ["builtin", "cos"], ["builtin", "cosh"], ["builtin", "curry"], ["builtin", "cycle"], + ["builtin", "decodeFloat"], ["builtin", "denominator"], + ["builtin", "digitToInt"], ["builtin", "div"], ["builtin", "divMod"], + ["builtin", "drop"], ["builtin", "dropWhile"], ["builtin", "either"], + ["builtin", "elem"], ["builtin", "encodeFloat"], ["builtin", "enumFrom"], + ["builtin", "enumFromThen"], ["builtin", "enumFromThenTo"], + ["builtin", "enumFromTo"], ["builtin", "error"], ["builtin", "even"], ["builtin", "exp"], + ["builtin", "exponent"], ["builtin", "fail"], ["builtin", "filter"], ["builtin", "flip"], + ["builtin", "floatDigits"], ["builtin", "floatRadix"], + ["builtin", "floatRange"], ["builtin", "floor"], ["builtin", "fmap"], + ["builtin", "foldl"], ["builtin", "foldl1"], ["builtin", "foldr"], ["builtin", "foldr1"], + ["builtin", "fromDouble"], ["builtin", "fromEnum"], ["builtin", "fromInt"], + ["builtin", "fromInteger"], ["builtin", "fromIntegral"], + ["builtin", "fromRational"], ["builtin", "fst"], ["builtin", "gcd"], + ["builtin", "getChar"], ["builtin", "getContents"], ["builtin", "getLine"], + ["builtin", "group"], ["builtin", "head"], ["builtin", "id"], ["builtin", "inRange"], ["builtin", "index"], + ["builtin", "init"], ["builtin", "intToDigit"], ["builtin", "interact"], + ["builtin", "ioError"], ["builtin", "isAlpha"], ["builtin", "isAlphaNum"], + ["builtin", "isAscii"], ["builtin", "isControl"], ["builtin", "isDenormalized"], + ["builtin", "isDigit"], ["builtin", "isHexDigit"], ["builtin", "isIEEE"], + ["builtin", "isInfinite"], ["builtin", "isLower"], ["builtin", "isNaN"], + ["builtin", "isNegativeZero"], ["builtin", "isOctDigit"], + ["builtin", "isPrint"], ["builtin", "isSpace"], ["builtin", "isUpper"], ["builtin", "iterate"], + ["builtin", "last"], ["builtin", "lcm"], ["builtin", "length"], ["builtin", "lex"], + ["builtin", "lexDigits"], ["builtin", "lexLitChar"], ["builtin", "lines"], + ["builtin", "log"], ["builtin", "logBase"], ["builtin", "lookup"], ["builtin", "map"], + ["builtin", "mapM"], ["builtin", "mapM_"], ["builtin", "max"], ["builtin", "maxBound"], + ["builtin", "maximum"], ["builtin", "maybe"], ["builtin", "min"], ["builtin", "minBound"], + ["builtin", "minimum"], ["builtin", "mod"], ["builtin", "negate"], ["builtin", "not"], + ["builtin", "notElem"], ["builtin", "null"], ["builtin", "numerator"], ["builtin", "odd"], + ["builtin", "or"], ["builtin", "ord"], ["builtin", "otherwise"], ["builtin", "pack"], ["builtin", "pi"], + ["builtin", "pred"], ["builtin", "primExitWith"], ["builtin", "print"], + ["builtin", "product"], ["builtin", "properFraction"], + ["builtin", "putChar"], ["builtin", "putStr"], ["builtin", "putStrLn"], ["builtin", "quot"], + ["builtin", "quotRem"], ["builtin", "range"], ["builtin", "rangeSize"], ["builtin", "read"], + ["builtin", "readDec"], ["builtin", "readFile"], ["builtin", "readFloat"], ["builtin", "readHex"], + ["builtin", "readIO"], ["builtin", "readInt"], ["builtin", "readList"], + ["builtin", "readLitChar"], ["builtin", "readLn"], ["builtin", "readOct"], + ["builtin", "readParen"], ["builtin", "readSigned"], ["builtin", "reads"], + ["builtin", "readsPrec"], ["builtin", "realToFrac"], ["builtin", "recip"], + ["builtin", "rem"], ["builtin", "repeat"], ["builtin", "replicate"], ["builtin", "return"], + ["builtin", "reverse"], ["builtin", "round"], ["builtin", "scaleFloat"], + ["builtin", "scanl"], ["builtin", "scanl1"], ["builtin", "scanr"], ["builtin", "scanr1"], + ["builtin", "seq"], ["builtin", "sequence"], ["builtin", "sequence_"], ["builtin", "show"], + ["builtin", "showChar"], ["builtin", "showInt"], ["builtin", "showList"], + ["builtin", "showLitChar"], ["builtin", "showParen"], ["builtin", "showSigned"], + ["builtin", "showString"], ["builtin", "shows"], ["builtin", "showsPrec"], + ["builtin", "significand"], ["builtin", "signum"], ["builtin", "sin"], ["builtin", "sinh"], + ["builtin", "snd"], ["builtin", "sort"], ["builtin", "span"], ["builtin", "splitAt"], ["builtin", "sqrt"], + ["builtin", "subtract"], ["builtin", "succ"], ["builtin", "sum"], ["builtin", "tail"], ["builtin", "take"], + ["builtin", "takeWhile"], ["builtin", "tan"], ["builtin", "tanh"], ["builtin", "threadToIOResult"], + ["builtin", "toEnum"], ["builtin", "toInt"], ["builtin", "toInteger"], + ["builtin", "toLower"], ["builtin", "toRational"], ["builtin", "toUpper"], + ["builtin", "truncate"], ["builtin", "uncurry"], ["builtin", "undefined"], + ["builtin", "unlines"], ["builtin", "until"], ["builtin", "unwords"], + ["builtin", "unzip"], ["builtin", "unzip3"], ["builtin", "userError"], ["builtin", "words"], + ["builtin", "writeFile"], ["builtin", "zip"], ["builtin", "zip3"], ["builtin", "zipWith"], + ["builtin", "zipWith3"] +] + +---------------------------------------------------- + +Checks for all builtin. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/char_feature.test b/node_modules/prismjs/tests/languages/haskell/char_feature.test new file mode 100644 index 0000000..e4dedc4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/char_feature.test @@ -0,0 +1,17 @@ +'a' +'\n' +'\23' +'\xFE' + +---------------------------------------------------- + +[ + ["char", "'a'"], + ["char", "'\\n'"], + ["char", "'\\23'"], + ["char", "'\\xFE'"] +] + +---------------------------------------------------- + +Checks for chars. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/comment_feature.test b/node_modules/prismjs/tests/languages/haskell/comment_feature.test new file mode 100644 index 0000000..d8c8cdd --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/comment_feature.test @@ -0,0 +1,14 @@ +-- foo +{- foo +bar -} + +---------------------------------------------------- + +[ + ["comment", "-- foo"], + ["comment", "{- foo\r\nbar -}"] +] + +---------------------------------------------------- + +Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/constant_feature.test b/node_modules/prismjs/tests/languages/haskell/constant_feature.test new file mode 100644 index 0000000..06f25f1 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/constant_feature.test @@ -0,0 +1,15 @@ +Foo +Foo.Bar +Baz.Foobar_42 + +---------------------------------------------------- + +[ + ["constant", "Foo"], + ["constant", "Foo.Bar"], + ["constant", "Baz.Foobar_42"] +] + +---------------------------------------------------- + +Checks for constants. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test b/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test new file mode 100644 index 0000000..defa3ba --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test @@ -0,0 +1,15 @@ +foo +Foo.bar +Baz.foobar_42 + +---------------------------------------------------- + +[ + ["hvariable", "foo"], + ["hvariable", "Foo.bar"], + ["hvariable", "Baz.foobar_42"] +] + +---------------------------------------------------- + +Checks for hvariables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test b/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test new file mode 100644 index 0000000..120fbe7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test @@ -0,0 +1,35 @@ +import Foo +import qualified Foobar +import Foo_42.Bar as Foobar +import Foo.Bar as Foo.Baz hiding + +---------------------------------------------------- + +[ + ["import_statement", [ + ["keyword", "import"], + " Foo" + ]], + ["import_statement", [ + ["keyword", "import"], + ["keyword", "qualified"], + " Foobar" + ]], + ["import_statement", [ + ["keyword", "import"], + " Foo_42.Bar ", + ["keyword", "as"], + " Foobar" + ]], + ["import_statement", [ + ["keyword", "import"], + " Foo.Bar ", + ["keyword", "as"], + " Foo.Baz ", + ["keyword", "hiding"] + ]] +] + +---------------------------------------------------- + +Checks for import statement. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/keyword_feature.test b/node_modules/prismjs/tests/languages/haskell/keyword_feature.test new file mode 100644 index 0000000..0fb3657 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/keyword_feature.test @@ -0,0 +1,19 @@ +case class data deriving +do else if in infixl +infixr instance let +module newtype of +primitive then type where + +---------------------------------------------------- + +[ + ["keyword", "case"], ["keyword", "class"], ["keyword", "data"], ["keyword", "deriving"], + ["keyword", "do"], ["keyword", "else"], ["keyword", "if"], ["keyword", "in"], ["keyword", "infixl"], + ["keyword", "infixr"], ["keyword", "instance"], ["keyword", "let"], + ["keyword", "module"], ["keyword", "newtype"], ["keyword", "of"], + ["keyword", "primitive"], ["keyword", "then"], ["keyword", "type"], ["keyword", "where"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/number_feature.test b/node_modules/prismjs/tests/languages/haskell/number_feature.test new file mode 100644 index 0000000..f45a0f2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/number_feature.test @@ -0,0 +1,23 @@ +42 +3.14159 +2E3 +1.2e-4 +0.9e+1 +0o47 +0xBadFace + +---------------------------------------------------- + +[ + ["number", "42"], + ["number", "3.14159"], + ["number", "2E3"], + ["number", "1.2e-4"], + ["number", "0.9e+1"], + ["number", "0o47"], + ["number", "0xBadFace"] +] + +---------------------------------------------------- + +Checks for decimal, octal and hexadecimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/operator_feature.test b/node_modules/prismjs/tests/languages/haskell/operator_feature.test new file mode 100644 index 0000000..9cd8339 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/operator_feature.test @@ -0,0 +1,37 @@ +.. +reverse . sort +`foo` +`Foo.bar` ++ - * / +^ ^^ ** +&& || +< <= == /= +>= > \ | +++ : !! +\\ <- -> += :: => +>> >>= >@> +~ ! @ + +---------------------------------------------------- + +[ + ["operator", ".."], + ["builtin", "reverse"], ["operator", " . "], ["builtin", "sort"], + ["operator", "`foo`"], + ["operator", "`Foo.bar`"], + ["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], + ["operator", "^"], ["operator", "^^"], ["operator", "**"], + ["operator", "&&"], ["operator", "||"], + ["operator", "<"], ["operator", "<="], ["operator", "=="], ["operator", "/="], + ["operator", ">="], ["operator", ">"], ["operator", "\\"], ["operator", "|"], + ["operator", "++"], ["operator", ":"], ["operator", "!!"], + ["operator", "\\\\"], ["operator", "<-"], ["operator", "->"], + ["operator", "="], ["operator", "::"], ["operator", "=>"], + ["operator", ">>"], ["operator", ">>="], ["operator", ">@>"], + ["operator", "~"], ["operator", "!"], ["operator", "@"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/string_feature.test b/node_modules/prismjs/tests/languages/haskell/string_feature.test new file mode 100644 index 0000000..49c2cfb --- /dev/null +++ b/node_modules/prismjs/tests/languages/haskell/string_feature.test @@ -0,0 +1,19 @@ +"" +"fo\"o" +"foo \ + \ bar" +"foo -- comment \ + \ bar" + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"fo\\\"o\""], + ["string", "\"foo \\\r\n \\ bar\""], + ["string", "\"foo -- comment \\\r\n \\ bar\""] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/keyword_feature.test b/node_modules/prismjs/tests/languages/haxe/keyword_feature.test new file mode 100644 index 0000000..6a26bd0 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/keyword_feature.test @@ -0,0 +1,93 @@ +this +abstract +as +break +case +cast +catch +class +continue +default +do +dynamic +else +enum +extends +extern +from +for +function +if +implements +import +in +inline +interface +macro +new +null +override +public +private +return +static +super +switch +throw +to +try +typedef +using +var +while + +---------------------------------------------------- + +[ + ["keyword", "this"], + ["keyword", "abstract"], + ["keyword", "as"], + ["keyword", "break"], + ["keyword", "case"], + ["keyword", "cast"], + ["keyword", "catch"], + ["keyword", "class"], + ["keyword", "continue"], + ["keyword", "default"], + ["keyword", "do"], + ["keyword", "dynamic"], + ["keyword", "else"], + ["keyword", "enum"], + ["keyword", "extends"], + ["keyword", "extern"], + ["keyword", "from"], + ["keyword", "for"], + ["keyword", "function"], + ["keyword", "if"], + ["keyword", "implements"], + ["keyword", "import"], + ["keyword", "in"], + ["keyword", "inline"], + ["keyword", "interface"], + ["keyword", "macro"], + ["keyword", "new"], + ["keyword", "null"], + ["keyword", "override"], + ["keyword", "public"], + ["keyword", "private"], + ["keyword", "return"], + ["keyword", "static"], + ["keyword", "super"], + ["keyword", "switch"], + ["keyword", "throw"], + ["keyword", "to"], + ["keyword", "try"], + ["keyword", "typedef"], + ["keyword", "using"], + ["keyword", "var"], + ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/metadata_feature.test b/node_modules/prismjs/tests/languages/haxe/metadata_feature.test new file mode 100644 index 0000000..312114d --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/metadata_feature.test @@ -0,0 +1,15 @@ +@author("Nicolas") +@debug +@:noCompletion + +---------------------------------------------------- + +[ + ["metadata", "@author"], ["punctuation", "("], ["string", ["\"Nicolas\""]], ["punctuation", ")"], + ["metadata", "@debug"], + ["metadata", "@:noCompletion"] +] + +---------------------------------------------------- + +Checks for metadata. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/operator_feature.test b/node_modules/prismjs/tests/languages/haxe/operator_feature.test new file mode 100644 index 0000000..6963f80 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/operator_feature.test @@ -0,0 +1,29 @@ +... ++ ++ +- -- -> += == +! != +& && +| || +< <= << +> >= >> +* / % ~ ^ + +---------------------------------------------------- + +[ + ["operator", "..."], + ["operator", "+"], ["operator", "++"], + ["operator", "-"], ["operator", "--"], ["operator", "->"], + ["operator", "="], ["operator", "=="], + ["operator", "!"], ["operator", "!="], + ["operator", "&"], ["operator", "&&"], + ["operator", "|"], ["operator", "||"], + ["operator", "<"], ["operator", "<="], ["operator", "<<"], + ["operator", ">"], ["operator", ">="], ["operator", ">>"], + ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "~"], ["operator", "^"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test b/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test new file mode 100644 index 0000000..3cadacf --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test @@ -0,0 +1,17 @@ +#if +#elseif +#else +#end + +---------------------------------------------------- + +[ + ["preprocessor", "#if"], + ["preprocessor", "#elseif"], + ["preprocessor", "#else"], + ["preprocessor", "#end"] +] + +---------------------------------------------------- + +Checks for preprocessor directives. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/regex_feature.test b/node_modules/prismjs/tests/languages/haxe/regex_feature.test new file mode 100644 index 0000000..577cab7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/regex_feature.test @@ -0,0 +1,15 @@ +~/ha\/xe/i +~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i +~/(dog|fox)/igmsu + +---------------------------------------------------- + +[ + ["regex", "~/ha\\/xe/i"], + ["regex", "~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i"], + ["regex", "~/(dog|fox)/igmsu"] +] + +---------------------------------------------------- + +Checks for regexes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/reification_feature.test b/node_modules/prismjs/tests/languages/haxe/reification_feature.test new file mode 100644 index 0000000..6d382b7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/reification_feature.test @@ -0,0 +1,16 @@ +$e +${4+2} + +---------------------------------------------------- + +[ + ["reification", "$e"], + ["reification", "$"], + ["punctuation", "{"], + ["number", "4"], ["operator", "+"], ["number", "2"], + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for reification. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/string_feature.test b/node_modules/prismjs/tests/languages/haxe/string_feature.test new file mode 100644 index 0000000..61f1985 --- /dev/null +++ b/node_modules/prismjs/tests/languages/haxe/string_feature.test @@ -0,0 +1,37 @@ +"" +"Foo +\"bar\" +baz" +"$bar ${4+2}" +'' +'Foo +\'bar\' +baz' + +---------------------------------------------------- + +[ + ["string", ["\"\""]], + ["string", ["\"Foo\r\n\\\"bar\\\"\r\nbaz\""]], + ["string", [ + "\"", + ["interpolation", [ + ["interpolation", "$bar"] + ]], + ["interpolation", [ + ["interpolation", "$"], + ["punctuation", "{"], + ["number", "4"], + ["operator", "+"], + ["number", "2"], + ["punctuation", "}"] + ]], + "\"" + ]], + ["string", ["''"]], + ["string", ["'Foo\r\n\\'bar\\'\r\nbaz'"]] +] + +---------------------------------------------------- + +Checks for strings and string interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/header-name_feature.test b/node_modules/prismjs/tests/languages/http/header-name_feature.test new file mode 100644 index 0000000..cd2612f --- /dev/null +++ b/node_modules/prismjs/tests/languages/http/header-name_feature.test @@ -0,0 +1,24 @@ +Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 +Accept-Encoding: gzip, deflate +Server: GitHub.com +Date: Mon, 22 Dec 2014 18:25:30 GMT +Content-Type: text/html; charset=utf-8 + +---------------------------------------------------- + +[ + ["header-name", "Accept-Language:"], + " fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n", + ["header-name", "Accept-Encoding:"], + " gzip, deflate\r\n", + ["header-name", "Server:"], + " GitHub.com\r\n", + ["header-name", "Date:"], + " Mon, 22 Dec 2014 18:25:30 GMT\r\n", + ["header-name", "Content-Type:"], + " text/html; charset=utf-8" +] + +---------------------------------------------------- + +Checks for header names. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/request-line_feature.test b/node_modules/prismjs/tests/languages/http/request-line_feature.test new file mode 100644 index 0000000..e234374 --- /dev/null +++ b/node_modules/prismjs/tests/languages/http/request-line_feature.test @@ -0,0 +1,51 @@ +POST http://example.com HTTP/1.0 +GET http://localhost:9999/foo.html HTTP/1.1 +PUT http://www.example.com HTTP/2.0 +DELETE https://example.com HTTP/1.1 +OPTIONS https://www.example.com HTTP/1.1 +PATCH http://example.com HTTP/1.0 +TRACE http://example.com HTTP/1.0 +CONNECT http://example.com HTTP/1.0 + +---------------------------------------------------- + +[ + ["request-line", [ + ["property", "POST"], + " http://example.com HTTP/1.0" + ]], + ["request-line", [ + ["property", "GET"], + " http://localhost", + ["attr-name", ":9999"], + "/foo.html HTTP/1.1" + ]], + ["request-line", [ + ["property", "PUT"], + " http://www.example.com HTTP/2.0" + ]], + ["request-line", [ + ["property", "DELETE"], + " https://example.com HTTP/1.1" + ]], + ["request-line", [ + ["property", "OPTIONS"], + " https://www.example.com HTTP/1.1" + ]], + ["request-line", [ + ["property", "PATCH"], + " http://example.com HTTP/1.0" + ]], + ["request-line", [ + ["property", "TRACE"], + " http://example.com HTTP/1.0" + ]], + ["request-line", [ + ["property", "CONNECT"], + " http://example.com HTTP/1.0" + ]] +] + +---------------------------------------------------- + +Checks for request lines. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/response-status_feature.test b/node_modules/prismjs/tests/languages/http/response-status_feature.test new file mode 100644 index 0000000..7384ff2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/http/response-status_feature.test @@ -0,0 +1,29 @@ +HTTP/1.0 200 OK +HTTP/1.1 403 Forbidden +HTTP/1.1 404 Not Found +HTTP/1.0 418 I'm a teapot + +---------------------------------------------------- + +[ + ["response-status", [ + "HTTP/1.0 ", + ["property", "200 OK"] + ]], + ["response-status", [ + "HTTP/1.1 ", + ["property", "403 Forbidden"] + ]], + ["response-status", [ + "HTTP/1.1 ", + ["property", "404 Not Found"] + ]], + ["response-status", [ + "HTTP/1.0 ", + ["property", "418 I'm a teapot"] + ]] +] + +---------------------------------------------------- + +Checks for response statuses. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test b/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test new file mode 100644 index 0000000..1d25764 --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test @@ -0,0 +1,91 @@ +&allocated +&ascii +&clock +&collections +&cset +¤t +&date +&dateline +&digits +&dump +&e +&error +&errornumber +&errortext +&errorvalue +&errout +&fail +&features +&file +&host +&input +&lcase +&letters +&level +&line +&main +&null +&output +&phi +&pi +&pos +&progname +&random +®ions +&source +&storage +&subject +&time +&trace +&ucase +&version + +---------------------------------------------------- + +[ + ["builtin-keyword", "&allocated"], + ["builtin-keyword", "&ascii"], + ["builtin-keyword", "&clock"], + ["builtin-keyword", "&collections"], + ["builtin-keyword", "&cset"], + ["builtin-keyword", "¤t"], + ["builtin-keyword", "&date"], + ["builtin-keyword", "&dateline"], + ["builtin-keyword", "&digits"], + ["builtin-keyword", "&dump"], + ["builtin-keyword", "&e"], + ["builtin-keyword", "&error"], + ["builtin-keyword", "&errornumber"], + ["builtin-keyword", "&errortext"], + ["builtin-keyword", "&errorvalue"], + ["builtin-keyword", "&errout"], + ["builtin-keyword", "&fail"], + ["builtin-keyword", "&features"], + ["builtin-keyword", "&file"], + ["builtin-keyword", "&host"], + ["builtin-keyword", "&input"], + ["builtin-keyword", "&lcase"], + ["builtin-keyword", "&letters"], + ["builtin-keyword", "&level"], + ["builtin-keyword", "&line"], + ["builtin-keyword", "&main"], + ["builtin-keyword", "&null"], + ["builtin-keyword", "&output"], + ["builtin-keyword", "&phi"], + ["builtin-keyword", "&pi"], + ["builtin-keyword", "&pos"], + ["builtin-keyword", "&progname"], + ["builtin-keyword", "&random"], + ["builtin-keyword", "®ions"], + ["builtin-keyword", "&source"], + ["builtin-keyword", "&storage"], + ["builtin-keyword", "&subject"], + ["builtin-keyword", "&time"], + ["builtin-keyword", "&trace"], + ["builtin-keyword", "&ucase"], + ["builtin-keyword", "&version"] +] + +---------------------------------------------------- + +Checks for builtin keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/comment_feature.test b/node_modules/prismjs/tests/languages/icon/comment_feature.test new file mode 100644 index 0000000..09493ab --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/comment_feature.test @@ -0,0 +1,13 @@ +# +# Foobar + +---------------------------------------------------- + +[ + ["comment", "#"], + ["comment", "# Foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/directive_feature.test b/node_modules/prismjs/tests/languages/icon/directive_feature.test new file mode 100644 index 0000000..ede5ebc --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/directive_feature.test @@ -0,0 +1,21 @@ +$include +$line +$define +$undef +$ifdef +$ifndef + +---------------------------------------------------- + +[ + ["directive", "$include"], + ["directive", "$line"], + ["directive", "$define"], + ["directive", "$undef"], + ["directive", "$ifdef"], + ["directive", "$ifndef"] +] + +---------------------------------------------------- + +Checks for preprocessor directives. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/function_feature.test b/node_modules/prismjs/tests/languages/icon/function_feature.test new file mode 100644 index 0000000..715452f --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/function_feature.test @@ -0,0 +1,15 @@ +foo() +Foobar_42{} +Foo_Bar ! [] + +---------------------------------------------------- + +[ + ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], + ["function", "Foobar_42"], ["punctuation", "{"], ["punctuation", "}"], + ["function", "Foo_Bar"], ["operator", "!"], ["punctuation", "["], ["punctuation", "]"] +] + +---------------------------------------------------- + +Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/keyword_feature.test b/node_modules/prismjs/tests/languages/icon/keyword_feature.test new file mode 100644 index 0000000..0816911 --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/keyword_feature.test @@ -0,0 +1,67 @@ +break +by +case +create +default +do +else +end +every +fail +global +if +initial +invocable +link +local +next +not +of +procedure +record +repeat +return +static +suspend +then +to +until +while + +---------------------------------------------------- + +[ + ["keyword", "break"], + ["keyword", "by"], + ["keyword", "case"], + ["keyword", "create"], + ["keyword", "default"], + ["keyword", "do"], + ["keyword", "else"], + ["keyword", "end"], + ["keyword", "every"], + ["keyword", "fail"], + ["keyword", "global"], + ["keyword", "if"], + ["keyword", "initial"], + ["keyword", "invocable"], + ["keyword", "link"], + ["keyword", "local"], + ["keyword", "next"], + ["keyword", "not"], + ["keyword", "of"], + ["keyword", "procedure"], + ["keyword", "record"], + ["keyword", "repeat"], + ["keyword", "return"], + ["keyword", "static"], + ["keyword", "suspend"], + ["keyword", "then"], + ["keyword", "to"], + ["keyword", "until"], + ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/number_feature.test b/node_modules/prismjs/tests/languages/icon/number_feature.test new file mode 100644 index 0000000..fc8efc8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/number_feature.test @@ -0,0 +1,33 @@ +0 +.42 +42 +3.14159 +2e8 +3.2E-7 +47E+19 + +2r11 +8R751 +16rbadface +36razerty + +---------------------------------------------------- + +[ + ["number", "0"], + ["number", ".42"], + ["number", "42"], + ["number", "3.14159"], + ["number", "2e8"], + ["number", "3.2E-7"], + ["number", "47E+19"], + + ["number", "2r11"], + ["number", "8R751"], + ["number", "16rbadface"], + ["number", "36razerty"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/operator_feature.test b/node_modules/prismjs/tests/languages/icon/operator_feature.test new file mode 100644 index 0000000..a2e29ff --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/operator_feature.test @@ -0,0 +1,69 @@ +! +% %:= +& &:= +* *:= ** **:= ++ ++ +:= ++:= +- -:= -- --:= +. +/ /:= +:= :=: +< <- <-> <:= +<< <<:= +<<= <<=:= +<= <=:= += =:= +== ==:= +=== ===:= +> >:= +>= >=:= +>> >>:= +>>= >>=:= +? ?:= +@ @:= +\ +^ ^:= +| || ||:= +||| |||:= +~ ~= ~=:= +~== ~==:= +~=== ~===:= +: +: -: + +---------------------------------------------------- + +[ + ["operator", "!"], + ["operator", "%"], ["operator", "%:="], + ["operator", "&"], ["operator", "&:="], + ["operator", "*"], ["operator", "*:="], ["operator", "**"], ["operator", "**:="], + ["operator", "+"], ["operator", "++"], ["operator", "+:="], ["operator", "++:="], + ["operator", "-"], ["operator", "-:="], ["operator", "--"], ["operator", "--:="], + ["operator", "."], + ["operator", "/"], ["operator", "/:="], + ["operator", ":="], ["operator", ":=:"], + ["operator", "<"], ["operator", "<-"], ["operator", "<->"], ["operator", "<:="], + ["operator", "<<"], ["operator", "<<:="], + ["operator", "<<="], ["operator", "<<=:="], + ["operator", "<="], ["operator", "<=:="], + ["operator", "="], ["operator", "=:="], + ["operator", "=="], ["operator", "==:="], + ["operator", "==="], ["operator", "===:="], + ["operator", ">"], ["operator", ">:="], + ["operator", ">="], ["operator", ">=:="], + ["operator", ">>"], ["operator", ">>:="], + ["operator", ">>="], ["operator", ">>=:="], + ["operator", "?"], ["operator", "?:="], + ["operator", "@"], ["operator", "@:="], + ["operator", "\\"], + ["operator", "^"], ["operator", "^:="], + ["operator", "|"], ["operator", "||"], ["operator", "||:="], + ["operator", "|||"], ["operator", "|||:="], + ["operator", "~"], ["operator", "~="], ["operator", "~=:="], + ["operator", "~=="], ["operator", "~==:="], + ["operator", "~==="], ["operator", "~===:="], + ["operator", ":"], ["operator", "+:"], ["operator", "-:"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/string_feature.test b/node_modules/prismjs/tests/languages/icon/string_feature.test new file mode 100644 index 0000000..78bc034 --- /dev/null +++ b/node_modules/prismjs/tests/languages/icon/string_feature.test @@ -0,0 +1,22 @@ +"" +"Fo\"obar" +"Foo_ +bar_ +baz" + +'' +'a\'zerty' + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"Fo\\\"obar\""], + ["string", "\"Foo_\r\nbar_\r\nbaz\""], + ["string", "''"], + ["string", "'a\\'zerty'"] +] + +---------------------------------------------------- + +Checks for strings and csets. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/comment_feature.test b/node_modules/prismjs/tests/languages/inform7/comment_feature.test new file mode 100644 index 0000000..f0aedfe --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/comment_feature.test @@ -0,0 +1,15 @@ +[Foobar] +[Foo +bar +baz] + +---------------------------------------------------- + +[ + ["comment", "[Foobar]"], + ["comment", "[Foo\r\nbar\r\nbaz]"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/keyword_feature.test b/node_modules/prismjs/tests/languages/inform7/keyword_feature.test new file mode 100644 index 0000000..b2497b4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/keyword_feature.test @@ -0,0 +1,85 @@ +after +before +carry out +check +continue the action +definition : +do nothing +else +end if +end unless +end the story +every turn +if +include +instead +instead of +let +move +no +now +otherwise +repeat +report +resume the story +rule for +running through +say +saying +stop the action +test +try +trying +understand +unless +use +when +while +yes + +---------------------------------------------------- + +[ + ["keyword", "after"], + ["keyword", "before"], + ["keyword", "carry out"], + ["keyword", "check"], + ["keyword", "continue the action"], + ["keyword", "definition"], ["punctuation", ":"], + ["keyword", "do nothing"], + ["keyword", "else"], + ["keyword", "end if"], + ["keyword", "end unless"], + ["keyword", "end the story"], + ["keyword", "every turn"], + ["keyword", "if"], + ["keyword", "include"], + ["keyword", "instead"], + ["keyword", "instead of"], + ["keyword", "let"], + ["keyword", "move"], + ["keyword", "no"], + ["keyword", "now"], + ["keyword", "otherwise"], + ["keyword", "repeat"], + ["keyword", "report"], + ["keyword", "resume the story"], + ["keyword", "rule for"], + ["keyword", "running through"], + ["keyword", "say"], + ["keyword", "saying"], + ["keyword", "stop the action"], + ["keyword", "test"], + ["keyword", "try"], + ["keyword", "trying"], + ["keyword", "understand"], + ["keyword", "unless"], + ["keyword", "use"], + ["keyword", "when"], + ["keyword", "while"], + ["keyword", "yes"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/number_feature.test b/node_modules/prismjs/tests/languages/inform7/number_feature.test new file mode 100644 index 0000000..cb5ca7f --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/number_feature.test @@ -0,0 +1,25 @@ +42 +3.14159 +50kg +100m +one two three +four five six +seven eight nine +ten eleven twelve + +---------------------------------------------------- + +[ + ["number", "42"], + ["number", "3.14159"], + ["number", "50kg"], + ["number", "100m"], + ["number", "one"], ["number", "two"], ["number", "three"], + ["number", "four"], ["number", "five"], ["number", "six"], + ["number", "seven"], ["number", "eight"], ["number", "nine"], + ["number", "ten"], ["number", "eleven"], ["number", "twelve"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/position_feature.test b/node_modules/prismjs/tests/languages/inform7/position_feature.test new file mode 100644 index 0000000..a298217 --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/position_feature.test @@ -0,0 +1,73 @@ +above +adjacent to +back side of +below +between +down +east +everywhere +front side +here +in +inside +inside from +north +northeast +northwest +nowhere +on +on top of +other side +outside +outside from +part of +parts of +regionally in +south +southeast +southwest +through +up +west +within + +---------------------------------------------------- + +[ + ["position", "above"], + ["position", "adjacent to"], + ["position", "back side of"], + ["position", "below"], + ["position", "between"], + ["position", "down"], + ["position", "east"], + ["position", "everywhere"], + ["position", "front side"], + ["position", "here"], + ["position", "in"], + ["position", "inside"], + ["position", "inside from"], + ["position", "north"], + ["position", "northeast"], + ["position", "northwest"], + ["position", "nowhere"], + ["position", "on"], + ["position", "on top of"], + ["position", "other side"], + ["position", "outside"], + ["position", "outside from"], + ["position", "part of"], + ["position", "parts of"], + ["position", "regionally in"], + ["position", "south"], + ["position", "southeast"], + ["position", "southwest"], + ["position", "through"], + ["position", "up"], + ["position", "west"], + ["position", "within"] +] + +---------------------------------------------------- + +Checks for positions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/property_feature.test b/node_modules/prismjs/tests/languages/inform7/property_feature.test new file mode 100644 index 0000000..4954b9e --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/property_feature.test @@ -0,0 +1,157 @@ +adjacent +carried +closed +concealed +contained +dark +described +edible +empty +enclosed +enterable +even +female +fixed in place +full +handled +held +improper-named +incorporated +inedible +invisible +lighted +lit +lockable +locked +male +marked for listing +mentioned +negative +neuter +non-empty +non-full +non-recurring +odd +opaque +open +openable +plural-named +portable +positive +privately-named +proper-named +provided +publically-named +pushable between rooms +recurring +related +rubbing +scenery +seen +singular-named +supported +swinging +switchable +switched +switched on +switched off +touchable +touched +transparent +unconcealed +undescribed +unlit +unlocked +unmarked for listing +unmentioned +unopenable +untouchable +unvisited +variable +visible +visited +wearable +worn + +---------------------------------------------------- + +[ + ["property", "adjacent"], + ["property", "carried"], + ["property", "closed"], + ["property", "concealed"], + ["property", "contained"], + ["property", "dark"], + ["property", "described"], + ["property", "edible"], + ["property", "empty"], + ["property", "enclosed"], + ["property", "enterable"], + ["property", "even"], + ["property", "female"], + ["property", "fixed in place"], + ["property", "full"], + ["property", "handled"], + ["property", "held"], + ["property", "improper-named"], + ["property", "incorporated"], + ["property", "inedible"], + ["property", "invisible"], + ["property", "lighted"], + ["property", "lit"], + ["property", "lockable"], + ["property", "locked"], + ["property", "male"], + ["property", "marked for listing"], + ["property", "mentioned"], + ["property", "negative"], + ["property", "neuter"], + ["property", "non-empty"], + ["property", "non-full"], + ["property", "non-recurring"], + ["property", "odd"], + ["property", "opaque"], + ["property", "open"], + ["property", "openable"], + ["property", "plural-named"], + ["property", "portable"], + ["property", "positive"], + ["property", "privately-named"], + ["property", "proper-named"], + ["property", "provided"], + ["property", "publically-named"], + ["property", "pushable between rooms"], + ["property", "recurring"], + ["property", "related"], + ["property", "rubbing"], + ["property", "scenery"], + ["property", "seen"], + ["property", "singular-named"], + ["property", "supported"], + ["property", "swinging"], + ["property", "switchable"], + ["property", "switched"], + ["property", "switched on"], + ["property", "switched off"], + ["property", "touchable"], + ["property", "touched"], + ["property", "transparent"], + ["property", "unconcealed"], + ["property", "undescribed"], + ["property", "unlit"], + ["property", "unlocked"], + ["property", "unmarked for listing"], + ["property", "unmentioned"], + ["property", "unopenable"], + ["property", "untouchable"], + ["property", "unvisited"], + ["property", "variable"], + ["property", "visible"], + ["property", "visited"], + ["property", "wearable"], + ["property", "worn"] +] + +---------------------------------------------------- + +Checks for properties. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/string_feature.test b/node_modules/prismjs/tests/languages/inform7/string_feature.test new file mode 100644 index 0000000..56a880e --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/string_feature.test @@ -0,0 +1,49 @@ +"" +"foo" +"foo +bar" +"[if the player is in Center Ring]A magician's booth stands in the corner, painted dark blue with glittering gold stars.[otherwise if the magician's booth is closed]A crack of light indicates the way back out to the center ring.[otherwise]The door stands open to the outside.[end if]" + +---------------------------------------------------- + +[ + ["string", ["\"\""]], + ["string", ["\"foo\""]], + ["string", ["\"foo\r\nbar\""]], + ["string", [ + "\"", + ["substitution", [ + ["delimiter", "["], + ["keyword", "if"], ["text", "the"], + ["type", "player"], ["verb", "is"], + ["position", "in"], ["text", "Center Ring"], + ["delimiter", "]"] + ]], + "A magician's booth stands in the corner, painted dark blue with glittering gold stars.", + ["substitution", [ + ["delimiter", "["], + ["keyword", "otherwise"], ["keyword", "if"], + ["text", "the magician's booth"], + ["verb", "is"], + ["property", "closed"], + ["delimiter", "]"] + ]], + "A crack of light indicates the way back out to the center ring.", + ["substitution", [ + ["delimiter", "["], + ["keyword", "otherwise"], + ["delimiter", "]"] + ]], + "The door stands open to the outside.", + ["substitution", [ + ["delimiter", "["], + ["keyword", "end if"], + ["delimiter", "]"] + ]], + "\"" + ]] +] + +---------------------------------------------------- + +Checks for strings and text substitution. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/title_feature.test b/node_modules/prismjs/tests/languages/inform7/title_feature.test new file mode 100644 index 0000000..ec3cdbf --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/title_feature.test @@ -0,0 +1,21 @@ +Volume 1 - Foobar +Book 2 - Foobar +Part 3 - Foobar +Chapter 4 - Foobar +Section 5 - Foobar +Table 6 - Foobar + +---------------------------------------------------- + +[ + ["title", "Volume 1 - Foobar"], + ["title", "Book 2 - Foobar"], + ["title", "Part 3 - Foobar"], + ["title", "Chapter 4 - Foobar"], + ["title", "Section 5 - Foobar"], + ["title", "Table 6 - Foobar"] +] + +---------------------------------------------------- + +Checks for titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/variable_feature.test b/node_modules/prismjs/tests/languages/inform7/variable_feature.test new file mode 100644 index 0000000..25c2f74 --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/variable_feature.test @@ -0,0 +1,141 @@ +action +actions +activity +activities +actor +actors +animal +animals +backdrop +backdrops +container +containers +device +devices +direction +directions +door +doors +holder +holders +kind +kinds +list +lists +man +men +nobody +nothing +noun +nouns +number +numbers +object +objects +people +person +persons +player +player's holdall +region +regions +relation +relations +room +rooms +rule +rules +rulebook +rulebooks +scene +scenes +someone +something +supporter +supporters +table +tables +text +texts +thing +things +time +vehicle +vehicles +woman +women + +---------------------------------------------------- + +[ + ["type", "action"], + ["type", "actions"], + ["type", "activity"], + ["type", "activities"], + ["type", "actor"], + ["type", "actors"], + ["type", "animal"], + ["type", "animals"], + ["type", "backdrop"], + ["type", "backdrops"], + ["type", "container"], + ["type", "containers"], + ["type", "device"], + ["type", "devices"], + ["type", "direction"], + ["type", "directions"], + ["type", "door"], + ["type", "doors"], + ["type", "holder"], + ["type", "holders"], + ["type", "kind"], + ["type", "kinds"], + ["type", "list"], + ["type", "lists"], + ["type", "man"], + ["type", "men"], + ["type", "nobody"], + ["type", "nothing"], + ["type", "noun"], + ["type", "nouns"], + ["type", "number"], + ["type", "numbers"], + ["type", "object"], + ["type", "objects"], + ["type", "people"], + ["type", "person"], + ["type", "persons"], + ["type", "player"], + ["type", "player's holdall"], + ["type", "region"], + ["type", "regions"], + ["type", "relation"], + ["type", "relations"], + ["type", "room"], + ["type", "rooms"], + ["type", "rule"], + ["type", "rules"], + ["type", "rulebook"], + ["type", "rulebooks"], + ["type", "scene"], + ["type", "scenes"], + ["type", "someone"], + ["type", "something"], + ["type", "supporter"], + ["type", "supporters"], + ["type", "table"], + ["type", "tables"], + ["type", "text"], + ["type", "texts"], + ["type", "thing"], + ["type", "things"], + ["type", "time"], + ["type", "vehicle"], + ["type", "vehicles"], + ["type", "woman"], + ["type", "women"] +] + +---------------------------------------------------- + +Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/verb_feature.test b/node_modules/prismjs/tests/languages/inform7/verb_feature.test new file mode 100644 index 0000000..3da285d --- /dev/null +++ b/node_modules/prismjs/tests/languages/inform7/verb_feature.test @@ -0,0 +1,213 @@ +applying to +are +attacking +answering +asking +be +being +burning +buying +called +carries +carry +carrying +climbing +closing +conceal +conceals +concealing +consulting +contain +contains +containing +cutting +drinking +dropping +eating +enclose +encloses +enclosing +entering +examining +exiting +getting +giving +going +have +has +having +hold +holds +holding +imply +implies +incorporate +incorporates +incorporating +inserting +is +jumping +kissing +listening +locking +looking +mean +means +meaning +opening +provide +provides +providing +pulling +pushing +putting +relate +relates +relating +removing +searching +see +sees +seeing +setting +showing +singing +sleeping +smelling +squeezing +switching +support +supports +supporting +swearing +taking +tasting +telling +thinking +throwing +touching +turning +tying +unlock +unlocks +unlocking +vary +varies +varying +waiting +waking +waving +wear +wears +wearing + +---------------------------------------------------- + +[ + ["verb", "applying to"], + ["verb", "are"], + ["verb", "attacking"], + ["verb", "answering"], + ["verb", "asking"], + ["verb", "be"], + ["verb", "being"], + ["verb", "burning"], + ["verb", "buying"], + ["verb", "called"], + ["verb", "carries"], + ["verb", "carry"], + ["verb", "carrying"], + ["verb", "climbing"], + ["verb", "closing"], + ["verb", "conceal"], + ["verb", "conceals"], + ["verb", "concealing"], + ["verb", "consulting"], + ["verb", "contain"], + ["verb", "contains"], + ["verb", "containing"], + ["verb", "cutting"], + ["verb", "drinking"], + ["verb", "dropping"], + ["verb", "eating"], + ["verb", "enclose"], + ["verb", "encloses"], + ["verb", "enclosing"], + ["verb", "entering"], + ["verb", "examining"], + ["verb", "exiting"], + ["verb", "getting"], + ["verb", "giving"], + ["verb", "going"], + ["verb", "have"], + ["verb", "has"], + ["verb", "having"], + ["verb", "hold"], + ["verb", "holds"], + ["verb", "holding"], + ["verb", "imply"], + ["verb", "implies"], + ["verb", "incorporate"], + ["verb", "incorporates"], + ["verb", "incorporating"], + ["verb", "inserting"], + ["verb", "is"], + ["verb", "jumping"], + ["verb", "kissing"], + ["verb", "listening"], + ["verb", "locking"], + ["verb", "looking"], + ["verb", "mean"], + ["verb", "means"], + ["verb", "meaning"], + ["verb", "opening"], + ["verb", "provide"], + ["verb", "provides"], + ["verb", "providing"], + ["verb", "pulling"], + ["verb", "pushing"], + ["verb", "putting"], + ["verb", "relate"], + ["verb", "relates"], + ["verb", "relating"], + ["verb", "removing"], + ["verb", "searching"], + ["verb", "see"], + ["verb", "sees"], + ["verb", "seeing"], + ["verb", "setting"], + ["verb", "showing"], + ["verb", "singing"], + ["verb", "sleeping"], + ["verb", "smelling"], + ["verb", "squeezing"], + ["verb", "switching"], + ["verb", "support"], + ["verb", "supports"], + ["verb", "supporting"], + ["verb", "swearing"], + ["verb", "taking"], + ["verb", "tasting"], + ["verb", "telling"], + ["verb", "thinking"], + ["verb", "throwing"], + ["verb", "touching"], + ["verb", "turning"], + ["verb", "tying"], + ["verb", "unlock"], + ["verb", "unlocks"], + ["verb", "unlocking"], + ["verb", "vary"], + ["verb", "varies"], + ["verb", "varying"], + ["verb", "waiting"], + ["verb", "waking"], + ["verb", "waving"], + ["verb", "wear"], + ["verb", "wears"], + ["verb", "wearing"] +] + +---------------------------------------------------- + +Checks for verbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/comment_feature.test b/node_modules/prismjs/tests/languages/ini/comment_feature.test new file mode 100644 index 0000000..85faefe --- /dev/null +++ b/node_modules/prismjs/tests/languages/ini/comment_feature.test @@ -0,0 +1,13 @@ +; +; foobar + +---------------------------------------------------- + +[ + ["comment", ";"], + ["comment", "; foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/key_value_feature.test b/node_modules/prismjs/tests/languages/ini/key_value_feature.test new file mode 100644 index 0000000..5d25d9d --- /dev/null +++ b/node_modules/prismjs/tests/languages/ini/key_value_feature.test @@ -0,0 +1,21 @@ +foo=Bar Baz +foobar=42 + +---------------------------------------------------- + +[ + ["constant", "foo"], + ["attr-value", [ + ["punctuation", "="], + "Bar Baz" + ]], + ["constant", "foobar"], + ["attr-value", [ + ["punctuation", "="], + "42" + ]] +] + +---------------------------------------------------- + +Checks for key/value pairs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/selector_feature.test b/node_modules/prismjs/tests/languages/ini/selector_feature.test new file mode 100644 index 0000000..3158a66 --- /dev/null +++ b/node_modules/prismjs/tests/languages/ini/selector_feature.test @@ -0,0 +1,13 @@ +[owner] +[foobar] + +---------------------------------------------------- + +[ + ["selector", "[owner]"], + ["selector", "[foobar]"] +] + +---------------------------------------------------- + +Checks for section titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/adverb_feature.test b/node_modules/prismjs/tests/languages/j/adverb_feature.test new file mode 100644 index 0000000..2374d72 --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/adverb_feature.test @@ -0,0 +1,19 @@ +~ } +/ /. +\ \. +b. f. M. +t. t: + +---------------------------------------------------- + +[ + ["adverb", "~"], ["adverb", "}"], + ["adverb", "/"], ["adverb", "/."], + ["adverb", "\\"], ["adverb", "\\."], + ["adverb", "b."], ["adverb", "f."], ["adverb", "M."], + ["adverb", "t."], ["adverb", "t:"] +] + +---------------------------------------------------- + +Checks for adverbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/comment_feature.test b/node_modules/prismjs/tests/languages/j/comment_feature.test new file mode 100644 index 0000000..c816bf1 --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/comment_feature.test @@ -0,0 +1,13 @@ +NB. +NB. Foo bar + +---------------------------------------------------- + +[ + ["comment", "NB."], + ["comment", "NB. Foo bar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/conjunction_feature.test b/node_modules/prismjs/tests/languages/j/conjunction_feature.test new file mode 100644 index 0000000..0fcc2e8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/conjunction_feature.test @@ -0,0 +1,41 @@ +& &. &.: &: + +. .. .: +: :. :: +@ @. @: + +!. !: +D. D: + +;. d. H. T. + +` `: + +^: L: S: + +" + +---------------------------------------------------- + +[ + ["conjunction", "&"], ["conjunction", "&."], ["conjunction", "&.:"], ["conjunction", "&:"], + + ["conjunction", "."], ["conjunction", ".."], ["conjunction", ".:"], + ["conjunction", ":"], ["conjunction", ":."], ["conjunction", "::"], + ["conjunction", "@"], ["conjunction", "@."], ["conjunction", "@:"], + + ["conjunction", "!."], ["conjunction", "!:"], + ["conjunction", "D."], ["conjunction", "D:"], + + ["conjunction", ";."], ["conjunction", "d."], ["conjunction", "H."], ["conjunction", "T."], + + ["conjunction", "`"], ["conjunction", "`:"], + + ["conjunction", "^:"], ["conjunction", "L:"], ["conjunction", "S:"], + + ["conjunction", "\""] +] + +---------------------------------------------------- + +Checks for conjunctions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/keyword_feature.test b/node_modules/prismjs/tests/languages/j/keyword_feature.test new file mode 100644 index 0000000..38f982d --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/keyword_feature.test @@ -0,0 +1,77 @@ +adverb +conjunction +CR +def +define +dyad +LF +monad +noun +verb + +assert. +break. +case. +catch. +catchd. +catcht. +continue. +do. +else. +elseif. +end. +fcase. +for. +for_foobar. +goto_foobar. +if. +label_foobar. +return. +select. +throw. +try. +while. +whilst. + +---------------------------------------------------- + +[ + ["keyword", "adverb"], + ["keyword", "conjunction"], + ["keyword", "CR"], + ["keyword", "def"], + ["keyword", "define"], + ["keyword", "dyad"], + ["keyword", "LF"], + ["keyword", "monad"], + ["keyword", "noun"], + ["keyword", "verb"], + + ["keyword", "assert."], + ["keyword", "break."], + ["keyword", "case."], + ["keyword", "catch."], + ["keyword", "catchd."], + ["keyword", "catcht."], + ["keyword", "continue."], + ["keyword", "do."], + ["keyword", "else."], + ["keyword", "elseif."], + ["keyword", "end."], + ["keyword", "fcase."], + ["keyword", "for."], + ["keyword", "for_foobar."], + ["keyword", "goto_foobar."], + ["keyword", "if."], + ["keyword", "label_foobar."], + ["keyword", "return."], + ["keyword", "select."], + ["keyword", "throw."], + ["keyword", "try."], + ["keyword", "while."], + ["keyword", "whilst."] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/number_feature.test b/node_modules/prismjs/tests/languages/j/number_feature.test new file mode 100644 index 0000000..ecd2dc2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/number_feature.test @@ -0,0 +1,41 @@ +2.3e2 2.3e_2 2j3 +230 0.023 2j3 + +2p1 1p_1 +6.28319 0.31831 + +1x2 2x1 1x_1 +7.38906 5.43656 0.367879 + +2e2j_2e2 2e2j2p1 2ad45 2ar0.785398 +200j_200 628.319j6.28319 1.41421j1.41421 1.41421j1.41421 + +16b1f 10b23 _10b23 1e2b23 2b111.111 +31 23 _17 203 7.875 + +_ __ + +---------------------------------------------------- + +[ + ["number", "2.3e2"], ["number", "2.3e_2"], ["number", "2j3"], + ["number", "230"], ["number", "0.023"], ["number", "2j3"], + + ["number", "2p1"], ["number", "1p_1"], + ["number", "6.28319"], ["number", "0.31831"], + + ["number", "1x2"], ["number", "2x1"], ["number", "1x_1"], + ["number", "7.38906"], ["number", "5.43656"], ["number", "0.367879"], + + ["number", "2e2j_2e2"], ["number", "2e2j2p1"], ["number", "2ad45"], ["number", "2ar0.785398"], + ["number", "200j_200"], ["number", "628.319j6.28319"], ["number", "1.41421j1.41421"], ["number", "1.41421j1.41421"], + + ["number", "16b1f"], ["number", "10b23"], ["number", "_10b23"], ["number", "1e2b23"], ["number", "2b111.111"], + ["number", "31"], ["number", "23"], ["number", "_17"], ["number", "203"], ["number", "7.875"], + + ["number", "_"], ["number", "__"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/string_feature.test b/node_modules/prismjs/tests/languages/j/string_feature.test new file mode 100644 index 0000000..8cfa97f --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/string_feature.test @@ -0,0 +1,13 @@ +'' +'fo''obar' + +---------------------------------------------------- + +[ + ["string", "''"], + ["string", "'fo''obar'"] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/verb_feature.test b/node_modules/prismjs/tests/languages/j/verb_feature.test new file mode 100644 index 0000000..55f9086 --- /dev/null +++ b/node_modules/prismjs/tests/languages/j/verb_feature.test @@ -0,0 +1,93 @@ +{ {. {: {:: + +p. p.. p: + += +! +] + +< <. <: +> >. >: ++ +. +: +* *. *: +- -. -: +% %. %: +$ $. $: +| |. |: +, ,. ,: +# #. #: + +^ ^. +? ?. + +; ;: +[ [: + +~. ~: +}. }: +". ": +i. i: + +A. C. e. +E. I. j. +L. o. r. + +_: /: \: +q: s: u: x: +_9: _8: _7: +_6: _5: _4: +_3: _2: _1: +1: 2: 3: +4: 5: 6: +7: 8: 9: + +---------------------------------------------------- + +[ + ["verb", "{"], ["verb", "{."], ["verb", "{:"], ["verb", "{::"], + + ["verb", "p."], ["verb", "p.."], ["verb", "p:"], + + ["verb", "="], + ["verb", "!"], + ["verb", "]"], + + ["verb", "<"], ["verb", "<."], ["verb", "<:"], + ["verb", ">"], ["verb", ">."], ["verb", ">:"], + ["verb", "+"], ["verb", "+."], ["verb", "+:"], + ["verb", "*"], ["verb", "*."], ["verb", "*:"], + ["verb", "-"], ["verb", "-."], ["verb", "-:"], + ["verb", "%"], ["verb", "%."], ["verb", "%:"], + ["verb", "$"], ["verb", "$."], ["verb", "$:"], + ["verb", "|"], ["verb", "|."], ["verb", "|:"], + ["verb", ","], ["verb", ",."], ["verb", ",:"], + ["verb", "#"], ["verb", "#."], ["verb", "#:"], + + ["verb", "^"], ["verb", "^."], + ["verb", "?"], ["verb", "?."], + + ["verb", ";"], ["verb", ";:"], + ["verb", "["], ["verb", "[:"], + + ["verb", "~."], ["verb", "~:"], + ["verb", "}."], ["verb", "}:"], + ["verb", "\"."], ["verb", "\":"], + ["verb", "i."], ["verb", "i:"], + + ["verb", "A."], ["verb", "C."], ["verb", "e."], + ["verb", "E."], ["verb", "I."], ["verb", "j."], + ["verb", "L."], ["verb", "o."], ["verb", "r."], + + ["verb", "_:"], ["verb", "/:"], ["verb", "\\:"], + ["verb", "q:"], ["verb", "s:"], ["verb", "u:"], ["verb", "x:"], + ["verb", "_9:"], ["verb", "_8:"], ["verb", "_7:"], + ["verb", "_6:"], ["verb", "_5:"], ["verb", "_4:"], + ["verb", "_3:"], ["verb", "_2:"], ["verb", "_1:"], + ["verb", "1:"], ["verb", "2:"], ["verb", "3:"], + ["verb", "4:"], ["verb", "5:"], ["verb", "6:"], + ["verb", "7:"], ["verb", "8:"], ["verb", "9:"] +] + +---------------------------------------------------- + +Checks for verbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/code_feature.test b/node_modules/prismjs/tests/languages/jade/code_feature.test new file mode 100644 index 0000000..6bb436b --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/code_feature.test @@ -0,0 +1,36 @@ +- if(foo) + +p= 'This code is' + ' !' + +span + != 'Not escaped' + +---------------------------------------------------- + +[ + ["punctuation", "-"], + ["code", [ + ["keyword", "if"], + ["punctuation", "("], + "foo", + ["punctuation", ")"] + ]], + + ["tag", ["p"]], + ["punctuation", "="], + ["code", [ + ["string", "'This code is'"], + ["operator", "+"], + ["string", "' !'"] + ]], + + ["tag", ["span"]], + ["punctuation", "!="], + ["code", [ + ["string", "'Not escaped'"] + ]] +] + +---------------------------------------------------- + +Checks for inline code. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/comment_feature.test b/node_modules/prismjs/tests/languages/jade/comment_feature.test new file mode 100644 index 0000000..1ca737a --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/comment_feature.test @@ -0,0 +1,22 @@ +// foo + bar + + // foo + bar baz + +// foo + + // bar + +---------------------------------------------------- + +[ + ["comment", "// foo\r\n bar"], + ["comment", "// foo\r\n\t\tbar baz"], + ["comment", "// foo"], + ["comment", "// bar"] +] + +---------------------------------------------------- + +Checks for single-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/doctype_feature.test b/node_modules/prismjs/tests/languages/jade/doctype_feature.test new file mode 100644 index 0000000..7c13b12 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/doctype_feature.test @@ -0,0 +1,15 @@ +doctype html +doctype 1.1 +doctype html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" + +---------------------------------------------------- + +[ + ["doctype", "doctype html"], + ["doctype", "doctype 1.1"], + ["doctype", "doctype html PUBLIC \"-//W3C//DTD XHTML Basic 1.1//EN\""] +] + +---------------------------------------------------- + +Checks for doctypes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/flow-control_feature.test b/node_modules/prismjs/tests/languages/jade/flow-control_feature.test new file mode 100644 index 0000000..2b68ddf --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/flow-control_feature.test @@ -0,0 +1,75 @@ +each val, index in [1,2,3] + +if foo +else if bar +else + +unless foo + +while n < 4 + +case foo + when "bar" + default + +---------------------------------------------------- + +[ + ["flow-control", [ + ["each", [ + ["keyword", "each"], + " val", + ["punctuation", ","], + " index ", + ["keyword", "in"] + ]], + ["punctuation", "["], + ["number", "1"], + ["punctuation", ","], + ["number", "2"], + ["punctuation", ","], + ["number", "3"], + ["punctuation", "]"] + ]], + + ["flow-control", [ + ["branch", "if"], + " foo" + ]], + ["flow-control", [ + ["branch", "else"], + ["keyword", "if"], + " bar" + ]], + ["flow-control", [ + ["branch", "else"] + ]], + + ["flow-control", [ + ["branch", "unless"], + " foo" + ]], + + ["flow-control", [ + ["branch", "while"], + " n ", + ["operator", "<"], + ["number", "4"] + ]], + + ["flow-control", [ + ["branch", "case"], + " foo" + ]], + ["flow-control", [ + ["branch", "when"], + ["string", "\"bar\""] + ]], + ["flow-control", [ + ["branch", "default"] + ]] +] + +---------------------------------------------------- + +Checks for all flow-control structures. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/keyword_feature.test b/node_modules/prismjs/tests/languages/jade/keyword_feature.test new file mode 100644 index 0000000..21a5383 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/keyword_feature.test @@ -0,0 +1,27 @@ +block title + + extends ./foo.jade + +include ./bar.jade + +block append foo +append bar + +block prepend foo +prepend bar + +---------------------------------------------------- + +[ + ["keyword", "block title"], + ["keyword", "extends ./foo.jade"], + ["keyword", "include ./bar.jade"], + ["keyword", "block append foo"], + ["keyword", "append bar"], + ["keyword", "block prepend foo"], + ["keyword", "prepend bar"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/mixin_feature.test b/node_modules/prismjs/tests/languages/jade/mixin_feature.test new file mode 100644 index 0000000..ef515b3 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/mixin_feature.test @@ -0,0 +1,35 @@ +mixin foo +mixin pet(name) + ++foo ++pet('cat') + +---------------------------------------------------- + +[ + ["mixin", [ + ["keyword", "mixin"], + ["function", "foo"] + ]], + ["mixin", [ + ["keyword", "mixin"], + ["function", "pet"], + ["punctuation", "("], + "name", + ["punctuation", ")"] + ]], + + ["mixin", [ + ["name", "+foo"] + ]], + ["mixin", [ + ["name", "+pet"], + ["punctuation", "("], + ["string", "'cat'"], + ["punctuation", ")"] + ]] +] + +---------------------------------------------------- + +Checks for mixins declaration and usage. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test b/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test new file mode 100644 index 0000000..fc14a71 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test @@ -0,0 +1,30 @@ +div. + foobar + + baz +. + div. + foobar + baz + +---------------------------------------------------- + +[ + ["tag", [ + "div" + ]], + ["punctuation", "."], + ["multiline-plain-text", "\r\n foobar\r\n\r\n baz"], + + ["punctuation", "."], + + ["tag", [ + "div" + ]], + ["punctuation", "."], + ["multiline-plain-text", "\r\n\t\tfoobar\r\n\t\tbaz"] +] + +---------------------------------------------------- + +Checks for multi-line plain text. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test b/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test new file mode 100644 index 0000000..5648bf3 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test @@ -0,0 +1,58 @@ +script. + alert(42); + +. + script(type='text/javascript'). + + if(foo) { + bar(1 + 5); + } + +---------------------------------------------------- + +[ + ["tag", [ + "script" + ]], + ["punctuation", "."], + ["multiline-script", [ + ["function", "alert"], + ["punctuation", "("], + ["number", "42"], + ["punctuation", ")"], + ["punctuation", ";"] + ]], + + ["punctuation", "."], + + ["tag", [ + "script", + ["attributes", [ + ["punctuation", "("], + ["attr-name", "type"], + ["punctuation", "="], + ["attr-value", [["string", "'text/javascript'"]]], + ["punctuation", ")"] + ]] + ]], + ["punctuation", "."], + ["multiline-script", [ + ["keyword", "if"], + ["punctuation", "("], + "foo", + ["punctuation", ")"], + ["punctuation", "{"], + ["function", "bar"], + ["punctuation", "("], + ["number", "1"], + ["operator", "+"], + ["number", "5"], + ["punctuation", ")"], + ["punctuation", ";"], + ["punctuation", "}"] + ]] +] + +---------------------------------------------------- + +Checks for multi-line scripts. The alone dot serves as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/plain-text_feature.test b/node_modules/prismjs/tests/languages/jade/plain-text_feature.test new file mode 100644 index 0000000..5e97fb0 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/plain-text_feature.test @@ -0,0 +1,19 @@ +div foo + span foo bar + +---------------------------------------------------- + +[ + ["tag", [ + "div" + ]], + ["plain-text", "foo"], + ["tag", [ + "span" + ]], + ["plain-text", "foo bar"] +] + +---------------------------------------------------- + +Checks for single-line plain text. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/script_feature.test b/node_modules/prismjs/tests/languages/jade/script_feature.test new file mode 100644 index 0000000..649fbf3 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/script_feature.test @@ -0,0 +1,38 @@ +script alert(42); + script(type='text/javascript') alert(42); + +---------------------------------------------------- + +[ + ["tag", [ + "script" + ]], + ["script", [ + ["function", "alert"], + ["punctuation", "("], + ["number", "42"], + ["punctuation", ")"], + ["punctuation", ";"] + ]], + ["tag", [ + "script", + ["attributes", [ + ["punctuation", "("], + ["attr-name", "type"], + ["punctuation", "="], + ["attr-value", [["string", "'text/javascript'"]]], + ["punctuation", ")"] + ]] + ]], + ["script", [ + ["function", "alert"], + ["punctuation", "("], + ["number", "42"], + ["punctuation", ")"], + ["punctuation", ";"] + ]] +] + +---------------------------------------------------- + +Checks for single-line scripts. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/tag_feature.test b/node_modules/prismjs/tests/languages/jade/tag_feature.test new file mode 100644 index 0000000..415f8bd --- /dev/null +++ b/node_modules/prismjs/tests/languages/jade/tag_feature.test @@ -0,0 +1,97 @@ +div + span&attributes({'data-foo': 'bar'}) + +input(data-bar="foo", type='checkbox', checked) + +a(style={color: 'red', background: 'green'}) + +div(unescaped!="") + +a.button +.content + +a#main-link +#content + +a: span + +---------------------------------------------------- + +[ + ["tag", ["div"]], + ["tag", [ + "span", + ["attributes", [ + ["operator", "&"], + ["function", "attributes"], + ["punctuation", "("], + ["punctuation", "{"], + ["string", "'data-foo'"], + ["punctuation", ":"], + ["string", "'bar'"], + ["punctuation", "}"], + ["punctuation", ")"] + ]] + ]], + + ["tag", [ + "input", + ["attributes", [ + ["punctuation", "("], + ["attr-name", "data-bar"], + ["punctuation", "="], + ["attr-value", [["string", "\"foo\""]]], + ["punctuation", ","], + ["attr-name", "type"], + ["punctuation", "="], + ["attr-value", [["string", "'checkbox'"]]], + ["punctuation", ","], + ["attr-name", "checked"], + ["punctuation", ")"] + ]] + ]], + + ["tag", [ + "a", + ["attributes", [ + ["punctuation", "("], + ["attr-name", "style"], + ["punctuation", "="], + ["attr-value", [ + ["punctuation", "{"], + "color", + ["punctuation", ":"], + ["string", "'red'"], + ["punctuation", ","], + " background", + ["punctuation", ":"], + ["string", "'green'"], + ["punctuation", "}"] + ]], + ["punctuation", ")"] + ]] + ]], + + ["tag", [ + "div", + ["attributes", [ + ["punctuation", "("], + ["attr-name", "unescaped"], + ["punctuation", "!="], + ["attr-value", [["string", "\"\""]]], + ["punctuation", ")"] + ]] + ]], + + ["tag", ["a.button"]], + ["tag", [".content"]], + ["tag", ["a#main-link"]], + ["tag", ["#content"]], + + ["tag", ["a", ["punctuation", ":"]]], + ["tag", ["span"]] +] + +---------------------------------------------------- + +Checks for tags and attributes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/keyword_feature.test b/node_modules/prismjs/tests/languages/java/keyword_feature.test new file mode 100644 index 0000000..4a6613c --- /dev/null +++ b/node_modules/prismjs/tests/languages/java/keyword_feature.test @@ -0,0 +1,51 @@ +abstract continue for +new ; +switch assert default +goto package synchronized +boolean do if private +this break double +implements ; +protected throw byte else +import public throws case +enum +instanceof ; +return transient catch +extends ; +int short try char +final +interface ; +static void +class ; +finally long +strictfp volatile const +float native super while + +---------------------------------------------------- + +[ + ["keyword", "abstract"], ["keyword", "continue"], ["keyword", "for"], + ["keyword", "new"], ["punctuation", ";"], + ["keyword", "switch"], ["keyword", "assert"], ["keyword", "default"], + ["keyword", "goto"], ["keyword", "package"], ["keyword", "synchronized"], + ["keyword", "boolean"], ["keyword", "do"], ["keyword", "if"], ["keyword", "private"], + ["keyword", "this"], ["keyword", "break"], ["keyword", "double"], + ["keyword", "implements"], ["punctuation", ";"], + ["keyword", "protected"], ["keyword", "throw"], ["keyword", "byte"], ["keyword", "else"], + ["keyword", "import"], ["keyword", "public"], ["keyword", "throws"], ["keyword", "case"], + ["keyword", "enum"], + ["keyword", "instanceof"], ["punctuation", ";"], + ["keyword", "return"], ["keyword", "transient"], ["keyword", "catch"], + ["keyword", "extends"], ["punctuation", ";"], + ["keyword", "int"], ["keyword", "short"], ["keyword", "try"], ["keyword", "char"], + ["keyword", "final"], + ["keyword", "interface"], ["punctuation", ";"], + ["keyword", "static"], ["keyword", "void"], + ["keyword", "class"], ["punctuation", ";"], + ["keyword", "finally"], ["keyword", "long"], + ["keyword", "strictfp"], ["keyword", "volatile"], ["keyword", "const"], + ["keyword", "float"], ["keyword", "native"], ["keyword", "super"], ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/number_feature.test b/node_modules/prismjs/tests/languages/java/number_feature.test new file mode 100644 index 0000000..b88f082 --- /dev/null +++ b/node_modules/prismjs/tests/languages/java/number_feature.test @@ -0,0 +1,27 @@ +0b11110000 +0xBadFace +0x1.8p1 +0xa.fp-2 +42 +42d +1.2e3f +0.1E-4f +0.2e+1f + +---------------------------------------------------- + +[ + ["number", "0b11110000"], + ["number", "0xBadFace"], + ["number", "0x1.8p1"], + ["number", "0xa.fp-2"], + ["number", "42"], + ["number", "42d"], + ["number", "1.2e3f"], + ["number", "0.1E-4f"], + ["number", "0.2e+1f"] +] + +---------------------------------------------------- + +Checks for binary, hexadecimal and decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/operator_feature.test b/node_modules/prismjs/tests/languages/java/operator_feature.test new file mode 100644 index 0000000..87f4906 --- /dev/null +++ b/node_modules/prismjs/tests/languages/java/operator_feature.test @@ -0,0 +1,33 @@ ++ ++ += +- -- -= +! != +< << <= <<= +> >> >>> >= >>= >>>= += == +& && &= +| || |= +? : ~ +* *= +/ /= +% %= + +---------------------------------------------------- + +[ + ["operator", "+"], ["operator", "++"], ["operator", "+="], + ["operator", "-"], ["operator", "--"], ["operator", "-="], + ["operator", "!"], ["operator", "!="], + ["operator", "<"], ["operator", "<<"], ["operator", "<="], ["operator", "<<="], + ["operator", ">"], ["operator", ">>"], ["operator", ">>>"], ["operator", ">="], ["operator", ">>="], ["operator", ">>>="], + ["operator", "="], ["operator", "=="], + ["operator", "&"], ["operator", "&&"], ["operator", "&="], + ["operator", "|"], ["operator", "||"], ["operator", "|="], + ["operator", "?"], ["operator", ":"], ["operator", "~"], + ["operator", "*"], ["operator", "*="], + ["operator", "/"], ["operator", "/="], + ["operator", "%"], ["operator", "%="] +] + +---------------------------------------------------- + +Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test b/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test new file mode 100644 index 0000000..2420e60 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test @@ -0,0 +1,24 @@ +:javascript + 0xBadFace + +~ + :javascript + 0xBadFace + +---------------------------------------------------- + +[ + ["filter-javascript", [ + ["filter-name", ":javascript"], + ["number", "0xBadFace"] + ]], + ["punctuation", "~"], + ["filter-javascript", [ + ["filter-name", ":javascript"], + ["number", "0xBadFace"] + ]] +] + +---------------------------------------------------- + +Checks for JavaScript filter in Haml. The tilde serves only as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test b/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test new file mode 100644 index 0000000..825fea4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test @@ -0,0 +1,21 @@ +Content-type: application/json + +{"foo":"bar"} + +---------------------------------------------------- + +[ + ["header-name", "Content-type:"], + " application/json", + ["application/json", [ + ["punctuation", "{"], + ["string", "\"foo\""], + ["punctuation", ":"], + ["string", "\"bar\""], + ["punctuation", "}"] + ]] +] + +---------------------------------------------------- + +Checks for JSON content in HTTP. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/boolean_feature.test b/node_modules/prismjs/tests/languages/javascript/boolean_feature.test new file mode 100644 index 0000000..4019c44 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/boolean_feature.test @@ -0,0 +1,13 @@ +true +false + +---------------------------------------------------- + +[ + ["boolean", "true"], + ["boolean", "false"] +] + +---------------------------------------------------- + +Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/function_feature.test b/node_modules/prismjs/tests/languages/javascript/function_feature.test new file mode 100644 index 0000000..e805e87 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/function_feature.test @@ -0,0 +1,23 @@ +foo() +foo_bar() +f42() +_() +$() +ಠ_ಠ() +Ƞȡ_҇() + +---------------------------------------------------- + +[ + ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], + ["function", "foo_bar"], ["punctuation", "("], ["punctuation", ")"], + ["function", "f42"], ["punctuation", "("], ["punctuation", ")"], + ["function", "_"], ["punctuation", "("], ["punctuation", ")"], + ["function", "$"], ["punctuation", "("], ["punctuation", ")"], + ["function", "ಠ_ಠ"], ["punctuation", "("], ["punctuation", ")"], + ["function", "Ƞȡ_҇"], ["punctuation", "("], ["punctuation", ")"] +] + +---------------------------------------------------- + +Checks for functions. Also checks for unicode characters in identifiers. diff --git a/node_modules/prismjs/tests/languages/javascript/keyword_feature.test b/node_modules/prismjs/tests/languages/javascript/keyword_feature.test new file mode 100644 index 0000000..13b8887 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/keyword_feature.test @@ -0,0 +1,70 @@ +as; async; await; break; case; +catch; class; const; continue; debugger; +default; delete; do; else; enum; +export; extends; finally; for; +from; function; get; if; implements; +import; in; instanceof; interface; let; +new; null; of; package; private; +protected; public; return; set; static; +super; switch; this; throw; +try; typeof; var; void; while; +with; yield; + +---------------------------------------------------- + +[ + ["keyword", "as"], ["punctuation", ";"], + ["keyword", "async"], ["punctuation", ";"], + ["keyword", "await"], ["punctuation", ";"], + ["keyword", "break"], ["punctuation", ";"], + ["keyword", "case"], ["punctuation", ";"], + ["keyword", "catch"], ["punctuation", ";"], + ["keyword", "class"], ["punctuation", ";"], + ["keyword", "const"], ["punctuation", ";"], + ["keyword", "continue"], ["punctuation", ";"], + ["keyword", "debugger"], ["punctuation", ";"], + ["keyword", "default"], ["punctuation", ";"], + ["keyword", "delete"], ["punctuation", ";"], + ["keyword", "do"], ["punctuation", ";"], + ["keyword", "else"], ["punctuation", ";"], + ["keyword", "enum"], ["punctuation", ";"], + ["keyword", "export"], ["punctuation", ";"], + ["keyword", "extends"], ["punctuation", ";"], + ["keyword", "finally"], ["punctuation", ";"], + ["keyword", "for"], ["punctuation", ";"], + ["keyword", "from"], ["punctuation", ";"], + ["keyword", "function"], ["punctuation", ";"], + ["keyword", "get"], ["punctuation", ";"], + ["keyword", "if"], ["punctuation", ";"], + ["keyword", "implements"], ["punctuation", ";"], + ["keyword", "import"], ["punctuation", ";"], + ["keyword", "in"], ["punctuation", ";"], + ["keyword", "instanceof"], ["punctuation", ";"], + ["keyword", "interface"], ["punctuation", ";"], + ["keyword", "let"], ["punctuation", ";"], + ["keyword", "new"], ["punctuation", ";"], + ["keyword", "null"], ["punctuation", ";"], + ["keyword", "of"], ["punctuation", ";"], + ["keyword", "package"], ["punctuation", ";"], + ["keyword", "private"], ["punctuation", ";"], + ["keyword", "protected"], ["punctuation", ";"], + ["keyword", "public"], ["punctuation", ";"], + ["keyword", "return"], ["punctuation", ";"], + ["keyword", "set"], ["punctuation", ";"], + ["keyword", "static"], ["punctuation", ";"], + ["keyword", "super"], ["punctuation", ";"], + ["keyword", "switch"], ["punctuation", ";"], + ["keyword", "this"], ["punctuation", ";"], + ["keyword", "throw"], ["punctuation", ";"], + ["keyword", "try"], ["punctuation", ";"], + ["keyword", "typeof"], ["punctuation", ";"], + ["keyword", "var"], ["punctuation", ";"], + ["keyword", "void"], ["punctuation", ";"], + ["keyword", "while"], ["punctuation", ";"], + ["keyword", "with"], ["punctuation", ";"], + ["keyword", "yield"], ["punctuation", ";"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/number_feature.test b/node_modules/prismjs/tests/languages/javascript/number_feature.test new file mode 100644 index 0000000..b832787 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/number_feature.test @@ -0,0 +1,32 @@ +42 +3.14159 +4e10 +3.2E+6 +2.1e-10 +0b1101 +0o571 +0xbabe +0xBABE +NaN +Infinity + +---------------------------------------------------- + +[ + ["number", "42"], + ["number", "3.14159"], + ["number", "4e10"], + ["number", "3.2E+6"], + ["number", "2.1e-10"], + ["number", "0b1101"], + ["number", "0o571"], + ["number", "0xbabe"], + ["number", "0xBABE"], + ["number", "NaN"], + ["number", "Infinity"] +] + +---------------------------------------------------- + +Checks for decimal numbers, binary numbers, octal numbers, hexadecimal numbers. +Also checks for keywords representing numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/operator_feature.test b/node_modules/prismjs/tests/languages/javascript/operator_feature.test new file mode 100644 index 0000000..53a7637 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/operator_feature.test @@ -0,0 +1,25 @@ +- + -- ++ +< <= > >= += == === +! != !== +& && | || +* ** +? / ~ ^ % +... + +---------------------------------------------------- + +[ + ["operator", "-"], ["operator", "+"], ["operator", "--"], ["operator", "++"], + ["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="], + ["operator", "="], ["operator", "=="], ["operator", "==="], + ["operator", "!"], ["operator", "!="], ["operator", "!=="], + ["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"], + ["operator", "*"], ["operator", "**"], + ["operator", "?"], ["operator", "/"], ["operator", "~"], ["operator", "^"], ["operator", "%"], + ["operator", "..."] +] + +---------------------------------------------------- + +Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/regex_feature.test b/node_modules/prismjs/tests/languages/javascript/regex_feature.test new file mode 100644 index 0000000..c79397e --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/regex_feature.test @@ -0,0 +1,23 @@ +/foo bar/ +/foo/gimyu, +/[\[\]]{2,4}(?:foo)*/; +/foo"test"bar/ +/foo\// +1 / 4 + "/, not a regex"; +/ '1' '2' '3' '4' '5' / + +---------------------------------------------------- + +[ + ["regex", "/foo bar/"], + ["regex", "/foo/gimyu"], ["punctuation", ","], + ["regex", "/[\\[\\]]{2,4}(?:foo)*/"], ["punctuation", ";"], + ["regex", "/foo\"test\"bar/"], + ["regex", "/foo\\//"], + ["number", "1"], ["operator", "/"], ["number", "4"], ["operator", "+"], ["string", "\"/, not a regex\""], ["punctuation", ";"], + ["regex", "/ '1' '2' '3' '4' '5' /"] +] + +---------------------------------------------------- + +Checks for regex. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/template-string_feature.test b/node_modules/prismjs/tests/languages/javascript/template-string_feature.test new file mode 100644 index 0000000..33de8b3 --- /dev/null +++ b/node_modules/prismjs/tests/languages/javascript/template-string_feature.test @@ -0,0 +1,44 @@ +`foo bar` +`foo +bar` +`40+2=${40+2}` +`${foo()}` +"foo `a` `b` `c` `d` bar" + +---------------------------------------------------- + +[ + ["template-string", [ + ["string", "`foo bar`"] + ]], + ["template-string", [ + ["string", "`foo\r\nbar`"] + ]], + ["template-string", [ + ["string", "`40+2="], + ["interpolation", [ + ["interpolation-punctuation", "${"], + ["number", "40"], + ["operator", "+"], + ["number", "2"], + ["interpolation-punctuation", "}"] + ]], + ["string", "`"] + ]], + ["template-string", [ + ["string", "`"], + ["interpolation", [ + ["interpolation-punctuation", "${"], + ["function", "foo"], + ["punctuation", "("], + ["punctuation", ")"], + ["interpolation-punctuation", "}"] + ]], + ["string", "`"] + ]], + ["string", "\"foo `a` `b` `c` `d` bar\""] +] + +---------------------------------------------------- + +Checks for single-line and multi-line template strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/deployment_features.test b/node_modules/prismjs/tests/languages/jolie/deployment_features.test new file mode 100644 index 0000000..ebcd86a --- /dev/null +++ b/node_modules/prismjs/tests/languages/jolie/deployment_features.test @@ -0,0 +1,43 @@ +Aggregates: First, Second with Third +Redirects: First => Second, Third => Fourth +Jolie: "logger.ol" in LoggerService +log@LoggerService( new )(); +println @ Console( "none" )() +---------------------------------------------------- + [ + [ "keyword", "Aggregates" ], + [ "operator", ":" ], + [ "aggregates", [ + [ "function", "First" ], [ "punctuation", ","], + [ "function", "Second" ], + [ "withExtension", [ + [ "keyword", "with" ], " Third" ] + ] + ] + ], + [ "keyword", "Redirects" ], + [ "operator", ":" ], + [ "redirects", + [ + [ "function", "First" ], + [ "symbol", "=>" ], + [ "function", "Second" ], [ "punctuation", ","], + [ "function", "Third" ], + [ "symbol", "=>" ], + [ "function", "Fourth" ] + ] + ], + [ "keyword", "Jolie" ], + [ "operator", ":" ], + [ "string", "\"logger.ol\"" ], + [ "keyword", "in" ], + [ "function", "LoggerService" ], + "\nlog", [ "symbol", "@" ], [ "function", "LoggerService" ], + "( ", [ "keyword", "new" ], " )()", [ "symbol", ";" ], + "\nprintln ", [ "symbol", "@" ], [ "function", "Console" ], + "( ", [ "string", "\"none\"" ], " )()" +] + +---------------------------------------------------- + +Checks for outputPorts and Aggregates and Redirect constructs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/keyword_feature.test b/node_modules/prismjs/tests/languages/jolie/keyword_feature.test new file mode 100644 index 0000000..55a95ca --- /dev/null +++ b/node_modules/prismjs/tests/languages/jolie/keyword_feature.test @@ -0,0 +1,129 @@ +include +define +is_defined +undef +main +init +outputPort ; +inputPort ; +Location +Protocol +Interfaces +RequestResponse +OneWay +type +interface +extender +throws +cset +csets +forward +courier ; +Aggregates +Redirects +embedded +extender +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 + +---------------------------------------------------- +[ + ["keyword", "include" ], + ["keyword", "define" ], + ["keyword", "is_defined" ], + ["keyword", "undef" ], + ["keyword", "main" ], + ["keyword", "init" ], + ["keyword", "outputPort" ], [ "symbol", ";" ], + ["keyword", "inputPort" ], [ "symbol", ";" ], + ["keyword", "Location" ], + ["keyword", "Protocol" ], + ["keyword", "Interfaces" ], + ["keyword", "RequestResponse" ], + ["keyword", "OneWay" ], + ["keyword", "type" ], + ["keyword", "interface" ], + ["keyword", "extender" ], + ["keyword", "throws" ], + ["keyword", "cset" ], + ["keyword", "csets" ], + ["keyword", "forward" ], + ["keyword", "courier" ], [ "symbol", ";" ], + ["keyword", "Aggregates" ], + ["keyword", "Redirects" ], + ["keyword", "embedded" ], + ["keyword", "extender" ], + ["keyword", "execution" ], + ["keyword", "sequential" ], + ["keyword", "concurrent" ], + ["keyword", "single" ], + ["keyword", "scope" ], + ["keyword", "install" ], + ["keyword", "throw" ], + ["keyword", "comp" ], + ["keyword", "cH" ], + ["keyword", "default" ], + ["keyword", "global" ], + ["keyword", "linkIn" ], + ["keyword", "linkOut" ], + ["keyword", "synchronized" ], + ["keyword", "this" ], + ["keyword", "new" ], + ["keyword", "for" ], + ["keyword", "if" ], + ["keyword", "else" ], + ["keyword", "while" ], + ["keyword", "in" ], [ "symbol", ";" ], + ["keyword", "Jolie" ], + ["keyword", "Java" ], + ["keyword", "Javascript" ], + ["keyword", "nullProcess" ], + ["keyword", "spawn" ], + ["keyword", "constants" ], + ["keyword", "with" ], + ["keyword", "provide" ], + ["keyword", "until" ], + ["keyword", "exit" ], + ["keyword", "foreach" ], + ["keyword", "instanceof" ], + ["keyword", "over" ], + ["keyword", "service" ] + +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/number_feature.test b/node_modules/prismjs/tests/languages/jolie/number_feature.test new file mode 100644 index 0000000..90d5c96 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jolie/number_feature.test @@ -0,0 +1,19 @@ +42 +42L +1.2e3 +0.1E-4 +0.2e+1 + +---------------------------------------------------- + +[ + ["number", "42" ], + ["number", "42L" ], + ["number", "1.2e3" ], + ["number", "0.1E-4" ], + ["number", "0.2e+1" ] +] + +---------------------------------------------------- + +Checks for decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/operator_feature.test b/node_modules/prismjs/tests/languages/jolie/operator_feature.test new file mode 100644 index 0000000..963acc2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jolie/operator_feature.test @@ -0,0 +1,42 @@ ++ ++ += +- -- -= +! != +< <= > >= -> << += == +&& +? * / % ; : | @ + +---------------------------------------------------- + +[ + ["operator", "+"], + ["operator", "++"], + ["operator", "+="], + ["operator", "-"], + ["operator", "--"], + ["operator", "-="], + ["operator", "!"], + ["operator", "!="], + ["operator", "<" ], + ["operator", "<=" ], + ["operator", ">" ], + ["operator", ">=" ], + ["operator", "->" ], + ["operator", "<<" ], + ["operator", "=" ], + ["operator", "==" ], + ["operator", "&&" ], + [ "operator", "?" ], + [ "operator", "*" ], + [ "operator", "/" ], + [ "operator", "%" ], + [ "symbol", ";" ], + [ "operator", ":" ], + [ "symbol", "|" ], + [ "symbol", "@" ] + +] + +---------------------------------------------------- + +Checks for all operators and symbols. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/boolean_feature.test b/node_modules/prismjs/tests/languages/json/boolean_feature.test new file mode 100644 index 0000000..4019c44 --- /dev/null +++ b/node_modules/prismjs/tests/languages/json/boolean_feature.test @@ -0,0 +1,13 @@ +true +false + +---------------------------------------------------- + +[ + ["boolean", "true"], + ["boolean", "false"] +] + +---------------------------------------------------- + +Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/null_feature.test b/node_modules/prismjs/tests/languages/json/null_feature.test new file mode 100644 index 0000000..1283944 --- /dev/null +++ b/node_modules/prismjs/tests/languages/json/null_feature.test @@ -0,0 +1,11 @@ +null + +---------------------------------------------------- + +[ + ["null", "null"] +] + +---------------------------------------------------- + +Checks for null. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/number_feature.test b/node_modules/prismjs/tests/languages/json/number_feature.test new file mode 100644 index 0000000..ba045ec --- /dev/null +++ b/node_modules/prismjs/tests/languages/json/number_feature.test @@ -0,0 +1,21 @@ +0 +123 +3.14159 +5.0e8 +0.2E+2 +47e-5 + +---------------------------------------------------- + +[ + ["number", "0"], + ["number", "123"], + ["number", "3.14159"], + ["number", "5.0e8"], + ["number", "0.2E+2"], + ["number", "47e-5"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/property_feature.test b/node_modules/prismjs/tests/languages/json/property_feature.test new file mode 100644 index 0000000..3880ad7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/json/property_feature.test @@ -0,0 +1,33 @@ +{"foo\"bar\"baz":1,"foo":2} +{ + "foo": 1, + "b\"ar": 2 +} + +---------------------------------------------------- + +[ + ["punctuation", "{"], + ["property", "\"foo\\\"bar\\\"baz\""], + ["operator", ":"], + ["number", "1"], + ["punctuation", ","], + ["property", "\"foo\""], + ["operator", ":"], + ["number", "2"], + ["punctuation", "}"], + + ["punctuation", "{"], + ["property", "\"foo\""], + ["operator", ":"], + ["number", "1"], + ["punctuation", ","], + ["property", "\"b\\\"ar\""], + ["operator", ":"], + ["number", "2"], + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for features. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/string_feature.test b/node_modules/prismjs/tests/languages/json/string_feature.test new file mode 100644 index 0000000..08ac8c0 --- /dev/null +++ b/node_modules/prismjs/tests/languages/json/string_feature.test @@ -0,0 +1,27 @@ +"" +"foo" +"foo\"bar\"baz" +"\u2642\\ " +{"foo":"bar","baz":"\""} + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"foo\""], + ["string", "\"foo\\\"bar\\\"baz\""], + ["string", "\"\\u2642\\\\ \""], + ["punctuation", "{"], + ["property", "\"foo\""], + ["operator", ":"], + ["string", "\"bar\""], + ["punctuation", ","], + ["property", "\"baz\""], + ["operator", ":"], + ["string", "\"\\\"\""], + ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jsx/tag_feature.test b/node_modules/prismjs/tests/languages/jsx/tag_feature.test new file mode 100644 index 0000000..6a4a8c5 --- /dev/null +++ b/node_modules/prismjs/tests/languages/jsx/tag_feature.test @@ -0,0 +1,48 @@ +var myDivElement =
; +var myElement = ; + +---------------------------------------------------- + +[ + ["keyword", "var"], + " myDivElement ", + ["operator", "="], + ["tag", [ + ["tag", [ + ["punctuation", "<"], + "div" + ]], + ["attr-name", ["className"]], + ["attr-value", [ + ["punctuation", "="], + ["punctuation", "\""], + "foo", + ["punctuation", "\""] + ]], + ["punctuation", "/>"] + ]], + ["punctuation", ";"], + + ["keyword", "var"], + " myElement ", + ["operator", "="], + ["tag", [ + ["tag", [ + ["punctuation", "<"], + "MyComponent" + ]], + ["attr-name", ["someProperty"]], + ["script", [ + ["punctuation", "="], + ["punctuation", "{"], + ["boolean", "true"], + ["punctuation", "}"] + ]], + ["punctuation", "/>"] + ]], + ["punctuation", ";"] +] + +---------------------------------------------------- + +Checks for JSX tags. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/boolean_feature.test b/node_modules/prismjs/tests/languages/julia/boolean_feature.test new file mode 100644 index 0000000..4019c44 --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/boolean_feature.test @@ -0,0 +1,13 @@ +true +false + +---------------------------------------------------- + +[ + ["boolean", "true"], + ["boolean", "false"] +] + +---------------------------------------------------- + +Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/comment_feature.test b/node_modules/prismjs/tests/languages/julia/comment_feature.test new file mode 100644 index 0000000..054d602 --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/comment_feature.test @@ -0,0 +1,13 @@ +# +# foobar + +---------------------------------------------------- + +[ + ["comment", "#"], + ["comment", "# foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/keyword_feature.test b/node_modules/prismjs/tests/languages/julia/keyword_feature.test new file mode 100644 index 0000000..e2cfa8c --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/keyword_feature.test @@ -0,0 +1,31 @@ +abstract baremodule begin +bitstype break catch +ccall const continue +do else elseif end +export finally for +function global if +immutable import importall +let local macro module +print println quote +return try type +typealias using while + +---------------------------------------------------- + +[ + ["keyword", "abstract"], ["keyword", "baremodule"], ["keyword", "begin"], + ["keyword", "bitstype"], ["keyword", "break"], ["keyword", "catch"], + ["keyword", "ccall"], ["keyword", "const"], ["keyword", "continue"], + ["keyword", "do"], ["keyword", "else"], ["keyword", "elseif"], ["keyword", "end"], + ["keyword", "export"], ["keyword", "finally"], ["keyword", "for"], + ["keyword", "function"], ["keyword", "global"], ["keyword", "if"], + ["keyword", "immutable"], ["keyword", "import"], ["keyword", "importall"], + ["keyword", "let"], ["keyword", "local"], ["keyword", "macro"], ["keyword", "module"], + ["keyword", "print"], ["keyword", "println"], ["keyword", "quote"], + ["keyword", "return"], ["keyword", "try"], ["keyword", "type"], + ["keyword", "typealias"], ["keyword", "using"], ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/number_feature.test b/node_modules/prismjs/tests/languages/julia/number_feature.test new file mode 100644 index 0000000..72fc7a4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/number_feature.test @@ -0,0 +1,33 @@ +0b0011 +0o274 +0xBadFace +42 +1.23 +1e10 +2.5e-4 +0.5f0 +2.5f-4 +0x1p0 +0x1.8p3 +0x.4p-1 + +---------------------------------------------------- + +[ + ["number", "0b0011"], + ["number", "0o274"], + ["number", "0xBadFace"], + ["number", "42"], + ["number", "1.23"], + ["number", "1e10"], + ["number", "2.5e-4"], + ["number", "0.5f0"], + ["number", "2.5f-4"], + ["number", "0x1p0"], + ["number", "0x1.8p3"], + ["number", "0x.4p-1"] +] + +---------------------------------------------------- + +Checks for binary, octal, hexadecimal and decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/operator_feature.test b/node_modules/prismjs/tests/languages/julia/operator_feature.test new file mode 100644 index 0000000..57f0d68 --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/operator_feature.test @@ -0,0 +1,41 @@ ++ += +- -= +* *= +/ /= // +\ \= +^ ^= +% %= +÷ ÷= +! != !== +& &= +| |= |> +$ $= +< <= <: << <<= +> >= >> >>= >>> >>>= += == === +~ ≠ ≤ ≥ + +---------------------------------------------------- + +[ + ["operator", "+"], ["operator", "+="], + ["operator", "-"], ["operator", "-="], + ["operator", "*"], ["operator", "*="], + ["operator", "/"], ["operator", "/="], ["operator", "//"], + ["operator", "\\"], ["operator", "\\="], + ["operator", "^"], ["operator", "^="], + ["operator", "%"], ["operator", "%="], + ["operator", "÷"], ["operator", "÷="], + ["operator", "!"], ["operator", "!="], ["operator", "!=="], + ["operator", "&"], ["operator", "&="], + ["operator", "|"], ["operator", "|="], ["operator", "|>"], + ["operator", "$"], ["operator", "$="], + ["operator", "<"], ["operator", "<="], ["operator", "<:"], ["operator", "<<"], ["operator", "<<="], + ["operator", ">"], ["operator", ">="], ["operator", ">>"], ["operator", ">>="], ["operator", ">>>"], ["operator", ">>>="], + ["operator", "="], ["operator", "=="], ["operator", "==="], + ["operator", "~"], ["operator", "≠"], ["operator", "≤"], ["operator", "≥"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/string_feature.test b/node_modules/prismjs/tests/languages/julia/string_feature.test new file mode 100644 index 0000000..207b3f4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/julia/string_feature.test @@ -0,0 +1,29 @@ +"" +"fo\"o" +'x' +'\'' +'\u2200' +"""foo""" +"""fo"o +bar""" +'''foo''' +'''fo'o +bar''' + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"fo\\\"o\""], + ["string", "'x'"], + ["string", "'\\''"], + ["string", "'\\u2200'"], + ["string", "\"\"\"foo\"\"\""], + ["string", "\"\"\"fo\"o\r\nbar\"\"\""], + ["string", "'''foo'''"], + ["string", "'''fo'o\r\nbar'''"] +] + +---------------------------------------------------- + +Checks for strings and characters. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/atrule_feature.test b/node_modules/prismjs/tests/languages/keyman/atrule_feature.test new file mode 100644 index 0000000..1171caf --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/atrule_feature.test @@ -0,0 +1,15 @@ +ansi begin unicode +group using keys +match nomatch + +---------------------------------------------------- + +[ + ["atrule", "ansi"], ["atrule", "begin"], ["atrule", "unicode"], + ["atrule", "group"], ["atrule", "using keys"], + ["atrule", "match"], ["atrule", "nomatch"] +] + +---------------------------------------------------- + +Checks for all structural keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/bold_feature.test b/node_modules/prismjs/tests/languages/keyman/bold_feature.test new file mode 100644 index 0000000..58e731c --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/bold_feature.test @@ -0,0 +1,59 @@ +&baselayout &bitmap &capsononly +&capsalwaysoff &shiftfreescaps +©right ðnologuecode +&hotkey &includecodes +&keyboardversion &kmw_embedcss +&kmw_embedjs &kmw_helpfile +&kmw_helptext &kmw_rtl +&language &layer &layoutfile +&message &mnemoniclayout +&name &oldcharposmatching +&platform &targets &version +&visualkeyboard &windowslanguages + +bitmap +bitmaps +caps on only +caps always off +shift frees caps +copyright +hotkey +language +layout +message +name +version + +---------------------------------------------------- + +[ + ["bold", "&baselayout"], ["bold", "&bitmap"], ["bold", "&capsononly"], + ["bold", "&capsalwaysoff"], ["bold", "&shiftfreescaps"], + ["bold", "©right"], ["bold", "ðnologuecode"], + ["bold", "&hotkey"], ["bold", "&includecodes"], + ["bold", "&keyboardversion"], ["bold", "&kmw_embedcss"], + ["bold", "&kmw_embedjs"], ["bold", "&kmw_helpfile"], + ["bold", "&kmw_helptext"], ["bold", "&kmw_rtl"], + ["bold", "&language"], ["bold", "&layer"], ["bold", "&layoutfile"], + ["bold", "&message"], ["bold", "&mnemoniclayout"], + ["bold", "&name"], ["bold", "&oldcharposmatching"], + ["bold", "&platform"], ["bold", "&targets"], ["bold", "&version"], + ["bold", "&visualkeyboard"], ["bold", "&windowslanguages"], + + ["bold", "bitmap"], + ["bold", "bitmaps"], + ["bold", "caps on only"], + ["bold", "caps always off"], + ["bold", "shift frees caps"], + ["bold", "copyright"], + ["bold", "hotkey"], + ["bold", "language"], + ["bold", "layout"], + ["bold", "message"], + ["bold", "name"], + ["bold", "version"] +] + +---------------------------------------------------- + +Checks for header statements, system stores and variable system stores. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/comment_feature.test b/node_modules/prismjs/tests/languages/keyman/comment_feature.test new file mode 100644 index 0000000..3056bde --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/comment_feature.test @@ -0,0 +1,13 @@ +c Foo + c Foobar + +---------------------------------------------------- + +[ + ["comment", "c Foo"], + ["comment", "c Foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/function_feature.test b/node_modules/prismjs/tests/languages/keyman/function_feature.test new file mode 100644 index 0000000..3852ade --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/function_feature.test @@ -0,0 +1,39 @@ +['c'] +["f"] +[K_SEL] +[K_KANJI?15] +[T_SCHWA] +[U_0259] +[CTRL 'a'] +[SHIFT "b"] +[ALT K_C] +[LCTRL T_D] +[RCTRL U_E259] +[LALT K_F] +[RALT K_G] +[CAPS K_H] +[NCAPS K_I] + +---------------------------------------------------- + +[ + ["function", "['c']"], + ["function", "[\"f\"]"], + ["function", "[K_SEL]"], + ["function", "[K_KANJI?15]"], + ["function", "[T_SCHWA]"], + ["function", "[U_0259]"], + ["function", "[CTRL 'a']"], + ["function", "[SHIFT \"b\"]"], + ["function", "[ALT K_C]"], + ["function", "[LCTRL T_D]"], + ["function", "[RCTRL U_E259]"], + ["function", "[LALT K_F]"], + ["function", "[RALT K_G]"], + ["function", "[CAPS K_H]"], + ["function", "[NCAPS K_I]"] +] + +---------------------------------------------------- + +Checks for keys, with all possible modifiers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/keyword_feature.test b/node_modules/prismjs/tests/languages/keyman/keyword_feature.test new file mode 100644 index 0000000..7bbd230 --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/keyword_feature.test @@ -0,0 +1,21 @@ +any baselayout beep +call context deadkey +dk if index layer +notany nul outs +platform return reset +save set store use + +---------------------------------------------------- + +[ + ["keyword", "any"], ["keyword", "baselayout"], ["keyword", "beep"], + ["keyword", "call"], ["keyword", "context"], ["keyword", "deadkey"], + ["keyword", "dk"], ["keyword", "if"], ["keyword", "index"], ["keyword", "layer"], + ["keyword", "notany"], ["keyword", "nul"], ["keyword", "outs"], + ["keyword", "platform"], ["keyword", "return"], ["keyword", "reset"], + ["keyword", "save"], ["keyword", "set"], ["keyword", "store"], ["keyword", "use"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/number_feature.test b/node_modules/prismjs/tests/languages/keyman/number_feature.test new file mode 100644 index 0000000..c71eb6e --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/number_feature.test @@ -0,0 +1,21 @@ +U+0041 +d67 +d1114111 +x20 +x10FFFF +4177777 + +---------------------------------------------------- + +[ + ["number", "U+0041"], + ["number", "d67"], + ["number", "d1114111"], + ["number", "x20"], + ["number", "x10FFFF"], + ["number", "4177777"] +] + +---------------------------------------------------- + +Checks for unicode, decimal, hexadecimal and octal character codes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/operator_feature.test b/node_modules/prismjs/tests/languages/keyman/operator_feature.test new file mode 100644 index 0000000..bc439e8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/operator_feature.test @@ -0,0 +1,15 @@ ++ > +\ , +( ) + +---------------------------------------------------- + +[ + ["operator", "+"], ["operator", ">"], + ["operator", "\\"], ["operator", ","], + ["operator", "("], ["operator", ")"] +] + +---------------------------------------------------- + +Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/string_feature.test b/node_modules/prismjs/tests/languages/keyman/string_feature.test new file mode 100644 index 0000000..ac457af --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/string_feature.test @@ -0,0 +1,17 @@ +'' +"" +'foo' +"bar" + +---------------------------------------------------- + +[ + ["string", "''"], + ["string", "\"\""], + ["string", "'foo'"], + ["string", "\"bar\""] +] + +---------------------------------------------------- + +Checks for single-quoted and double-quoted strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/tag_feature.test b/node_modules/prismjs/tests/languages/keyman/tag_feature.test new file mode 100644 index 0000000..2aa760a --- /dev/null +++ b/node_modules/prismjs/tests/languages/keyman/tag_feature.test @@ -0,0 +1,19 @@ +$keyman: +$kmfl: +$weaver: +$keymanweb: +$keymanonly: + +---------------------------------------------------- + +[ + ["tag", "$keyman:"], + ["tag", "$kmfl:"], + ["tag", "$weaver:"], + ["tag", "$keymanweb:"], + ["tag", "$keymanonly:"] +] + +---------------------------------------------------- + +Checks for all prefixes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test b/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test new file mode 100644 index 0000000..05c1385 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test @@ -0,0 +1,21 @@ +@Deprecated(SUBSYSTEM_DEPRECATED) +@SetUp +@Suppress +@field:Ann +@file:JvmName +@set:[Inject VisibleForTesting] + +---------------------------------------------------- + +[ + ["annotation", "@Deprecated"], ["punctuation", "("], "SUBSYSTEM_DEPRECATED", ["punctuation", ")"], + ["annotation", "@SetUp"], + ["annotation", "@Suppress"], + ["annotation", "@field:Ann"], + ["annotation", "@file:JvmName"], + ["annotation", "@set:[Inject VisibleForTesting]"] +] + +---------------------------------------------------- + +Checks for annotations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/function_feature.test b/node_modules/prismjs/tests/languages/kotlin/function_feature.test new file mode 100644 index 0000000..8bfd2b2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/function_feature.test @@ -0,0 +1,16 @@ +foo() +foo_Bar_42() +list.filter {} + +---------------------------------------------------- + +[ + ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], + ["function", "foo_Bar_42"], ["punctuation", "("], ["punctuation", ")"], + "\r\nlist", ["punctuation", "."], + ["function", "filter"], ["punctuation", "{"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test b/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test new file mode 100644 index 0000000..0ee8299 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test @@ -0,0 +1,46 @@ +"$foo ${bar} ${'$'} ${foobar()}" +""" +$foo ${bar} +${'$'} ${foobar()} +""" + +---------------------------------------------------- + +[ + ["string", [ + "\"", + ["interpolation", "$foo"], + ["interpolation", [ + ["delimiter", "${"], "bar", ["delimiter", "}"] + ]], + ["interpolation", [ + ["delimiter", "${"], ["string", "'$'"], ["delimiter", "}"] + ]], + ["interpolation", [ + ["delimiter", "${"], + ["function", "foobar"], ["punctuation", "("], ["punctuation", ")"], + ["delimiter", "}"] + ]], + "\"" + ]], + ["raw-string", [ + "\"\"\"\r\n", + ["interpolation", "$foo"], + ["interpolation", [ + ["delimiter", "${"], "bar", ["delimiter", "}"] + ]], + ["interpolation", [ + ["delimiter", "${"], ["string", "'$'"], ["delimiter", "}"] + ]], + ["interpolation", [ + ["delimiter", "${"], + ["function", "foobar"], ["punctuation", "("], ["punctuation", ")"], + ["delimiter", "}"] + ]], + "\r\n\"\"\"" + ]] +] + +---------------------------------------------------- + +Checks for string interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test b/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test new file mode 100644 index 0000000..d8ace30 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test @@ -0,0 +1,121 @@ +abstract +annotation +as +break +by +catch +class +companion +const +constructor +continue +crossinline +data +do +else +enum +final +finally +for +fun +get +if +import +in +init +inline +inner +interface +internal +is +lateinit +noinline +null +object +open +out +override +package +private +protected +public +reified +return +sealed +set +super +tailrec +this +throw +to +try +val +var +when +where +while + +---------------------------------------------------- + +[ + ["keyword", "abstract"], + ["keyword", "annotation"], + ["keyword", "as"], + ["keyword", "break"], + ["keyword", "by"], + ["keyword", "catch"], + ["keyword", "class"], + ["keyword", "companion"], + ["keyword", "const"], + ["keyword", "constructor"], + ["keyword", "continue"], + ["keyword", "crossinline"], + ["keyword", "data"], + ["keyword", "do"], + ["keyword", "else"], + ["keyword", "enum"], + ["keyword", "final"], + ["keyword", "finally"], + ["keyword", "for"], + ["keyword", "fun"], + ["keyword", "get"], + ["keyword", "if"], + ["keyword", "import"], + ["keyword", "in"], + ["keyword", "init"], + ["keyword", "inline"], + ["keyword", "inner"], + ["keyword", "interface"], + ["keyword", "internal"], + ["keyword", "is"], + ["keyword", "lateinit"], + ["keyword", "noinline"], + ["keyword", "null"], + ["keyword", "object"], + ["keyword", "open"], + ["keyword", "out"], + ["keyword", "override"], + ["keyword", "package"], + ["keyword", "private"], + ["keyword", "protected"], + ["keyword", "public"], + ["keyword", "reified"], + ["keyword", "return"], + ["keyword", "sealed"], + ["keyword", "set"], + ["keyword", "super"], + ["keyword", "tailrec"], + ["keyword", "this"], + ["keyword", "throw"], + ["keyword", "to"], + ["keyword", "try"], + ["keyword", "val"], + ["keyword", "var"], + ["keyword", "when"], + ["keyword", "where"], + ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/label_feature.test b/node_modules/prismjs/tests/languages/kotlin/label_feature.test new file mode 100644 index 0000000..fa62266 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/label_feature.test @@ -0,0 +1,15 @@ +loop@ +break@loop +return@forEach + +---------------------------------------------------- + +[ + ["label", "loop@"], + ["keyword", "break"], ["label", "@loop"], + ["keyword", "return"], ["label", "@forEach"] +] + +---------------------------------------------------- + +Checks for labels. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/number_feature.test b/node_modules/prismjs/tests/languages/kotlin/number_feature.test new file mode 100644 index 0000000..df21736 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/number_feature.test @@ -0,0 +1,29 @@ +123 +123L +0x0F +0b00001011 +123.5 +123.5e10 +123.5e-10 +123.5e+10 +123.5f +123.5F + +---------------------------------------------------- + +[ + ["number", "123"], + ["number", "123L"], + ["number", "0x0F"], + ["number", "0b00001011"], + ["number", "123.5"], + ["number", "123.5e10"], + ["number", "123.5e-10"], + ["number", "123.5e+10"], + ["number", "123.5f"], + ["number", "123.5F"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/operator_feature.test b/node_modules/prismjs/tests/languages/kotlin/operator_feature.test new file mode 100644 index 0000000..12f0cae --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/operator_feature.test @@ -0,0 +1,31 @@ ++ ++ += +- -- -= -> += == === +! !! != !== +/ /= * *= +% %= +< <= > >= +? ?: : :: +.. && || +and inv or +shl shr ushr xor + +---------------------------------------------------- + +[ + ["operator", "+"], ["operator", "++"], ["operator", "+="], + ["operator", "-"], ["operator", "--"], ["operator", "-="], ["operator", "->"], + ["operator", "="], ["operator", "=="], ["operator", "==="], + ["operator", "!"], ["operator", "!!"], ["operator", "!="], ["operator", "!=="], + ["operator", "/"], ["operator", "/="], ["operator", "*"], ["operator", "*="], + ["operator", "%"], ["operator", "%="], + ["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="], + ["operator", "?"], ["operator", "?:"], ["operator", ":"], ["operator", "::"], + ["operator", ".."], ["operator", "&&"], ["operator", "||"], + ["operator", "and"], ["operator", "inv"], ["operator", "or"], + ["operator", "shl"], ["operator", "shr"], ["operator", "ushr"], ["operator", "xor"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test b/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test new file mode 100644 index 0000000..5a5ca33 --- /dev/null +++ b/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test @@ -0,0 +1,18 @@ +"""""" +"""Foo "bar"" baz""" +""" +"Foo" +bar +""" + +---------------------------------------------------- + +[ + ["raw-string", ["\"\"\"\"\"\""]], + ["raw-string", ["\"\"\"Foo \"bar\"\" baz\"\"\""]], + ["raw-string", ["\"\"\"\r\n\"Foo\"\r\nbar\r\n\"\"\""]] +] + +---------------------------------------------------- + +Checks for raw strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/cdata_feature.test b/node_modules/prismjs/tests/languages/latex/cdata_feature.test new file mode 100644 index 0000000..0dfa98e --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/cdata_feature.test @@ -0,0 +1,28 @@ +\begin{verbatim*} +Foo bar +\end{verbatim*} + +\begin{lstlisting} +Foo bar +baz +\end{lstlisting} + +---------------------------------------------------- + +[ + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "verbatim*"], ["punctuation", "}"], + ["cdata", "\r\nFoo bar\r\n"], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "verbatim*"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "lstlisting"], ["punctuation", "}"], + ["cdata", "\r\nFoo bar\r\nbaz\r\n"], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "lstlisting"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for verbatim environment. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/comment_feature.test b/node_modules/prismjs/tests/languages/latex/comment_feature.test new file mode 100644 index 0000000..2f59d3c --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/comment_feature.test @@ -0,0 +1,13 @@ +% +% foobar + +---------------------------------------------------- + +[ + ["comment", "%"], + ["comment", "% foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/equation_feature.test b/node_modules/prismjs/tests/languages/latex/equation_feature.test new file mode 100644 index 0000000..40caeeb --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/equation_feature.test @@ -0,0 +1,121 @@ +$foo$ +$a \dots +b$ +\(foo\) +\(a \dots +b\) +\[foo\] +\[a \dots +b\] + +\begin{equation}foo\end{equation} +\begin{equation}a \dots +b\end{equation} +\begin{math}foo\end{math} +\begin{math}a \dots +b\end{math} +\begin{eqnarray}foo\end{eqnarray} +\begin{eqnarray}a \dots +b\end{eqnarray} +\begin{align}foo\end{align} +\begin{align*}a \dots +b\end{align*} +\begin{multline}foo\end{multline} +\begin{multline}a \dots +b\end{multline} +\begin{gather}foo\end{gather} +\begin{gather}a \dots +b\end{gather} + +---------------------------------------------------- + +[ + ["equation", ["$foo$"]], + ["equation", [ + "$a ", + ["equation-command", "\\dots"], + "\r\nb$" + ]], + ["equation", ["\\(foo\\)"]], + ["equation", [ + "\\(a ", + ["equation-command", "\\dots"], + "\r\nb\\)" + ]], + ["equation", ["\\[foo\\]"]], + ["equation", [ + "\\[a ", + ["equation-command", "\\dots"], + "\r\nb\\]" + ]], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "equation"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "equation"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "equation"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "equation"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "math"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "math"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "math"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "math"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "eqnarray"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "eqnarray"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "eqnarray"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "eqnarray"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "align"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "align"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "align*"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "align*"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "multline"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "multline"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "multline"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "multline"], ["punctuation", "}"], + + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "gather"], ["punctuation", "}"], + ["equation", ["foo"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "gather"], ["punctuation", "}"], + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "gather"], ["punctuation", "}"], + ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "gather"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for equations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/headline_feature.test b/node_modules/prismjs/tests/languages/latex/headline_feature.test new file mode 100644 index 0000000..17102ad --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/headline_feature.test @@ -0,0 +1,39 @@ +\part{Foobar} +\chapter{Foobar} +\section{Foobar} +\subsection{Foobar} +\frametitle{Foobar} +\subsubsection{Foobar} +\paragraph{Foobar} +\subparagraph{Foobar} +\subsubparagraph{Foobar} +\subsubsubparagraph{Foobar} + +---------------------------------------------------- + +[ + ["function", "\\part"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\chapter"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\section"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\subsection"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\frametitle"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\subsubsection"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\paragraph"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\subparagraph"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\subsubparagraph"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"], + ["function", "\\subsubsubparagraph"], ["punctuation", "{"], + ["headline", "Foobar"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for headlines. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/keyword_feature.test b/node_modules/prismjs/tests/languages/latex/keyword_feature.test new file mode 100644 index 0000000..7a1b86f --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/keyword_feature.test @@ -0,0 +1,32 @@ +\begin{foobar} +\end{foobar} +\ref{foobar} +\cite{foobar} +\label{foobar} +\usepackage{foobar} +\documentclass[11px,twoside,a4paper]{foobar} + +---------------------------------------------------- + +[ + ["function", "\\begin"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\end"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\ref"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\cite"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\label"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\usepackage"], ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"], + ["function", "\\documentclass"], + ["punctuation", "["], "11px,twoside,a4paper", ["punctuation", "]"], + ["punctuation", "{"], + ["keyword", "foobar"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/url_feature.test b/node_modules/prismjs/tests/languages/latex/url_feature.test new file mode 100644 index 0000000..53e1c01 --- /dev/null +++ b/node_modules/prismjs/tests/languages/latex/url_feature.test @@ -0,0 +1,12 @@ +\url{http://prismjs.com} + +---------------------------------------------------- + +[ + ["function", "\\url"], ["punctuation", "{"], + ["url", "http://prismjs.com"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for URLs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test b/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test new file mode 100644 index 0000000..fffe2ca --- /dev/null +++ b/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test @@ -0,0 +1,32 @@ +:less + .foo { .bar; } + +~ + :less + .foo { .bar; } + +---------------------------------------------------- + +[ + ["filter-less", [ + ["filter-name", ":less"], + ["selector", [".foo"]], + ["punctuation", "{"], + ["mixin-usage", ".bar"], + ["punctuation", ";"], + ["punctuation", "}"] + ]], + ["punctuation", "~"], + ["filter-less", [ + ["filter-name", ":less"], + ["selector", [".foo"]], + ["punctuation", "{"], + ["mixin-usage", ".bar"], + ["punctuation", ";"], + ["punctuation", "}"] + ]] +] + +---------------------------------------------------- + +Checks for Less filter in Haml. The tilde serves only as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test b/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test new file mode 100644 index 0000000..1cc8b35 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test @@ -0,0 +1,20 @@ +:less + @foo: #123; + +---------------------------------------------------- + +[ + ["filter-less", [ + ["filter-name", ":less"], + ["variable", [ + "@foo", + ["punctuation", ":"] + ]], + " #123", + ["punctuation", ";"] + ]] +] + +---------------------------------------------------- + +Checks for less filter in Jade. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/atrule_feature.test b/node_modules/prismjs/tests/languages/less/atrule_feature.test new file mode 100644 index 0000000..333d672 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less/atrule_feature.test @@ -0,0 +1,25 @@ +@media {} +@media screen and (min-width: 320px) {} + +---------------------------------------------------- + +[ + ["atrule", [ + "@media" + ]], + ["punctuation", "{"], ["punctuation", "}"], + + ["atrule", [ + "@media screen and ", + ["punctuation", "("], + "min-width", + ["punctuation", ":"], + " 320px", + ["punctuation", ")"] + ]], + ["punctuation", "{"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for at-rules. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/comment_feature.test b/node_modules/prismjs/tests/languages/less/comment_feature.test new file mode 100644 index 0000000..c728423 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less/comment_feature.test @@ -0,0 +1,18 @@ +// +// foobar +/**/ +/* foo +bar */ + +---------------------------------------------------- + +[ + ["comment", "//"], + ["comment", "// foobar"], + ["comment", "/**/"], + ["comment", "/* foo\r\nbar */"] +] + +---------------------------------------------------- + +Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/operator_feature.test b/node_modules/prismjs/tests/languages/less/operator_feature.test new file mode 100644 index 0000000..7093994 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less/operator_feature.test @@ -0,0 +1,14 @@ ++ - * / + +---------------------------------------------------- + +[ + ["operator", "+"], + ["operator", "-"], + ["operator", "*"], + ["operator", "/"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/property_feature.test b/node_modules/prismjs/tests/languages/less/property_feature.test new file mode 100644 index 0000000..85288c4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less/property_feature.test @@ -0,0 +1,19 @@ +font-weight: +@{foobar} : +background-@{foo}: +box-shadow+: +transform+_: + +---------------------------------------------------- + +[ + ["property", "font-weight"], ["punctuation", ":"], + ["property", "@{foobar}"], ["punctuation", ":"], + ["property", "background-@{foo}"], ["punctuation", ":"], + ["property", "box-shadow+"], ["punctuation", ":"], + ["property", "transform+_"], ["punctuation", ":"] +] + +---------------------------------------------------- + +Checks for properties. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/selector_feature.test b/node_modules/prismjs/tests/languages/less/selector_feature.test new file mode 100644 index 0000000..ae82f14 --- /dev/null +++ b/node_modules/prismjs/tests/languages/less/selector_feature.test @@ -0,0 +1,24 @@ +.bordered {} +.@{foo} {} +.foo (@bg: #fff, @color: #000) {} + +---------------------------------------------------- + +[ + ["selector", [".bordered"]], + ["punctuation", "{"], ["punctuation", "}"], + ["selector", [".@{foo}"]], + ["punctuation", "{"], ["punctuation", "}"], + ["selector", [ + ".foo (", + ["variable", "@bg"], + ": #fff, ", + ["variable", "@color"], + ": #000)" + ]], + ["punctuation", "{"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for selectors and mixin declarations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/argument_feature.test b/node_modules/prismjs/tests/languages/livescript/argument_feature.test new file mode 100644 index 0000000..c195da9 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/argument_feature.test @@ -0,0 +1,17 @@ +& +&0 +&1 +&999 + +---------------------------------------------------- + +[ + ["argument", "&"], + ["argument", "&0"], + ["argument", "&1"], + ["argument", "&999"] +] + +---------------------------------------------------- + +Checks for arguments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/boolean_feature.test b/node_modules/prismjs/tests/languages/livescript/boolean_feature.test new file mode 100644 index 0000000..8fa6348 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/boolean_feature.test @@ -0,0 +1,21 @@ +false +no +off +on +true +yes + +---------------------------------------------------- + +[ + ["boolean", "false"], + ["boolean", "no"], + ["boolean", "off"], + ["boolean", "on"], + ["boolean", "true"], + ["boolean", "yes"] +] + +---------------------------------------------------- + +Checks for all boolean aliases. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/comment_feature.test b/node_modules/prismjs/tests/languages/livescript/comment_feature.test new file mode 100644 index 0000000..afb4276 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/comment_feature.test @@ -0,0 +1,18 @@ +/**/ +/* foo +bar */ +# +# foobar + +---------------------------------------------------- + +[ + ["comment", "/**/"], + ["comment", "/* foo\r\nbar */"], + ["comment", "#"], + ["comment", "# foobar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/identifier_feature.test b/node_modules/prismjs/tests/languages/livescript/identifier_feature.test new file mode 100644 index 0000000..e0de5e8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/identifier_feature.test @@ -0,0 +1,21 @@ +foo +fooBar42 +foo-bar42-baz +yes-no +function-case +delete-by + +---------------------------------------------------- + +[ + ["identifier", "foo"], + ["identifier", "fooBar42"], + ["identifier", "foo-bar42-baz"], + ["identifier", "yes-no"], + ["identifier", "function-case"], + ["identifier", "delete-by"] +] + +---------------------------------------------------- + +Checks for identifiers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/interpolated-string.test b/node_modules/prismjs/tests/languages/livescript/interpolated-string.test new file mode 100644 index 0000000..015ae09 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/interpolated-string.test @@ -0,0 +1,57 @@ +"""""" +"""Foo\"""bar""" +"""Foo +bar""" +"""#foobar #{foo + 42}""" + +"" +"Foo\"bar" +"Foo +bar" +"#foo #{ if /test/ == 'test' then 3 else 4}" + +---------------------------------------------------- + +[ + ["interpolated-string", [["string", "\"\"\"\"\"\""]]], + ["interpolated-string", [["string", "\"\"\"Foo\\\"\"\"bar\"\"\""]]], + ["interpolated-string", [["string", "\"\"\"Foo\r\nbar\"\"\""]]], + ["interpolated-string", [ + ["string", "\"\"\""], + ["variable", "#foobar"], + ["string", " "], + ["interpolation", [ + ["interpolation-punctuation", "#{"], + ["identifier", "foo"], + ["operator", "+"], + ["number", "42"], + ["interpolation-punctuation", "}"] + ]], + ["string", "\"\"\""] + ]], + ["interpolated-string", [["string", "\"\""]]], + ["interpolated-string", [["string", "\"Foo\\\"bar\""]]], + ["interpolated-string", [["string", "\"Foo\r\nbar\""]]], + ["interpolated-string", [ + ["string", "\""], + ["variable", "#foo"], + ["string", " "], + ["interpolation", [ + ["interpolation-punctuation", "#{"], + ["keyword", "if"], + ["regex", "/test/"], + ["operator", "=="], + ["string", "'test'"], + ["keyword", "then"], + ["number", "3"], + ["keyword", "else"], + ["number", "4"], + ["interpolation-punctuation", "}"] + ]], + ["string", "\""] + ]] +] + +---------------------------------------------------- + +Checks for interpolated strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test b/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test new file mode 100644 index 0000000..b6f3d90 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test @@ -0,0 +1,57 @@ +delete! +require! +typeof! + +and +by +delete +export +from +import +import all +in +instanceof +is +isnt +is not +not +of +or +til +to +typeof +with +xor + +---------------------------------------------------- + +[ + ["keyword-operator", "delete!"], + ["keyword-operator", "require!"], + ["keyword-operator", "typeof!"], + + ["keyword-operator", "and"], + ["keyword-operator", "by"], + ["keyword-operator", "delete"], + ["keyword-operator", "export"], + ["keyword-operator", "from"], + ["keyword-operator", "import"], + ["keyword-operator", "import all"], + ["keyword-operator", "in"], + ["keyword-operator", "instanceof"], + ["keyword-operator", "is"], + ["keyword-operator", "isnt"], + ["keyword-operator", "is not"], + ["keyword-operator", "not"], + ["keyword-operator", "of"], + ["keyword-operator", "or"], + ["keyword-operator", "til"], + ["keyword-operator", "to"], + ["keyword-operator", "typeof"], + ["keyword-operator", "with"], + ["keyword-operator", "xor"] +] + +---------------------------------------------------- + +Checks for all keyword operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/keyword_feature.test b/node_modules/prismjs/tests/languages/livescript/keyword_feature.test new file mode 100644 index 0000000..123f37d --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/keyword_feature.test @@ -0,0 +1,87 @@ +break +case +catch +class +const +continue +default +do +else +extends +fallthrough +finally +for +for ever +function +if +implements +it +let +loop +new +null +otherwise +own +return +super +switch +that +then +this +throw +try +unless +until +var +void +when +while +yield + +---------------------------------------------------- + +[ + ["keyword", "break"], + ["keyword", "case"], + ["keyword", "catch"], + ["keyword", "class"], + ["keyword", "const"], + ["keyword", "continue"], + ["keyword", "default"], + ["keyword", "do"], + ["keyword", "else"], + ["keyword", "extends"], + ["keyword", "fallthrough"], + ["keyword", "finally"], + ["keyword", "for"], + ["keyword", "for ever"], + ["keyword", "function"], + ["keyword", "if"], + ["keyword", "implements"], + ["keyword", "it"], + ["keyword", "let"], + ["keyword", "loop"], + ["keyword", "new"], + ["keyword", "null"], + ["keyword", "otherwise"], + ["keyword", "own"], + ["keyword", "return"], + ["keyword", "super"], + ["keyword", "switch"], + ["keyword", "that"], + ["keyword", "then"], + ["keyword", "this"], + ["keyword", "throw"], + ["keyword", "try"], + ["keyword", "unless"], + ["keyword", "until"], + ["keyword", "var"], + ["keyword", "void"], + ["keyword", "when"], + ["keyword", "while"], + ["keyword", "yield"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/number_feature.test b/node_modules/prismjs/tests/languages/livescript/number_feature.test new file mode 100644 index 0000000..7375927 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/number_feature.test @@ -0,0 +1,21 @@ +42 42_ 42km 42km_2 +4.514 0.47foo_7 +4_8_7_4.2_4_7 +4~12 +16~badFaCE +36~azertyuiop0123456789 + +---------------------------------------------------- + +[ + ["number", "42"], ["number", "42_"], ["number", "42km"], ["number", "42km_2"], + ["number", "4.514"], ["number", "0.47foo_7"], + ["number", "4_8_7_4.2_4_7"], + ["number", "4~12"], + ["number", "16~badFaCE"], + ["number", "36~azertyuiop0123456789"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/operator_feature.test b/node_modules/prismjs/tests/languages/livescript/operator_feature.test new file mode 100644 index 0000000..d9565b2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/operator_feature.test @@ -0,0 +1,55 @@ +a . b +.= .~ .. ... +.&. .^. .<<. .>>. .>>>. +:= :: ::= +&& +|| |> +< << <<< <<<< +<- <-- <-! <--! +<~ <~~ <~! <~~! +<| <= >> >= >? +- -- -> --> ++ ++ +@ @@ +% %% +* ** +! != !~= +!~> !~~> +!-> !--> +~ ~> ~~> ~= += == +^ ^^ +/ ? + +---------------------------------------------------- + +[ + ["identifier", "a"], ["operator", "."], ["identifier", "b"], + ["operator", ".="], ["operator", ".~"], ["operator", ".."], ["operator", "..."], + ["operator", ".&."], ["operator", ".^."], ["operator", ".<<."], ["operator", ".>>."], ["operator", ".>>>."], + ["operator", ":="], ["operator", "::"], ["operator", "::="], + ["operator", "&&"], + ["operator", "||"], ["operator", "|>"], + ["operator", "<"], ["operator", "<<"], ["operator", "<<<"], ["operator", "<<<<"], + ["operator", "<-"], ["operator", "<--"], ["operator", "<-!"], ["operator", "<--!"], + ["operator", "<~"], ["operator", "<~~"], ["operator", "<~!"], ["operator", "<~~!"], + ["operator", "<|"], ["operator", "<="], ["operator", ""], ["operator", ">>"], ["operator", ">="], ["operator", ">?"], + ["operator", "-"], ["operator", "--"], ["operator", "->"], ["operator", "-->"], + ["operator", "+"], ["operator", "++"], + ["operator", "@"], ["operator", "@@"], + ["operator", "%"], ["operator", "%%"], + ["operator", "*"], ["operator", "**"], + ["operator", "!"], ["operator", "!="], ["operator", "!~="], + ["operator", "!~>"], ["operator", "!~~>"], + ["operator", "!->"], ["operator", "!-->"], + ["operator", "~"], ["operator", "~>"], ["operator", "~~>"], ["operator", "~="], + ["operator", "="], ["operator", "=="], + ["operator", "^"], ["operator", "^^"], + ["operator", "/"], ["operator", "?"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/regex_feature.test b/node_modules/prismjs/tests/languages/livescript/regex_feature.test new file mode 100644 index 0000000..0369ddb --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/regex_feature.test @@ -0,0 +1,27 @@ +/foo[bar]/igm +// +foo | +[bar]* +//igmuy +// +foo #bar +[baz] # foo bar +// + +---------------------------------------------------- + +[ + ["regex", "/foo[bar]/igm"], + ["regex", ["//\r\nfoo |\r\n[bar]*\r\n//igmuy"]], + ["regex", [ + "//\r\nfoo ", + ["comment", "#bar"], + "\r\n[baz] ", + ["comment", "# foo bar"], + "\r\n//" + ]] +] + +---------------------------------------------------- + +Checks for regexps. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/string_feature.test b/node_modules/prismjs/tests/languages/livescript/string_feature.test new file mode 100644 index 0000000..313a131 --- /dev/null +++ b/node_modules/prismjs/tests/languages/livescript/string_feature.test @@ -0,0 +1,32 @@ +'''''' +'''Foo\'''bar''' +'''Foo +bar''' + +'' +'Foo\'bar' +'Foo +bar' + +<[ foo bar baz ]> + +\foo \bar \"({[-!@^+baz + +---------------------------------------------------- + +[ + ["string", "''''''"], + ["string", "'''Foo\\'''bar'''"], + ["string", "'''Foo\r\nbar'''"], + ["string", "''"], + ["string", "'Foo\\'bar'"], + ["string", "'Foo\r\nbar'"], + ["string", "<[ foo bar baz ]>"], + ["string", "\\foo"], + ["string", "\\bar"], + ["string", "\\\"({[-!@^+baz"] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test b/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test new file mode 100644 index 0000000..4409cfe --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test @@ -0,0 +1,13 @@ +WIN +FAIL + +---------------------------------------------------- + +[ + ["boolean", "WIN"], + ["boolean", "FAIL"] +] + +---------------------------------------------------- + +Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/comment_feature.test b/node_modules/prismjs/tests/languages/lolcode/comment_feature.test new file mode 100644 index 0000000..6031e27 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/comment_feature.test @@ -0,0 +1,14 @@ +OBTW foo +bar TLDR + BTW foobar + +---------------------------------------------------- + +[ + ["comment", "OBTW foo\r\nbar TLDR"], + ["comment", "BTW foobar"] +] + +---------------------------------------------------- + +Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/function_feature.test b/node_modules/prismjs/tests/languages/lolcode/function_feature.test new file mode 100644 index 0000000..0f3dc0d --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/function_feature.test @@ -0,0 +1,18 @@ +I IZ foobar + HOW IZ I foobar +IZ fooBAR + +---------------------------------------------------- + +[ + ["keyword", "I IZ"], + ["function", "foobar"], + ["keyword", "HOW IZ I"], + ["function", "foobar"], + ["keyword", "IZ"], + ["function", "fooBAR"] +] + +---------------------------------------------------- + +Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test b/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test new file mode 100644 index 0000000..bb59d25 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test @@ -0,0 +1,93 @@ +O HAI IM +KTHX +HAI +KTHXBYE +I HAS A +ITZ +ITZ A +R +AN +MKAY +SMOOSH +MAEK +IS NOW +IS NOW A +VISIBLE +GIMMEH +O RLY? +YA RLY +NO WAI +OIC +MEBBE +WTF? +OMG +OMGWTF +GTFO +IM IN YR +IM OUTTA YR +FOUND YR +YR +TIL +WILE +UPPIN +NERFIN +I IZ +HOW IZ I foo +IF U SAY SO +SRS +HAS A +LIEK +LIEK A +IZ +foo'Z + +---------------------------------------------------- + +[ + ["keyword", "O HAI IM"], + ["keyword", "KTHX"], + ["keyword", "HAI"], + ["keyword", "KTHXBYE"], + ["keyword", "I HAS A"], + ["keyword", "ITZ"], + ["keyword", "ITZ A"], + ["keyword", "R"], + ["keyword", "AN"], + ["keyword", "MKAY"], + ["keyword", "SMOOSH"], + ["keyword", "MAEK"], + ["keyword", "IS NOW"], + ["keyword", "IS NOW A"], + ["keyword", "VISIBLE"], + ["keyword", "GIMMEH"], + ["keyword", "O RLY?"], + ["keyword", "YA RLY"], + ["keyword", "NO WAI"], + ["keyword", "OIC"], + ["keyword", "MEBBE"], + ["keyword", "WTF?"], + ["keyword", "OMG"], + ["keyword", "OMGWTF"], + ["keyword", "GTFO"], + ["keyword", "IM IN YR"], + ["keyword", "IM OUTTA YR"], + ["keyword", "FOUND YR"], + ["keyword", "YR"], + ["keyword", "TIL"], + ["keyword", "WILE"], + ["keyword", "UPPIN"], + ["keyword", "NERFIN"], + ["keyword", "I IZ"], + ["keyword", "HOW IZ I"], ["function", "foo"], + ["keyword", "IF U SAY SO"], + ["keyword", "SRS"], + ["keyword", "HAS A"], + ["keyword", "LIEK"], + ["keyword", "LIEK A"], + ["keyword", "IZ"], + "\r\nfoo", ["keyword", "'Z"] +] + +---------------------------------------------------- + +Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/label_feature.test b/node_modules/prismjs/tests/languages/lolcode/label_feature.test new file mode 100644 index 0000000..7722d2a --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/label_feature.test @@ -0,0 +1,15 @@ +IM IN YR foobar + IM OUTTA YR fooBAR + +---------------------------------------------------- + +[ + ["keyword", "IM IN YR"], + ["label", "foobar"], + ["keyword", "IM OUTTA YR"], + ["label", "fooBAR"] +] + +---------------------------------------------------- + +Checks for labels. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/number_feature.test b/node_modules/prismjs/tests/languages/lolcode/number_feature.test new file mode 100644 index 0000000..060d6d2 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/number_feature.test @@ -0,0 +1,13 @@ +42 +3.14159 + +---------------------------------------------------- + +[ + ["number", "42"], + ["number", "3.14159"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/operator_feature.test b/node_modules/prismjs/tests/languages/lolcode/operator_feature.test new file mode 100644 index 0000000..c55dcc1 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/operator_feature.test @@ -0,0 +1,39 @@ +NOT +BOTH SAEM +DIFFRINT +SUM OF +DIFF OF +PRODUKT OF +QUOSHUNT OF +MOD OF +BIGGR OF +SMALLR OF +BOTH OF +EITHER OF +WON OF +ALL OF +ANY OF + +---------------------------------------------------- + +[ + ["operator", "NOT"], + ["operator", "BOTH SAEM"], + ["operator", "DIFFRINT"], + ["operator", "SUM OF"], + ["operator", "DIFF OF"], + ["operator", "PRODUKT OF"], + ["operator", "QUOSHUNT OF"], + ["operator", "MOD OF"], + ["operator", "BIGGR OF"], + ["operator", "SMALLR OF"], + ["operator", "BOTH OF"], + ["operator", "EITHER OF"], + ["operator", "WON OF"], + ["operator", "ALL OF"], + ["operator", "ANY OF"] +] + +---------------------------------------------------- + +Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/string_feature.test b/node_modules/prismjs/tests/languages/lolcode/string_feature.test new file mode 100644 index 0000000..813228d --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/string_feature.test @@ -0,0 +1,33 @@ +"" +"foobar" +"fo:"o" +"foo:)bar:>baz" +"foo:{bar}baz" + +---------------------------------------------------- + +[ + ["string", ["\"\""]], + ["string", ["\"foobar\""]], + ["string", [ + "\"fo", + ["symbol", ":\""], + "o\"" + ]], + ["string", [ + "\"foo", + ["symbol", ":)"], + "bar", + ["symbol", ":>"], + "baz\"" + ]], + ["string", [ + "\"foo", + ["variable", ":{bar}"], + "baz\"" + ]] +] + +---------------------------------------------------- + +Checks for strings, with variables and symbols in them. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test b/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test new file mode 100644 index 0000000..7f1534a --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test @@ -0,0 +1,27 @@ +YARN A YARN +NUMBR A NUMBR +NUMBAR A NUMBAR +TROOF A TROOF +BUKKIT A BUKKIT +NOOB A NOOB + +---------------------------------------------------- + +[ + ["symbol", ["YARN"]], + ["symbol", [["keyword", "A"], " YARN"]], + ["symbol", ["NUMBR"]], + ["symbol", [["keyword", "A"], " NUMBR"]], + ["symbol", ["NUMBAR"]], + ["symbol", [["keyword", "A"], " NUMBAR"]], + ["symbol", ["TROOF"]], + ["symbol", [["keyword", "A"], " TROOF"]], + ["symbol", ["BUKKIT"]], + ["symbol", [["keyword", "A"], " BUKKIT"]], + ["symbol", ["NOOB"]], + ["symbol", [["keyword", "A"], " NOOB"]] +] + +---------------------------------------------------- + +Checks for symbols, optionally prefixed by "A ". \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/variable_feature.test b/node_modules/prismjs/tests/languages/lolcode/variable_feature.test new file mode 100644 index 0000000..1066c33 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lolcode/variable_feature.test @@ -0,0 +1,11 @@ +IT + +---------------------------------------------------- + +[ + ["variable", "IT"] +] + +---------------------------------------------------- + +Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/comment_feature.test b/node_modules/prismjs/tests/languages/lua/comment_feature.test new file mode 100644 index 0000000..3c639f7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/comment_feature.test @@ -0,0 +1,22 @@ +#!/usr/local/bin/lua +-- +-- Foobar +--[[Foo +bar]] +--[====[Foo +bar]=====] ]===] +baz]====] + +---------------------------------------------------- + +[ + ["comment", "#!/usr/local/bin/lua"], + ["comment", "--"], + ["comment", "-- Foobar"], + ["comment", "--[[Foo\r\nbar]]"], + ["comment", "--[====[Foo\r\nbar]=====] ]===]\r\nbaz]====]"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/function_feature.test b/node_modules/prismjs/tests/languages/lua/function_feature.test new file mode 100644 index 0000000..90e2383 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/function_feature.test @@ -0,0 +1,17 @@ +foo () +Foo_bar_42() +foo {} +Foo_bar_42{} + +---------------------------------------------------- + +[ + ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], + ["function", "Foo_bar_42"], ["punctuation", "("], ["punctuation", ")"], + ["function", "foo"], ["punctuation", "{"], ["punctuation", "}"], + ["function", "Foo_bar_42"], ["punctuation", "{"], ["punctuation", "}"] +] + +---------------------------------------------------- + +Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/keyword_feature.test b/node_modules/prismjs/tests/languages/lua/keyword_feature.test new file mode 100644 index 0000000..0020aca --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/keyword_feature.test @@ -0,0 +1,53 @@ +and +break +do +else +elseif +end +false +for +function +goto +if +in +local +nil +not +or +repeat +return +then +true +until +while + +---------------------------------------------------- + +[ + ["keyword", "and"], + ["keyword", "break"], + ["keyword", "do"], + ["keyword", "else"], + ["keyword", "elseif"], + ["keyword", "end"], + ["keyword", "false"], + ["keyword", "for"], + ["keyword", "function"], + ["keyword", "goto"], + ["keyword", "if"], + ["keyword", "in"], + ["keyword", "local"], + ["keyword", "nil"], + ["keyword", "not"], + ["keyword", "or"], + ["keyword", "repeat"], + ["keyword", "return"], + ["keyword", "then"], + ["keyword", "true"], + ["keyword", "until"], + ["keyword", "while"] +] + +---------------------------------------------------- + +Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/number_feature.test b/node_modules/prismjs/tests/languages/lua/number_feature.test new file mode 100644 index 0000000..913b5b8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/number_feature.test @@ -0,0 +1,35 @@ +0 +42 +3.14159 +3. +.42 +4e14 +3.14e+8 +.7E-1 +4.e12 +0xBadFace +0x0.1E +0xA23p-4 +0X1.921FB54442D18P+1 + +---------------------------------------------------- + +[ + ["number", "0"], + ["number", "42"], + ["number", "3.14159"], + ["number", "3."], + ["number", ".42"], + ["number", "4e14"], + ["number", "3.14e+8"], + ["number", ".7E-1"], + ["number", "4.e12"], + ["number", "0xBadFace"], + ["number", "0x0.1E"], + ["number", "0xA23p-4"], + ["number", "0X1.921FB54442D18P+1"] +] + +---------------------------------------------------- + +Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/operator_feature.test b/node_modules/prismjs/tests/languages/lua/operator_feature.test new file mode 100644 index 0000000..dec2836 --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/operator_feature.test @@ -0,0 +1,25 @@ ++ - * % +^ & | # +/ // +< << <= +> >> >= += == +~ ~= +.. + +---------------------------------------------------- + +[ + ["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "%"], + ["operator", "^"], ["operator", "&"], ["operator", "|"], ["operator", "#"], + ["operator", "/"], ["operator", "//"], + ["operator", "<"], ["operator", "<<"], ["operator", "<="], + ["operator", ">"], ["operator", ">>"], ["operator", ">="], + ["operator", "="], ["operator", "=="], + ["operator", "~"], ["operator", "~="], + ["operator", ".."] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/string_feature.test b/node_modules/prismjs/tests/languages/lua/string_feature.test new file mode 100644 index 0000000..137884c --- /dev/null +++ b/node_modules/prismjs/tests/languages/lua/string_feature.test @@ -0,0 +1,36 @@ +"" +"Fo\"obar" +"Foo\ +bar\z +baz" +'' +'Fo\'obar' +'Foo\ +bar\z +baz' +[[Foo +bar]] +[====[Foo +bar]=====] ]===] +baz]====] +[====[Foo +-- comment +baz]====] + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "\"Fo\\\"obar\""], + ["string", "\"Foo\\\r\nbar\\z\r\nbaz\""], + ["string", "''"], + ["string", "'Fo\\'obar'"], + ["string", "'Foo\\\r\nbar\\z\r\nbaz'"], + ["string", "[[Foo\r\nbar]]"], + ["string", "[====[Foo\r\nbar]=====] ]===]\r\nbaz]====]"], + ["string", "[====[Foo\r\n-- comment\r\nbaz]====]"] +] + +---------------------------------------------------- + +Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/builtin_feature.test b/node_modules/prismjs/tests/languages/makefile/builtin_feature.test new file mode 100644 index 0000000..6f6a1a3 --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/builtin_feature.test @@ -0,0 +1,15 @@ +.PHONY: +.DELETE_ON_ERROR: +.SECONDEXPANSION: + +---------------------------------------------------- + +[ + ["builtin", ".PHONY"], ["punctuation", ":"], + ["builtin", ".DELETE_ON_ERROR"], ["punctuation", ":"], + ["builtin", ".SECONDEXPANSION"], ["punctuation", ":"] +] + +---------------------------------------------------- + +Checks for built-in target names. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/comment_feature.test b/node_modules/prismjs/tests/languages/makefile/comment_feature.test new file mode 100644 index 0000000..0e0c6c4 --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/comment_feature.test @@ -0,0 +1,16 @@ +# +# foobar +# foo \ +bar + +---------------------------------------------------- + +[ + ["comment", "#"], + ["comment", "# foobar"], + ["comment", "# foo \\\r\nbar"] +] + +---------------------------------------------------- + +Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/keyword_feature.test b/node_modules/prismjs/tests/languages/makefile/keyword_feature.test new file mode 100644 index 0000000..dcbbcc8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/keyword_feature.test @@ -0,0 +1,73 @@ +define else endef endif +export ifdef ifndef ifeq +ifneq -include include +override private sinclude +undefine unexport vpath + +(addsuffix foo) (abspath foo) +(and foo) (basename foo) +(call foo) (dir foo) (error foo) +(eval foo) (file foo) (filter foo) +(filter-out foo) (findstring foo) +(firstword foo) (flavor foo) +(foreach foo) (guile foo) +(if foo) (info foo) (join foo) +(lastword foo) (load foo) +(notdir foo) (or foo) (origin foo) +(patsubst foo) (realpath foo) +(shell foo) (sort foo) (strip foo) +(subst foo) (suffix foo) (value foo) +(warning foo) (wildcard foo) +(word foo) (words foo) (wordlist foo) + +---------------------------------------------------- + +[ + ["keyword", "define"], ["keyword", "else"], ["keyword", "endef"], ["keyword", "endif"], + ["keyword", "export"], ["keyword", "ifdef"], ["keyword", "ifndef"], ["keyword", "ifeq"], + ["keyword", "ifneq"], ["keyword", "-include"], ["keyword", "include"], + ["keyword", "override"], ["keyword", "private"], ["keyword", "sinclude"], + ["keyword", "undefine"], ["keyword", "unexport"], ["keyword", "vpath"], + + ["punctuation", "("], ["keyword", "addsuffix"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "abspath"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "and"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "basename"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "call"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "dir"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "error"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "eval"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "file"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "filter"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "filter-out"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "findstring"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "firstword"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "flavor"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "foreach"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "guile"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "if"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "info"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "join"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "lastword"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "load"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "notdir"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "or"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "origin"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "patsubst"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "realpath"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "shell"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "sort"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "strip"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "subst"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "suffix"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "value"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "warning"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "wildcard"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "word"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "words"], " foo", ["punctuation", ")"], + ["punctuation", "("], ["keyword", "wordlist"], " foo", ["punctuation", ")"] +] + +---------------------------------------------------- + +Checks for keywords and functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/operator_feature.test b/node_modules/prismjs/tests/languages/makefile/operator_feature.test new file mode 100644 index 0000000..d0df60a --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/operator_feature.test @@ -0,0 +1,15 @@ += ::= ?= +:= += != +| @ + +---------------------------------------------------- + +[ + ["operator", "="], ["operator", "::="], ["operator", "?="], + ["operator", ":="], ["operator", "+="], ["operator", "!="], + ["operator", "|"], ["operator", "@"] +] + +---------------------------------------------------- + +Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/string_feature.test b/node_modules/prismjs/tests/languages/makefile/string_feature.test new file mode 100644 index 0000000..ece27c8 --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/string_feature.test @@ -0,0 +1,23 @@ +"" +'' +"fo\"o" +'fo\'o' +"foo\ +bar" +'foo\ +bar' + +---------------------------------------------------- + +[ + ["string", "\"\""], + ["string", "''"], + ["string", "\"fo\\\"o\""], + ["string", "'fo\\'o'"], + ["string", "\"foo\\\r\nbar\""], + ["string", "'foo\\\r\nbar'"] +] + +---------------------------------------------------- + +Checks for single-quoted and double-quoted strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/symbol_feature.test b/node_modules/prismjs/tests/languages/makefile/symbol_feature.test new file mode 100644 index 0000000..d1fe40b --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/symbol_feature.test @@ -0,0 +1,18 @@ +edit : +%oo: +$(foo): + +---------------------------------------------------- + +[ + ["symbol", ["edit "]], ["punctuation", ":"], + ["symbol", ["%oo"]], ["punctuation", ":"], + ["symbol", [ + ["variable", "$"], + "(foo)" + ]], ["punctuation", ":"] +] + +---------------------------------------------------- + +Checks for targets, optionally containing interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/variable_feature.test b/node_modules/prismjs/tests/languages/makefile/variable_feature.test new file mode 100644 index 0000000..84431d0 --- /dev/null +++ b/node_modules/prismjs/tests/languages/makefile/variable_feature.test @@ -0,0 +1,19 @@ +$@ +$$< +$(@D) +$(foobar) +$(2) + +---------------------------------------------------- + +[ + ["variable", "$@"], + ["variable", "$$<"], + ["variable", "$(@D)"], + ["variable", "$"], ["punctuation", "("], "foobar", ["punctuation", ")"], + ["variable", "$"], ["punctuation", "("], "2", ["punctuation", ")"] +] + +---------------------------------------------------- + +Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test b/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test new file mode 100644 index 0000000..4a75fa9 --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test @@ -0,0 +1,32 @@ +:markdown + # Title 1 + +~ + :markdown + # Title 1 + +---------------------------------------------------- + +[ + ["filter-markdown", [ + ["filter-name", ":markdown"], + ["title", [ + ["punctuation", "#"], + " Title 1" + ]] + ]], + ["punctuation", "~"], + ["filter-markdown", [ + ["filter-name", ":markdown"], + ["title", [ + ["punctuation", "#"], + " Title 1" + ]] + ]] +] + +---------------------------------------------------- + +Checks for Markdown filter in Haml. The tilde serves only as a separator. +Indentation is intentionally less than 1 tab, otherwise markdown is +interpreted as code. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test b/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test new file mode 100644 index 0000000..01e6c3e --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test @@ -0,0 +1,18 @@ +:markdown + # title + +---------------------------------------------------- + +[ + ["filter-markdown", [ + ["filter-name", ":markdown"], + ["title", [ + ["punctuation", "#"], + " title" + ]] + ]] +] + +---------------------------------------------------- + +Checks for markdown filter in Jade. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test b/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test new file mode 100644 index 0000000..3d0a4df --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test @@ -0,0 +1,15 @@ +> foo +>> foo +> > foo + +---------------------------------------------------- + +[ + ["blockquote", ">"], " foo\r\n", + ["blockquote", ">>"], " foo\r\n", + ["blockquote", "> >"], " foo" +] + +---------------------------------------------------- + +Checks for blockquotes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/bold_feature.test b/node_modules/prismjs/tests/languages/markdown/bold_feature.test new file mode 100644 index 0000000..7d8e8ba --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/bold_feature.test @@ -0,0 +1,70 @@ +**foobar** +**foo +bar** +__foobar__ +__foo +bar__ + +__foo*bar*baz__ +__foo_bar_baz__ +__foo[bar](baz)__ + +---------------------------------------------------- + +[ + ["bold", [ + ["punctuation", "**"], + "foobar", + ["punctuation", "**"] + ]], + ["bold", [ + ["punctuation", "**"], + "foo\r\nbar", + ["punctuation", "**"] + ]], + ["bold", [ + ["punctuation", "__"], + "foobar", + ["punctuation", "__"] + ]], + ["bold", [ + ["punctuation", "__"], + "foo\r\nbar", + ["punctuation", "__"] + ]], + + ["bold", [ + ["punctuation", "__"], + "foo", + ["italic", [ + ["punctuation", "*"], + "bar", + ["punctuation", "*"] + ]], + "baz", + ["punctuation", "__"] + ]], + ["bold", [ + ["punctuation", "__"], + "foo", + ["italic", [ + ["punctuation", "_"], + "bar", + ["punctuation", "_"] + ]], + "baz", + ["punctuation", "__"] + ]], + ["bold", [ + ["punctuation", "__"], + "foo", + ["url", [ + "[bar](baz)" + ]], + ["punctuation", "__"] + ]] +] + +---------------------------------------------------- + +Checks for bold. Also tests for inclusion of italic and url. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/code_feature.test b/node_modules/prismjs/tests/languages/markdown/code_feature.test new file mode 100644 index 0000000..2696ca7 --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/code_feature.test @@ -0,0 +1,22 @@ +`foo bar baz` +``foo `bar` baz`` + + foobar + + foobar + +---------------------------------------------------- + +[ + ["code", "`foo bar baz`"], + ["code", "``foo `bar` baz``"], + ["code", " foobar"], + ["code", "\tfoobar"] +] + +---------------------------------------------------- + +Checks for code blocks and inline code. The first code block is +indented with 4 spaces, the second one is indented with 1 tab. +The initial dot is necessary because of the first part being trimmed +by the test runner. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/hr_feature.test b/node_modules/prismjs/tests/languages/markdown/hr_feature.test new file mode 100644 index 0000000..4120226 --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/hr_feature.test @@ -0,0 +1,15 @@ +*** +--- +* * * + +---------------------------------------------------- + +[ + ["hr", "***"], + ["hr", "---"], + ["hr", "* * *"] +] + +---------------------------------------------------- + +Checks for hr. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/italic_feature.test b/node_modules/prismjs/tests/languages/markdown/italic_feature.test new file mode 100644 index 0000000..02ced18 --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/italic_feature.test @@ -0,0 +1,46 @@ +*foobar* +*foo +bar* +_foobar_ +_foo +bar_ + +_foo[bar](baz)_ + +---------------------------------------------------- + +[ + ["italic", [ + ["punctuation", "*"], + "foobar", + ["punctuation", "*"] + ]], + ["italic", [ + ["punctuation", "*"], + "foo\r\nbar", + ["punctuation", "*"] + ]], + ["italic", [ + ["punctuation", "_"], + "foobar", + ["punctuation", "_"] + ]], + ["italic", [ + ["punctuation", "_"], + "foo\r\nbar", + ["punctuation", "_"] + ]], + + ["italic", [ + ["punctuation", "_"], + "foo", + ["url", [ + "[bar](baz)" + ]], + ["punctuation", "_"] + ]] +] + +---------------------------------------------------- + +Checks for italic. Also tests for inclusion of url. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/list_feature.test b/node_modules/prismjs/tests/languages/markdown/list_feature.test new file mode 100644 index 0000000..bfc9f8e --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/list_feature.test @@ -0,0 +1,22 @@ +* foo ++ bar +- baz + +1. foo + 2. bar +42. baz + +---------------------------------------------------- + +[ + ["list", "*"], " foo\r\n", + ["list", "+"], " bar\r\n", + ["list", "-"], " baz\r\n\r\n", + ["list", "1."], " foo\r\n ", + ["list", "2."], " bar\r\n", + ["list", "42."], " baz" +] + +---------------------------------------------------- + +Checks for list symbols. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/title_feature.test b/node_modules/prismjs/tests/languages/markdown/title_feature.test new file mode 100644 index 0000000..e02e86f --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/title_feature.test @@ -0,0 +1,34 @@ +title 1 +== + +foobar +====== + +title 2 +-- + +# title 1 +## title 2 +### title 3 +#### title 4 +##### title 5 +###### title 6 + +---------------------------------------------------- + +[ + ["title", ["title 1\r\n", ["punctuation", "=="]]], + ["title", ["foobar\r\n", ["punctuation", "======"]]], + ["title", ["title 2\r\n", ["punctuation", "--"]]], + + ["title", [["punctuation", "#"], " title 1"]], + ["title", [["punctuation", "##"], " title 2"]], + ["title", [["punctuation", "###"], " title 3"]], + ["title", [["punctuation", "####"], " title 4"]], + ["title", [["punctuation", "#####"], " title 5"]], + ["title", [["punctuation", "######"], " title 6"]] +] + +---------------------------------------------------- + +Checks for titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test b/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test new file mode 100644 index 0000000..4dc25ba --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test @@ -0,0 +1,56 @@ +[foo]: http://prismjs.com +[foo]: http://prismjs.com "foo\"bar" +[foo]: http://prismjs.com 'foo\'bar' +![foo]: http://prismjs.com (foo (bar\) baz) +[foo]: "Prism" + +---------------------------------------------------- + +[ + ["url-reference", [ + ["punctuation", "["], + ["variable", "foo"], + ["punctuation", "]"], + ["punctuation", ":"], + " http://prismjs.com" + ]], + ["url-reference", [ + ["punctuation", "["], + ["variable", "foo"], + ["punctuation", "]"], + ["punctuation", ":"], + " http://prismjs.com ", + ["string", "\"foo\\\"bar\""] + ]], + ["url-reference", [ + ["punctuation", "["], + ["variable", "foo"], + ["punctuation", "]"], + ["punctuation", ":"], + " http://prismjs.com ", + ["string", "'foo\\'bar'"] + ]], + ["url-reference", [ + ["punctuation", "!"], + ["punctuation", "["], + ["variable", "foo"], + ["punctuation", "]"], + ["punctuation", ":"], + " http://prismjs.com ", + ["string", "(foo (bar\\) baz)"] + ]], + ["url-reference", [ + ["punctuation", "["], + ["variable", "foo"], + ["punctuation", "]"], + ["punctuation", ":"], + ["punctuation", "<"], + "http://prismjs.com", + ["punctuation", ">"], + ["string", "\"Prism\""] + ]] +] + +---------------------------------------------------- + +Checks for URL references. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/url_feature.test b/node_modules/prismjs/tests/languages/markdown/url_feature.test new file mode 100644 index 0000000..ca8b9cf --- /dev/null +++ b/node_modules/prismjs/tests/languages/markdown/url_feature.test @@ -0,0 +1,25 @@ +[foo](http://prismjs.com) +![foo](http://prismjs.com "Foo\"bar") +[foo] [bar] + +---------------------------------------------------- + +[ + ["url", [ + "[foo](http://prismjs.com)" + ]], + ["url", [ + "![foo](http://prismjs.com ", + ["string", "\"Foo\\\"bar\""], + ")" + ]], + ["url", [ + "[foo] [", + ["variable", "bar"], + "]" + ]] +] + +---------------------------------------------------- + +Checks for URLs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test b/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test new file mode 100644 index 0000000..6296fce --- /dev/null +++ b/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test @@ -0,0 +1,71 @@ + + + + +---------------------------------------------------- + +[ + ["tag", [ + ["tag", [ + ["punctuation", "<"], + "style" + ]], + ["attr-name", [ + "type" + ]], + ["attr-value", [ + ["punctuation", "="], + ["punctuation", "\""], + "text/css", + ["punctuation", "\""] + ]], + ["punctuation", ">"] + ]], + ["style", [ + ["selector", "foo"], + ["punctuation", "{"], + ["property", "bar"], + ["punctuation", ":"], + " baz", + ["punctuation", ";"], + ["punctuation", "}"] + ]], + ["tag", [ + ["tag", [ + ["punctuation", ""] + ]], + + ["tag", [ + ["tag", [ + ["punctuation", "<"], + "foo" + ]], + ["style-attr", [ + ["attr-name", [ + ["attr-name", [ + "style" + ]] + ]], + ["punctuation", "=\""], + ["attr-value", [ + ["property", "bar"], + ["punctuation", ":"], + "baz", + ["punctuation", ";"] + ]], + ["punctuation", "\""] + ]], + ["punctuation", ">"] + ]] +] + +---------------------------------------------------- + +Checks for CSS usage inside Markup, using