Full Code of PrismJS/prism for AI

v2 969595530787 cached
3077 files
5.1 MB
1.5M tokens
641 symbols
1 requests
Download .txt
Showing preview only (5,891K chars total). Download the full file or copy to clipboard to get everything.
Repository: PrismJS/prism
Branch: v2
Commit: 969595530787
Files: 3077
Total size: 5.1 MB

Directory structure:
gitextract_l38tlemh/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   ├── feature_request.md
│   │   ├── highlighting-bug-report.md
│   │   └── new-language-request.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── danger.yml
│       ├── test.yml
│       └── website-rebuild.yml
├── .gitignore
├── .jsdoc.json
├── .npmignore
├── .prettierrc.js
├── .vscode/
│   └── settings.json
├── CHANGELOG.md
├── CNAME
├── LICENSE
├── MAINTAINERS.md
├── README.md
├── SECURITY.md
├── _headers
├── benchmark/
│   ├── benchmark.js
│   └── config.js
├── composer.json
├── dangerfile.js
├── eslint.config.mjs
├── package.json
├── scripts/
│   ├── build.js
│   ├── create-changelog.js
│   ├── linkify-changelog.js
│   └── tasks.js
├── src/
│   ├── auto-start.js
│   ├── components.json
│   ├── config.js
│   ├── core/
│   │   ├── classes/
│   │   │   ├── component-registry.js
│   │   │   ├── hooks.js
│   │   │   ├── language-registry.js
│   │   │   ├── language.js
│   │   │   ├── list.js
│   │   │   ├── plugin-registry.js
│   │   │   ├── plugin.js
│   │   │   ├── prism.js
│   │   │   └── token.js
│   │   ├── highlight-all.js
│   │   ├── highlight-element.js
│   │   ├── highlight.js
│   │   ├── linked-list.js
│   │   ├── prism.js
│   │   ├── registry.js
│   │   ├── stringify.js
│   │   └── tokenize/
│   │       ├── match.js
│   │       ├── tokenize.js
│   │       └── util.js
│   ├── core.js
│   ├── global.js
│   ├── index.js
│   ├── languages/
│   │   ├── abap.js
│   │   ├── abnf.js
│   │   ├── actionscript.js
│   │   ├── ada.js
│   │   ├── agda.js
│   │   ├── al.js
│   │   ├── antlr4.js
│   │   ├── apacheconf.js
│   │   ├── apex.js
│   │   ├── apl.js
│   │   ├── applescript.js
│   │   ├── aql.js
│   │   ├── arduino.js
│   │   ├── arff.js
│   │   ├── armasm.js
│   │   ├── arturo.js
│   │   ├── asciidoc.js
│   │   ├── asm6502.js
│   │   ├── asmatmel.js
│   │   ├── aspnet.js
│   │   ├── autohotkey.js
│   │   ├── autoit.js
│   │   ├── avisynth.js
│   │   ├── avro-idl.js
│   │   ├── awk.js
│   │   ├── bash.js
│   │   ├── basic.js
│   │   ├── batch.js
│   │   ├── bbcode.js
│   │   ├── bbj.js
│   │   ├── bicep.js
│   │   ├── birb.js
│   │   ├── bison.js
│   │   ├── bnf.js
│   │   ├── bqn.js
│   │   ├── brainfuck.js
│   │   ├── brightscript.js
│   │   ├── bro.js
│   │   ├── bsl.js
│   │   ├── c.js
│   │   ├── cfscript.js
│   │   ├── chaiscript.js
│   │   ├── cil.js
│   │   ├── cilkc.js
│   │   ├── cilkcpp.js
│   │   ├── clike.js
│   │   ├── clojure.js
│   │   ├── cmake.js
│   │   ├── cobol.js
│   │   ├── coffeescript.js
│   │   ├── concurnas.js
│   │   ├── cooklang.js
│   │   ├── coq.js
│   │   ├── cpp.js
│   │   ├── crystal.js
│   │   ├── csharp.js
│   │   ├── cshtml.js
│   │   ├── csp.js
│   │   ├── css-extras.js
│   │   ├── css-selector.js
│   │   ├── css.js
│   │   ├── csv.js
│   │   ├── cue.js
│   │   ├── cypher.js
│   │   ├── d.js
│   │   ├── dart.js
│   │   ├── dataweave.js
│   │   ├── dax.js
│   │   ├── dhall.js
│   │   ├── diff.js
│   │   ├── django.js
│   │   ├── dns-zone-file.js
│   │   ├── docker.js
│   │   ├── dot.js
│   │   ├── ebnf.js
│   │   ├── editorconfig.js
│   │   ├── eiffel.js
│   │   ├── ejs.js
│   │   ├── elixir.js
│   │   ├── elm.js
│   │   ├── erb.js
│   │   ├── erlang.js
│   │   ├── etlua.js
│   │   ├── excel-formula.js
│   │   ├── factor.js
│   │   ├── false.js
│   │   ├── firestore-security-rules.js
│   │   ├── flow.js
│   │   ├── fortran.js
│   │   ├── fsharp.js
│   │   ├── ftl.js
│   │   ├── gap.js
│   │   ├── gcode.js
│   │   ├── gdscript.js
│   │   ├── gedcom.js
│   │   ├── gettext.js
│   │   ├── gherkin.js
│   │   ├── git.js
│   │   ├── glsl.js
│   │   ├── gml.js
│   │   ├── gn.js
│   │   ├── go-module.js
│   │   ├── go.js
│   │   ├── gradle.js
│   │   ├── graphql.js
│   │   ├── groovy.js
│   │   ├── haml.js
│   │   ├── handlebars.js
│   │   ├── haskell.js
│   │   ├── haxe.js
│   │   ├── hcl.js
│   │   ├── hlsl.js
│   │   ├── hoon.js
│   │   ├── hpkp.js
│   │   ├── hsts.js
│   │   ├── http.js
│   │   ├── ichigojam.js
│   │   ├── icon.js
│   │   ├── icu-message-format.js
│   │   ├── idris.js
│   │   ├── iecst.js
│   │   ├── ignore.js
│   │   ├── inform7.js
│   │   ├── ini.js
│   │   ├── io.js
│   │   ├── j.js
│   │   ├── java.js
│   │   ├── javadoc.js
│   │   ├── javadoclike.js
│   │   ├── javascript.js
│   │   ├── javastacktrace.js
│   │   ├── jexl.js
│   │   ├── jolie.js
│   │   ├── jq.js
│   │   ├── js-templates.js
│   │   ├── jsdoc.js
│   │   ├── json.js
│   │   ├── json5.js
│   │   ├── jsonp.js
│   │   ├── jsstacktrace.js
│   │   ├── jsx.js
│   │   ├── julia.js
│   │   ├── keepalived.js
│   │   ├── keyman.js
│   │   ├── kotlin.js
│   │   ├── kumir.js
│   │   ├── kusto.js
│   │   ├── latex.js
│   │   ├── latte.js
│   │   ├── less.js
│   │   ├── lilypond.js
│   │   ├── linker-script.js
│   │   ├── liquid.js
│   │   ├── lisp.js
│   │   ├── livescript.js
│   │   ├── llvm.js
│   │   ├── log.js
│   │   ├── lolcode.js
│   │   ├── lua.js
│   │   ├── magma.js
│   │   ├── makefile.js
│   │   ├── markdown.js
│   │   ├── markup.js
│   │   ├── mata.js
│   │   ├── matlab.js
│   │   ├── maxscript.js
│   │   ├── mel.js
│   │   ├── mermaid.js
│   │   ├── metafont.js
│   │   ├── mizar.js
│   │   ├── mongodb.js
│   │   ├── monkey.js
│   │   ├── moonscript.js
│   │   ├── n1ql.js
│   │   ├── n4js.js
│   │   ├── nand2tetris-hdl.js
│   │   ├── naniscript.js
│   │   ├── nasm.js
│   │   ├── neon.js
│   │   ├── nevod.js
│   │   ├── nginx.js
│   │   ├── nim.js
│   │   ├── nix.js
│   │   ├── nsis.js
│   │   ├── objectivec.js
│   │   ├── ocaml.js
│   │   ├── odin.js
│   │   ├── opencl-extensions.js
│   │   ├── opencl.js
│   │   ├── openqasm.js
│   │   ├── oz.js
│   │   ├── parigp.js
│   │   ├── parser.js
│   │   ├── pascal.js
│   │   ├── pascaligo.js
│   │   ├── pcaxis.js
│   │   ├── peoplecode.js
│   │   ├── perl.js
│   │   ├── php-extras.js
│   │   ├── php.js
│   │   ├── phpdoc.js
│   │   ├── plain.js
│   │   ├── plant-uml.js
│   │   ├── plsql.js
│   │   ├── powerquery.js
│   │   ├── powershell.js
│   │   ├── processing.js
│   │   ├── prolog.js
│   │   ├── promql.js
│   │   ├── properties.js
│   │   ├── protobuf.js
│   │   ├── psl.js
│   │   ├── pug.js
│   │   ├── puppet.js
│   │   ├── pure.js
│   │   ├── purebasic.js
│   │   ├── purescript.js
│   │   ├── python.js
│   │   ├── q.js
│   │   ├── qml.js
│   │   ├── qore.js
│   │   ├── qsharp.js
│   │   ├── r.js
│   │   ├── racket.js
│   │   ├── reason.js
│   │   ├── regex.js
│   │   ├── rego.js
│   │   ├── renpy.js
│   │   ├── rescript.js
│   │   ├── rest.js
│   │   ├── rip.js
│   │   ├── roboconf.js
│   │   ├── robotframework.js
│   │   ├── ruby.js
│   │   ├── rust.js
│   │   ├── sas.js
│   │   ├── sass.js
│   │   ├── scala.js
│   │   ├── scheme.js
│   │   ├── scss.js
│   │   ├── shell-session.js
│   │   ├── smali.js
│   │   ├── smalltalk.js
│   │   ├── smarty.js
│   │   ├── sml.js
│   │   ├── solidity.js
│   │   ├── solution-file.js
│   │   ├── soy.js
│   │   ├── sparql.js
│   │   ├── splunk-spl.js
│   │   ├── sqf.js
│   │   ├── sql.js
│   │   ├── squirrel.js
│   │   ├── stan.js
│   │   ├── stata.js
│   │   ├── stylus.js
│   │   ├── supercollider.js
│   │   ├── swift.js
│   │   ├── systemd.js
│   │   ├── t4-cs.js
│   │   ├── t4-vb.js
│   │   ├── tap.js
│   │   ├── tcl.js
│   │   ├── textile.js
│   │   ├── toml.js
│   │   ├── treeview.js
│   │   ├── tremor.js
│   │   ├── tsx.js
│   │   ├── tt2.js
│   │   ├── turtle.js
│   │   ├── twig.js
│   │   ├── typescript.js
│   │   ├── typoscript.js
│   │   ├── unrealscript.js
│   │   ├── uorazor.js
│   │   ├── uri.js
│   │   ├── v.js
│   │   ├── vala.js
│   │   ├── vbnet.js
│   │   ├── velocity.js
│   │   ├── verilog.js
│   │   ├── vhdl.js
│   │   ├── vim.js
│   │   ├── visual-basic.js
│   │   ├── warpscript.js
│   │   ├── wasm.js
│   │   ├── web-idl.js
│   │   ├── wgsl.js
│   │   ├── wiki.js
│   │   ├── wolfram.js
│   │   ├── wren.js
│   │   ├── xeora.js
│   │   ├── xml-doc.js
│   │   ├── xml.js
│   │   ├── xojo.js
│   │   ├── xquery.js
│   │   ├── yaml.js
│   │   ├── yang.js
│   │   └── zig.js
│   ├── load-languages.js
│   ├── plugins/
│   │   ├── autolinker/
│   │   │   ├── README.md
│   │   │   ├── autolinker.css
│   │   │   └── autolinker.js
│   │   ├── autoloader/
│   │   │   ├── README.md
│   │   │   ├── autoloader.js
│   │   │   └── demo.js
│   │   ├── command-line/
│   │   │   ├── README.md
│   │   │   ├── command-line.css
│   │   │   └── command-line.js
│   │   ├── copy-to-clipboard/
│   │   │   ├── README.md
│   │   │   └── copy-to-clipboard.js
│   │   ├── custom-class/
│   │   │   ├── README.md
│   │   │   └── custom-class.js
│   │   ├── data-uri-highlight/
│   │   │   ├── README.md
│   │   │   └── data-uri-highlight.js
│   │   ├── diff-highlight/
│   │   │   ├── README.md
│   │   │   ├── diff-highlight.css
│   │   │   └── diff-highlight.js
│   │   ├── download-button/
│   │   │   ├── README.md
│   │   │   └── download-button.js
│   │   ├── file-highlight/
│   │   │   ├── README.md
│   │   │   └── file-highlight.js
│   │   ├── filter-highlight-all/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   └── filter-highlight-all.js
│   │   ├── highlight-keywords/
│   │   │   ├── README.md
│   │   │   └── highlight-keywords.js
│   │   ├── inline-color/
│   │   │   ├── README.md
│   │   │   ├── inline-color.css
│   │   │   └── inline-color.js
│   │   ├── jsonp-highlight/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   └── jsonp-highlight.js
│   │   ├── keep-markup/
│   │   │   ├── README.md
│   │   │   └── keep-markup.js
│   │   ├── line-highlight/
│   │   │   ├── README.md
│   │   │   ├── line-highlight.css
│   │   │   └── line-highlight.js
│   │   ├── line-numbers/
│   │   │   ├── README.md
│   │   │   ├── line-numbers.css
│   │   │   └── line-numbers.js
│   │   ├── match-braces/
│   │   │   ├── README.md
│   │   │   ├── match-braces.css
│   │   │   └── match-braces.js
│   │   ├── normalize-whitespace/
│   │   │   ├── README.md
│   │   │   ├── demo.md
│   │   │   └── normalize-whitespace.js
│   │   ├── previewers/
│   │   │   ├── README.md
│   │   │   ├── previewers.css
│   │   │   └── previewers.js
│   │   ├── show-invisibles/
│   │   │   ├── README.md
│   │   │   ├── show-invisibles.css
│   │   │   └── show-invisibles.js
│   │   ├── show-language/
│   │   │   ├── README.md
│   │   │   └── show-language.js
│   │   ├── toolbar/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   ├── toolbar.css
│   │   │   └── toolbar.js
│   │   ├── treeview-icons/
│   │   │   ├── README.md
│   │   │   ├── treeview-icons.css
│   │   │   └── treeview-icons.js
│   │   ├── unescaped-markup/
│   │   │   ├── README.md
│   │   │   ├── unescaped-markup.css
│   │   │   └── unescaped-markup.js
│   │   └── wpd/
│   │       ├── README.md
│   │       ├── wpd.css
│   │       └── wpd.js
│   ├── prism.global.js
│   ├── shared/
│   │   ├── dom-util.js
│   │   ├── languages/
│   │   │   ├── patterns.js
│   │   │   ├── t4-templating.js
│   │   │   └── templating.js
│   │   ├── meta/
│   │   │   ├── alias-data.js
│   │   │   ├── all-languages-data.js
│   │   │   └── title-data.js
│   │   ├── tokenize-strings.js
│   │   └── util.js
│   ├── shared.js
│   ├── themes/
│   │   ├── coy.css
│   │   ├── dark.css
│   │   ├── funky.css
│   │   ├── okaidia.css
│   │   ├── prism.css
│   │   ├── solarizedlight.css
│   │   ├── tomorrow.css
│   │   └── twilight.css
│   ├── types.d.ts
│   └── util/
│       ├── async.js
│       ├── combine-callbacks.js
│       ├── extend.js
│       ├── grammar-patch.js
│       ├── insert.js
│       ├── iterables.js
│       ├── language-util.js
│       ├── objects.js
│       └── without-tokenize.js
├── tests/
│   ├── components-test.js
│   ├── core/
│   │   ├── greedy.js
│   │   └── registry.js
│   ├── coverage.js
│   ├── helper/
│   │   ├── args.js
│   │   ├── prism-dom-util.js
│   │   ├── prism-loader.js
│   │   ├── snapshot.js
│   │   ├── test-case.js
│   │   ├── test-discovery.js
│   │   ├── token-stream-transformer.js
│   │   └── util.js
│   ├── identifier-test.js
│   ├── languages/
│   │   ├── abap/
│   │   │   ├── comment_feature.test
│   │   │   ├── eol-comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-template_feature.test
│   │   │   └── string_feature.test
│   │   ├── abnf/
│   │   │   ├── comment_feature.test
│   │   │   ├── core-rule_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── repetition_feature.test
│   │   │   ├── rule_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── terminal_feature.test
│   │   ├── actionscript/
│   │   │   ├── keyword_feature.test
│   │   │   └── operator_feature.test
│   │   ├── ada/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── agda/
│   │   │   ├── comment_feature.test
│   │   │   ├── data_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── module_feature.test
│   │   │   └── record_feature.test
│   │   ├── al/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── antlr4/
│   │   │   ├── action_feature.test
│   │   │   ├── annotation_feature.test
│   │   │   ├── character-class_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── apacheconf/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive-block_feature.test
│   │   │   ├── directive-flags_feature.test
│   │   │   ├── directive-inline_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── apex/
│   │   │   ├── annotation_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── sql_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── trigger_feature.test
│   │   ├── apl/
│   │   │   ├── assignment_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── dfn_feature.test
│   │   │   ├── dyadic-operator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── monadic-operator_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── statement_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── system-function_feature.test
│   │   ├── applescript/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── aql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── arduino/
│   │   │   ├── builtin_feature.test
│   │   │   ├── constant_feature.test
│   │   │   └── keyword_feature.test
│   │   ├── arff/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── armasm/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directives_feature.test
│   │   │   ├── instruction_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── version-symbol_feature.test
│   │   ├── arturo/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── character_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── multistring_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── predicate_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── sugar_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── type_feature.test
│   │   ├── arturo!+bash/
│   │   │   └── sh-string_feature.test
│   │   ├── arturo!+css/
│   │   │   └── css-string_feature.test
│   │   ├── arturo!+javascript/
│   │   │   └── js-string_feature.test
│   │   ├── arturo!+markdown/
│   │   │   └── md-string_feature.test
│   │   ├── arturo!+markup/
│   │   │   └── html-string_feature.test
│   │   ├── arturo!+sql/
│   │   │   └── sql-string_feature.test
│   │   ├── asciidoc/
│   │   │   ├── admonition_feature.test
│   │   │   ├── attribute-entry_feature.test
│   │   │   ├── attributes_feature.test
│   │   │   ├── callout_feature.test
│   │   │   ├── comment-block_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── entity_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── indented-block_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── issue3480.test
│   │   │   ├── line-continuation_feature.test
│   │   │   ├── list-label_feature.test
│   │   │   ├── list-punctuation_feature.test
│   │   │   ├── literal-block_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── other-block_feature.test
│   │   │   ├── page-break_feature.test
│   │   │   ├── passthrough-block_feature.test
│   │   │   ├── replacement_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── title_feature.test
│   │   ├── asm6502/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── opcode_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── asmatmel/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── opcode_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── aspnet/
│   │   │   ├── comment_feature.test
│   │   │   └── page-directive_feature.test
│   │   ├── autohotkey/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2911.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   ├── tag_feature.test
│   │   │   └── variable_feature.test
│   │   ├── autoit/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── avisynth/
│   │   │   ├── clipproperties_feature.test
│   │   │   ├── comments_strings_predefines_feature.test
│   │   │   ├── intenalfuncs_feature.test
│   │   │   ├── internalfilters_feature.test
│   │   │   ├── keywords_constants_bools_last_feature.test
│   │   │   ├── operators_numbers_punctuation.test
│   │   │   ├── types_arguments_feature.test
│   │   │   └── userfunctions_feature.test
│   │   ├── avro-idl/
│   │   │   ├── annotation_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── awk/
│   │   │   ├── comment_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── bash/
│   │   │   ├── arithmetic_environment_feature.test
│   │   │   ├── assign-left_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── command_substitution_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── entities_in_strings_feature.test
│   │   │   ├── environment_feature.test
│   │   │   ├── for-or-select_feature.test
│   │   │   ├── function-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── heredoc_command_feature.test
│   │   │   ├── issue2436.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── variable_operator_feature.test
│   │   ├── basic/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── batch/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── string_feature.test
│   │   ├── bbcode/
│   │   │   └── tag_feature.test
│   │   ├── bbj/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── bicep/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── var_feature.test
│   │   ├── birb/
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── bison/
│   │   │   ├── c_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── bnf/
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── rule_feature.test
│   │   │   └── string_featrue.test
│   │   ├── bqn/
│   │   │   ├── comments.test
│   │   │   ├── namespace.test
│   │   │   ├── strings.test
│   │   │   ├── system-functions.test
│   │   │   ├── tokens.test
│   │   │   └── words.test
│   │   ├── brainfuck/
│   │   │   └── all_feature.test
│   │   ├── brightscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive-statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── bro/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── bsl/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── c/
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── c+pure/
│   │   │   └── c_inclusion.test
│   │   ├── cfscript/
│   │   │   ├── comment_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── scope_feature.test
│   │   │   └── type_feature.test
│   │   ├── chaiscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cil/
│   │   │   ├── asm_reference.test
│   │   │   ├── boolean.test
│   │   │   ├── comment.test
│   │   │   ├── directive_feature.test
│   │   │   ├── instructions.test
│   │   │   ├── keywords.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── strings.test
│   │   ├── cilkc/
│   │   │   └── cilk_keywords_feature.test
│   │   ├── cilkcpp/
│   │   │   └── cilk_keywords_feature.test
│   │   ├── clike/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1340.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── clojure/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── cmake/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── inserted_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── cobol/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── level_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── coffeescript/
│   │   │   ├── block-regex_feature.test
│   │   │   ├── class-member_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── inline-javascript_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── coffeescript+haml/
│   │   │   └── coffeescript_inclusion.test
│   │   ├── coffeescript+pug/
│   │   │   └── coffeescript_inclusion.test
│   │   ├── concurnas/
│   │   │   ├── annotation_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── langext_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── cooklang/
│   │   │   ├── comment_feature.test
│   │   │   ├── cookware_feature.test
│   │   │   ├── ingredient_feature.test
│   │   │   ├── meta_feature.test
│   │   │   └── timer_feature.test
│   │   ├── coq/
│   │   │   ├── attribute_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cpp/
│   │   │   ├── base-clause_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2347.test
│   │   │   ├── issue3042.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── raw_string_feature.test
│   │   ├── cpp+pure/
│   │   │   └── cpp_inclusion.test
│   │   ├── crystal/
│   │   │   ├── attribute_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── expansion_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── csharp/
│   │   │   ├── attribute_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name-declaration_feature.test
│   │   │   ├── class-name-variables-parameters_feature.test
│   │   │   ├── constructor-invocation_feature.test
│   │   │   ├── for_feature.test
│   │   │   ├── generic-constraint_feature.test
│   │   │   ├── generic_feature.test
│   │   │   ├── interpolation-string_feature.test
│   │   │   ├── issue1091.test
│   │   │   ├── issue1365.test
│   │   │   ├── issue1371.test
│   │   │   ├── issue2968.test
│   │   │   ├── issue806.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── named-parameter_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── return-type_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── switch_feature.test
│   │   │   ├── type-expression_feature.test
│   │   │   ├── type-list_feature.test
│   │   │   └── using-directive_feature.test
│   │   ├── csharp!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── csharp+aspnet/
│   │   │   └── directive_feature.test
│   │   ├── cshtml/
│   │   │   ├── block_feature.test
│   │   │   ├── code-block_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue3354.test
│   │   │   └── value_feature.test
│   │   ├── csp/
│   │   │   ├── directive_no_value_feature.test
│   │   │   ├── directive_with_source_expression_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── host_feature.test
│   │   │   ├── issue2661.test
│   │   │   ├── keyword_safe_feature.html.test
│   │   │   ├── keyword_unsafe_feature.html.test
│   │   │   ├── nonce_feature.test
│   │   │   ├── none_feature.test
│   │   │   └── scheme_feature.test
│   │   ├── css/
│   │   │   ├── atrule_feature.test
│   │   │   ├── atrule_selector-function-argument_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── css!+css-extras/
│   │   │   ├── atrule_selector-function-argument_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── entity_feature.test
│   │   │   ├── hexcode_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── selector_attribute_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── selector_n-th_feature.test
│   │   │   ├── selector_pseudo-class_feature.test
│   │   │   ├── unit_feature.test
│   │   │   └── variable_feature.test
│   │   ├── css+css-extras+sass/
│   │   │   └── issue2992.test
│   │   ├── css+haml/
│   │   │   └── css+haml_usage.test
│   │   ├── css+http/
│   │   │   └── css_inclusion.test
│   │   ├── css+textile/
│   │   │   └── css_inclusion.test
│   │   ├── css-selector/
│   │   │   └── token-types_feature.test
│   │   ├── csv/
│   │   │   └── value.test
│   │   ├── cue/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cypher/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── relationship_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── d/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue2027.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── dart/
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── dataweave/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── dates_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── keywords_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── dax/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datafield_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── measure_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── dhall/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── env_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── diff/
│   │   │   ├── coord_feature.test
│   │   │   └── diff_feature.test
│   │   ├── django/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── for-loop_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── test_feature.test
│   │   │   └── variable_feature.test
│   │   ├── django!+css/
│   │   │   └── inclusion.test
│   │   ├── django!+javascript/
│   │   │   └── inclusion.test
│   │   ├── dns-zone-file/
│   │   │   ├── class_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type_featrue.test
│   │   │   └── variable_feature.test
│   │   ├── docker/
│   │   │   ├── comment_feature.test
│   │   │   ├── instruction_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── options_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── dot/
│   │   │   ├── attribute_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── graph-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── node_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── dot!+markup/
│   │   │   └── attribute_feature.test
│   │   ├── ebnf/
│   │   │   ├── comment_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── rule_feature.test
│   │   │   ├── special_feature.test
│   │   │   └── string_feature.test
│   │   ├── editorconfig/
│   │   │   ├── comment_feature.test
│   │   │   ├── key_value_feature.test
│   │   │   └── section_feature.test
│   │   ├── eiffel/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── ejs/
│   │   │   ├── comment_feature.test
│   │   │   ├── ejs_feature.test
│   │   │   ├── escape_feature.test
│   │   │   └── markup_feature.test
│   │   ├── ejs+pug/
│   │   │   └── ejs_inclusion.test
│   │   ├── elixir/
│   │   │   ├── atom_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── capture_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doc_feature.test
│   │   │   ├── issue1392.test
│   │   │   ├── issue775.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── elm/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import-statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── erb/
│   │   │   ├── erb_feature.test
│   │   │   ├── erb_in_markup_feature.test
│   │   │   └── issue1767.test
│   │   ├── erb+haml/
│   │   │   └── erb_inclusion.test
│   │   ├── erlang/
│   │   │   ├── atom_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── etlua/
│   │   │   └── delimiter_feature.test
│   │   ├── excel-formula/
│   │   │   ├── cell_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── reference_feature.test
│   │   │   └── string_feature.test
│   │   ├── factor/
│   │   │   ├── builtin_words_feature.test
│   │   │   ├── colon_words_feature.test
│   │   │   ├── comments_feature.test
│   │   │   ├── constructors_feature.test
│   │   │   ├── normal_words_feature.test
│   │   │   ├── numbers_feature.test
│   │   │   ├── other_builtin_parsing_words_feature.test
│   │   │   ├── quotations_feature.test
│   │   │   ├── regexps_feature.test
│   │   │   ├── sequences_feature.test
│   │   │   ├── stack_effects_feature.test
│   │   │   └── strings_feature.test
│   │   ├── false/
│   │   │   ├── assembler_code_feature.test
│   │   │   ├── character_code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── non-standard_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── firestore-security-rules/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── method_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── flow/
│   │   │   ├── flow-punctuation_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── type_feature.test
│   │   ├── fortran/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── fortran+pure/
│   │   │   └── fortran_inclusion.test
│   │   ├── fsharp/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── computation-expression_feature.test
│   │   │   ├── issue1480.test
│   │   │   ├── issue2696.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   └── string_feature.test
│   │   ├── fsharp!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── ftl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gap/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── shell_feature.test
│   │   │   └── string_feature.test
│   │   ├── gcode/
│   │   │   ├── checksum_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── gdscript/
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gedcom/
│   │   │   ├── level_feature.test
│   │   │   ├── line-value_feature.test
│   │   │   ├── pointer_feature.test
│   │   │   └── record_feature.test
│   │   ├── gettext/
│   │   │   ├── comment_feature.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gherkin/
│   │   │   ├── atrule_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── feature_feature.test
│   │   │   ├── outline_feature.test
│   │   │   ├── pystring_feature.test
│   │   │   ├── scenario_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── tag_feature.test
│   │   ├── git/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── commit-sha1_feature.test
│   │   │   ├── coord_feature.test
│   │   │   ├── diff_feature.test
│   │   │   └── string_feature.test
│   │   ├── glsl/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   └── number_feature.test
│   │   ├── gml/
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── variable_feature.test
│   │   ├── gn/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── go/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── go-module/
│   │   │   ├── comment_feature.test
│   │   │   ├── directives_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── version_feature.test
│   │   ├── gradle/
│   │   │   ├── annotation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── spock-block_feature.test
│   │   │   ├── string-interpolation_feature.html.test
│   │   │   └── string_feature.test
│   │   ├── graphql/
│   │   │   ├── advanced_tokens.html.test
│   │   │   ├── atom-input_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── description_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── fragment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mutation_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── scalar_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── groovy/
│   │   │   ├── annotation_feature.test
│   │   │   ├── issue1049.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── spock-block_feature.test
│   │   │   ├── string-interpolation_feature.html.test
│   │   │   └── string_feature.test
│   │   ├── groovy+sas/
│   │   │   └── groovy_inclusion.test
│   │   ├── haml/
│   │   │   ├── code_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── multiline-code_feature.test
│   │   │   ├── multiline-comment_feature.test
│   │   │   └── tag_feature.test
│   │   ├── handlebars/
│   │   │   ├── block_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── handlebars_in_html_feature.test
│   │   │   ├── handlebars_in_markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── handlebars+pug/
│   │   │   └── handlebars_inclusion.test
│   │   ├── haskell/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── haxe/
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── reification_feature.test
│   │   │   └── string_feature.test
│   │   ├── haxe!+regex/
│   │   │   └── regex_inclusion.test
│   │   ├── hcl/
│   │   │   ├── comment_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── hlsl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── operator_feature.test
│   │   ├── hoon/
│   │   │   ├── comments_and_leaves.test
│   │   │   ├── core_with_arms.test
│   │   │   ├── nested_strings.test
│   │   │   └── strings_with_escapes.test
│   │   ├── hpkp/
│   │   │   ├── max-age_feature.test
│   │   │   └── sha256_pin_feature.test
│   │   ├── hsts/
│   │   │   ├── include_subdomains_feature.test
│   │   │   ├── max-age_feature.test
│   │   │   └── preload_feature.test
│   │   ├── http/
│   │   │   ├── header_feature.test
│   │   │   ├── request-line_feature.test
│   │   │   ├── response-status_feature.test
│   │   │   └── text-plain_feature.test
│   │   ├── http!+csp/
│   │   │   └── inclusion.test
│   │   ├── http!+hpkp/
│   │   │   └── inclusion.test
│   │   ├── http!+hsts/
│   │   │   └── inclusion.test
│   │   ├── http!+uri/
│   │   │   └── request-line_feature.test
│   │   ├── ichigojam/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── icon/
│   │   │   ├── builtin-keyword_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── icu-message-format/
│   │   │   ├── arg-skeleton_feature.test
│   │   │   ├── choice-style_feature.test
│   │   │   ├── plural-style_feature.test
│   │   │   ├── select-style_feature.test
│   │   │   └── string_feature.test
│   │   ├── idris/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── iecst/
│   │   │   ├── address_feature.test
│   │   │   ├── block.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── ignore/
│   │   │   ├── comment_feature.test
│   │   │   └── entry_feature.test
│   │   ├── inform7/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── position_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── title_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── verb_feature.test
│   │   ├── ini/
│   │   │   ├── comment_feature.test
│   │   │   ├── key_value_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── section_feature.test
│   │   ├── io/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── j/
│   │   │   ├── adverb_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── conjunction_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── verb_feature.test
│   │   ├── java/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_featrue.test
│   │   │   ├── generics_feature.test
│   │   │   ├── issue1351.test
│   │   │   ├── issue3345.test
│   │   │   ├── issue3350.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── package_feature.test
│   │   │   └── string_feature.test
│   │   ├── javadoc/
│   │   │   ├── code_feature.test
│   │   │   ├── entity_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── reference_feature.test
│   │   │   └── tag_feature.test
│   │   ├── javadoc+java/
│   │   │   └── javadoc_inclusion.test
│   │   ├── javascript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-method_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── getter-setter_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── issue1337.test
│   │   │   ├── issue1340.test
│   │   │   ├── issue1397.test
│   │   │   ├── issue1526.test
│   │   │   ├── issue1807.test
│   │   │   ├── issue2694.test
│   │   │   ├── keyword_feature.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── private_fields_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── spread_and_keyword_feature.test
│   │   │   ├── supposed-classes_feature.test
│   │   │   ├── supposed-function_feature.test
│   │   │   ├── template-string_feature.test
│   │   │   ├── try-catch_feature.test
│   │   │   └── variable_feature.test
│   │   ├── javascript!+css+js-templates/
│   │   │   └── css_inclusion.test
│   │   ├── javascript!+graphql+js-templates/
│   │   │   └── graphql_inclusion.test
│   │   ├── javascript!+markdown+js-templates/
│   │   │   └── markdown_inclusion.test
│   │   ├── javascript!+markup+js-templates/
│   │   │   └── markup_inclusion.test
│   │   ├── javascript!+regex/
│   │   │   └── regex_inclusion.test
│   │   ├── javascript!+sql+js-templates/
│   │   │   └── sql_inclusion.test
│   │   ├── javascript+haml/
│   │   │   └── javascript_inclusion.test
│   │   ├── javascript+http/
│   │   │   ├── issue2733.test
│   │   │   └── javascript_inclusion.test
│   │   ├── javastacktrace/
│   │   │   ├── more_feature.test
│   │   │   ├── stack-frame_feature.test
│   │   │   └── summary_feature.test
│   │   ├── jexl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── transform_feature.test
│   │   ├── jolie/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── deployment_features.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── jq/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── dot_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── jsdoc/
│   │   │   ├── class-name_feature.test
│   │   │   ├── example_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── parameter_feature.test
│   │   ├── jsdoc+javascript/
│   │   │   └── jsdoc_inclusion.test
│   │   ├── json/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue1852.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── json+http/
│   │   │   ├── issue2733.test
│   │   │   ├── issue3168.test
│   │   │   ├── json-suffix_inclusion.test
│   │   │   └── json_inclusion.test
│   │   ├── json5/
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── jsonp/
│   │   │   ├── function_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── jsstacktrace/
│   │   │   ├── alias_feature.test
│   │   │   ├── errormessage-nodejs_feature.test
│   │   │   ├── errormessage_feature.test
│   │   │   ├── filename_feature.test
│   │   │   ├── filenamedirect_feature.test
│   │   │   ├── filenamedirectwindows_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── linenumber_feature.test
│   │   │   └── notmycode_feature.test
│   │   ├── jsx/
│   │   │   ├── dollars-in-attrs.test
│   │   │   ├── issue1103.test
│   │   │   ├── issue1235.test
│   │   │   ├── issue1236.test
│   │   │   ├── issue1294.test
│   │   │   ├── issue1335.test
│   │   │   ├── issue1342.test
│   │   │   ├── issue1356.test
│   │   │   ├── issue1364.test
│   │   │   ├── issue1408.test
│   │   │   ├── issue1421.test
│   │   │   ├── issue2727.test
│   │   │   ├── issue2753.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── spread_in_tags.test
│   │   │   └── tag_feature.test
│   │   ├── jsx!+graphql+js-templates/
│   │   │   └── graphql_inclusion.test
│   │   ├── julia/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── issue2360.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── keepalived/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── conditional-configuration_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── ip_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── keyman/
│   │   │   ├── comment_feature.test
│   │   │   ├── compile-target_feature.test
│   │   │   ├── header-keyword.test
│   │   │   ├── header-statement.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── rule-keyword_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── structural-keyword_feature.test
│   │   │   └── virtual-key_feature.test
│   │   ├── kotlin/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── kumir/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── name_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── system-variable_feature.test
│   │   │   └── type_feature.test
│   │   ├── kusto/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── verb_feature.test
│   │   ├── latex/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── equation_feature.test
│   │   │   ├── headline_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── url_feature.test
│   │   ├── latte/
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── html_feature.test
│   │   │   ├── n-attr_feature.test
│   │   │   └── php_feature.test
│   │   ├── less/
│   │   │   ├── atrule_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   └── variable_feature.test
│   │   ├── less+haml/
│   │   │   └── less_inclusion.test
│   │   ├── less+pug/
│   │   │   └── less_inclusion.test
│   │   ├── lilypond/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── embedded-scheme_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── linker-script/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── location-counter_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── section_feature.test
│   │   ├── liquid/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── empty_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── object_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── raw_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── template_feature.test
│   │   ├── lisp/
│   │   │   ├── boolean_feature.test
│   │   │   ├── car_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── declare_feature.test
│   │   │   ├── defun_feature.test
│   │   │   ├── defvar_feature.test
│   │   │   ├── heading_feature.test
│   │   │   ├── interactive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda-feature.test
│   │   │   ├── lisp-property_feature.test
│   │   │   ├── number_boolean.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── quoted-symbol_feature.test
│   │   │   ├── splice_feature.test
│   │   │   └── string_feature.test
│   │   ├── livescript/
│   │   │   ├── argument_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── interpolated-string.test
│   │   │   ├── keyword-operator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── livescript+pug/
│   │   │   └── livescript_inclusion.test
│   │   ├── llvm/
│   │   │   ├── attributes.test
│   │   │   ├── example-iterative.test
│   │   │   ├── example-recursive.test
│   │   │   ├── langref-module-example.test
│   │   │   ├── numbers.test
│   │   │   └── string.test
│   │   ├── log/
│   │   │   ├── _discord.test
│   │   │   ├── _docker.test
│   │   │   ├── _hadoop.test
│   │   │   ├── _java_stack_trace.test
│   │   │   ├── _minecraft.test
│   │   │   ├── _nginx.test
│   │   │   ├── _npm_console.test
│   │   │   ├── _npm_log.test
│   │   │   ├── _table.test
│   │   │   ├── _tomcat.test
│   │   │   ├── _windows.test
│   │   │   ├── date_feature.test
│   │   │   ├── email_feature.test
│   │   │   ├── exception_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── level_feature.test
│   │   │   ├── mac-address_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── separator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── time_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── uuid_feature.test
│   │   ├── log!+javastacktrace/
│   │   │   ├── _hadoop_javastacktrace_inclusion.test
│   │   │   ├── _java_stack_trace_inclusion.test
│   │   │   ├── _minecraft_javastacktrace_inclusion.test
│   │   │   └── exception_javastacktrace_inclusion.test
│   │   ├── lolcode/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── variable_feature.test
│   │   ├── lua/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── lua+sas/
│   │   │   └── lua_inclusion.test
│   │   ├── magma/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── generator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── shell_feature.test
│   │   │   └── string_feature.test
│   │   ├── makefile/
│   │   │   ├── builtin-target_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── target_feature.test
│   │   │   └── variable_feature.test
│   │   ├── markdown/
│   │   │   ├── blockquote_feature.test
│   │   │   ├── bold_feature.test
│   │   │   ├── code-block_feature.html.test
│   │   │   ├── code-block_feature.test
│   │   │   ├── code_block_language_detection_feature.html.test
│   │   │   ├── code_feature.test
│   │   │   ├── front-matter-block_empty_feature.test
│   │   │   ├── front-matter-block_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── issue2966.test
│   │   │   ├── italic_feature.test
│   │   │   ├── list_feature.test
│   │   │   ├── nested_bold_italic_feature.test
│   │   │   ├── strike_feature.test
│   │   │   ├── table_feature.test
│   │   │   ├── title_feature.test
│   │   │   ├── url-reference_feature.test
│   │   │   └── url_feature.test
│   │   ├── markdown+graphql/
│   │   │   └── description_feature.test
│   │   ├── markdown+haml/
│   │   │   └── markdown_inclusion.test
│   │   ├── markdown+pug/
│   │   │   └── markdown_inclusion.test
│   │   ├── markup/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── issue3441.test
│   │   │   ├── issue585.test
│   │   │   ├── issue888.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── tag_attribute_feature.test
│   │   │   └── tag_feature.test
│   │   ├── markup!+css/
│   │   │   └── css_inclusion.test
│   │   ├── markup!+css+javascript/
│   │   │   └── issue1240.test
│   │   ├── markup!+javascript/
│   │   │   └── javascript_inclusion.test
│   │   ├── markup+actionscript/
│   │   │   └── xml_feature.test
│   │   ├── markup+css+wiki/
│   │   │   └── table-tag_feature.test
│   │   ├── markup+haml/
│   │   │   └── markup_feature.test
│   │   ├── markup+http/
│   │   │   └── html_inclusion.test
│   │   ├── markup+javascript+csharp+aspnet/
│   │   │   └── script_feature.test
│   │   ├── markup+php/
│   │   │   ├── issue1582.test
│   │   │   ├── php_in_markup_feature.test
│   │   │   └── php_with_closing_tag_in_markup_feature.test
│   │   ├── markup+pug/
│   │   │   └── markup_feature.test
│   │   ├── markup+tt2/
│   │   │   └── tt2_in_markup_feature.test
│   │   ├── mata/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── missing_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── type_feature.test
│   │   ├── matlab/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── maxscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── time_feature.test
│   │   ├── mel/
│   │   │   ├── code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── flag_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mermaid/
│   │   │   ├── arrow_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── full_classdiagram.test
│   │   │   ├── full_erdiagram.test
│   │   │   ├── full_flowchart.test
│   │   │   ├── full_sequencediagram.test
│   │   │   ├── full_statediagram.test
│   │   │   ├── inter-arrow-label_feature.test
│   │   │   └── operator_feature.test
│   │   ├── metafont/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── internal_quantity_feature.test
│   │   │   ├── keywords_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── ponctuation_feature.test
│   │   │   ├── primitive_feature.test
│   │   │   ├── string_and_comment_feature.test
│   │   │   ├── type_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mizar/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mongodb/
│   │   │   ├── document_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── operations_feature.test
│   │   │   ├── query_feature.test
│   │   │   ├── string_url_and_ip_feature.test
│   │   │   └── update_feature.test
│   │   ├── monkey/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── type-char_feature.test
│   │   ├── moonscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── n1ql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   └── string_feature.test
│   │   ├── n4js/
│   │   │   ├── annotation_feature.test
│   │   │   └── keyword_feature.test
│   │   ├── nand2tetris-hdl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── naniscript/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── define_feature.test
│   │   │   ├── expression_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── mixed_content_feature.test
│   │   ├── nasm/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── neon/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── composite.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── json_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── nevod/
│   │   │   ├── comment_feature.test
│   │   │   ├── full_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── package_feature.test
│   │   │   ├── pattern_feature.test
│   │   │   ├── search_feature.test
│   │   │   └── string_feature.test
│   │   ├── nginx/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── nim/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── nix/
│   │   │   ├── antiquotation_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── nsis/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── objectivec/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── ocaml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type-variable_feature.test
│   │   │   └── variant_feature.test
│   │   ├── odin/
│   │   │   ├── boolean_feature.test
│   │   │   ├── character_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_parameter_sign_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── discard_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── not_a_number_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── procedure_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── raw_string_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── undefined_feature.test
│   │   ├── opencl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-type_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── number_feature.test
│   │   ├── opencl-extensions+c/
│   │   │   ├── boolean_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   └── type_feature.test
│   │   ├── opencl-extensions+cpp/
│   │   │   └── type_feature.test
│   │   ├── openqasm/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── oz/
│   │   │   ├── atom_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── parigp/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── parser/
│   │   │   ├── boolean_feature.test
│   │   │   ├── escape_feature.test
│   │   │   ├── expression_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parser-comment_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pascal/
│   │   │   ├── asm_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── pascaligo/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── pcaxis/
│   │   │   ├── boolean_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tlist_feature.test
│   │   ├── peoplecode/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── perl/
│   │   │   ├── comment_feature.test
│   │   │   ├── filehandle_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── v-string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── php/
│   │   │   ├── argument-name_feature.test
│   │   │   ├── array_feature.test
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── enum_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2156.test
│   │   │   ├── issue2614.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── package_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type_feature.test
│   │   │   └── variable_feature.test
│   │   ├── php!+css+css-extras/
│   │   │   └── issue2008.test
│   │   ├── php!+php-extras/
│   │   │   ├── global_feature.test
│   │   │   ├── scope_feature.test
│   │   │   └── this_feature.test
│   │   ├── phpdoc/
│   │   │   ├── class-name_feature.test
│   │   │   ├── issue2197.test
│   │   │   ├── keyword_feature.test
│   │   │   └── parameter_feature.test
│   │   ├── phpdoc+php/
│   │   │   └── phpdoc_inclusion.test
│   │   ├── plant-uml/
│   │   │   ├── arrow_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── divider_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── text_feature.test
│   │   │   ├── time_feature.test
│   │   │   └── variable_feature.test
│   │   ├── plsql/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── operator_feature.test
│   │   ├── powerquery/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── quoted_identifier_feature.test
│   │   │   └── string_feature.test
│   │   ├── powershell/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1407.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── processing/
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── type_feature.test
│   │   ├── prolog/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── promql/
│   │   │   ├── aggregate_selection.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── subquery_selection.test
│   │   │   └── time_series_selection.test
│   │   ├── properties/
│   │   │   ├── comment_feature.test
│   │   │   └── key_value_feature.test
│   │   ├── protobuf/
│   │   │   ├── annotation_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── map_feature.test
│   │   │   ├── rpc_feature.test
│   │   │   └── string_feature.test
│   │   ├── psl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function-foreach_feature.test
│   │   │   ├── heredoc_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── overall_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pug/
│   │   │   ├── code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── flow-control_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mixin_feature.test
│   │   │   ├── multiline-plain-text_feature.test
│   │   │   ├── multiline-script_feature.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── script_feature.test
│   │   │   └── tag_feature.test
│   │   ├── puppet/
│   │   │   ├── attr-name_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── heredoc_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pure/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── special_feature.test
│   │   │   └── string_feature.test
│   │   ├── purebasic/
│   │   │   ├── asm_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── purescript/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── issue3006.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── python/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1355.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── triple-quoted-string_feature.test
│   │   ├── q/
│   │   │   ├── adverb_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── verb_feature.test
│   │   ├── qml/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── import_feature.test
│   │   │   ├── javascript-function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── qore/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── qsharp/
│   │   │   ├── comments_feature.test
│   │   │   ├── if_with_function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_assignment_numbers_feature.test
│   │   ├── r/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── ellipsis_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── percent-operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── racket/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda_parameter_feature.test
│   │   │   ├── lang_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── reason/
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constructor_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── regex/
│   │   │   ├── anchor_feature.test
│   │   │   ├── backreference_feature.test
│   │   │   ├── char-class_feature.test
│   │   │   ├── char-set_feature.test
│   │   │   ├── escape_feature.test
│   │   │   ├── group_feature.test
│   │   │   ├── quantifier_feature.test
│   │   │   └── range_feature.test
│   │   ├── rego/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── renpy/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── rescript/
│   │   │   ├── attr-value_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── rest/
│   │   │   ├── command-line-option_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── doctest-block_feature.test
│   │   │   ├── field_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── issue2940.test
│   │   │   ├── link-target_feature.test
│   │   │   ├── link_feature.test
│   │   │   ├── list-bullet_feature.test
│   │   │   ├── literal-block_feature.test
│   │   │   ├── quoted-literal-block_feature.test
│   │   │   ├── substitution-def_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── title_feature.test
│   │   ├── rip/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_time_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── reference_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── roboconf/
│   │   │   ├── comment_feature.test
│   │   │   ├── component_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── optional_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── value_feature.test
│   │   │   └── wildcard_feature.test
│   │   ├── robotframework/
│   │   │   ├── comment_feature.test
│   │   │   ├── documentation_feature.test
│   │   │   ├── name_and_property_feature.test
│   │   │   ├── sections_feature.test
│   │   │   ├── settings_property_feature.test
│   │   │   ├── tag_feature.test
│   │   │   └── variable_feature.test
│   │   ├── ruby/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── issue1336.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── method_definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── variable_feature.test
│   │   ├── ruby+haml/
│   │   │   └── ruby_inclusion.test
│   │   ├── rust/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── closure-params_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1339.test
│   │   │   ├── issue1353.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lifetime-annotation_feature.test
│   │   │   ├── macro_example.test
│   │   │   ├── macro_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── sas/
│   │   │   ├── comment_feature.test
│   │   │   ├── datalines_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── format_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── input_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── macro_string_function_feature.test
│   │   │   ├── macrodefinition_feature.test
│   │   │   ├── macrokeyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── options_feature.test
│   │   │   ├── proccas_feature.test
│   │   │   ├── step_feature.test
│   │   │   └── string_feature.test
│   │   ├── sass/
│   │   │   ├── atrule-line_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── property-line_feature.test
│   │   │   ├── selector_feature.test
│   │   │   └── variable-line_feature.test
│   │   ├── scala/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── scheme/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── issue1331.test
│   │   │   ├── issue2609.test
│   │   │   ├── issue2811.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda_parameter_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── scss/
│   │   │   ├── atrule_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module-modifier_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── placeholder_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── statement_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── scss+haml/
│   │   │   └── scss_inclusion.test
│   │   ├── scss+pug/
│   │   │   └── scss_inclusion.test
│   │   ├── shell-session/
│   │   │   ├── command_feature.test
│   │   │   ├── command_string_feature.test
│   │   │   ├── info_feature.test
│   │   │   ├── issue2644.test
│   │   │   ├── issue2685.test
│   │   │   ├── issue2871.test
│   │   │   ├── issue3047_1.test
│   │   │   └── issue3047_2.test
│   │   ├── smali/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── field_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── smalltalk/
│   │   │   ├── block-arguments_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_char_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── temporary-variables_feature.test
│   │   ├── smarty/
│   │   │   ├── attr-name_feature.test
│   │   │   ├── booelan_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── php_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── smarty_in_markup_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── smarty!+php/
│   │   │   └── inclusion.test
│   │   ├── sml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── classname_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── word_feature.test
│   │   ├── solidity/
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── version_feature.test
│   │   ├── solution-file/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── guid_feature.test
│   │   │   ├── object_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── soy/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command-arg.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── soy_in_markup_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── sparql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── splunk-spl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── sqf/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── magic-variable_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── sql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── issue3140.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── sql+sas/
│   │   │   └── sql_inclusion.test
│   │   ├── squirrel/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── stan/
│   │   │   ├── comment_feature.test
│   │   │   ├── constraint_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function-arg_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── program-block_feature.html.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── stata/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── java_inclusion.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mata_inclusion.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── python_inclusion.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── stylus/
│   │   │   ├── atrule-declaration_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── func_feature.test
│   │   │   ├── hexcode_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property-declaration_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable-declaration_feature.test
│   │   ├── stylus+pug/
│   │   │   └── stylus_inclusion.test
│   │   ├── supercollider/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── swift/
│   │   │   ├── attribute_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── omit_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── short-argument_feature.test
│   │   │   └── string_feature.test
│   │   ├── systemd/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── section_feature.test
│   │   │   └── value_feature.test
│   │   ├── t4-cs/
│   │   │   ├── block_class-feature_feature.test
│   │   │   ├── block_directive_feature.test
│   │   │   ├── block_expression_feature.test
│   │   │   └── block_standard_feature.test
│   │   ├── t4-vb/
│   │   │   └── block_feature.test
│   │   ├── tap/
│   │   │   ├── bail_out_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── pass_fail_feature.test
│   │   │   ├── plan_feature.test
│   │   │   ├── pragma_feature.test
│   │   │   ├── subtest_feature.test
│   │   │   ├── version_feature.test
│   │   │   └── yamlish_feature.test
│   │   ├── tcl/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── scope_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── textile/
│   │   │   ├── acronym_feature.test
│   │   │   ├── block-tag_feature.test
│   │   │   ├── footnote_feature.test
│   │   │   ├── image_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── link-ref_feature.test
│   │   │   ├── link_feature.test
│   │   │   ├── list_feature.test
│   │   │   ├── mark_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── tag_feature.test
│   │   ├── textile+haml/
│   │   │   └── textile_inclusion.test
│   │   ├── toml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── table_feature.test
│   │   ├── treeview/
│   │   │   ├── ascii.html.test
│   │   │   ├── box.html.test
│   │   │   ├── markers_feature.html.test
│   │   │   └── symlink_feature.test
│   │   ├── tremor/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── extractor_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_escape_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── modularity_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── tsx/
│   │   │   ├── issue2594.test
│   │   │   ├── issue3089.test
│   │   │   └── tag_feature.test
│   │   ├── tt2/
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── turtle/
│   │   │   ├── blank-node_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── language-tag_feature.test
│   │   │   ├── local-name-with-colons_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── twig/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── twig+pug/
│   │   │   └── twig_inclusion.test
│   │   ├── typescript/
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2819.test
│   │   │   ├── issue2860.test
│   │   │   ├── issue3000.test
│   │   │   ├── keyword_feature.html.test
│   │   │   └── keyword_feature.test
│   │   ├── typoscript/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── tag_string_feature.test
│   │   ├── unrealscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── category_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── uorazor/
│   │   │   ├── boolean_feature.test
│   │   │   ├── breakdown_script_example_feature.test
│   │   │   ├── commands_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── source_layers_feature.test
│   │   ├── uri/
│   │   │   ├── authority_feature.test
│   │   │   ├── full.test
│   │   │   ├── query_feature.test
│   │   │   ├── relative.test
│   │   │   └── scheme_feature.test
│   │   ├── v/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── vala/
│   │   │   ├── class-name_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── vbnet/
│   │   │   ├── comment_feature.test
│   │   │   ├── issue2781.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── vbnet!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── velocity/
│   │   │   ├── directive_feature.test
│   │   │   ├── unparsed_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── velocity-comment_feature.test
│   │   ├── verilog/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── kernel-function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── vhdl/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── vhdl-vectors_feature.test
│   │   ├── vim/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── visual-basic/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── warpscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── wasm/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── web-idl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── primitive-type_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── wgsl/
│   │   │   ├── attributes_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class_name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── wiki/
│   │   │   ├── block-comment_feature.test
│   │   │   ├── emphasis_feature.test
│   │   │   ├── heading_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── nowiki_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── wolfram/
│   │   │   ├── black_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── context_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── wren/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── xeora/
│   │   │   ├── constant_feature.test
│   │   │   ├── directive-block-close_feature.test
│   │   │   ├── directive-block-open_feature.test
│   │   │   ├── directive-block-separator_feature.test
│   │   │   ├── directive-inline_feature.test
│   │   │   ├── function-block_feature.test
│   │   │   ├── function-inline_feature.test
│   │   │   └── variable_feature.test
│   │   ├── xml/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── issue3441.test
│   │   │   ├── issue585.test
│   │   │   ├── issue888.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── tag_attribute_feature.test
│   │   │   └── tag_feature.test
│   │   ├── xml+http/
│   │   │   ├── issue2733.test
│   │   │   ├── text-xml_inclusion.test
│   │   │   ├── xml-suffix_inclusion.test
│   │   │   └── xml_inclusion.test
│   │   ├── xojo/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── xquery/
│   │   │   ├── axis_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── extension_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword-operator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── variable_feature.test
│   │   │   ├── xquery-attribute_feature.test
│   │   │   ├── xquery-comment_feature.test
│   │   │   └── xquery-element_feature.test
│   │   ├── yaml/
│   │   │   ├── anchor_and_alias_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── scalar_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── yaml+markdown/
│   │   │   └── front-matter_feature.test
│   │   ├── yang/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   └── string_feature.test
│   │   └── zig/
│   │       ├── builtin-type_feature.test
│   │       ├── builtin_feature.test
│   │       ├── class-name_feature.test
│   │       ├── comment_feature.test
│   │       ├── keyword_feature.test
│   │       ├── label_feature.test
│   │       ├── number_feature.test
│   │       ├── operator_feature.test
│   │       ├── punctuation_feature.test
│   │       └── string_char_feature.test
│   ├── pattern-tests.js
│   ├── plugins/
│   │   ├── autolinker/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── copy-to-clipboard/
│   │   │   └── basic-functionality.js
│   │   ├── custom-class/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── data-uri-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── diff-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── highlight-keywords/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── keep-markup/
│   │   │   └── test.js
│   │   ├── line-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── show-invisibles/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── show-language/
│   │   │   └── basic-functionality.js
│   │   ├── unescaped-markup/
│   │   │   └── basic-functionality.js
│   │   └── wpd/
│   │       ├── __snapshots__/
│   │       │   └── basic-functionality.js.snap
│   │       └── basic-functionality.js
│   ├── run.js
│   ├── testrunner-tests.js
│   ├── tsconfig.json
│   └── types.d.ts
└── tsconfig.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
insert_final_newline = false
charset = utf-8
indent_style = tab
indent_size = 4

[tests/languages/**.test]
end_of_line = crlf

[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

================================================
FILE: .gitattributes
================================================
* text=auto


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve.
title: ''
labels: ''
assignees: ''
---

**Information:**

- Prism version: [e.g. 1.14, latest from the download page, etc.]
- Plugins: [a list of plugins you are using or 'none']
- Environment: [e.g. Browser, Node, Webpack]

<!--
Does the latest version of Prism from the [download page](https://prismjs.com/download.html) also have this issue?

If you're using Prism with Node or Webpack, please also see the [usage section](https://prismjs.com/index.html#basic-usage).
-->

**Description**
A clear and concise description of what the bug is and how to reproduce it.
If applicable, add screenshots to help explain your problem.

**Example**
An example which reproduces the bug. This can be a link to a website, a [JSFiddle](https://jsfiddle.net/), an attached example project, etc.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
contact_links:
  - name: Questions and Help
    url: https://github.com/PrismJS/prism/discussions/categories/q-a
    about: This issue tracker is not for support questions. Please refer to the Prism's Discussion tab.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest a new feature for Prism.
title: ''
labels: enhancement
assignees: ''
---

**Motivation**
Please explain the problem you're having/why you propose this feature. Ex. I'm always frustrated when [...]

**Description**
A clear and concise description of what you want to happen.

**Alternatives**
A clear and concise description of any alternative solutions or features you've considered, if applicable.


================================================
FILE: .github/ISSUE_TEMPLATE/highlighting-bug-report.md
================================================
---
name: Highlighting bug report
about: Does Prism highlight parts of your code incorrectly or is a language feature
    not supported?
title: ''
labels: language-definitions
assignees: ''
---

**Information**

- Language: [e.g. C++, JavaScript, YAML, etc.]
- Plugins: [a list of plugins you are using or 'none']

<!--
Please verify that the problem still occurs in the latest version of Prism.

You can check this using the [test page](https://prismjs.com/test.html) or by getting the latest version at our [download page](https://prismjs.com/download.html).
-->

**Description**
A clear and concise description of what is being highlighted incorrectly and how it should be highlighted instead. Add screenshots to illustrate the problem.

**Code snippet**

<!--
Please add a link to the [test page](https://prismjs.com/test.html) that reproduces your issue (hover over "Share" and insert the link below).
-->

[Test page]()

<details>
<summary>The code being highlighted incorrectly.</summary>

```
Your code goes here
```

</details>


================================================
FILE: .github/ISSUE_TEMPLATE/new-language-request.md
================================================
---
name: New language request
about: Suggest a new language Prism should support.
title: ''
labels: language-definitions, new language
assignees: ''
---

**Language**
A short description of the language.

**Additional resources**
E.g. The official website, documentation or language specification.


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'weekly'


================================================
FILE: .github/workflows/danger.yml
================================================
name: Danger

on:
  pull_request_target:

jobs:
  run:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      # create a new branch called pr from the remote PR branch
      - run: git remote add pr_repo $PR_URL && git fetch pr_repo $PR_REF && git branch pr pr_repo/$PR_REF
        env:
          PR_URL: ${{github.event.pull_request.head.repo.clone_url}}
          PR_REF: ${{github.event.pull_request.head.ref}}
      - run: npm ci
      - name: Danger
        run: npx danger ci
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/test.yml
================================================
name: CI

on:
  push:
    branches: [v2]
  pull_request:
    branches: [v2]

permissions:
  contents: read

jobs:
  tests:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [20.x, 22.x, 24.x]

    steps:
      - uses: actions/checkout@v6
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm ci
      - run: npm test

  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [20.x, 22.x, 24.x]

    steps:
      - uses: actions/checkout@v6
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm ci
      - run: npm run build

  lint:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6
      - name: Use Node.js 20.x
        uses: actions/setup-node@v3
        with:
          node-version: 20.x
      - run: npm ci
      - run: npm run lint:ci

  coverage:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6
      - name: Use Node.js 20.x
        uses: actions/setup-node@v3
        with:
          node-version: 20.x
      - run: npm ci
      - run: npm run regex-coverage


================================================
FILE: .github/workflows/website-rebuild.yml
================================================
name: Rebuild Website

on:
  push:
    branches:
      # FIXME: Use the main branch when v2 is out
      - v2

jobs:
  trigger-rebuild:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Netlify Build Hook
        run: curl -X POST -d "{}" "${{ secrets.WEBSITE_BUILD_HOOK_URL }}?trigger_title=The+Prism+code+has+been+updated"


================================================
FILE: .gitignore
================================================
hide-*.js
node_modules
.idea/
.DS_Store
.eslintcache
dist/
types/

benchmark/remotes/
benchmark/downloads/


================================================
FILE: .jsdoc.json
================================================
{
	"plugins": ["plugins/markdown", "./gulpfile.js/docs.js"],
	"opts": {
		"destination": "./docs",
		"encoding": "utf8",
		"template": "./node_modules/docdash",
		"access": ["public", "protected"]
	},
	"recurseDepth": 10,
	"source": {
		"includePattern": "\\.js$",
		"excludePattern": "\\.min\\.js$"
	},
	"tags": {
		"allowUnknownTags": true,
		"dictionaries": ["jsdoc", "closure"]
	},
	"templates": {
		"cleverLinks": true,
		"monospaceLinks": true,
		"default": {
			"includeDate": false
		}
	},
	"docdash": {
		"static": true,
		"sort": true,
		"search": true,
		"collapse": false,
		"wrap": false,
		"typedefs": true,
		"private": false,
		"scripts": ["styles/overwrites.css"],
		"openGraph": {
			"title": "Prism generated API documentation",
			"type": "website",
			"image": "/logo.svg",
			"site_name": "Prism",
			"url": "https://prismjs.com"
		},
		"menu": {
			"PrismJS": {
				"href": "https://prismjs.com",
				"class": "menu-item",
				"id": "website_link"
			},
			"GitHub": {
				"href": "https://github.com/PrismJS/prism",
				"target": "_blank",
				"class": "menu-item",
				"id": "github_link"
			}
		}
	}
}


================================================
FILE: .npmignore
================================================
.idea
*.iml

hide-*.js
.DS_Store
CNAME
.github/
benchmark/
tests/
*.tgz
*.html
*.svg
composer.json
dangerfile.js
.editorconfig
.gitattributes
.travis.yml
eslint.config.mjs
.eslintcache
.jsdoc.json
MAINTAINERS.md
SECURITY.md


================================================
FILE: .prettierrc.js
================================================
/**
 * @see https://prettier.io/docs/configuration
 * @type {import("prettier").Config}
 */
export default {
	plugins: [
		'@ianvs/prettier-plugin-sort-imports', // Consider https://www.npmjs.com/package/prettier-plugin-organize-imports as an alternative
		'prettier-plugin-brace-style',
		'prettier-plugin-space-before-function-paren',
		'prettier-plugin-merge',
	],
	importOrder: [
		'<BUILTIN_MODULES>', // Node.js built-in modules
		'<THIRD_PARTY_MODULES>', // Imports not matched by other special words or groups.
		'^\\.\\./', // Parent imports
		'^\\./', // Sibling imports
		'^\\.$', // Index file
		'<TYPES>', // Type imports
	],
	braceStyle: 'stroustrup',
	arrowParens: 'avoid',
	bracketSpacing: true,
	endOfLine: 'auto',
	semi: true,
	singleQuote: true,
	tabWidth: 4,
	useTabs: true,
	trailingComma: 'es5',
	quoteProps: 'preserve',
	printWidth: 100,
	overrides: [
		{
			files: ['*.yml', '*.yaml'],
			options: {
				tabWidth: 2,
			},
		},
		{
			files: '*.css',
			options: {
				singleQuote: false,
			},
		},
	],
};


================================================
FILE: .vscode/settings.json
================================================
{
	"editor.formatOnSave": true,
	"editor.formatOnSaveMode": "file",
	"editor.defaultFormatter": "esbenp.prettier-vscode",
	"prettier.enable": true
}


================================================
FILE: CHANGELOG.md
================================================
# Prism Changelog

## 1.29.0 (2022-08-23)

### New components

- **BBj** ([#3511](https://github.com/PrismJS/prism/issues/3511)) [`1134bdfc`](https://github.com/PrismJS/prism/commit/1134bdfc)
- **BQN** ([#3515](https://github.com/PrismJS/prism/issues/3515)) [`859f99a0`](https://github.com/PrismJS/prism/commit/859f99a0)
- **Cilk/C** & **Cilk/C++** ([#3522](https://github.com/PrismJS/prism/issues/3522)) [`c8462a29`](https://github.com/PrismJS/prism/commit/c8462a29)
- **Gradle** ([#3443](https://github.com/PrismJS/prism/issues/3443)) [`32119823`](https://github.com/PrismJS/prism/commit/32119823)
- **METAFONT** ([#3465](https://github.com/PrismJS/prism/issues/3465)) [`2815f699`](https://github.com/PrismJS/prism/commit/2815f699)
- **WGSL** ([#3455](https://github.com/PrismJS/prism/issues/3455)) [`4c87d418`](https://github.com/PrismJS/prism/commit/4c87d418)

### Updated components

- **AsciiDoc**
    - Some regexes are too greedy ([#3481](https://github.com/PrismJS/prism/issues/3481)) [`c4cbeeaa`](https://github.com/PrismJS/prism/commit/c4cbeeaa)
- **Bash**
    - Added "sh" alias ([#3509](https://github.com/PrismJS/prism/issues/3509)) [`6b824d47`](https://github.com/PrismJS/prism/commit/6b824d47)
    - Added support for parameters and the `java` and `sysctl` commands. ([#3505](https://github.com/PrismJS/prism/issues/3505)) [`b9512b22`](https://github.com/PrismJS/prism/commit/b9512b22)
    - Added `cargo` command ([#3488](https://github.com/PrismJS/prism/issues/3488)) [`3e937137`](https://github.com/PrismJS/prism/commit/3e937137)
- **BBj**
    - Improve regexes ([#3512](https://github.com/PrismJS/prism/issues/3512)) [`0cad9ae5`](https://github.com/PrismJS/prism/commit/0cad9ae5)
- **CSS**
    - Fixed @-rules not accounting for strings ([#3438](https://github.com/PrismJS/prism/issues/3438)) [`0d4b6cb6`](https://github.com/PrismJS/prism/commit/0d4b6cb6)
- **CSS Extras**
    - Added support for `RebeccaPurple` color ([#3448](https://github.com/PrismJS/prism/issues/3448)) [`646b2e0a`](https://github.com/PrismJS/prism/commit/646b2e0a)
- **Hoon**
    - Fixed escaped strings ([#3473](https://github.com/PrismJS/prism/issues/3473)) [`64642716`](https://github.com/PrismJS/prism/commit/64642716)
- **Java**
    - Added support for constants ([#3507](https://github.com/PrismJS/prism/issues/3507)) [`342a0039`](https://github.com/PrismJS/prism/commit/342a0039)
- **Markup**
    - Fixed quotes in HTML attribute values ([#3442](https://github.com/PrismJS/prism/issues/3442)) [`ca8eaeee`](https://github.com/PrismJS/prism/commit/ca8eaeee)
- **NSIS**
    - Added missing commands ([#3504](https://github.com/PrismJS/prism/issues/3504)) [`b0c2a9b4`](https://github.com/PrismJS/prism/commit/b0c2a9b4)
- **Scala**
    - Updated keywords to support Scala 3 ([#3506](https://github.com/PrismJS/prism/issues/3506)) [`a090d063`](https://github.com/PrismJS/prism/commit/a090d063)
- **SCSS**
    - Fix casing in title of the `scss` lang ([#3501](https://github.com/PrismJS/prism/issues/3501)) [`2aed9ce7`](https://github.com/PrismJS/prism/commit/2aed9ce7)

### Updated plugins

- **Line Highlight**
    - Account for offset when clamping ranges ([#3518](https://github.com/PrismJS/prism/issues/3518)) [`098e3000`](https://github.com/PrismJS/prism/commit/098e3000)
    - Ignore ranges outside of actual lines ([#3475](https://github.com/PrismJS/prism/issues/3475)) [`9a4e725b`](https://github.com/PrismJS/prism/commit/9a4e725b)
- **Normalize Whitespace**
    - Add configuration via attributes ([#3467](https://github.com/PrismJS/prism/issues/3467)) [`91dea0c8`](https://github.com/PrismJS/prism/commit/91dea0c8)

### Other

- Added security policy ([#3070](https://github.com/PrismJS/prism/issues/3070)) [`05ee042a`](https://github.com/PrismJS/prism/commit/05ee042a)
- Added list of maintainers ([#3410](https://github.com/PrismJS/prism/issues/3410)) [`866b302e`](https://github.com/PrismJS/prism/commit/866b302e)
- Included githubactions in the dependabot config ([#3470](https://github.com/PrismJS/prism/issues/3470)) [`9561a9ab`](https://github.com/PrismJS/prism/commit/9561a9ab)
- Set permissions for GitHub actions ([#3468](https://github.com/PrismJS/prism/issues/3468)) [`b85e1ada`](https://github.com/PrismJS/prism/commit/b85e1ada)
- **Website**
    - Website: Added third-party tutorial for Pug template ([#3459](https://github.com/PrismJS/prism/issues/3459)) [`15272f76`](https://github.com/PrismJS/prism/commit/15272f76)
    - Docs: Add missing word ([#3489](https://github.com/PrismJS/prism/issues/3489)) [`9d603ef4`](https://github.com/PrismJS/prism/commit/9d603ef4)

## 1.28.0 (2022-04-17)

### New components

- **Ado** & **Mata** (Stata) ([#3383](https://github.com/PrismJS/prism/issues/3383)) [`63806d57`](https://github.com/PrismJS/prism/commit/63806d57)
- **ARM Assembly** ([#3376](https://github.com/PrismJS/prism/issues/3376)) [`554ff324`](https://github.com/PrismJS/prism/commit/554ff324)
- **Arturo** ([#3403](https://github.com/PrismJS/prism/issues/3403)) [`e2fe1f79`](https://github.com/PrismJS/prism/commit/e2fe1f79)
- **AWK** & **GAWK** ([#3374](https://github.com/PrismJS/prism/issues/3374)) [`ea8a0f40`](https://github.com/PrismJS/prism/commit/ea8a0f40)
- **Cooklang** ([#3337](https://github.com/PrismJS/prism/issues/3337)) [`4eb928c3`](https://github.com/PrismJS/prism/commit/4eb928c3)
- **CUE** ([#3375](https://github.com/PrismJS/prism/issues/3375)) [`a1340666`](https://github.com/PrismJS/prism/commit/a1340666)
- **gettext** ([#3369](https://github.com/PrismJS/prism/issues/3369)) [`dfef9b61`](https://github.com/PrismJS/prism/commit/dfef9b61)
- **GNU Linker Script** ([#3373](https://github.com/PrismJS/prism/issues/3373)) [`33f2cf95`](https://github.com/PrismJS/prism/commit/33f2cf95)
- **Odin** ([#3424](https://github.com/PrismJS/prism/issues/3424)) [`8a3fef6d`](https://github.com/PrismJS/prism/commit/8a3fef6d)
- **PlantUML** ([#3372](https://github.com/PrismJS/prism/issues/3372)) [`0d49553c`](https://github.com/PrismJS/prism/commit/0d49553c)
- **ReScript** ([#3435](https://github.com/PrismJS/prism/issues/3435)) [`cbef9af7`](https://github.com/PrismJS/prism/commit/cbef9af7)
- **SuperCollider** ([#3371](https://github.com/PrismJS/prism/issues/3371)) [`1b1d6731`](https://github.com/PrismJS/prism/commit/1b1d6731)

### Updated components

- **.properties**
    - Use `key`, `value` for token names; `attr-name`, `attr-value` as aliases ([#3377](https://github.com/PrismJS/prism/issues/3377)) [`b94a664d`](https://github.com/PrismJS/prism/commit/b94a664d)
- **ABAP**
    - Sorted keyword list ([#3368](https://github.com/PrismJS/prism/issues/3368)) [`7bda2bf1`](https://github.com/PrismJS/prism/commit/7bda2bf1)
- **Ada**
    - Changed `attr-name` to `attribute`; Use `attr-name` as alias ([#3381](https://github.com/PrismJS/prism/issues/3381)) [`cde0b5b2`](https://github.com/PrismJS/prism/commit/cde0b5b2)
    - Added `or` keyword ([#3380](https://github.com/PrismJS/prism/issues/3380)) [`c30b736f`](https://github.com/PrismJS/prism/commit/c30b736f)
- **Atmel AVR Assembly**
    - Fixed `&=` and `|=` operators ([#3395](https://github.com/PrismJS/prism/issues/3395)) [`8c4ae5a5`](https://github.com/PrismJS/prism/commit/8c4ae5a5)
- **AutoHotkey**
    - Use standard tokens ([#3385](https://github.com/PrismJS/prism/issues/3385)) [`61c460e8`](https://github.com/PrismJS/prism/commit/61c460e8)
    - Use general pattern instead of name list for directives ([#3384](https://github.com/PrismJS/prism/issues/3384)) [`7ac84dda`](https://github.com/PrismJS/prism/commit/7ac84dda)
- **CFScript**
    - Simplified operator regex ([#3396](https://github.com/PrismJS/prism/issues/3396)) [`6a215fe0`](https://github.com/PrismJS/prism/commit/6a215fe0)
- **CMake**
    - Simplified `variable` and `operator` regexes ([#3398](https://github.com/PrismJS/prism/issues/3398)) [`8e59744b`](https://github.com/PrismJS/prism/commit/8e59744b)
- **Erlang**
    - Added `begin` keyword ([#3387](https://github.com/PrismJS/prism/issues/3387)) [`cf38d059`](https://github.com/PrismJS/prism/commit/cf38d059)
- **Excel Formula**
    - Use more fitting aliases for `function-name`, `range`, and `cell` ([#3391](https://github.com/PrismJS/prism/issues/3391)) [`ef0ec02a`](https://github.com/PrismJS/prism/commit/ef0ec02a)
- **Flow**
    - Changed alias of `type` to `class-name` ([#3390](https://github.com/PrismJS/prism/issues/3390)) [`ce41434d`](https://github.com/PrismJS/prism/commit/ce41434d)
    - Recognise `[Ss]ymbol` as a type ([#3388](https://github.com/PrismJS/prism/issues/3388)) [`3916883a`](https://github.com/PrismJS/prism/commit/3916883a)
- **GEDCOM**
    - Update `tag` to `record` ([#3386](https://github.com/PrismJS/prism/issues/3386)) [`f8f95340`](https://github.com/PrismJS/prism/commit/f8f95340)
- **Groovy**
    - Added string interpolation without hook ([#3366](https://github.com/PrismJS/prism/issues/3366)) [`5617765f`](https://github.com/PrismJS/prism/commit/5617765f)
- **Handlebars**
    - Added Mustache alias ([#3422](https://github.com/PrismJS/prism/issues/3422)) [`cb5229af`](https://github.com/PrismJS/prism/commit/cb5229af)
- **Java**
    - Improved class name detection ([#3351](https://github.com/PrismJS/prism/issues/3351)) [`4cb3d038`](https://github.com/PrismJS/prism/commit/4cb3d038)
    - Fixed `record` false positives ([#3348](https://github.com/PrismJS/prism/issues/3348)) [`3bd8fdb1`](https://github.com/PrismJS/prism/commit/3bd8fdb1)
- **JavaScript**
    - Added support for new regex syntax ([#3399](https://github.com/PrismJS/prism/issues/3399)) [`ca78cde6`](https://github.com/PrismJS/prism/commit/ca78cde6)
- **Keyman**
    - Added new keywords ([#3401](https://github.com/PrismJS/prism/issues/3401)) [`bac36827`](https://github.com/PrismJS/prism/commit/bac36827)
- **MEL**
    - Improved functions, code, and comments ([#3393](https://github.com/PrismJS/prism/issues/3393)) [`8e648dab`](https://github.com/PrismJS/prism/commit/8e648dab)
- **NEON**
    - Change alias of `key` to `property` ([#3394](https://github.com/PrismJS/prism/issues/3394)) [`1c533f4a`](https://github.com/PrismJS/prism/commit/1c533f4a)
- **PHP**
    - Added `never` return type + minor fix of named arguments ([#3421](https://github.com/PrismJS/prism/issues/3421)) [`4ffab525`](https://github.com/PrismJS/prism/commit/4ffab525)
    - Added `readonly` keyword ([#3349](https://github.com/PrismJS/prism/issues/3349)) [`4c3f1969`](https://github.com/PrismJS/prism/commit/4c3f1969)
- **PureBasic**
    - Added support for pointer to string operator ([#3362](https://github.com/PrismJS/prism/issues/3362)) [`499b1fa0`](https://github.com/PrismJS/prism/commit/499b1fa0)
- **Razor C#**
    - Added support for `@helper` and inline C# inside attribute values ([#3355](https://github.com/PrismJS/prism/issues/3355)) [`31a38d0c`](https://github.com/PrismJS/prism/commit/31a38d0c)
- **VHDL**
    - Add `private`, `view` keywords; Distinguish `attribute` from `keyword` ([#3389](https://github.com/PrismJS/prism/issues/3389)) [`d1a5ce30`](https://github.com/PrismJS/prism/commit/d1a5ce30)
- **Wolfram language**
    - Simplified `operator` regex ([#3397](https://github.com/PrismJS/prism/issues/3397)) [`10ae6da3`](https://github.com/PrismJS/prism/commit/10ae6da3)

### Updated plugins

- **Autolinker**
    - Fixed URL regex to match more valid URLs ([#3358](https://github.com/PrismJS/prism/issues/3358)) [`17ed9160`](https://github.com/PrismJS/prism/commit/17ed9160)
- **Command Line**
    - Add support for command continuation prefix ([#3344](https://github.com/PrismJS/prism/issues/3344)) [`b53832cd`](https://github.com/PrismJS/prism/commit/b53832cd)
    - Increased prompt opacity ([#3352](https://github.com/PrismJS/prism/issues/3352)) [`f95dd190`](https://github.com/PrismJS/prism/commit/f95dd190)
- **Keep Markup**
    - Use original nodes instead of clones ([#3365](https://github.com/PrismJS/prism/issues/3365)) [`8a843a17`](https://github.com/PrismJS/prism/commit/8a843a17)

### Other

- **Infrastructure**
    - Use terser ([#3407](https://github.com/PrismJS/prism/issues/3407)) [`11c54624`](https://github.com/PrismJS/prism/commit/11c54624)
    - Tests: Cache results for exp backtracking check ([#3356](https://github.com/PrismJS/prism/issues/3356)) [`ead22e1e`](https://github.com/PrismJS/prism/commit/ead22e1e)
- **Website**
    - More documentation for language definitons ([#3427](https://github.com/PrismJS/prism/issues/3427)) [`333bd590`](https://github.com/PrismJS/prism/commit/333bd590)

## 1.27.0 (2022-02-17)

### New components

- **UO Razor Script** ([#3309](https://github.com/PrismJS/prism/issues/3309)) [`3f8cc5a0`](https://github.com/PrismJS/prism/commit/3f8cc5a0)

### Updated components

- **AutoIt**
    - Allow hyphen in directive ([#3308](https://github.com/PrismJS/prism/issues/3308)) [`bcb2e2c8`](https://github.com/PrismJS/prism/commit/bcb2e2c8)
- **EditorConfig**
    - Change alias of `section` from `keyword` to `selector` ([#3305](https://github.com/PrismJS/prism/issues/3305)) [`e46501b9`](https://github.com/PrismJS/prism/commit/e46501b9)
- **Ini**
    - Swap out `header` for `section` ([#3304](https://github.com/PrismJS/prism/issues/3304)) [`deb3a97f`](https://github.com/PrismJS/prism/commit/deb3a97f)
- **MongoDB**
    - Added v5 support ([#3297](https://github.com/PrismJS/prism/issues/3297)) [`8458c41f`](https://github.com/PrismJS/prism/commit/8458c41f)
- **PureBasic**
    - Added missing keyword and fixed constants ending with `$` ([#3320](https://github.com/PrismJS/prism/issues/3320)) [`d6c53726`](https://github.com/PrismJS/prism/commit/d6c53726)
- **Scala**
    - Added support for interpolated strings ([#3293](https://github.com/PrismJS/prism/issues/3293)) [`441a1422`](https://github.com/PrismJS/prism/commit/441a1422)
- **Systemd configuration file**
    - Swap out `operator` for `punctuation` ([#3306](https://github.com/PrismJS/prism/issues/3306)) [`2eb89e15`](https://github.com/PrismJS/prism/commit/2eb89e15)

### Updated plugins

- **Command Line**
    - Escape markup in command line output ([#3341](https://github.com/PrismJS/prism/issues/3341)) [`e002e78c`](https://github.com/PrismJS/prism/commit/e002e78c)
    - Add support for line continuation and improved colors ([#3326](https://github.com/PrismJS/prism/issues/3326)) [`1784b175`](https://github.com/PrismJS/prism/commit/1784b175)
    - Added span around command and output ([#3312](https://github.com/PrismJS/prism/issues/3312)) [`82d0ca15`](https://github.com/PrismJS/prism/commit/82d0ca15)

### Other

- **Core**
    - Added better error message for missing grammars ([#3311](https://github.com/PrismJS/prism/issues/3311)) [`2cc4660b`](https://github.com/PrismJS/prism/commit/2cc4660b)

## 1.26.0 (2022-01-06)

### New components

- **Atmel AVR Assembly** ([#2078](https://github.com/PrismJS/prism/issues/2078)) [`b5a70e4c`](https://github.com/PrismJS/prism/commit/b5a70e4c)
- **Go module** ([#3209](https://github.com/PrismJS/prism/issues/3209)) [`8476a9ab`](https://github.com/PrismJS/prism/commit/8476a9ab)
- **Keepalived Configure** ([#2417](https://github.com/PrismJS/prism/issues/2417)) [`d908e457`](https://github.com/PrismJS/prism/commit/d908e457)
- **Tremor** & **Trickle** & **Troy** ([#3087](https://github.com/PrismJS/prism/issues/3087)) [`ec25ba65`](https://github.com/PrismJS/prism/commit/ec25ba65)
- **Web IDL** ([#3107](https://github.com/PrismJS/prism/issues/3107)) [`ef53f021`](https://github.com/PrismJS/prism/commit/ef53f021)

### Updated components

- Use `\d` for `[0-9]` ([#3097](https://github.com/PrismJS/prism/issues/3097)) [`9fe2f93e`](https://github.com/PrismJS/prism/commit/9fe2f93e)
- **6502 Assembly**
    - Use standard tokens and minor improvements ([#3184](https://github.com/PrismJS/prism/issues/3184)) [`929c33e0`](https://github.com/PrismJS/prism/commit/929c33e0)
- **AppleScript**
    - Use `class-name` standard token ([#3182](https://github.com/PrismJS/prism/issues/3182)) [`9f5e511d`](https://github.com/PrismJS/prism/commit/9f5e511d)
- **AQL**
    - Differentiate between strings and identifiers ([#3183](https://github.com/PrismJS/prism/issues/3183)) [`fa540ab7`](https://github.com/PrismJS/prism/commit/fa540ab7)
- **Arduino**
    - Added `ino` alias ([#2990](https://github.com/PrismJS/prism/issues/2990)) [`5b7ce5e4`](https://github.com/PrismJS/prism/commit/5b7ce5e4)
- **Avro IDL**
    - Removed char syntax ([#3185](https://github.com/PrismJS/prism/issues/3185)) [`c7809285`](https://github.com/PrismJS/prism/commit/c7809285)
- **Bash**
    - Added `node` to known commands ([#3291](https://github.com/PrismJS/prism/issues/3291)) [`4b19b502`](https://github.com/PrismJS/prism/commit/4b19b502)
    - Added `vcpkg` command ([#3282](https://github.com/PrismJS/prism/issues/3282)) [`b351bc69`](https://github.com/PrismJS/prism/commit/b351bc69)
    - Added `docker` and `podman` commands ([#3237](https://github.com/PrismJS/prism/issues/3237)) [`8c5ed251`](https://github.com/PrismJS/prism/commit/8c5ed251)
- **Birb**
    - Fixed class name false positives ([#3111](https://github.com/PrismJS/prism/issues/3111)) [`d7017beb`](https://github.com/PrismJS/prism/commit/d7017beb)
- **Bro**
    - Removed `variable` and minor improvements ([#3186](https://github.com/PrismJS/prism/issues/3186)) [`4cebf34c`](https://github.com/PrismJS/prism/commit/4cebf34c)
- **BSL (1C:Enterprise)**
    - Made `directive` greedy ([#3112](https://github.com/PrismJS/prism/issues/3112)) [`5c412cbb`](https://github.com/PrismJS/prism/commit/5c412cbb)
- **C**
    - Added `char` token ([#3207](https://github.com/PrismJS/prism/issues/3207)) [`d85a64ae`](https://github.com/PrismJS/prism/commit/d85a64ae)
- **C#**
    - Added `char` token ([#3270](https://github.com/PrismJS/prism/issues/3270)) [`220bc40f`](https://github.com/PrismJS/prism/commit/220bc40f)
    - Move everything into the IIFE ([#3077](https://github.com/PrismJS/prism/issues/3077)) [`9ed4cf6e`](https://github.com/PrismJS/prism/commit/9ed4cf6e)
- **Clojure**
    - Added `char` token ([#3188](https://github.com/PrismJS/prism/issues/3188)) [`1c88c7da`](https://github.com/PrismJS/prism/commit/1c88c7da)
- **Concurnas**
    - Improved tokenization ([#3189](https://github.com/PrismJS/prism/issues/3189)) [`7b34e65d`](https://github.com/PrismJS/prism/commit/7b34e65d)
- **Content-Security-Policy**
    - Improved tokenization ([#3276](https://github.com/PrismJS/prism/issues/3276)) [`a943f2bb`](https://github.com/PrismJS/prism/commit/a943f2bb)
- **Coq**
    - Improved attribute pattern performance ([#3085](https://github.com/PrismJS/prism/issues/3085)) [`2f9672aa`](https://github.com/PrismJS/prism/commit/2f9672aa)
- **Crystal**
    - Improved tokenization ([#3194](https://github.com/PrismJS/prism/issues/3194)) [`51e3ecc0`](https://github.com/PrismJS/prism/commit/51e3ecc0)
- **Cypher**
    - Removed non-standard use of `symbol` token name ([#3195](https://github.com/PrismJS/prism/issues/3195)) [`6af8a644`](https://github.com/PrismJS/prism/commit/6af8a644)
- **D**
    - Added standard char token ([#3196](https://github.com/PrismJS/prism/issues/3196)) [`dafdbdec`](https://github.com/PrismJS/prism/commit/dafdbdec)
- **Dart**
    - Added string interpolation and improved metadata ([#3197](https://github.com/PrismJS/prism/issues/3197)) [`e1370357`](https://github.com/PrismJS/prism/commit/e1370357)
- **DataWeave**
    - Fixed keywords being highlighted as functions ([#3113](https://github.com/PrismJS/prism/issues/3113)) [`532212b2`](https://github.com/PrismJS/prism/commit/532212b2)
- **EditorConfig**
    - Swap out `property` for `key`; alias with `attr-name` ([#3272](https://github.com/PrismJS/prism/issues/3272)) [`bee6ad56`](https://github.com/PrismJS/prism/commit/bee6ad56)
- **Eiffel**
    - Removed non-standard use of `builtin` name ([#3198](https://github.com/PrismJS/prism/issues/3198)) [`6add768b`](https://github.com/PrismJS/prism/commit/6add768b)
- **Elm**
    - Recognize unicode escapes as valid Char ([#3105](https://github.com/PrismJS/prism/issues/3105)) [`736c581d`](https://github.com/PrismJS/prism/commit/736c581d)
- **ERB**
    - Better embedding of Ruby ([#3192](https://github.com/PrismJS/prism/issues/3192)) [`336edeea`](https://github.com/PrismJS/prism/commit/336edeea)
- **F#**
    - Added `char` token ([#3271](https://github.com/PrismJS/prism/issues/3271)) [`b58cd722`](https://github.com/PrismJS/prism/commit/b58cd722)
- **G-code**
    - Use standard-conforming alias for checksum ([#3205](https://github.com/PrismJS/prism/issues/3205)) [`ee7ab563`](https://github.com/PrismJS/prism/commit/ee7ab563)
- **GameMaker Language**
    - Fixed `operator` token and added tests ([#3114](https://github.com/PrismJS/prism/issues/3114)) [`d359eeae`](https://github.com/PrismJS/prism/commit/d359eeae)
- **Go**
    - Added `char` token and improved `string` and `number` tokens ([#3208](https://github.com/PrismJS/prism/issues/3208)) [`f11b86e2`](https://github.com/PrismJS/prism/commit/f11b86e2)
- **GraphQL**
    - Optimized regexes ([#3136](https://github.com/PrismJS/prism/issues/3136)) [`8494519e`](https://github.com/PrismJS/prism/commit/8494519e)
- **Haml**
    - Use `symbol` alias for filter names ([#3210](https://github.com/PrismJS/prism/issues/3210)) [`3d410670`](https://github.com/PrismJS/prism/commit/3d410670)
    - Improved filter and interpolation tokenization ([#3191](https://github.com/PrismJS/prism/issues/3191)) [`005ba469`](https://github.com/PrismJS/prism/commit/005ba469)
- **Haxe**
    - Improved tokenization ([#3211](https://github.com/PrismJS/prism/issues/3211)) [`f41bcf23`](https://github.com/PrismJS/prism/commit/f41bcf23)
- **Hoon**
    - Simplified the language definition a little ([#3212](https://github.com/PrismJS/prism/issues/3212)) [`81920b62`](https://github.com/PrismJS/prism/commit/81920b62)
- **HTTP**
    - Added support for special header value tokenization ([#3275](https://github.com/PrismJS/prism/issues/3275)) [`3362fc79`](https://github.com/PrismJS/prism/commit/3362fc79)
    - Relax pattern for body ([#3169](https://github.com/PrismJS/prism/issues/3169)) [`22d0c6ba`](https://github.com/PrismJS/prism/commit/22d0c6ba)
- **HTTP Public-Key-Pins**
    - Improved tokenization ([#3278](https://github.com/PrismJS/prism/issues/3278)) [`0f1b5810`](https://github.com/PrismJS/prism/commit/0f1b5810)
- **HTTP Strict-Transport-Security**
    - Improved tokenization ([#3277](https://github.com/PrismJS/prism/issues/3277)) [`3d708b97`](https://github.com/PrismJS/prism/commit/3d708b97)
- **Idris**
    - Fixed import statements ([#3115](https://github.com/PrismJS/prism/issues/3115)) [`15cb3b78`](https://github.com/PrismJS/prism/commit/15cb3b78)
- **Io**
    - Simplified comment token ([#3214](https://github.com/PrismJS/prism/issues/3214)) [`c2afa59b`](https://github.com/PrismJS/prism/commit/c2afa59b)
- **J**
    - Made comments greedy ([#3215](https://github.com/PrismJS/prism/issues/3215)) [`5af16014`](https://github.com/PrismJS/prism/commit/5af16014)
- **Java**
    - Added `char` token ([#3217](https://github.com/PrismJS/prism/issues/3217)) [`0a9f909c`](https://github.com/PrismJS/prism/commit/0a9f909c)
- **Java stack trace**
    - Removed unreachable parts of regexes ([#3219](https://github.com/PrismJS/prism/issues/3219)) [`fa55492b`](https://github.com/PrismJS/prism/commit/fa55492b)
    - Added missing lookbehinds ([#3116](https://github.com/PrismJS/prism/issues/3116)) [`cfb2e782`](https://github.com/PrismJS/prism/commit/cfb2e782)
- **JavaScript**
    - Improved `number` pattern ([#3149](https://github.com/PrismJS/prism/issues/3149)) [`5a24cbff`](https://github.com/PrismJS/prism/commit/5a24cbff)
    - Added properties ([#3099](https://github.com/PrismJS/prism/issues/3099)) [`3b2238fa`](https://github.com/PrismJS/prism/commit/3b2238fa)
- **Jolie**
    - Improved tokenization ([#3221](https://github.com/PrismJS/prism/issues/3221)) [`dfbb2020`](https://github.com/PrismJS/prism/commit/dfbb2020)
- **JQ**
    - Improved performance of strings ([#3084](https://github.com/PrismJS/prism/issues/3084)) [`233415b8`](https://github.com/PrismJS/prism/commit/233415b8)
- **JS stack trace**
    - Added missing boundary assertion ([#3117](https://github.com/PrismJS/prism/issues/3117)) [`23d9aec1`](https://github.com/PrismJS/prism/commit/23d9aec1)
- **Julia**
    - Added `char` token ([#3223](https://github.com/PrismJS/prism/issues/3223)) [`3a876df0`](https://github.com/PrismJS/prism/commit/3a876df0)
- **Keyman**
    - Improved tokenization ([#3224](https://github.com/PrismJS/prism/issues/3224)) [`baa95cab`](https://github.com/PrismJS/prism/commit/baa95cab)
- **Kotlin**
    - Added `char` token and improved string interpolation ([#3225](https://github.com/PrismJS/prism/issues/3225)) [`563cd73e`](https://github.com/PrismJS/prism/commit/563cd73e)
- **Latte**
    - Use standard token names and combined delimiter tokens ([#3226](https://github.com/PrismJS/prism/issues/3226)) [`6b168a3b`](https://github.com/PrismJS/prism/commit/6b168a3b)
- **Liquid**
    - Removed unmatchable object variants ([#3135](https://github.com/PrismJS/prism/issues/3135)) [`05e7ab04`](https://github.com/PrismJS/prism/commit/05e7ab04)
- **Lisp**
    - Improved `defun` ([#3130](https://github.com/PrismJS/prism/issues/3130)) [`e8f84a6c`](https://github.com/PrismJS/prism/commit/e8f84a6c)
- **Makefile**
    - Use standard token names correctly ([#3227](https://github.com/PrismJS/prism/issues/3227)) [`21a3c2d7`](https://github.com/PrismJS/prism/commit/21a3c2d7)
- **Markdown**
    - Fixed typo in token name ([#3101](https://github.com/PrismJS/prism/issues/3101)) [`00f77a2c`](https://github.com/PrismJS/prism/commit/00f77a2c)
- **MAXScript**
    - Various improvements ([#3181](https://github.com/PrismJS/prism/issues/3181)) [`e9b856c8`](https://github.com/PrismJS/prism/commit/e9b856c8)
    - Fixed booleans not being highlighted ([#3134](https://github.com/PrismJS/prism/issues/3134)) [`c6574e6b`](https://github.com/PrismJS/prism/commit/c6574e6b)
- **Monkey**
    - Use standard tokens correctly ([#3228](https://github.com/PrismJS/prism/issues/3228)) [`c1025aa6`](https://github.com/PrismJS/prism/commit/c1025aa6)
- **N1QL**
    - Updated keywords + minor improvements ([#3229](https://github.com/PrismJS/prism/issues/3229)) [`642d93ec`](https://github.com/PrismJS/prism/commit/642d93ec)
- **nginx**
    - Made some patterns greedy ([#3230](https://github.com/PrismJS/prism/issues/3230)) [`7b72e0ad`](https://github.com/PrismJS/prism/commit/7b72e0ad)
- **Nim**
    - Added `char` token and made some tokens greedy ([#3231](https://github.com/PrismJS/prism/issues/3231)) [`2334b4b6`](https://github.com/PrismJS/prism/commit/2334b4b6)
    - Fixed backtick identifier ([#3118](https://github.com/PrismJS/prism/issues/3118)) [`75331bea`](https://github.com/PrismJS/prism/commit/75331bea)
- **Nix**
    - Use standard token name correctly ([#3232](https://github.com/PrismJS/prism/issues/3232)) [`5bf6e35f`](https://github.com/PrismJS/prism/commit/5bf6e35f)
    - Removed unmatchable token ([#3119](https://github.com/PrismJS/prism/issues/3119)) [`dc1e808f`](https://github.com/PrismJS/prism/commit/dc1e808f)
- **NSIS**
    - Made `comment` greedy ([#3234](https://github.com/PrismJS/prism/issues/3234)) [`969f152a`](https://github.com/PrismJS/prism/commit/969f152a)
    - Update regex pattern for variables ([#3266](https://github.com/PrismJS/prism/issues/3266)) [`adcc8784`](https://github.com/PrismJS/prism/commit/adcc8784)
    - Update regex for constants pattern ([#3267](https://github.com/PrismJS/prism/issues/3267)) [`55583fb2`](https://github.com/PrismJS/prism/commit/55583fb2)
- **Objective-C**
    - Improved `string` token ([#3235](https://github.com/PrismJS/prism/issues/3235)) [`8e0e95f3`](https://github.com/PrismJS/prism/commit/8e0e95f3)
- **OCaml**
    - Improved tokenization ([#3269](https://github.com/PrismJS/prism/issues/3269)) [`7bcc5da0`](https://github.com/PrismJS/prism/commit/7bcc5da0)
    - Removed unmatchable punctuation variant ([#3120](https://github.com/PrismJS/prism/issues/3120)) [`314d6994`](https://github.com/PrismJS/prism/commit/314d6994)
- **Oz**
    - Improved tokenization ([#3240](https://github.com/PrismJS/prism/issues/3240)) [`a3905c04`](https://github.com/PrismJS/prism/commit/a3905c04)
- **Pascal**
    - Added support for asm and directives ([#2653](https://github.com/PrismJS/prism/issues/2653)) [`f053af13`](https://github.com/PrismJS/prism/commit/f053af13)
- **PATROL Scripting Language**
    - Added `boolean` token ([#3248](https://github.com/PrismJS/prism/issues/3248)) [`a5b6c5eb`](https://github.com/PrismJS/prism/commit/a5b6c5eb)
- **Perl**
    - Improved tokenization ([#3241](https://github.com/PrismJS/prism/issues/3241)) [`f22ea9f9`](https://github.com/PrismJS/prism/commit/f22ea9f9)
- **PHP**
    - Removed useless keyword tokens ([#3121](https://github.com/PrismJS/prism/issues/3121)) [`ee62a080`](https://github.com/PrismJS/prism/commit/ee62a080)
- **PHP Extras**
    - Improved `scope` and `this` ([#3243](https://github.com/PrismJS/prism/issues/3243)) [`59ef51db`](https://github.com/PrismJS/prism/commit/59ef51db)
- **PL/SQL**
    - Updated keywords + other improvements ([#3109](https://github.com/PrismJS/prism/issues/3109)) [`e7ba877b`](https://github.com/PrismJS/prism/commit/e7ba877b)
- **PowerQuery**
    - Improved tokenization and use standard tokens correctly ([#3244](https://github.com/PrismJS/prism/issues/3244)) [`5688f487`](https://github.com/PrismJS/prism/commit/5688f487)
    - Removed useless `data-type` alternative ([#3122](https://github.com/PrismJS/prism/issues/3122)) [`eeb13996`](https://github.com/PrismJS/prism/commit/eeb13996)
- **PowerShell**
    - Fixed lookbehind + refactoring ([#3245](https://github.com/PrismJS/prism/issues/3245)) [`d30a2da6`](https://github.com/PrismJS/prism/commit/d30a2da6)
- **Processing**
    - Use standard tokens correctly ([#3246](https://github.com/PrismJS/prism/issues/3246)) [`5ee8c557`](https://github.com/PrismJS/prism/commit/5ee8c557)
- **Prolog**
    - Removed variable token + minor improvements ([#3247](https://github.com/PrismJS/prism/issues/3247)) [`bacf9ae3`](https://github.com/PrismJS/prism/commit/bacf9ae3)
- **Pug**
    - Improved filter tokenization ([#3258](https://github.com/PrismJS/prism/issues/3258)) [`0390e644`](https://github.com/PrismJS/prism/commit/0390e644)
- **PureBasic**
    - Fixed token order inside `asm` token ([#3123](https://github.com/PrismJS/prism/issues/3123)) [`f3b25786`](https://github.com/PrismJS/prism/commit/f3b25786)
- **Python**
    - Made `comment` greedy ([#3249](https://github.com/PrismJS/prism/issues/3249)) [`8ecef306`](https://github.com/PrismJS/prism/commit/8ecef306)
    - Add `match` and `case` (soft) keywords ([#3142](https://github.com/PrismJS/prism/issues/3142)) [`3f24dc72`](https://github.com/PrismJS/prism/commit/3f24dc72)
    - Recognize walrus operator ([#3126](https://github.com/PrismJS/prism/issues/3126)) [`18bd101c`](https://github.com/PrismJS/prism/commit/18bd101c)
    - Fixed numbers ending with a dot ([#3106](https://github.com/PrismJS/prism/issues/3106)) [`2c63efa6`](https://github.com/PrismJS/prism/commit/2c63efa6)
- **QML**
    - Made `string` greedy ([#3250](https://github.com/PrismJS/prism/issues/3250)) [`1e6dcb51`](https://github.com/PrismJS/prism/commit/1e6dcb51)
- **React JSX**
    - Move alias property ([#3222](https://github.com/PrismJS/prism/issues/3222)) [`18c92048`](https://github.com/PrismJS/prism/commit/18c92048)
- **React TSX**
    - Removed `parameter` token ([#3090](https://github.com/PrismJS/prism/issues/3090)) [`0a313f4f`](https://github.com/PrismJS/prism/commit/0a313f4f)
- **Reason**
    - Use standard tokens correctly ([#3251](https://github.com/PrismJS/prism/issues/3251)) [`809af0d9`](https://github.com/PrismJS/prism/commit/809af0d9)
- **Regex**
    - Fixed char-class/char-set confusion ([#3124](https://github.com/PrismJS/prism/issues/3124)) [`4dde2e20`](https://github.com/PrismJS/prism/commit/4dde2e20)
- **Ren'py**
    - Improved language + added tests ([#3125](https://github.com/PrismJS/prism/issues/3125)) [`ede55b2c`](https://github.com/PrismJS/prism/commit/ede55b2c)
- **Rip**
    - Use standard `char` token ([#3252](https://github.com/PrismJS/prism/issues/3252)) [`2069ab0c`](https://github.com/PrismJS/prism/commit/2069ab0c)
- **Ruby**
    - Improved tokenization ([#3193](https://github.com/PrismJS/prism/issues/3193)) [`86028adb`](https://github.com/PrismJS/prism/commit/86028adb)
- **Rust**
    - Improved `type-definition` and use standard tokens correctly ([#3253](https://github.com/PrismJS/prism/issues/3253)) [`4049e5c6`](https://github.com/PrismJS/prism/commit/4049e5c6)
- **Scheme**
    - Use standard `char` token ([#3254](https://github.com/PrismJS/prism/issues/3254)) [`7d740c45`](https://github.com/PrismJS/prism/commit/7d740c45)
    - Updates syntax for reals ([#3159](https://github.com/PrismJS/prism/issues/3159)) [`4eb81fa1`](https://github.com/PrismJS/prism/commit/4eb81fa1)
- **Smalltalk**
    - Use standard `char` token ([#3255](https://github.com/PrismJS/prism/issues/3255)) [`a7bb3001`](https://github.com/PrismJS/prism/commit/a7bb3001)
    - Added `boolean` token ([#3100](https://github.com/PrismJS/prism/issues/3100)) [`51382524`](https://github.com/PrismJS/prism/commit/51382524)
- **Smarty**
    - Improved tokenization ([#3268](https://github.com/PrismJS/prism/issues/3268)) [`acc0bc09`](https://github.com/PrismJS/prism/commit/acc0bc09)
- **SQL**
    - Added identifier token ([#3141](https://github.com/PrismJS/prism/issues/3141)) [`4e00cddd`](https://github.com/PrismJS/prism/commit/4e00cddd)
- **Squirrel**
    - Use standard `char` token ([#3256](https://github.com/PrismJS/prism/issues/3256)) [`58a65bfd`](https://github.com/PrismJS/prism/commit/58a65bfd)
- **Stan**
    - Added missing keywords and HOFs ([#3238](https://github.com/PrismJS/prism/issues/3238)) [`afd77ed1`](https://github.com/PrismJS/prism/commit/afd77ed1)
- **Structured Text (IEC 61131-3)**
    - Structured text: Improved tokenization ([#3213](https://github.com/PrismJS/prism/issues/3213)) [`d04d166d`](https://github.com/PrismJS/prism/commit/d04d166d)
- **Swift**
    - Added support for `isolated` keyword ([#3174](https://github.com/PrismJS/prism/issues/3174)) [`18c828a6`](https://github.com/PrismJS/prism/commit/18c828a6)
- **TAP**
    - Conform to quoted-properties style ([#3127](https://github.com/PrismJS/prism/issues/3127)) [`3ef71533`](https://github.com/PrismJS/prism/commit/3ef71533)
- **Tremor**
    - Use standard `regex` token ([#3257](https://github.com/PrismJS/prism/issues/3257)) [`c56e4bf5`](https://github.com/PrismJS/prism/commit/c56e4bf5)
- **Twig**
    - Improved tokenization ([#3259](https://github.com/PrismJS/prism/issues/3259)) [`e03a7c24`](https://github.com/PrismJS/prism/commit/e03a7c24)
- **TypeScript**
    - Removed duplicate keywords ([#3132](https://github.com/PrismJS/prism/issues/3132)) [`91060fd6`](https://github.com/PrismJS/prism/commit/91060fd6)
- **URI**
    - Fixed IPv4 regex ([#3128](https://github.com/PrismJS/prism/issues/3128)) [`599e30ee`](https://github.com/PrismJS/prism/commit/599e30ee)
- **V**
    - Use standard `char` token ([#3260](https://github.com/PrismJS/prism/issues/3260)) [`e4373256`](https://github.com/PrismJS/prism/commit/e4373256)
- **Verilog**
    - Use standard tokens correctly ([#3261](https://github.com/PrismJS/prism/issues/3261)) [`43124129`](https://github.com/PrismJS/prism/commit/43124129)
- **Visual Basic**
    - Simplify regexes and use more common aliases ([#3262](https://github.com/PrismJS/prism/issues/3262)) [`aa73d448`](https://github.com/PrismJS/prism/commit/aa73d448)
- **Wolfram language**
    - Removed unmatchable punctuation variant ([#3133](https://github.com/PrismJS/prism/issues/3133)) [`a28a86ad`](https://github.com/PrismJS/prism/commit/a28a86ad)
- **Xojo (REALbasic)**
    - Proper token name for directives ([#3263](https://github.com/PrismJS/prism/issues/3263)) [`ffd8343f`](https://github.com/PrismJS/prism/commit/ffd8343f)
- **Zig**
    - Added missing keywords ([#3279](https://github.com/PrismJS/prism/issues/3279)) [`deed35e3`](https://github.com/PrismJS/prism/commit/deed35e3)
    - Use standard `char` token ([#3264](https://github.com/PrismJS/prism/issues/3264)) [`c3f9fb70`](https://github.com/PrismJS/prism/commit/c3f9fb70)
    - Fixed module comments and astral chars ([#3129](https://github.com/PrismJS/prism/issues/3129)) [`09a0e2ba`](https://github.com/PrismJS/prism/commit/09a0e2ba)

### Updated plugins

- **File Highlight**
    - File highlight+data range ([#1813](https://github.com/PrismJS/prism/issues/1813)) [`d38592c5`](https://github.com/PrismJS/prism/commit/d38592c5)
- **Keep Markup**
    - Added `drop-tokens` option class ([#3166](https://github.com/PrismJS/prism/issues/3166)) [`b679cfe6`](https://github.com/PrismJS/prism/commit/b679cfe6)
- **Line Highlight**
    - Expose `highlightLines` function as `Prism.plugins.highlightLines` ([#3086](https://github.com/PrismJS/prism/issues/3086)) [`9f4c0e74`](https://github.com/PrismJS/prism/commit/9f4c0e74)
- **Toolbar**
    - Set `z-index` of `.toolbar` to 10 ([#3163](https://github.com/PrismJS/prism/issues/3163)) [`1cac3559`](https://github.com/PrismJS/prism/commit/1cac3559)

### Updated themes

- Coy: Set `z-index` to make shadows visible in colored table cells ([#3161](https://github.com/PrismJS/prism/issues/3161)) [`79f250f3`](https://github.com/PrismJS/prism/commit/79f250f3)
- Coy: Added padding to account for box shadow ([#3143](https://github.com/PrismJS/prism/issues/3143)) [`a6a4ce7e`](https://github.com/PrismJS/prism/commit/a6a4ce7e)

### Other

- **Core**
    - Added `setLanguage` util function ([#3167](https://github.com/PrismJS/prism/issues/3167)) [`b631949a`](https://github.com/PrismJS/prism/commit/b631949a)
    - Fixed type error on null ([#3057](https://github.com/PrismJS/prism/issues/3057)) [`a80a68ba`](https://github.com/PrismJS/prism/commit/a80a68ba)
    - Document `disableWorkerMessageHandler` ([#3088](https://github.com/PrismJS/prism/issues/3088)) [`213cf7be`](https://github.com/PrismJS/prism/commit/213cf7be)
- **Infrastructure**
    - Tests: Added `.html.test` files for replace `.js` language tests ([#3148](https://github.com/PrismJS/prism/issues/3148)) [`2e834c8c`](https://github.com/PrismJS/prism/commit/2e834c8c)
    - Added regex coverage ([#3138](https://github.com/PrismJS/prism/issues/3138)) [`5333e281`](https://github.com/PrismJS/prism/commit/5333e281)
    - Tests: Added `TestCaseFile` class and generalized `runTestCase` ([#3147](https://github.com/PrismJS/prism/issues/3147)) [`ae8888a0`](https://github.com/PrismJS/prism/commit/ae8888a0)
    - Added even more language tests ([#3137](https://github.com/PrismJS/prism/issues/3137)) [`344d0b27`](https://github.com/PrismJS/prism/commit/344d0b27)
    - Added more plugin tests ([#1969](https://github.com/PrismJS/prism/issues/1969)) [`a394a14d`](https://github.com/PrismJS/prism/commit/a394a14d)
    - Added more language tests ([#3131](https://github.com/PrismJS/prism/issues/3131)) [`2f7f7364`](https://github.com/PrismJS/prism/commit/2f7f7364)
    - `package.json`: Added `engines.node` field ([#3108](https://github.com/PrismJS/prism/issues/3108)) [`798ee4f6`](https://github.com/PrismJS/prism/commit/798ee4f6)
    - Use tabs in `package(-lock).json` ([#3098](https://github.com/PrismJS/prism/issues/3098)) [`8daebb4a`](https://github.com/PrismJS/prism/commit/8daebb4a)
    - Update `eslint-plugin-regexp@1.2.0` ([#3091](https://github.com/PrismJS/prism/issues/3091)) [`e6e1d5ae`](https://github.com/PrismJS/prism/commit/e6e1d5ae)
    - Added minified CSS ([#3073](https://github.com/PrismJS/prism/issues/3073)) [`d63d6c0e`](https://github.com/PrismJS/prism/commit/d63d6c0e)
- **Website**
    - Readme: Clarify usage of our build system ([#3239](https://github.com/PrismJS/prism/issues/3239)) [`6f1d904a`](https://github.com/PrismJS/prism/commit/6f1d904a)
    - Improved CDN usage URLs ([#3285](https://github.com/PrismJS/prism/issues/3285)) [`6c21b2f7`](https://github.com/PrismJS/prism/commit/6c21b2f7)
    - Update download.html [`9d5424b6`](https://github.com/PrismJS/prism/commit/9d5424b6)
    - Autoloader: Mention how to load grammars from URLs ([#3218](https://github.com/PrismJS/prism/issues/3218)) [`cefccdd1`](https://github.com/PrismJS/prism/commit/cefccdd1)
    - Added PrismJS React and HTML tutorial link ([#3190](https://github.com/PrismJS/prism/issues/3190)) [`0ecdbdce`](https://github.com/PrismJS/prism/commit/0ecdbdce)
    - Improved readability ([#3177](https://github.com/PrismJS/prism/issues/3177)) [`4433d7fe`](https://github.com/PrismJS/prism/commit/4433d7fe)
    - Fixed red highlighting in Firefox ([#3178](https://github.com/PrismJS/prism/issues/3178)) [`746da79b`](https://github.com/PrismJS/prism/commit/746da79b)
    - Use Keep markup to highlight code section ([#3164](https://github.com/PrismJS/prism/issues/3164)) [`ebd59e32`](https://github.com/PrismJS/prism/commit/ebd59e32)
    - Document standard tokens and provide examples ([#3104](https://github.com/PrismJS/prism/issues/3104)) [`37551200`](https://github.com/PrismJS/prism/commit/37551200)
    - Fixed dead link to third-party tutorial [#3155](https://github.com/PrismJS/prism/issues/3155) ([#3156](https://github.com/PrismJS/prism/issues/3156)) [`31b4c1b8`](https://github.com/PrismJS/prism/commit/31b4c1b8)
    - Repositioned theme selector ([#3146](https://github.com/PrismJS/prism/issues/3146)) [`ea361e5a`](https://github.com/PrismJS/prism/commit/ea361e5a)
    - Adjusted TOC's line height for better readability ([#3145](https://github.com/PrismJS/prism/issues/3145)) [`c5629706`](https://github.com/PrismJS/prism/commit/c5629706)
    - Updated plugin header template ([#3144](https://github.com/PrismJS/prism/issues/3144)) [`faedfe85`](https://github.com/PrismJS/prism/commit/faedfe85)
    - Update test and example pages to use Autoloader ([#1936](https://github.com/PrismJS/prism/issues/1936)) [`3d96eedc`](https://github.com/PrismJS/prism/commit/3d96eedc)

## 1.25.0 (2021-09-16)

### New components

- **AviSynth** ([#3071](https://github.com/PrismJS/prism/issues/3071)) [`746a4b1a`](https://github.com/PrismJS/prism/commit/746a4b1a)
- **Avro IDL** ([#3051](https://github.com/PrismJS/prism/issues/3051)) [`87e5a376`](https://github.com/PrismJS/prism/commit/87e5a376)
- **Bicep** ([#3027](https://github.com/PrismJS/prism/issues/3027)) [`c1dce998`](https://github.com/PrismJS/prism/commit/c1dce998)
- **GAP (CAS)** ([#3054](https://github.com/PrismJS/prism/issues/3054)) [`23cd9b65`](https://github.com/PrismJS/prism/commit/23cd9b65)
- **GN** ([#3062](https://github.com/PrismJS/prism/issues/3062)) [`4f97b82b`](https://github.com/PrismJS/prism/commit/4f97b82b)
- **Hoon** ([#2978](https://github.com/PrismJS/prism/issues/2978)) [`ea776756`](https://github.com/PrismJS/prism/commit/ea776756)
- **Kusto** ([#3068](https://github.com/PrismJS/prism/issues/3068)) [`e008ea05`](https://github.com/PrismJS/prism/commit/e008ea05)
- **Magma (CAS)** ([#3055](https://github.com/PrismJS/prism/issues/3055)) [`a1b67ce3`](https://github.com/PrismJS/prism/commit/a1b67ce3)
- **MAXScript** ([#3060](https://github.com/PrismJS/prism/issues/3060)) [`4fbdd2f8`](https://github.com/PrismJS/prism/commit/4fbdd2f8)
- **Mermaid** ([#3050](https://github.com/PrismJS/prism/issues/3050)) [`148c1eca`](https://github.com/PrismJS/prism/commit/148c1eca)
- **Razor C#** ([#3064](https://github.com/PrismJS/prism/issues/3064)) [`4433ccfc`](https://github.com/PrismJS/prism/commit/4433ccfc)
- **Systemd configuration file** ([#3053](https://github.com/PrismJS/prism/issues/3053)) [`8df825e0`](https://github.com/PrismJS/prism/commit/8df825e0)
- **Wren** ([#3063](https://github.com/PrismJS/prism/issues/3063)) [`6a356d25`](https://github.com/PrismJS/prism/commit/6a356d25)

### Updated components

- **Bicep**
    - Added support for multiline and interpolated strings and other improvements ([#3028](https://github.com/PrismJS/prism/issues/3028)) [`748bb9ac`](https://github.com/PrismJS/prism/commit/748bb9ac)
- **C#**
    - Added `with` keyword & improved record support ([#2993](https://github.com/PrismJS/prism/issues/2993)) [`fdd291c0`](https://github.com/PrismJS/prism/commit/fdd291c0)
    - Added `record`, `init`, and `nullable` keyword ([#2991](https://github.com/PrismJS/prism/issues/2991)) [`9b561565`](https://github.com/PrismJS/prism/commit/9b561565)
    - Added context check for `from` keyword ([#2970](https://github.com/PrismJS/prism/issues/2970)) [`158f25d4`](https://github.com/PrismJS/prism/commit/158f25d4)
- **C++**
    - Fixed generic function false positive ([#3043](https://github.com/PrismJS/prism/issues/3043)) [`5de8947f`](https://github.com/PrismJS/prism/commit/5de8947f)
- **Clojure**
    - Improved tokenization ([#3056](https://github.com/PrismJS/prism/issues/3056)) [`8d0b74b5`](https://github.com/PrismJS/prism/commit/8d0b74b5)
- **Hoon**
    - Fixed mixed-case aura tokenization ([#3002](https://github.com/PrismJS/prism/issues/3002)) [`9c8911bd`](https://github.com/PrismJS/prism/commit/9c8911bd)
- **Liquid**
    - Added all objects from Shopify reference ([#2998](https://github.com/PrismJS/prism/issues/2998)) [`693b7433`](https://github.com/PrismJS/prism/commit/693b7433)
    - Added `empty` keyword ([#2997](https://github.com/PrismJS/prism/issues/2997)) [`fe3bc526`](https://github.com/PrismJS/prism/commit/fe3bc526)
- **Log file**
    - Added support for Java stack traces ([#3003](https://github.com/PrismJS/prism/issues/3003)) [`b0365e70`](https://github.com/PrismJS/prism/commit/b0365e70)
- **Markup**
    - Made most patterns greedy ([#3065](https://github.com/PrismJS/prism/issues/3065)) [`52e8cee9`](https://github.com/PrismJS/prism/commit/52e8cee9)
    - Fixed ReDoS ([#3078](https://github.com/PrismJS/prism/issues/3078)) [`0ff371bb`](https://github.com/PrismJS/prism/commit/0ff371bb)
- **PureScript**
    - Made `∀` a keyword (alias for `forall`) ([#3005](https://github.com/PrismJS/prism/issues/3005)) [`b38fc89a`](https://github.com/PrismJS/prism/commit/b38fc89a)
    - Improved Haskell and PureScript ([#3020](https://github.com/PrismJS/prism/issues/3020)) [`679539ec`](https://github.com/PrismJS/prism/commit/679539ec)
- **Python**
    - Support for underscores in numbers ([#3039](https://github.com/PrismJS/prism/issues/3039)) [`6f5d68f7`](https://github.com/PrismJS/prism/commit/6f5d68f7)
- **Sass**
    - Fixed issues with CSS Extras ([#2994](https://github.com/PrismJS/prism/issues/2994)) [`14fdfe32`](https://github.com/PrismJS/prism/commit/14fdfe32)
- **Shell session**
    - Fixed command false positives ([#3048](https://github.com/PrismJS/prism/issues/3048)) [`35b88fcf`](https://github.com/PrismJS/prism/commit/35b88fcf)
    - Added support for the percent sign as shell symbol ([#3010](https://github.com/PrismJS/prism/issues/3010)) [`4492b62b`](https://github.com/PrismJS/prism/commit/4492b62b)
- **Swift**
    - Major improvements ([#3022](https://github.com/PrismJS/prism/issues/3022)) [`8541db2e`](https://github.com/PrismJS/prism/commit/8541db2e)
    - Added support for `@propertyWrapper`, `@MainActor`, and `@globalActor` ([#3009](https://github.com/PrismJS/prism/issues/3009)) [`ce5e0f01`](https://github.com/PrismJS/prism/commit/ce5e0f01)
    - Added support for new Swift 5.5 keywords ([#2988](https://github.com/PrismJS/prism/issues/2988)) [`bb93fac0`](https://github.com/PrismJS/prism/commit/bb93fac0)
- **TypeScript**
    - Fixed keyword false positives ([#3001](https://github.com/PrismJS/prism/issues/3001)) [`212e0ef2`](https://github.com/PrismJS/prism/commit/212e0ef2)

### Updated plugins

- **JSONP Highlight**
    - Refactored JSONP logic ([#3018](https://github.com/PrismJS/prism/issues/3018)) [`5126d1e1`](https://github.com/PrismJS/prism/commit/5126d1e1)
- **Line Highlight**
    - Extend highlight to full line width inside scroll container ([#3011](https://github.com/PrismJS/prism/issues/3011)) [`e289ec60`](https://github.com/PrismJS/prism/commit/e289ec60)
- **Normalize Whitespace**
    - Removed unnecessary checks ([#3017](https://github.com/PrismJS/prism/issues/3017)) [`63edf14c`](https://github.com/PrismJS/prism/commit/63edf14c)
- **Previewers**
    - Ensure popup is visible across themes ([#3080](https://github.com/PrismJS/prism/issues/3080)) [`c7b6a7f6`](https://github.com/PrismJS/prism/commit/c7b6a7f6)

### Updated themes

- **Twilight**
    - Increase selector specificities of plugin overrides ([#3081](https://github.com/PrismJS/prism/issues/3081)) [`ffb20439`](https://github.com/PrismJS/prism/commit/ffb20439)

### Other

- **Infrastructure**
    - Added benchmark suite ([#2153](https://github.com/PrismJS/prism/issues/2153)) [`44456b21`](https://github.com/PrismJS/prism/commit/44456b21)
    - Tests: Insert expected JSON by Default ([#2960](https://github.com/PrismJS/prism/issues/2960)) [`e997dd35`](https://github.com/PrismJS/prism/commit/e997dd35)
    - Tests: Improved dection of empty patterns ([#3058](https://github.com/PrismJS/prism/issues/3058)) [`d216e602`](https://github.com/PrismJS/prism/commit/d216e602)
- **Website**
    - Highlight Keywords: More documentation ([#3049](https://github.com/PrismJS/prism/issues/3049)) [`247fd9a3`](https://github.com/PrismJS/prism/commit/247fd9a3)

## 1.24.1 (2021-07-03)

### Updated components

- **Markdown**
    - Fixed Markdown not working in NodeJS ([#2977](https://github.com/PrismJS/prism/issues/2977)) [`151121cd`](https://github.com/PrismJS/prism/commit/151121cd)

### Updated plugins

- **Toolbar**
    - Fixed styles being applies to nested elements ([#2980](https://github.com/PrismJS/prism/issues/2980)) [`748ecddc`](https://github.com/PrismJS/prism/commit/748ecddc)

## 1.24.0 (2021-06-27)

### New components

- **CFScript** ([#2771](https://github.com/PrismJS/prism/issues/2771)) [`b0a6ec85`](https://github.com/PrismJS/prism/commit/b0a6ec85)
- **ChaiScript** ([#2706](https://github.com/PrismJS/prism/issues/2706)) [`3f7d7453`](https://github.com/PrismJS/prism/commit/3f7d7453)
- **COBOL** ([#2800](https://github.com/PrismJS/prism/issues/2800)) [`7e5f78ff`](https://github.com/PrismJS/prism/commit/7e5f78ff)
- **Coq** ([#2803](https://github.com/PrismJS/prism/issues/2803)) [`41e25d3c`](https://github.com/PrismJS/prism/commit/41e25d3c)
- **CSV** ([#2794](https://github.com/PrismJS/prism/issues/2794)) [`f9b69528`](https://github.com/PrismJS/prism/commit/f9b69528)
- **DOT (Graphviz)** ([#2690](https://github.com/PrismJS/prism/issues/2690)) [`1f91868e`](https://github.com/PrismJS/prism/commit/1f91868e)
- **False** ([#2802](https://github.com/PrismJS/prism/issues/2802)) [`99a21dc5`](https://github.com/PrismJS/prism/commit/99a21dc5)
- **ICU Message Format** ([#2745](https://github.com/PrismJS/prism/issues/2745)) [`bf4e7ba9`](https://github.com/PrismJS/prism/commit/bf4e7ba9)
- **Idris** ([#2755](https://github.com/PrismJS/prism/issues/2755)) [`e9314415`](https://github.com/PrismJS/prism/commit/e9314415)
- **Jexl** ([#2764](https://github.com/PrismJS/prism/issues/2764)) [`7e51b99c`](https://github.com/PrismJS/prism/commit/7e51b99c)
- **KuMir (КуМир)** ([#2760](https://github.com/PrismJS/prism/issues/2760)) [`3419fb77`](https://github.com/PrismJS/prism/commit/3419fb77)
- **Log file** ([#2796](https://github.com/PrismJS/prism/issues/2796)) [`2bc6475b`](https://github.com/PrismJS/prism/commit/2bc6475b)
- **Nevod** ([#2798](https://github.com/PrismJS/prism/issues/2798)) [`f84c49c5`](https://github.com/PrismJS/prism/commit/f84c49c5)
- **OpenQasm** ([#2797](https://github.com/PrismJS/prism/issues/2797)) [`1a2347a3`](https://github.com/PrismJS/prism/commit/1a2347a3)
- **PATROL Scripting Language** ([#2739](https://github.com/PrismJS/prism/issues/2739)) [`18c67b49`](https://github.com/PrismJS/prism/commit/18c67b49)
- **Q#** ([#2804](https://github.com/PrismJS/prism/issues/2804)) [`1b63cd01`](https://github.com/PrismJS/prism/commit/1b63cd01)
- **Rego** ([#2624](https://github.com/PrismJS/prism/issues/2624)) [`e38986f9`](https://github.com/PrismJS/prism/commit/e38986f9)
- **Squirrel** ([#2721](https://github.com/PrismJS/prism/issues/2721)) [`fd1081d2`](https://github.com/PrismJS/prism/commit/fd1081d2)
- **URI** ([#2708](https://github.com/PrismJS/prism/issues/2708)) [`bbc77d19`](https://github.com/PrismJS/prism/commit/bbc77d19)
- **V** ([#2687](https://github.com/PrismJS/prism/issues/2687)) [`72962701`](https://github.com/PrismJS/prism/commit/72962701)
- **Wolfram language** & **Mathematica** & **Mathematica Notebook** ([#2921](https://github.com/PrismJS/prism/issues/2921)) [`c4f6b2cc`](https://github.com/PrismJS/prism/commit/c4f6b2cc)

### Updated components

- Fixed problems reported by `regexp/no-dupe-disjunctions` ([#2952](https://github.com/PrismJS/prism/issues/2952)) [`f471d2d7`](https://github.com/PrismJS/prism/commit/f471d2d7)
- Fixed some cases of quadratic worst-case runtime ([#2922](https://github.com/PrismJS/prism/issues/2922)) [`79d22182`](https://github.com/PrismJS/prism/commit/79d22182)
- Fixed 2 cases of exponential backtracking ([#2774](https://github.com/PrismJS/prism/issues/2774)) [`d85e30da`](https://github.com/PrismJS/prism/commit/d85e30da)
- **AQL**
    - Update for ArangoDB 3.8 ([#2842](https://github.com/PrismJS/prism/issues/2842)) [`ea82478d`](https://github.com/PrismJS/prism/commit/ea82478d)
- **AutoHotkey**
    - Improved tag pattern ([#2920](https://github.com/PrismJS/prism/issues/2920)) [`fc2a3334`](https://github.com/PrismJS/prism/commit/fc2a3334)
- **Bash**
    - Accept hyphens in function names ([#2832](https://github.com/PrismJS/prism/issues/2832)) [`e4ad22ad`](https://github.com/PrismJS/prism/commit/e4ad22ad)
    - Fixed single-quoted strings ([#2792](https://github.com/PrismJS/prism/issues/2792)) [`e5cfdb4a`](https://github.com/PrismJS/prism/commit/e5cfdb4a)
- **C++**
    - Added support for generic functions and made `::` punctuation ([#2814](https://github.com/PrismJS/prism/issues/2814)) [`3df62fd0`](https://github.com/PrismJS/prism/commit/3df62fd0)
    - Added missing keywords and modules ([#2763](https://github.com/PrismJS/prism/issues/2763)) [`88fa72cf`](https://github.com/PrismJS/prism/commit/88fa72cf)
- **Dart**
    - Improved support for classes & generics ([#2810](https://github.com/PrismJS/prism/issues/2810)) [`d0bcd074`](https://github.com/PrismJS/prism/commit/d0bcd074)
- **Docker**
    - Improvements ([#2720](https://github.com/PrismJS/prism/issues/2720)) [`93dd83c2`](https://github.com/PrismJS/prism/commit/93dd83c2)
- **Elixir**
    - Added missing keywords ([#2958](https://github.com/PrismJS/prism/issues/2958)) [`114e4626`](https://github.com/PrismJS/prism/commit/114e4626)
    - Added missing keyword and other improvements ([#2773](https://github.com/PrismJS/prism/issues/2773)) [`e6c0d298`](https://github.com/PrismJS/prism/commit/e6c0d298)
    - Added `defdelagate` keyword and highlighting for function/module names ([#2709](https://github.com/PrismJS/prism/issues/2709)) [`59f725d7`](https://github.com/PrismJS/prism/commit/59f725d7)
- **F#**
    - Fixed comment false positive ([#2703](https://github.com/PrismJS/prism/issues/2703)) [`a5d7178c`](https://github.com/PrismJS/prism/commit/a5d7178c)
- **GraphQL**
    - Fixed `definition-query` and `definition-mutation` tokens ([#2964](https://github.com/PrismJS/prism/issues/2964)) [`bfd7fded`](https://github.com/PrismJS/prism/commit/bfd7fded)
    - Added more detailed tokens ([#2939](https://github.com/PrismJS/prism/issues/2939)) [`34f24ac9`](https://github.com/PrismJS/prism/commit/34f24ac9)
- **Handlebars**
    - Added `hbs` alias ([#2874](https://github.com/PrismJS/prism/issues/2874)) [`43976351`](https://github.com/PrismJS/prism/commit/43976351)
- **HTTP**
    - Fixed body not being highlighted ([#2734](https://github.com/PrismJS/prism/issues/2734)) [`1dfc8271`](https://github.com/PrismJS/prism/commit/1dfc8271)
    - More granular tokenization ([#2722](https://github.com/PrismJS/prism/issues/2722)) [`6183fd9b`](https://github.com/PrismJS/prism/commit/6183fd9b)
    - Allow root path in request line ([#2711](https://github.com/PrismJS/prism/issues/2711)) [`4e7b2a82`](https://github.com/PrismJS/prism/commit/4e7b2a82)
- **Ini**
    - Consistently mimic Win32 INI parsing ([#2779](https://github.com/PrismJS/prism/issues/2779)) [`42d24fa2`](https://github.com/PrismJS/prism/commit/42d24fa2)
- **Java**
    - Improved generics ([#2812](https://github.com/PrismJS/prism/issues/2812)) [`4ec7535c`](https://github.com/PrismJS/prism/commit/4ec7535c)
- **JavaScript**
    - Added support for import assertions ([#2953](https://github.com/PrismJS/prism/issues/2953)) [`ab7c9953`](https://github.com/PrismJS/prism/commit/ab7c9953)
    - Added support for RegExp Match Indices ([#2900](https://github.com/PrismJS/prism/issues/2900)) [`415651a0`](https://github.com/PrismJS/prism/commit/415651a0)
    - Added hashbang and private getters/setters ([#2815](https://github.com/PrismJS/prism/issues/2815)) [`9c610ae6`](https://github.com/PrismJS/prism/commit/9c610ae6)
    - Improved contextual keywords ([#2713](https://github.com/PrismJS/prism/issues/2713)) [`022f90a0`](https://github.com/PrismJS/prism/commit/022f90a0)
- **JS Templates**
    - Added SQL templates ([#2945](https://github.com/PrismJS/prism/issues/2945)) [`abab9104`](https://github.com/PrismJS/prism/commit/abab9104)
- **JSON**
    - Fixed backtracking issue in Safari ([#2691](https://github.com/PrismJS/prism/issues/2691)) [`cf28d1b2`](https://github.com/PrismJS/prism/commit/cf28d1b2)
- **Liquid**
    - Added Markup support, missing tokens, and other improvements ([#2950](https://github.com/PrismJS/prism/issues/2950)) [`ac1d12f9`](https://github.com/PrismJS/prism/commit/ac1d12f9)
- **Log file**
    - Minor improvements ([#2851](https://github.com/PrismJS/prism/issues/2851)) [`45ec4a88`](https://github.com/PrismJS/prism/commit/45ec4a88)
- **Markdown**
    - Improved code snippets ([#2967](https://github.com/PrismJS/prism/issues/2967)) [`e9477d83`](https://github.com/PrismJS/prism/commit/e9477d83)
    - Workaround for incorrect highlighting due to double `wrap` hook ([#2719](https://github.com/PrismJS/prism/issues/2719)) [`2b355c98`](https://github.com/PrismJS/prism/commit/2b355c98)
- **Markup**
    - Added support for DOM event attributes ([#2702](https://github.com/PrismJS/prism/issues/2702)) [`8dbbbb35`](https://github.com/PrismJS/prism/commit/8dbbbb35)
- **nginx**
    - Complete rewrite ([#2793](https://github.com/PrismJS/prism/issues/2793)) [`5943f4cb`](https://github.com/PrismJS/prism/commit/5943f4cb)
- **PHP**
    - Fixed functions with namespaces ([#2889](https://github.com/PrismJS/prism/issues/2889)) [`87d79390`](https://github.com/PrismJS/prism/commit/87d79390)
    - Fixed string interpolation ([#2864](https://github.com/PrismJS/prism/issues/2864)) [`cf3755cb`](https://github.com/PrismJS/prism/commit/cf3755cb)
    - Added missing PHP 7.4 `fn` keyword ([#2858](https://github.com/PrismJS/prism/issues/2858)) [`e0ee93f1`](https://github.com/PrismJS/prism/commit/e0ee93f1)
    - Fixed methods with keyword names + minor improvements ([#2818](https://github.com/PrismJS/prism/issues/2818)) [`7e8cd40d`](https://github.com/PrismJS/prism/commit/7e8cd40d)
    - Improved constant support for PHP 8.1 enums ([#2770](https://github.com/PrismJS/prism/issues/2770)) [`8019e2f6`](https://github.com/PrismJS/prism/commit/8019e2f6)
    - Added support for PHP 8.1 enums ([#2752](https://github.com/PrismJS/prism/issues/2752)) [`f79b0eef`](https://github.com/PrismJS/prism/commit/f79b0eef)
    - Class names at the start of a string are now highlighted correctly ([#2731](https://github.com/PrismJS/prism/issues/2731)) [`04ef309c`](https://github.com/PrismJS/prism/commit/04ef309c)
    - Numeral syntax improvements ([#2701](https://github.com/PrismJS/prism/issues/2701)) [`01af04ed`](https://github.com/PrismJS/prism/commit/01af04ed)
- **React JSX**
    - Added support for general spread expressions ([#2754](https://github.com/PrismJS/prism/issues/2754)) [`9f59f52d`](https://github.com/PrismJS/prism/commit/9f59f52d)
    - Added support for comments inside tags ([#2728](https://github.com/PrismJS/prism/issues/2728)) [`30b0444f`](https://github.com/PrismJS/prism/commit/30b0444f)
- **reST (reStructuredText)**
    - Fixed `inline` pattern ([#2946](https://github.com/PrismJS/prism/issues/2946)) [`a7656de6`](https://github.com/PrismJS/prism/commit/a7656de6)
- **Ruby**
    - Added heredoc literals ([#2885](https://github.com/PrismJS/prism/issues/2885)) [`20b77bff`](https://github.com/PrismJS/prism/commit/20b77bff)
    - Added missing regex flags ([#2845](https://github.com/PrismJS/prism/issues/2845)) [`3786f396`](https://github.com/PrismJS/prism/commit/3786f396)
    - Added missing regex interpolation ([#2841](https://github.com/PrismJS/prism/issues/2841)) [`f08c2f7f`](https://github.com/PrismJS/prism/commit/f08c2f7f)
- **Scheme**
    - Added support for high Unicode characters ([#2693](https://github.com/PrismJS/prism/issues/2693)) [`0e61a7e1`](https://github.com/PrismJS/prism/commit/0e61a7e1)
    - Added bracket support ([#2813](https://github.com/PrismJS/prism/issues/2813)) [`1c6c0bf3`](https://github.com/PrismJS/prism/commit/1c6c0bf3)
- **Shell session**
    - Fixed multi-line commands ([#2872](https://github.com/PrismJS/prism/issues/2872)) [`cda976b1`](https://github.com/PrismJS/prism/commit/cda976b1)
    - Commands prefixed with a path are now detected ([#2686](https://github.com/PrismJS/prism/issues/2686)) [`c83fd0b8`](https://github.com/PrismJS/prism/commit/c83fd0b8)
- **SQL**
    - Added `ILIKE` operator ([#2704](https://github.com/PrismJS/prism/issues/2704)) [`6e34771f`](https://github.com/PrismJS/prism/commit/6e34771f)
- **Swift**
    - Added `some` keyword ([#2756](https://github.com/PrismJS/prism/issues/2756)) [`cf354ef5`](https://github.com/PrismJS/prism/commit/cf354ef5)
- **TypeScript**
    - Updated keywords ([#2861](https://github.com/PrismJS/prism/issues/2861)) [`fe98d536`](https://github.com/PrismJS/prism/commit/fe98d536)
    - Added support for decorators ([#2820](https://github.com/PrismJS/prism/issues/2820)) [`31cc2142`](https://github.com/PrismJS/prism/commit/31cc2142)
- **VB.Net**
    - Improved strings, comments, and punctuation ([#2782](https://github.com/PrismJS/prism/issues/2782)) [`a68f1fb6`](https://github.com/PrismJS/prism/commit/a68f1fb6)
- **Xojo (REALbasic)**
    - `REM` is no longer highlighted as a keyword in comments ([#2823](https://github.com/PrismJS/prism/issues/2823)) [`ebbbfd47`](https://github.com/PrismJS/prism/commit/ebbbfd47)
    - Added last missing Keyword "Selector" ([#2807](https://github.com/PrismJS/prism/issues/2807)) [`e32e043b`](https://github.com/PrismJS/prism/commit/e32e043b)
    - Added missing keywords ([#2805](https://github.com/PrismJS/prism/issues/2805)) [`459365ec`](https://github.com/PrismJS/prism/commit/459365ec)

### Updated plugins

- Made Match Braces and Custom Class compatible ([#2947](https://github.com/PrismJS/prism/issues/2947)) [`4b55bd6a`](https://github.com/PrismJS/prism/commit/4b55bd6a)
- Consistent Prism check ([#2788](https://github.com/PrismJS/prism/issues/2788)) [`96335642`](https://github.com/PrismJS/prism/commit/96335642)
- **Command Line**
    - Don't modify empty code blocks ([#2896](https://github.com/PrismJS/prism/issues/2896)) [`c81c3319`](https://github.com/PrismJS/prism/commit/c81c3319)
- **Copy to Clipboard**
    - Removed ClipboardJS dependency ([#2784](https://github.com/PrismJS/prism/issues/2784)) [`d5e14e1a`](https://github.com/PrismJS/prism/commit/d5e14e1a)
    - Fixed `clipboard.writeText` not working inside iFrames ([#2826](https://github.com/PrismJS/prism/issues/2826)) [`01b7b6f7`](https://github.com/PrismJS/prism/commit/01b7b6f7)
    - Added support for custom styles ([#2789](https://github.com/PrismJS/prism/issues/2789)) [`4d7f75b0`](https://github.com/PrismJS/prism/commit/4d7f75b0)
    - Make copy-to-clipboard configurable with multiple attributes ([#2723](https://github.com/PrismJS/prism/issues/2723)) [`2cb909e1`](https://github.com/PrismJS/prism/commit/2cb909e1)
- **File Highlight**
    - Fixed Prism check ([#2827](https://github.com/PrismJS/prism/issues/2827)) [`53d34b22`](https://github.com/PrismJS/prism/commit/53d34b22)
- **Line Highlight**
    - Fixed linkable line numbers not being initialized ([#2732](https://github.com/PrismJS/prism/issues/2732)) [`ccc73ab7`](https://github.com/PrismJS/prism/commit/ccc73ab7)
- **Previewers**
    - Use `classList` instead of `className` ([#2787](https://github.com/PrismJS/prism/issues/2787)) [`d298d46e`](https://github.com/PrismJS/prism/commit/d298d46e)

### Other

- **Core**
    - Add `tabindex` to code blocks to enable keyboard navigation ([#2799](https://github.com/PrismJS/prism/issues/2799)) [`dbf70515`](https://github.com/PrismJS/prism/commit/dbf70515)
    - Fixed greedy rematching reach bug ([#2705](https://github.com/PrismJS/prism/issues/2705)) [`b37987d3`](https://github.com/PrismJS/prism/commit/b37987d3)
    - Added support for plaintext ([#2738](https://github.com/PrismJS/prism/issues/2738)) [`970674cf`](https://github.com/PrismJS/prism/commit/970674cf)
- **Infrastructure**
    - Added ESLint
    - Added `npm-run-all` to clean up test command ([#2938](https://github.com/PrismJS/prism/issues/2938)) [`5d3d8088`](https://github.com/PrismJS/prism/commit/5d3d8088)
    - Added link to Q&A to issue templates ([#2834](https://github.com/PrismJS/prism/issues/2834)) [`7cd9e794`](https://github.com/PrismJS/prism/commit/7cd9e794)
    - CI: Run tests with NodeJS 16.x ([#2888](https://github.com/PrismJS/prism/issues/2888)) [`b77317c5`](https://github.com/PrismJS/prism/commit/b77317c5)
    - Dangerfile: Trim merge base ([#2761](https://github.com/PrismJS/prism/issues/2761)) [`45b0e82a`](https://github.com/PrismJS/prism/commit/45b0e82a)
    - Dangerfile: Fixed how changed files are determined ([#2757](https://github.com/PrismJS/prism/issues/2757)) [`0feb266f`](https://github.com/PrismJS/prism/commit/0feb266f)
    - Deps: Updated regex tooling ([#2923](https://github.com/PrismJS/prism/issues/2923)) [`ad9878ad`](https://github.com/PrismJS/prism/commit/ad9878ad)
    - Tests: Added `--language` for patterns tests ([#2929](https://github.com/PrismJS/prism/issues/2929)) [`a62ef796`](https://github.com/PrismJS/prism/commit/a62ef796)
    - Tests: Fixed polynomial backtracking test ([#2891](https://github.com/PrismJS/prism/issues/2891)) [`8dbf1217`](https://github.com/PrismJS/prism/commit/8dbf1217)
    - Tests: Fixed languages test discovery [`a9a199b6`](https://github.com/PrismJS/prism/commit/a9a199b6)
    - Tests: Test discovery should ignore unsupported file extensions ([#2886](https://github.com/PrismJS/prism/issues/2886)) [`4492c5ce`](https://github.com/PrismJS/prism/commit/4492c5ce)
    - Tests: Exhaustive pattern tests ([#2688](https://github.com/PrismJS/prism/issues/2688)) [`53151404`](https://github.com/PrismJS/prism/commit/53151404)
    - Tests: Fixed pretty print incorrectly calculating print width ([#2821](https://github.com/PrismJS/prism/issues/2821)) [`5bc405e7`](https://github.com/PrismJS/prism/commit/5bc405e7)
    - Tests: Automatically normalize line ends ([#2934](https://github.com/PrismJS/prism/issues/2934)) [`99f3ddcd`](https://github.com/PrismJS/prism/commit/99f3ddcd)
    - Tests: Added `--insert` and `--update` parameters to language test ([#2809](https://github.com/PrismJS/prism/issues/2809)) [`4c8b855d`](https://github.com/PrismJS/prism/commit/4c8b855d)
    - Tests: Stricter `components.json` tests ([#2758](https://github.com/PrismJS/prism/issues/2758)) [`933af805`](https://github.com/PrismJS/prism/commit/933af805)
- **Website**
    - Copy to clipboard: Fixed highlighting ([#2725](https://github.com/PrismJS/prism/issues/2725)) [`7a790bf9`](https://github.com/PrismJS/prism/commit/7a790bf9)
    - Readme: Mention `npm ci` ([#2899](https://github.com/PrismJS/prism/issues/2899)) [`91f3aaed`](https://github.com/PrismJS/prism/commit/91f3aaed)
    - Readme: Added Node and npm version requirements ([#2790](https://github.com/PrismJS/prism/issues/2790)) [`cb220168`](https://github.com/PrismJS/prism/commit/cb220168)
    - Readme: Update link to Chinese translation ([#2749](https://github.com/PrismJS/prism/issues/2749)) [`266cc700`](https://github.com/PrismJS/prism/commit/266cc700)
    - Replace `my.cdn` in code sample with Handlebars-like placeholder ([#2906](https://github.com/PrismJS/prism/issues/2906)) [`80471181`](https://github.com/PrismJS/prism/commit/80471181)
    - Set dummy domain for CDN ([#2905](https://github.com/PrismJS/prism/issues/2905)) [`38f1d289`](https://github.com/PrismJS/prism/commit/38f1d289)
    - Added MySQL to "Used by" section ([#2785](https://github.com/PrismJS/prism/issues/2785)) [`9b784ebf`](https://github.com/PrismJS/prism/commit/9b784ebf)
    - Improved basic usage section ([#2777](https://github.com/PrismJS/prism/issues/2777)) [`a1209930`](https://github.com/PrismJS/prism/commit/a1209930)
    - Updated URL in Autolinker example ([#2751](https://github.com/PrismJS/prism/issues/2751)) [`ec9767d6`](https://github.com/PrismJS/prism/commit/ec9767d6)
    - Added React native tutorial ([#2683](https://github.com/PrismJS/prism/issues/2683)) [`1506f345`](https://github.com/PrismJS/prism/commit/1506f345)

## 1.23.0 (2020-12-31)

### New components

- **Apex** ([#2622](https://github.com/PrismJS/prism/issues/2622)) [`f0e2b70e`](https://github.com/PrismJS/prism/commit/f0e2b70e)
- **DataWeave** ([#2659](https://github.com/PrismJS/prism/issues/2659)) [`0803525b`](https://github.com/PrismJS/prism/commit/0803525b)
- **PromQL** ([#2628](https://github.com/PrismJS/prism/issues/2628)) [`8831c706`](https://github.com/PrismJS/prism/commit/8831c706)

### Updated components

- Fixed multiple vulnerable regexes ([#2584](https://github.com/PrismJS/prism/issues/2584)) [`c2f6a644`](https://github.com/PrismJS/prism/commit/c2f6a644)
- **Apache Configuration**
    - Update directive-flag to match `=` ([#2612](https://github.com/PrismJS/prism/issues/2612)) [`00bf00e3`](https://github.com/PrismJS/prism/commit/00bf00e3)
- **C-like**
    - Made all comments greedy ([#2680](https://github.com/PrismJS/prism/issues/2680)) [`0a3932fe`](https://github.com/PrismJS/prism/commit/0a3932fe)
- **C**
    - Better class name and macro name detection ([#2585](https://github.com/PrismJS/prism/issues/2585)) [`129faf5c`](https://github.com/PrismJS/prism/commit/129faf5c)
- **Content-Security-Policy**
    - Added missing directives and keywords ([#2664](https://github.com/PrismJS/prism/issues/2664)) [`f1541342`](https://github.com/PrismJS/prism/commit/f1541342)
    - Do not highlight directive names with adjacent hyphens ([#2662](https://github.com/PrismJS/prism/issues/2662)) [`a7ccc16d`](https://github.com/PrismJS/prism/commit/a7ccc16d)
- **CSS**
    - Better HTML `style` attribute tokenization ([#2569](https://github.com/PrismJS/prism/issues/2569)) [`b04cbafe`](https://github.com/PrismJS/prism/commit/b04cbafe)
- **Java**
    - Improved package and class name detection ([#2599](https://github.com/PrismJS/prism/issues/2599)) [`0889bc7c`](https://github.com/PrismJS/prism/commit/0889bc7c)
    - Added Java 15 keywords ([#2567](https://github.com/PrismJS/prism/issues/2567)) [`73f81c89`](https://github.com/PrismJS/prism/commit/73f81c89)
- **Java stack trace**
    - Added support stack frame element class loaders and modules ([#2658](https://github.com/PrismJS/prism/issues/2658)) [`0bb4f096`](https://github.com/PrismJS/prism/commit/0bb4f096)
- **Julia**
    - Removed constants that are not exported by default ([#2601](https://github.com/PrismJS/prism/issues/2601)) [`093c8175`](https://github.com/PrismJS/prism/commit/093c8175)
- **Kotlin**
    - Added support for backticks in function names ([#2489](https://github.com/PrismJS/prism/issues/2489)) [`a5107d5c`](https://github.com/PrismJS/prism/commit/a5107d5c)
- **Latte**
    - Fixed exponential backtracking ([#2682](https://github.com/PrismJS/prism/issues/2682)) [`89f1e182`](https://github.com/PrismJS/prism/commit/89f1e182)
- **Markdown**
    - Improved URL tokenization ([#2678](https://github.com/PrismJS/prism/issues/2678)) [`2af3e2c2`](https://github.com/PrismJS/prism/commit/2af3e2c2)
    - Added support for YAML front matter ([#2634](https://github.com/PrismJS/prism/issues/2634)) [`5cf9cfbc`](https://github.com/PrismJS/prism/commit/5cf9cfbc)
- **PHP**
    - Added support for PHP 7.4 + other major improvements ([#2566](https://github.com/PrismJS/prism/issues/2566)) [`38808e64`](https://github.com/PrismJS/prism/commit/38808e64)
    - Added support for PHP 8.0 features ([#2591](https://github.com/PrismJS/prism/issues/2591)) [`df922d90`](https://github.com/PrismJS/prism/commit/df922d90)
    - Removed C-like dependency ([#2619](https://github.com/PrismJS/prism/issues/2619)) [`89ebb0b7`](https://github.com/PrismJS/prism/commit/89ebb0b7)
    - Fixed exponential backtracking ([#2684](https://github.com/PrismJS/prism/issues/2684)) [`37b9c9a1`](https://github.com/PrismJS/prism/commit/37b9c9a1)
- **Sass (Scss)**
    - Added support for Sass modules ([#2643](https://github.com/PrismJS/prism/issues/2643)) [`deb238a6`](https://github.com/PrismJS/prism/commit/deb238a6)
- **Scheme**
    - Fixed number pattern ([#2648](https://github.com/PrismJS/prism/issues/2648)) [`e01ecd00`](https://github.com/PrismJS/prism/commit/e01ecd00)
    - Fixed function and function-like false positives ([#2611](https://github.com/PrismJS/prism/issues/2611)) [`7951ca24`](https://github.com/PrismJS/prism/commit/7951ca24)
- **Shell session**
    - Fixed false positives because of links in command output ([#2649](https://github.com/PrismJS/prism/issues/2649)) [`8e76a978`](https://github.com/PrismJS/prism/commit/8e76a978)
- **TSX**
    - Temporary fix for the collisions of JSX tags and TS generics ([#2596](https://github.com/PrismJS/prism/issues/2596)) [`25bdb494`](https://github.com/PrismJS/prism/commit/25bdb494)

### Updated plugins

- Made Autoloader and Diff Highlight compatible ([#2580](https://github.com/PrismJS/prism/issues/2580)) [`7a74497a`](https://github.com/PrismJS/prism/commit/7a74497a)
- **Copy to Clipboard Button**
    - Set `type="button"` attribute for copy to clipboard plugin ([#2593](https://github.com/PrismJS/prism/issues/2593)) [`f59a85f1`](https://github.com/PrismJS/prism/commit/f59a85f1)
- **File Highlight**
    - Fixed IE compatibility problem ([#2656](https://github.com/PrismJS/prism/issues/2656)) [`3f4ae00d`](https://github.com/PrismJS/prism/commit/3f4ae00d)
- **Line Highlight**
    - Fixed top offset in combination with Line numbers ([#2237](https://github.com/PrismJS/prism/issues/2237)) [`b40f8f4b`](https://github.com/PrismJS/prism/commit/b40f8f4b)
    - Fixed print background color ([#2668](https://github.com/PrismJS/prism/issues/2668)) [`cdb24abe`](https://github.com/PrismJS/prism/commit/cdb24abe)
- **Line Numbers**
    - Fixed null reference ([#2605](https://github.com/PrismJS/prism/issues/2605)) [`7cdfe556`](https://github.com/PrismJS/prism/commit/7cdfe556)
- **Treeview**
    - Fixed icons on dark themes ([#2631](https://github.com/PrismJS/prism/issues/2631)) [`7266e32f`](https://github.com/PrismJS/prism/commit/7266e32f)
- **Unescaped Markup**
    - Refactoring ([#2445](https://github.com/PrismJS/prism/issues/2445)) [`fc602822`](https://github.com/PrismJS/prism/commit/fc602822)

### Other

- Readme: Added alternative link for Chinese translation [`071232b4`](https://github.com/PrismJS/prism/commit/071232b4)
- Readme: Removed broken icon for Chinese translation ([#2670](https://github.com/PrismJS/prism/issues/2670)) [`2ea202b9`](https://github.com/PrismJS/prism/commit/2ea202b9)
- Readme: Grammar adjustments ([#2629](https://github.com/PrismJS/prism/issues/2629)) [`f217ab75`](https://github.com/PrismJS/prism/commit/f217ab75)
- **Core**
    - Moved pattern matching + lookbehind logic into function ([#2633](https://github.com/PrismJS/prism/issues/2633)) [`24574406`](https://github.com/PrismJS/prism/commit/24574406)
    - Fixed bug with greedy matching ([#2632](https://github.com/PrismJS/prism/issues/2632)) [`8fa8dd24`](https://github.com/PrismJS/prism/commit/8fa8dd24)
- **Infrastructure**
    - Migrate from TravisCI -> GitHub Actions ([#2606](https://github.com/PrismJS/prism/issues/2606)) [`69132045`](https://github.com/PrismJS/prism/commit/69132045)
    - Added Dangerfile and provide bundle size info ([#2608](https://github.com/PrismJS/prism/issues/2608)) [`9df20c5e`](https://github.com/PrismJS/prism/commit/9df20c5e)
    - New `start` script to start local server ([#2491](https://github.com/PrismJS/prism/issues/2491)) [`0604793c`](https://github.com/PrismJS/prism/commit/0604793c)
    - Added test for exponential backtracking ([#2590](https://github.com/PrismJS/prism/issues/2590)) [`05afbb10`](https://github.com/PrismJS/prism/commit/05afbb10)
    - Added test for polynomial backtracking ([#2597](https://github.com/PrismJS/prism/issues/2597)) [`e644178b`](https://github.com/PrismJS/prism/commit/e644178b)
    - Tests: Better pretty print ([#2600](https://github.com/PrismJS/prism/issues/2600)) [`8bfcc819`](https://github.com/PrismJS/prism/commit/8bfcc819)
    - Tests: Fixed sorted language list test ([#2623](https://github.com/PrismJS/prism/issues/2623)) [`2d3a1267`](https://github.com/PrismJS/prism/commit/2d3a1267)
    - Tests: Stricter pattern for nice-token-names test ([#2588](https://github.com/PrismJS/prism/issues/2588)) [`0df60be1`](https://github.com/PrismJS/prism/commit/0df60be1)
    - Tests: Added strict checks for `Prism.languages.extend` ([#2572](https://github.com/PrismJS/prism/issues/2572)) [`8828500e`](https://github.com/PrismJS/prism/commit/8828500e)
- **Website**
    - Test page: Added "Share" option ([#2575](https://github.com/PrismJS/prism/issues/2575)) [`b5f4f10e`](https://github.com/PrismJS/prism/commit/b5f4f10e)
    - Test page: Don't trigger ad-blockers with class ([#2677](https://github.com/PrismJS/prism/issues/2677)) [`df0738e9`](https://github.com/PrismJS/prism/commit/df0738e9)
    - Thousands -> millions [`9f82de50`](https://github.com/PrismJS/prism/commit/9f82de50)
    - Unescaped Markup: More doc regarding comments ([#2652](https://github.com/PrismJS/prism/issues/2652)) [`add3736a`](https://github.com/PrismJS/prism/commit/add3736a)
    - Website: Added and updated documentation ([#2654](https://github.com/PrismJS/prism/issues/2654)) [`8e660495`](https://github.com/PrismJS/prism/commit/8e660495)
    - Website: Updated and improved guide on "Extending Prism" page ([#2586](https://github.com/PrismJS/prism/issues/2586)) [`8e1f38ff`](https://github.com/PrismJS/prism/commit/8e1f38ff)

## 1.22.0 (2020-10-10)

### New components

- **Birb** ([#2542](https://github.com/PrismJS/prism/issues/2542)) [`4d31e22a`](https://github.com/PrismJS/prism/commit/4d31e22a)
- **BSL (1C:Enterprise)** & **OneScript** ([#2520](https://github.com/PrismJS/prism/issues/2520)) [`5c33f0bb`](https://github.com/PrismJS/prism/commit/5c33f0bb)
- **MongoDB** ([#2518](https://github.com/PrismJS/prism/issues/2518)) [`004eaa74`](https://github.com/PrismJS/prism/commit/004eaa74)
- **Naninovel Script** ([#2494](https://github.com/PrismJS/prism/issues/2494)) [`388ad996`](https://github.com/PrismJS/prism/commit/388ad996)
- **PureScript** ([#2526](https://github.com/PrismJS/prism/issues/2526)) [`ad748a00`](https://github.com/PrismJS/prism/commit/ad748a00)
- **SML** & **SML/NJ** ([#2537](https://github.com/PrismJS/prism/issues/2537)) [`cb75d9e2`](https://github.com/PrismJS/prism/commit/cb75d9e2)
- **Stan** ([#2490](https://github.com/PrismJS/prism/issues/2490)) [`2da2beba`](https://github.com/PrismJS/prism/commit/2da2beba)
- **TypoScript** & **TSConfig** ([#2505](https://github.com/PrismJS/prism/issues/2505)) [`bf115f47`](https://github.com/PrismJS/prism/commit/bf115f47)

### Updated components

- Removed duplicate alternatives in various languages ([#2524](https://github.com/PrismJS/prism/issues/2524)) [`fa2225ff`](https://github.com/PrismJS/prism/commit/fa2225ff)
- **Haskell**
    - Improvements ([#2535](https://github.com/PrismJS/prism/issues/2535)) [`e023044c`](https://github.com/PrismJS/prism/commit/e023044c)
- **JS Extras**
    - Highlight import and export bindings ([#2533](https://github.com/PrismJS/prism/issues/2533)) [`c51ababb`](https://github.com/PrismJS/prism/commit/c51ababb)
    - Added control-flow keywords ([#2529](https://github.com/PrismJS/prism/issues/2529)) [`bcef22af`](https://github.com/PrismJS/prism/commit/bcef22af)
- **PHP**
    - Added `match` keyword (PHP 8.0) ([#2574](https://github.com/PrismJS/prism/issues/2574)) [`1761513e`](https://github.com/PrismJS/prism/commit/1761513e)
- **Processing**
    - Fixed function pattern ([#2564](https://github.com/PrismJS/prism/issues/2564)) [`35cbc02f`](https://github.com/PrismJS/prism/commit/35cbc02f)
- **Regex**
    - Changed how languages embed regexes ([#2532](https://github.com/PrismJS/prism/issues/2532)) [`f62ca787`](https://github.com/PrismJS/prism/commit/f62ca787)
- **Rust**
    - Fixed Unicode char literals ([#2550](https://github.com/PrismJS/prism/issues/2550)) [`3b4f14ca`](https://github.com/PrismJS/prism/commit/3b4f14ca)
- **Scheme**
    - Added support for R7RS syntax ([#2525](https://github.com/PrismJS/prism/issues/2525)) [`e4f6ccac`](https://github.com/PrismJS/prism/commit/e4f6ccac)
- **Shell session**
    - Added aliases ([#2548](https://github.com/PrismJS/prism/issues/2548)) [`bfb36748`](https://github.com/PrismJS/prism/commit/bfb36748)
    - Highlight all commands after the start of any Heredoc string ([#2509](https://github.com/PrismJS/prism/issues/2509)) [`6c921801`](https://github.com/PrismJS/prism/commit/6c921801)
- **YAML**
    - Improved key pattern ([#2561](https://github.com/PrismJS/prism/issues/2561)) [`59853a52`](https://github.com/PrismJS/prism/commit/59853a52)

### Updated plugins

- **Autoloader**
    - Fixed file detection regexes ([#2549](https://github.com/PrismJS/prism/issues/2549)) [`d36ea993`](https://github.com/PrismJS/prism/commit/d36ea993)
- **Match braces**
    - Fixed JS interpolation punctuation ([#2541](https://github.com/PrismJS/prism/issues/2541)) [`6b47133d`](https://github.com/PrismJS/prism/commit/6b47133d)
- **Show Language**
    - Added title for plain text ([#2555](https://github.com/PrismJS/prism/issues/2555)) [`a409245e`](https://github.com/PrismJS/prism/commit/a409245e)

### Other

- Tests: Added an option to accept the actual token stream ([#2515](https://github.com/PrismJS/prism/issues/2515)) [`bafab634`](https://github.com/PrismJS/prism/commit/bafab634)
- **Core**
    - Docs: Minor improvement ([#2513](https://github.com/PrismJS/prism/issues/2513)) [`206dc80f`](https://github.com/PrismJS/prism/commit/206dc80f)
- **Infrastructure**
    - JSDoc: Fixed line ends ([#2523](https://github.com/PrismJS/prism/issues/2523)) [`bf169e5f`](https://github.com/PrismJS/prism/commit/bf169e5f)
- **Website**
    - Website: Added new SB101 tutorial replacing the Crambler one ([#2576](https://github.com/PrismJS/prism/issues/2576)) [`655f985c`](https://github.com/PrismJS/prism/commit/655f985c)
    - Website: Fix typo on homepage by adding missing word add ([#2570](https://github.com/PrismJS/prism/issues/2570)) [`8ae6a4ba`](https://github.com/PrismJS/prism/commit/8ae6a4ba)
    - Custom class: Improved doc ([#2512](https://github.com/PrismJS/prism/issues/2512)) [`5ad6cb23`](https://github.com/PrismJS/prism/commit/5ad6cb23)

## 1.21.0 (2020-08-06)

### New components

- **.ignore** & **.gitignore** & **.hgignore** & **.npmignore** ([#2481](https://github.com/PrismJS/prism/issues/2481)) [`3fcce6fe`](https://github.com/PrismJS/prism/commit/3fcce6fe)
- **Agda** ([#2430](https://github.com/PrismJS/prism/issues/2430)) [`3a127c7d`](https://github.com/PrismJS/prism/commit/3a127c7d)
- **AL** ([#2300](https://github.com/PrismJS/prism/issues/2300)) [`de21eb64`](https://github.com/PrismJS/prism/commit/de21eb64)
- **Cypher** ([#2459](https://github.com/PrismJS/prism/issues/2459)) [`398e2943`](https://github.com/PrismJS/prism/commit/398e2943)
- **Dhall** ([#2473](https://github.com/PrismJS/prism/issues/2473)) [`649e51e5`](https://github.com/PrismJS/prism/commit/649e51e5)
- **EditorConfig** ([#2471](https://github.com/PrismJS/prism/issues/2471)) [`ed8fff91`](https://github.com/PrismJS/prism/commit/ed8fff91)
- **HLSL** ([#2318](https://github.com/PrismJS/prism/issues/2318)) [`87a5c7ae`](https://github.com/PrismJS/prism/commit/87a5c7ae)
- **JS stack trace** ([#2418](https://github.com/PrismJS/prism/issues/2418)) [`ae0327b3`](https://github.com/PrismJS/prism/commit/ae0327b3)
- **PeopleCode** ([#2302](https://github.com/PrismJS/prism/issues/2302)) [`bd4d8165`](https://github.com/PrismJS/prism/commit/bd4d8165)
- **PureBasic** ([#2369](https://github.com/PrismJS/prism/issues/2369)) [`d0c1c70d`](https://github.com/PrismJS/prism/commit/d0c1c70d)
- **Racket** ([#2315](https://github.com/PrismJS/prism/issues/2315)) [`053016ef`](https://github.com/PrismJS/prism/commit/053016ef)
- **Smali** ([#2419](https://github.com/PrismJS/prism/issues/2419)) [`22eb5cad`](https://github.com/PrismJS/prism/commit/22eb5cad)
- **Structured Text (IEC 61131-3)** ([#2311](https://github.com/PrismJS/prism/issues/2311)) [`8704cdfb`](https://github.com/PrismJS/prism/commit/8704cdfb)
- **UnrealScript** ([#2305](https://github.com/PrismJS/prism/issues/2305)) [`1093ceb3`](https://github.com/PrismJS/prism/commit/1093ceb3)
- **WarpScript** ([#2307](https://github.com/PrismJS/prism/issues/2307)) [`cde5b0fa`](https://github.com/PrismJS/prism/commit/cde5b0fa)
- **XML doc (.net)** ([#2340](https://github.com/PrismJS/prism/issues/2340)) [`caec5e30`](https://github.com/PrismJS/prism/commit/caec5e30)
- **YANG** ([#2467](https://github.com/PrismJS/prism/issues/2467)) [`ed1df1e1`](https://github.com/PrismJS/prism/commit/ed1df1e1)

### Updated components

- Markup & JSON: Added new aliases ([#2390](https://github.com/PrismJS/prism/issues/2390)) [`9782cfe6`](https://github.com/PrismJS/prism/commit/9782cfe6)
- Fixed several cases of exponential backtracking ([#2268](https://github.com/PrismJS/prism/issues/2268)) [`7a554b5f`](https://github.com/PrismJS/prism/commit/7a554b5f)
- **APL**
    - Added `⍥` ([#2409](https://github.com/PrismJS/prism/issues/2409)) [`0255cb6a`](https://github.com/PrismJS/prism/commit/0255cb6a)
- **AutoHotkey**
    - Added missing `format` built-in ([#2450](https://github.com/PrismJS/prism/issues/2450)) [`7c66cfc4`](https://github.com/PrismJS/prism/commit/7c66cfc4)
    - Improved comments and other improvements ([#2412](https://github.com/PrismJS/prism/issues/2412)) [`ddf3cc62`](https://github.com/PrismJS/prism/commit/ddf3cc62)
    - Added missing definitions ([#2400](https://github.com/PrismJS/prism/issues/2400)) [`4fe03676`](https://github.com/PrismJS/prism/commit/4fe03676)
- **Bash**
    - Added `composer` command ([#2298](https://github.com/PrismJS/prism/issues/2298)) [`044dd271`](https://github.com/PrismJS/prism/commit/044dd271)
- **Batch**
    - Fix escaped double quote ([#2485](https://github.com/PrismJS/prism/issues/2485)) [`f0f8210c`](https://github.com/PrismJS/prism/commit/f0f8210c)
- **C**
    - Improved macros and expressions ([#2440](https://github.com/PrismJS/prism/issues/2440)) [`8a72fa6f`](https://github.com/PrismJS/prism/commit/8a72fa6f)
    - Improved macros ([#2320](https://github.com/PrismJS/prism/issues/2320)) [`fdcf7ed2`](https://github.com/PrismJS/prism/commit/fdcf7ed2)
- **C#**
    - Improved pattern matching ([#2411](https://github.com/PrismJS/prism/issues/2411)) [`7f341fc1`](https://github.com/PrismJS/prism/commit/7f341fc1)
    - Fixed adjacent string interpolations ([#2402](https://github.com/PrismJS/prism/issues/2402)) [`2a2e79ed`](https://github.com/PrismJS/prism/commit/2a2e79ed)
- **C++**
    - Added support for default comparison operator ([#2426](https://github.com/PrismJS/prism/issues/2426)) [`8e9d161c`](https://github.com/PrismJS/prism/commit/8e9d161c)
    - Improved class name detection ([#2348](https://github.com/PrismJS/prism/issues/2348)) [`e3fe9040`](https://github.com/PrismJS/prism/commit/e3fe9040)
    - Fixed `enum class` class names ([#2342](https://github.com/PrismJS/prism/issues/2342)) [`30b4e254`](https://github.com/PrismJS/prism/commit/30b4e254)
- **Content-Security-Policy**
    - Fixed directives ([#2461](https://github.com/PrismJS/prism/issues/2461)) [`537a9e80`](https://github.com/PrismJS/prism/commit/537a9e80)
- **CSS**
    - Improved url and added keywords ([#2432](https://github.com/PrismJS/prism/issues/2432)) [`964de5a1`](https://github.com/PrismJS/prism/commit/964de5a1)
- **CSS Extras**
    - Optimized `class` and `id` patterns ([#2359](https://github.com/PrismJS/prism/issues/2359)) [`fdbc4473`](https://github.com/PrismJS/prism/commit/fdbc4473)
    - Renamed `attr-{name,value}` tokens and added tokens for combinators and selector lists ([#2373](https://github.com/PrismJS/prism/issues/2373)) [`e523f5d0`](https://github.com/PrismJS/prism/commit/e523f5d0)
- **Dart**
    - Added missing keywords ([#2355](https://github.com/PrismJS/prism/issues/2355)) [`4172ab6f`](https://github.com/PrismJS/prism/commit/4172ab6f)
- **Diff**
    - Added `prefix` token ([#2281](https://github.com/PrismJS/prism/issues/2281)) [`fd432a5b`](https://github.com/PrismJS/prism/commit/fd432a5b)
- **Docker**
    - Fixed strings inside comments ([#2428](https://github.com/PrismJS/prism/issues/2428)) [`37273a6f`](https://github.com/PrismJS/prism/commit/37273a6f)
- **EditorConfig**
    - Trim spaces before key and section title ([#2482](https://github.com/PrismJS/prism/issues/2482)) [`0c30c582`](https://github.com/PrismJS/prism/commit/0c30c582)
- **EJS**
    - Added `eta` alias ([#2282](https://github.com/PrismJS/prism/issues/2282)) [`0cfb6c5f`](https://github.com/PrismJS/prism/commit/0cfb6c5f)
- **GLSL**
    - Improvements ([#2321](https://github.com/PrismJS/prism/issues/2321)) [`33e49956`](https://github.com/PrismJS/prism/commit/33e49956)
- **GraphQL**
    - Added missing keywords ([#2407](https://github.com/PrismJS/prism/issues/2407)) [`de8ed16d`](https://github.com/PrismJS/prism/commit/de8ed16d)
    - Added support for multi-line strings and descriptions ([#2406](https://github.com/PrismJS/prism/issues/2406)) [`9e64c62e`](https://github.com/PrismJS/prism/commit/9e64c62e)
- **Io**
    - Fixed operator pattern ([#2365](https://github.com/PrismJS/prism/issues/2365)) [`d6055771`](https://github.com/PrismJS/prism/commit/d6055771)
- **Java**
    - Fixed `namespace` token ([#2295](https://github.com/PrismJS/prism/issues/2295)) [`62e184bb`](https://github.com/PrismJS/prism/commit/62e184bb)
- **JavaDoc**
    - Improvements ([#2324](https://github.com/PrismJS/prism/issues/2324)) [`032910ba`](https://github.com/PrismJS/prism/commit/032910ba)
- **JavaScript**
    - Improved regex detection ([#2465](https://github.com/PrismJS/prism/issues/2465)) [`4f55052f`](https://github.com/PrismJS/prism/commit/4f55052f)
    - Improved `get`/`set` and parameter detection ([#2387](https://github.com/PrismJS/prism/issues/2387)) [`ed715158`](https://github.com/PrismJS/prism/commit/ed715158)
    - Added support for logical assignment operators ([#2378](https://github.com/PrismJS/prism/issues/2378)) [`b28f21b7`](https://github.com/PrismJS/prism/commit/b28f21b7)
- **JSDoc**
    - Improvements ([#2466](https://github.com/PrismJS/prism/issues/2466)) [`2805ae35`](https://github.com/PrismJS/prism/commit/2805ae35)
- **JSON**
    - Greedy comments ([#2479](https://github.com/PrismJS/prism/issues/2479)) [`158caf52`](https://github.com/PrismJS/prism/commit/158caf52)
- **Julia**
    - Improved strings, comments, and other patterns ([#2363](https://github.com/PrismJS/prism/issues/2363)) [`81cf2344`](https://github.com/PrismJS/prism/commit/81cf2344)
- **Kotlin**
    - Added `kt` and `kts` aliases ([#2474](https://github.com/PrismJS/prism/issues/2474)) [`67f97e2e`](https://github.com/PrismJS/prism/commit/67f97e2e)
- **Markup**
    - Added tokens inside DOCTYPE ([#2349](https://github.com/PrismJS/prism/issues/2349)) [`9c7bc820`](https://github.com/PrismJS/prism/commit/9c7bc820)
    - Added `attr-equals` alias for the attribute `=` sign ([#2350](https://github.com/PrismJS/prism/issues/2350)) [`96a0116e`](https://github.com/PrismJS/prism/commit/96a0116e)
    - Added alias for named entities ([#2351](https://github.com/PrismJS/prism/issues/2351)) [`ab1e34ae`](https://github.com/PrismJS/prism/commit/ab1e34ae)
    - Added support for SSML ([#2306](https://github.com/PrismJS/prism/issues/2306)) [`eb70070d`](https://github.com/PrismJS/prism/commit/eb70070d)
- **Objective-C**
    - Added `objc` alias ([#2331](https://github.com/PrismJS/prism/issues/2331)) [`67c6b7af`](https://github.com/PrismJS/prism/commit/67c6b7af)
- **PowerShell**
    - New functions pattern bases on naming conventions ([#2301](https://github.com/PrismJS/prism/issues/2301)) [`fec39bcf`](https://github.com/PrismJS/prism/commit/fec39bcf)
- **Protocol Buffers**
    - Added support for RPC syntax ([#2414](https://github.com/PrismJS/prism/issues/2414)) [`939a17c4`](https://github.com/PrismJS/prism/commit/939a17c4)
- **Pug**
    - Improved class and id detection in tags ([#2358](https://github.com/PrismJS/prism/issues/2358)) [`7f948ecb`](https://github.com/PrismJS/prism/commit/7f948ecb)
- **Python**
    - Fixed empty multiline strings ([#2344](https://github.com/PrismJS/prism/issues/2344)) [`c9324476`](https://github.com/PrismJS/prism/commit/c9324476)
- **Regex**
    - Added aliases and minor improvements ([#2325](https://github.com/PrismJS/prism/issues/2325)) [`8a72830a`](https://github.com/PrismJS/prism/commit/8a72830a)
- **Ren'py**
    - Added `rpy` alias ([#2385](https://github.com/PrismJS/prism/issues/2385)) [`4935b5ca`](https://github.com/PrismJS/prism/commit/4935b5ca)
- **Ruby**
    - Optimized `regex` and `string` patterns ([#2354](https://github.com/PrismJS/prism/issues/2354)) [`b526e8c0`](https://github.com/PrismJS/prism/commit/b526e8c0)
- **Rust**
    - Improvements ([#2464](https://github.com/PrismJS/prism/issues/2464)) [`2ff40fe0`](https://github.com/PrismJS/prism/commit/2ff40fe0)
    - Improvements ([#2332](https://github.com/PrismJS/prism/issues/2332)) [`194c5429`](https://github.com/PrismJS/prism/commit/194c5429)
- **SAS**
    - Improved macro string functions ([#2463](https://github.com/PrismJS/prism/issues/2463)) [`278316ca`](https://github.com/PrismJS/prism/commit/278316ca)
    - Handle edge case of string macro functions ([#2451](https://github.com/PrismJS/prism/issues/2451)) [`a0a9f1ef`](https://github.com/PrismJS/prism/commit/a0a9f1ef)
    - Improved comments in `proc groovy` and `proc lua` ([#2392](https://github.com/PrismJS/prism/issues/2392)) [`475a5903`](https://github.com/PrismJS/prism/commit/475a5903)
- **Scheme**
    - Adjusted lookbehind for literals ([#2396](https://github.com/PrismJS/prism/issues/2396)) [`1e3f542b`](https://github.com/PrismJS/prism/commit/1e3f542b)
    - Improved lambda parameter ([#2346](https://github.com/PrismJS/prism/issues/2346)) [`1946918a`](https://github.com/PrismJS/prism/commit/1946918a)
    - Consistent lookaheads ([#2322](https://github.com/PrismJS/prism/issues/2322)) [`d2541d54`](https://github.com/PrismJS/prism/commit/d2541d54)
    - Improved boolean ([#2316](https://github.com/PrismJS/prism/issues/2316)) [`e27e65af`](https://github.com/PrismJS/prism/commit/e27e65af)
    - Added missing special keywords ([#2304](https://github.com/PrismJS/prism/issues/2304)) [`ac297ba5`](https://github.com/PrismJS/prism/commit/ac297ba5)
    - Improvements ([#2263](https://github.com/PrismJS/prism/issues/2263)) [`9a49f78f`](https://github.com/PrismJS/prism/commit/9a49f78f)
- **Solidity (Ethereum)**
    - Added `sol` alias ([#2382](https://github.com/PrismJS/prism/issues/2382)) [`6352213a`](https://github.com/PrismJS/prism/commit/6352213a)
- **SQL**
    - Added PostgreSQL `RETURNING` keyword ([#2476](https://github.com/PrismJS/prism/issues/2476)) [`bea7a585`](https://github.com/PrismJS/prism/commit/bea7a585)
- **Stylus**
    - Fixed comments breaking declarations + minor improvements ([#2372](https://github.com/PrismJS/prism/issues/2372)) [`6d663b6e`](https://github.com/PrismJS/prism/commit/6d663b6e)
    - New tokens and other improvements ([#2368](https://github.com/PrismJS/prism/issues/2368)) [`2c10ef8a`](https://github.com/PrismJS/prism/commit/2c10ef8a)
    - Fixed comments breaking strings and URLs ([#2361](https://github.com/PrismJS/prism/issues/2361)) [`0d65d6c9`](https://github.com/PrismJS/prism/commit/0d65d6c9)
- **T4 Text Templates (VB)**
    - Use the correct VB variant ([#2341](https://github.com/PrismJS/prism/issues/2341)) [`b6093339`](https://github.com/PrismJS/prism/commit/b6093339)
- **TypeScript**
    - Added `asserts` keyword and other improvements ([#2280](https://github.com/PrismJS/prism/issues/2280)) [`a197cfcd`](https://github.com/PrismJS/prism/commit/a197cfcd)
- **Visual Basic**
    - Added VBA alias ([#2469](https://github.com/PrismJS/prism/issues/2469)) [`78161d60`](https://github.com/PrismJS/prism/commit/78161d60)
    - Added `until` keyword ([#2423](https://github.com/PrismJS/prism/issues/2423)) [`a13ee8d9`](https://github.com/PrismJS/prism/commit/a13ee8d9)
    - Added missing keywords ([#2376](https://github.com/PrismJS/prism/issues/2376)) [`ba5ac1da`](https://github.com/PrismJS/prism/commit/ba5ac1da)

### Updated plugins

- File Highlight & JSONP Highlight update ([#1974](https://github.com/PrismJS/prism/issues/1974)) [`afea17d9`](https://github.com/PrismJS/prism/commit/afea17d9)
- Added general de/activation mechanism for plugins ([#2434](https://github.com/PrismJS/prism/issues/2434)) [`a36e96ab`](https://github.com/PrismJS/prism/commit/a36e96ab)
- **Autoloader**
    - Fixed bug breaking Autoloader ([#2449](https://github.com/PrismJS/prism/issues/2449)) [`a3416bf3`](https://github.com/PrismJS/prism/commit/a3416bf3)
    - Fixed `data-dependencies` and extensions ([#2326](https://github.com/PrismJS/prism/issues/2326)) [`1654b25f`](https://github.com/PrismJS/prism/commit/1654b25f)
    - Improved path detection and other minor improvements ([#2245](https://github.com/PrismJS/prism/issues/2245)) [`5cdc3251`](https://github.com/PrismJS/prism/commit/5cdc3251)
- **Command Line**
    - Some refactoring ([#2290](https://github.com/PrismJS/prism/issues/2290)) [`8c9c2896`](https://github.com/PrismJS/prism/commit/8c9c2896)
    - Correctly rehighlight elements ([#2291](https://github.com/PrismJS/prism/issues/2291)) [`e6b2c6fc`](https://github.com/PrismJS/prism/commit/e6b2c6fc)
- **Line Highlight**
    - Added linkable line numbers ([#2328](https://github.com/PrismJS/prism/issues/2328)) [`eb82e804`](https://github.com/PrismJS/prism/commit/eb82e804)
- **Line Numbers**
    - Improved resize performance ([#2125](https://github.com/PrismJS/prism/issues/2125)) [`b96ed225`](https://github.com/PrismJS/prism/commit/b96ed225)
    - Fixed TypeError when `lineNumberWrapper` is null ([#2337](https://github.com/PrismJS/prism/issues/2337)) [`4b61661d`](https://github.com/PrismJS/prism/commit/4b61661d)
    - Exposed `_resizeElement` function ([#2288](https://github.com/PrismJS/prism/issues/2288)) [`893f2a79`](https://github.com/PrismJS/prism/commit/893f2a79)
- **Previewers**
    - Fixed XSS ([#2506](https://github.com/PrismJS/prism/issues/2506)) [`8bba4880`](https://github.com/PrismJS/prism/commit/8bba4880)
- **Unescaped Markup**
    - No longer requires `Prism.languages.markup` ([#2444](https://github.com/PrismJS/prism/issues/2444)) [`af132dd3`](https://github.com/PrismJS/prism/commit/af132dd3)

### Updated themes

- **Coy**
    - Minor improvements ([#2176](https://github.com/PrismJS/prism/issues/2176)) [`7109c18c`](https://github.com/PrismJS/prism/commit/7109c18c)
- **Default**
    - Added a comment that declares the background color of `operator` tokens as intentional ([#2309](https://github.com/PrismJS/prism/issues/2309)) [`937e2691`](https://github.com/PrismJS/prism/commit/937e2691)
- **Okaidia**
    - Update comment text color to meet WCAG contrast recommendations to AA level ([#2292](https://github.com/PrismJS/prism/issues/2292)) [`06495f90`](https://github.com/PrismJS/prism/commit/06495f90)

### Other

- Changelog: Fixed v1.20.0 release date [`cb6349e2`](https://github.com/PrismJS/prism/commit/cb6349e2)
- **Core**
    - Fixed greedy matching bug ([#2032](https://github.com/PrismJS/prism/issues/2032)) [`40285203`](https://github.com/PrismJS/prism/commit/40285203)
    - Added JSDoc ([#1782](https://github.com/PrismJS/prism/issues/1782)) [`4ff555be`](https://github.com/PrismJS/prism/commit/4ff555be)
- **Infrastructure**
    - Update Git repo URL in package.json ([#2334](https://github.com/PrismJS/prism/issues/2334)) [`10f43275`](https://github.com/PrismJS/prism/commit/10f43275)
    - Added docs to ignore files ([#2437](https://github.com/PrismJS/prism/issues/2437)) [`05c9f20b`](https://github.com/PrismJS/prism/commit/05c9f20b)
    - Added `npm run build` command ([#2356](https://github.com/PrismJS/prism/issues/2356)) [`ff74a610`](https://github.com/PrismJS/prism/commit/ff74a610)
    - gulp: Improved `inlineRegexSource` ([#2296](https://github.com/PrismJS/prism/issues/2296)) [`abb800dd`](https://github.com/PrismJS/prism/commit/abb800dd)
    - gulp: Fixed language map ([#2283](https://github.com/PrismJS/prism/issues/2283)) [`11053193`](https://github.com/PrismJS/prism/commit/11053193)
    - gulp: Removed `premerge` task ([#2357](https://github.com/PrismJS/prism/issues/2357)) [`5ff7932b`](https://github.com/PrismJS/prism/commit/5ff7932b)
    - Tests are now faster ([#2165](https://github.com/PrismJS/prism/issues/2165)) [`e756be3f`](https://github.com/PrismJS/prism/commit/e756be3f)
    - Tests: Added extra newlines in pretty token streams ([#2070](https://github.com/PrismJS/prism/issues/2070)) [`681adeef`](https://github.com/PrismJS/prism/commit/681adeef)
    - Tests: Added test for identifier support across all languages ([#2371](https://github.com/PrismJS/prism/issues/2371)) [`48fac3b2`](https://github.com/PrismJS/prism/commit/48fac3b2)
    - Tests: Added test to sort the language list ([#2222](https://github.com/PrismJS/prism/issues/2222)) [`a3758728`](https://github.com/PrismJS/prism/commit/a3758728)
    - Tests: Always pretty-print token streams ([#2421](https://github.com/PrismJS/prism/issues/2421)) [`583e7eb5`](https://github.com/PrismJS/prism/commit/583e7eb5)
    - Tests: Always use `components.json` ([#2370](https://github.com/PrismJS/prism/issues/2370)) [`e416341f`](https://github.com/PrismJS/prism/commit/e416341f)
    - Tests: Better error messages for pattern tests ([#2364](https://github.com/PrismJS/prism/issues/2364)) [`10ca6433`](https://github.com/PrismJS/prism/commit/10ca6433)
    - Tests: Included `console` in VM context ([#2353](https://github.com/PrismJS/prism/issues/2353)) [`b4ed5ded`](https://github.com/PrismJS/prism/commit/b4ed5ded)
- **Website**
    - Fixed typos "Prims" ([#2455](https://github.com/PrismJS/prism/issues/2455)) [`dfa5498a`](https://github.com/PrismJS/prism/commit/dfa5498a)
    - New assets directory for all web-only files ([#2180](https://github.com/PrismJS/prism/issues/2180)) [`91fdd0b1`](https://github.com/PrismJS/prism/commit/91fdd0b1)
    - Improvements ([#2053](https://github.com/PrismJS/prism/issues/2053)) [`ce0fa227`](https://github.com/PrismJS/prism/commit/ce0fa227)
    - Fixed Treeview page ([#2484](https://github.com/PrismJS/prism/issues/2484)) [`a0efa40b`](https://github.com/PrismJS/prism/commit/a0efa40b)
    - Line Numbers: Fixed class name on website [`453079bf`](https://github.com/PrismJS/prism/commit/453079bf)
    - Line Numbers: Improved documentation ([#2456](https://github.com/PrismJS/prism/issues/2456)) [`447429f0`](https://github.com/PrismJS/prism/commit/447429f0)
    - Line Numbers: Style inline code on website ([#2435](https://github.com/PrismJS/prism/issues/2435)) [`ad9c13e2`](https://github.com/PrismJS/prism/commit/ad9c13e2)
    - Filter highlightAll: Fixed typo ([#2391](https://github.com/PrismJS/prism/issues/2391)) [`55bf7ec1`](https://github.com/PrismJS/prism/commit/55bf7ec1)

## 1.20.0 (2020-04-04)

### New components

- **Concurnas** ([#2206](https://github.com/PrismJS/prism/issues/2206)) [`b24f7348`](https://github.com/PrismJS/prism/commit/b24f7348)
- **DAX** ([#2248](https://github.com/PrismJS/prism/issues/2248)) [`9227853f`](https://github.com/PrismJS/prism/commit/9227853f)
- **Excel Formula** ([#2219](https://github.com/PrismJS/prism/issues/2219)) [`bf4f7bfa`](https://github.com/PrismJS/prism/commit/bf4f7bfa)
- **Factor** ([#2203](https://github.com/PrismJS/prism/issues/2203)) [`f941102e`](https://github.com/PrismJS/prism/commit/f941102e)
- **LLVM IR** ([#2221](https://github.com/PrismJS/prism/issues/2221)) [`43efde2e`](https://github.com/PrismJS/prism/commit/43efde2e)
- **PowerQuery** ([#2250](https://github.com/PrismJS/prism/issues/2250)) [`8119e57b`](https://github.com/PrismJS/prism/commit/8119e57b)
- **Solution file** ([#2213](https://github.com/PrismJS/prism/issues/2213)) [`15983d52`](https://github.com/PrismJS/prism/commit/15983d52)

### Updated components

- **Bash**
    - Added support for escaped quotes ([#2256](https://github.com/PrismJS/prism/issues/2256)) [`328d0e0e`](https://github.com/PrismJS/prism/commit/328d0e0e)
- **BBcode**
    - Added "shortcode" alias ([#2273](https://github.com/PrismJS/prism/issues/2273)) [`57eebced`](https://github.com/PrismJS/prism/commit/57eebced)
- **C/C++/OpenCL C**
    - Improvements ([#2196](https://github.com/PrismJS/prism/issues/2196)) [`674f4b35`](https://github.com/PrismJS/prism/commit/674f4b35)
- **C**
    - Improvemed `comment` pattern ([#2229](https://github.com/PrismJS/prism/issues/2229)) [`fa630726`](https://github.com/PrismJS/prism/commit/fa630726)
- **C#**
    - Fixed keywords in type lists blocking type names ([#2277](https://github.com/PrismJS/prism/issues/2277)) [`947a55bd`](https://github.com/PrismJS/prism/commit/947a55bd)
    - C# improvements ([#1444](https://github.com/PrismJS/prism/issues/1444)) [`42b15463`](https://github.com/PrismJS/prism/commit/42b15463)
- **C++**
    - Added C++20 keywords ([#2236](https://github.com/PrismJS/prism/issues/2236)) [`462ad57e`](https://github.com/PrismJS/prism/commit/462ad57e)
- **CSS**
    - Fixed `url()` containing "@" ([#2272](https://github.com/PrismJS/prism/issues/2272)) [`504a63ba`](https://github.com/PrismJS/prism/commit/504a63ba)
- **CSS Extras**
    - Added support for the selector function ([#2201](https://github.com/PrismJS/prism/issues/2201)) [`2e0eff76`](https://github.com/PrismJS/prism/commit/2e0eff76)
- **Elixir**
    - Added support for attributes names ending with `?` ([#2182](https://github.com/PrismJS/prism/issues/2182)) [`5450e24c`](https://github.com/PrismJS/prism/commit/5450e24c)
- **Java**
    - Added `record` keyword ([#2185](https://github.com/PrismJS/prism/issues/2185)) [`47910b5c`](https://github.com/PrismJS/prism/commit/47910b5c)
- **Markdown**
    - Added support for nested lists ([#2228](https://github.com/PrismJS/prism/issues/2228)) [`73c8a376`](https://github.com/PrismJS/prism/commit/73c8a376)
- **OpenCL**
    - Require C ([#2231](https://github.com/PrismJS/prism/issues/2231)) [`26626ded`](https://github.com/PrismJS/prism/commit/26626ded)
- **PHPDoc**
    - Fixed exponential backtracking ([#2198](https://github.com/PrismJS/prism/issues/2198)) [`3b42536e`](https://github.com/PrismJS/prism/commit/3b42536e)
- **Ruby**
    - Fixed exponential backtracking ([#2225](https://github.com/PrismJS/prism/issues/2225)) [`c5de5aa8`](https://github.com/PrismJS/prism/commit/c5de5aa8)
- **SAS**
    - Fixed SAS' "peerDependencies" ([#2230](https://github.com/PrismJS/prism/issues/2230)) [`7d8ff7ea`](https://github.com/PrismJS/prism/commit/7d8ff7ea)
- **Shell session**
    - Improvements ([#2208](https://github.com/PrismJS/prism/issues/2208)) [`bd16bd57`](https://github.com/PrismJS/prism/commit/bd16bd57)
- **Visual Basic**
    - Added support for comments with line continuations ([#2195](https://github.com/PrismJS/prism/issues/2195)) [`a7d67ca3`](https://github.com/PrismJS/prism/commit/a7d67ca3)
- **YAML**
    - Improvements ([#2226](https://github.com/PrismJS/prism/issues/2226)) [`5362ba16`](https://github.com/PrismJS/prism/commit/5362ba16)
    - Fixed highlighting of anchors and aliases ([#2217](https://github.com/PrismJS/prism/issues/2217)) [`6124c974`](https://github.com/PrismJS/prism/commit/6124c974)

### New plugins

- **Treeview** ([#2265](https://github.com/PrismJS/prism/issues/2265)) [`be909b18`](https://github.com/PrismJS/prism/commit/be909b18)

### Updated plugins

- **Inline Color**
    - Support for (semi-)transparent colors and minor improvements ([#2223](https://github.com/PrismJS/prism/issues/2223)) [`8d2c5a3e`](https://github.com/PrismJS/prism/commit/8d2c5a3e)
- **Keep Markup**
    - Remove self & document from IIFE arguments ([#2258](https://github.com/PrismJS/prism/issues/2258)) [`3c043338`](https://github.com/PrismJS/prism/commit/3c043338)
- **Toolbar**
    - `data-toolbar-order` is now inherited ([#2205](https://github.com/PrismJS/prism/issues/2205)) [`238f1163`](https://github.com/PrismJS/prism/commit/238f1163)

### Other

- Updated all `String.propotype.replace` calls for literal strings [`5d7aab56`](https://github.com/PrismJS/prism/commit/5d7aab56)
- **Core**
    - Linked list implementation for `matchGrammar` ([#1909](https://github.com/PrismJS/prism/issues/1909)) [`2d4c94cd`](https://github.com/PrismJS/prism/commit/2d4c94cd)
    - Faster `Token.stringify` ([#2171](https://github.com/PrismJS/prism/issues/2171)) [`f683972e`](https://github.com/PrismJS/prism/commit/f683972e)
    - Fixed scope problem in script mode ([#2184](https://github.com/PrismJS/prism/issues/2184)) [`984e5d2e`](https://github.com/PrismJS/prism/commit/984e5d2e)
- **Infrastructure**
    - Travis: Updated NodeJS versions ([#2246](https://github.com/PrismJS/prism/issues/2246)) [`e635260b`](https://github.com/PrismJS/prism/commit/e635260b)
    - gulp: Inline regex source improvement ([#2227](https://github.com/PrismJS/prism/issues/2227)) [`67afc5ad`](https://github.com/PrismJS/prism/commit/67afc5ad)
    - Tests: Added new pattern check for octal escapes ([#2189](https://github.com/PrismJS/prism/issues/2189)) [`81e1c3dd`](https://github.com/PrismJS/prism/commit/81e1c3dd)
    - Tests: Fixed optional dependencies in pattern tests ([#2242](https://github.com/PrismJS/prism/issues/2242)) [`1e3070a2`](https://github.com/PrismJS/prism/commit/1e3070a2)
    - Tests: Added test for zero-width lookbehinds ([#2220](https://github.com/PrismJS/prism/issues/2220)) [`7d03ece4`](https://github.com/PrismJS/prism/commit/7d03ece4)
    - Added tests for examples ([#2216](https://github.com/PrismJS/prism/issues/2216)) [`1f7a245c`](https://github.com/PrismJS/prism/commit/1f7a245c)
- **Website**
    - Removed invalid strings from C# example ([#2266](https://github.com/PrismJS/prism/issues/2266)) [`c917a8ca`](https://github.com/PrismJS/prism/commit/c917a8ca)
    - Fixed Diff highlight plugin page title ([#2233](https://github.com/PrismJS/prism/issues/2233)) [`a82770f8`](https://github.com/PrismJS/prism/commit/a82770f8)
    - Added link to `prism-liquibase` Bash language extension. ([#2191](https://github.com/PrismJS/prism/issues/2191)) [`0bf73dc7`](https://github.com/PrismJS/prism/commit/0bf73dc7)
    - Examples: Updated content header ([#2232](https://github.com/PrismJS/prism/issues/2232)) [`6232878b`](https://github.com/PrismJS/prism/commit/6232878b)
    - Website: Added Coy bug to the known failures page. ([#2170](https://github.com/PrismJS/prism/issues/2170)) [`e9dab85e`](https://github.com/PrismJS/prism/commit/e9dab85e)

## 1.19.0 (2020-01-13)

### New components

- **Latte** ([#2140](https://github.com/PrismJS/prism/issues/2140)) [`694a81b8`](https://github.com/PrismJS/prism/commit/694a81b8)
- **Neon** ([#2140](https://github.com/PrismJS/prism/issues/2140)) [`694a81b8`](https://github.com/PrismJS/prism/commit/694a81b8)
- **QML** ([#2139](https://github.com/PrismJS/prism/issues/2139)) [`c40d96c6`](https://github.com/PrismJS/prism/commit/c40d96c6)

### Updated components

- **Handlebars**
    - Added support for `:` and improved the `variable` pattern ([#2172](https://github.com/PrismJS/prism/issues/2172)) [`ef4d29d9`](https://github.com/PrismJS/prism/commit/ef4d29d9)
- **JavaScript**
    - Added support for keywords after a spread operator ([#2148](https://github.com/PrismJS/prism/issues/2148)) [`1f3f8929`](https://github.com/PrismJS/prism/commit/1f3f8929)
    - Better regex detection ([#2158](https://github.com/PrismJS/prism/issues/2158)) [`a23d8f84`](https://github.com/PrismJS/prism/commit/a23d8f84)
- **Markdown**
    - Better language detection for code blocks ([#2114](https://github.com/PrismJS/prism/issues/2114)) [`d7ad48f9`](https://github.com/PrismJS/prism/commit/d7ad48f9)
- **OCaml**
    - Improvements ([#2179](https://github.com/PrismJS/prism/issues/2179)) [`2a570fd4`](https://github.com/PrismJS/prism/commit/2a570fd4)
- **PHP**
    - Fixed exponential runtime of a pattern ([#2157](https://github.com/PrismJS/prism/issues/2157)) [`24c8f833`](https://github.com/PrismJS/prism/commit/24c8f833)
- **React JSX**
    - Improved spread operator in tag attributes ([#2159](https://github.com/PrismJS/prism/issues/2159)) [`fd857e7b`](https://github.com/PrismJS/prism/commit/fd857e7b)
    - Made `$` a valid character for attribute names ([#2144](https://github.com/PrismJS/prism/issues/2144)) [`f018cf04`](https://github.com/PrismJS/prism/commit/f018cf04)
- **Reason**
    - Added support for single line comments ([#2150](https://github.com/PrismJS/prism/issues/2150)) [`7f1c55b7`](https://github.com/PrismJS/prism/commit/7f1c55b7)
- **Ruby**
    - Override 'class-name' definition ([#2135](https://github.com/PrismJS/prism/issues/2135)) [`401d4b02`](https://github.com/PrismJS/prism/commit/401d4b02)
- **SAS**
    - Added CASL support ([#2112](https://github.com/PrismJS/prism/issues/2112)) [`99d979a0`](https://github.com/PrismJS/prism/commit/99d979a0)

### Updated plugins

- **Custom Class**
    - Fixed TypeError when mapper is undefined ([#2167](https://github.com/PrismJS/prism/issues/2167)) [`543f04d7`](https://github.com/PrismJS/prism/commit/543f04d7)

### Updated themes

- Added missing `.token` selector ([#2161](https://github.com/PrismJS/prism/issues/2161)) [`86780457`](https://github.com/PrismJS/prism/commit/86780457)

### Other

- Added a check for redundant dependency declarations ([#2142](https://github.com/PrismJS/prism/issues/2142)) [`a06aca06`](https://github.com/PrismJS/prism/commit/a06aca06)
- Added a check for examples ([#2128](https://github.com/PrismJS/prism/issues/2128)) [`0b539136`](https://github.com/PrismJS/prism/commit/0b539136)
- Added silent option to `loadLanguages` ([#2147](https://github.com/PrismJS/prism/issues/2147)) [`191b4116`](https://github.com/PrismJS/prism/commit/191b4116)
- **Infrastructure**
    - Dependencies: Improved `getLoader` ([#2151](https://github.com/PrismJS/prism/issues/2151)) [`199bdcae`](https://github.com/PrismJS/prism/commit/199bdcae)
    - Updated gulp to v4.0.2 ([#2178](https://github.com/PrismJS/prism/issues/2178)) [`e5678a00`](https://github.com/PrismJS/prism/commit/e5678a00)
- **Website**
    - Custom Class: Fixed examples ([#2160](https://github.com/PrismJS/prism/issues/2160)) [`0c2fe405`](https://github.com/PrismJS/prism/commit/0c2fe405)
    - Added documentation for new dependency API ([#2141](https://github.com/PrismJS/prism/issues/2141)) [`59068d67`](https://github.com/PrismJS/prism/commit/59068d67)

## 1.18.0 (2020-01-04)

### New components

- **ANTLR4** ([#2063](https://github.com/PrismJS/prism/issues/2063)) [`aaaa29a8`](https://github.com/PrismJS/prism/commit/aaaa29a8)
- **AQL** ([#2025](https://github.com/PrismJS/prism/issues/2025)) [`3fdb7d55`](https://github.com/PrismJS/prism/commit/3fdb7d55)
- **BBcode** ([#2095](https://github.com/PrismJS/prism/issues/2095)) [`aaf13aa6`](https://github.com/PrismJS/prism/commit/aaf13aa6)
- **BrightScript** ([#2096](https://github.com/PrismJS/prism/issues/2096)) [`631f1e34`](https://github.com/PrismJS/prism/commit/631f1e34)
- **Embedded Lua templating** ([#2050](https://github.com/PrismJS/prism/issues/2050)) [`0b771c90`](https://github.com/PrismJS/prism/commit/0b771c90)
- **Firestore security rules** ([#2010](https://github.com/PrismJS/prism/issues/2010)) [`9f722586`](https://github.com/PrismJS/prism/commit/9f722586)
- **FreeMarker Template Language** ([#2080](https://github.com/PrismJS/prism/issues/2080)) [`2f3da7e8`](https://github.com/PrismJS/prism/commit/2f3da7e8)
- **GDScript** ([#2006](https://github.com/PrismJS/prism/issues/2006)) [`e2b99f40`](https://github.com/PrismJS/prism/commit/e2b99f40)
- **MoonScript** ([#2100](https://github.com/PrismJS/prism/issues/2100)) [`f31946b3`](https://github.com/PrismJS/prism/commit/f31946b3)
- **Robot Framework** (only the plain text format) ([#2034](https://github.com/PrismJS/prism/issues/2034)) [`f7eaa618`](https://github.com/PrismJS/prism/commit/f7eaa618)
- **Solidity (Ethereum)** ([#2031](https://github.com/PrismJS/prism/issues/2031)) [`cc2cf3f7`](https://github.com/PrismJS/prism/commit/cc2cf3f7)
- **SPARQL** ([#2033](https://github.com/PrismJS/prism/issues/2033)) [`c42f877d`](https://github.com/PrismJS/prism/commit/c42f877d)
- **SQF: Status Quo Function (Arma 3)** ([#2079](https://github.com/PrismJS/prism/issues/2079)) [`cfac94ec`](https://github.com/PrismJS/prism/commit/cfac94ec)
- **Turtle** & **TriG** ([#2012](https://github.com/PrismJS/prism/issues/2012)) [`508d57ac`](https://github.com/PrismJS/prism/commit/508d57ac)
- **Zig** ([#2019](https://github.com/PrismJS/prism/issues/2019)) [`a7cf56b7`](https://github.com/PrismJS/prism/commit/a7cf56b7)

### Updated components

- Minor improvements for C-like and Clojure ([#2064](https://github.com/PrismJS/prism/issues/2064)) [`7db0cab3`](https://github.com/PrismJS/prism/commit/7db0cab3)
- Inlined some unnecessary rest properties ([#2082](https://github.com/PrismJS/prism/issues/2082)) [`ad3fa443`](https://github.com/PrismJS/prism/commit/ad3fa443)
- **AQL**
    - Disallow unclosed multiline comments again ([#2089](https://github.com/PrismJS/prism/issues/2089)) [`717ace02`](https://github.com/PrismJS/prism/commit/717ace02)
    - Allow unclosed multi-line comments ([#2058](https://github.com/PrismJS/prism/issues/2058)) [`f3c6ba59`](https://github.com/PrismJS/prism/commit/f3c6ba59)
    - More pseudo keywords ([#2055](https://github.com/PrismJS/prism/issues/2055)) [`899574eb`](https://github.com/PrismJS/prism/commit/899574eb)
    - Added missing keyword + minor improvements ([#2047](https://github.com/PrismJS/prism/issues/2047)) [`32a4c422`](https://github.com/PrismJS/prism/commit/32a4c422)
- **Clojure**
    - Added multiline strings (lisp style) ([#2061](https://github.com/PrismJS/prism/issues/2061)) [`8ea685b8`](https://github.com/PrismJS/prism/commit/8ea685b8)
- **CSS Extras**
    - CSS Extras & PHP: Fixed too greedy number token ([#2009](https://github.com/PrismJS/prism/issues/2009)) [`ebe363f4`](https://github.com/PrismJS/prism/commit/ebe363f4)
- **D**
    - Fixed strings ([#2029](https://github.com/PrismJS/prism/issues/2029)) [`010a0157`](https://github.com/PrismJS/prism/commit/010a0157)
- **Groovy**
    - Minor improvements ([#2036](https://github.com/PrismJS/prism/issues/2036)) [`fb618331`](https://github.com/PrismJS/prism/commit/fb618331)
- **Java**
    - Added missing `::` operator ([#2101](https://github.com/PrismJS/prism/issues/2101)) [`ee7fdbee`](https://github.com/PrismJS/prism/commit/ee7fdbee)
    - Added support for new Java 13 syntax ([#2060](https://github.com/PrismJS/prism/issues/2060)) [`a7b95dd3`](https://github.com/PrismJS/prism/commit/a7b95dd3)
- **JavaScript**
    - Added Optional Chaining and Nullish Coalescing ([#2084](https://github.com/PrismJS/prism/issues/2084)) [`fdb7de0d`](https://github.com/PrismJS/prism/commit/fdb7de0d)
    - Tokenize `:` as an operator ([#2073](https://github.com/PrismJS/prism/issues/2073)) [`0e5c48d1`](https://github.com/PrismJS/prism/commit/0e5c48d1)
- **Less**
    - Fixed exponential backtracking ([#2016](https://github.com/PrismJS/prism/issues/2016)) [`d03d19b4`](https://github.com/PrismJS/prism/commit/d03d19b4)
- **Markup**
    - Improved doctype pattern ([#2094](https://github.com/PrismJS/prism/issues/2094)) [`99994c58`](https://github.com/PrismJS/prism/commit/99994c58)
- **Python**
    - Fixed decorators ([#2018](https://github.com/PrismJS/prism/issues/2018)) [`5b8a16d9`](https://github.com/PrismJS/prism/commit/5b8a16d9)
- **Robot Framework**
    - Rename "robot-framework" to "robotframework" ([#2113](https://github.com/PrismJS/prism/issues/2113)) [`baa78774`](https://github.com/PrismJS/prism/commit/baa78774)
- **Ruby**
    - Made `true` and `false` booleans ([#2098](https://github.com/PrismJS/prism/issues/2098)) [`68d1c472`](https://github.com/PrismJS/prism/commit/68d1c472)
    - Added missing keywords ([#2097](https://github.com/PrismJS/prism/issues/2097)) [`f460eafc`](https://github.com/PrismJS/prism/commit/f460eafc)
- **SAS**
    - Added support for embedded Groovy and Lua code ([#2091](https://github.com/PrismJS/prism/issues/2091)) [`3640b3f2`](https://github.com/PrismJS/prism/commit/3640b3f2)
    - Minor improvements ([#2085](https://github.com/PrismJS/prism/issues/2085)) [`07020c7a`](https://github.com/PrismJS/prism/commit/07020c7a)
    - Fixed `proc-args` token by removing backreferences from string pattern ([#2013](https://github.com/PrismJS/prism/issues/2013)) [`af5a36ae`](https://github.com/PrismJS/prism/commit/af5a36ae)
    - Major improvements ([#1981](https://github.com/PrismJS/prism/issues/1981)) [`076f6155`](https://github.com/PrismJS/prism/commit/076f6155)
- **Smalltalk**
    - Fixed single quote character literal ([#2041](https://github.com/PrismJS/prism/issues/2041)) [`1aabcd17`](https://github.com/PrismJS/prism/commit/1aabcd17)
- **Turtle**
    - Minor improvements ([#2038](https://github.com/PrismJS/prism/issues/2038)) [`8ccd258b`](https://github.com/PrismJS/prism/commit/8ccd258b)
- **TypeScript**
    - Added missing keyword `undefined` ([#2088](https://github.com/PrismJS/prism/issues/2088)) [`c8b48b9f`](https://github.com/PrismJS/prism/commit/c8b48b9f)

### Updated plugins

- New Match Braces plugin ([#1944](https://github.com/PrismJS/prism/issues/1944)) [`365faade`](https://github.com/PrismJS/prism/commit/365faade)
- New Inline color plugin ([#2007](https://github.com/PrismJS/prism/issues/2007)) [`8403e453`](https://github.com/PrismJS/prism/commit/8403e453)
- New Filter highlightAll plugin ([#2074](https://github.com/PrismJS/prism/issues/2074)) [`a7f70090`](https://github.com/PrismJS/prism/commit/a7f70090)
- **Custom Class**
    - New class adder feature ([#2075](https://github.com/PrismJS/prism/issues/2075)) [`dab7998e`](https://github.com/PrismJS/prism/commit/dab7998e)
- **File Highlight**
    - Made the download button its own plugin ([#1840](https://github.com/PrismJS/prism/issues/1840)) [`c6c62a69`](https://github.com/PrismJS/prism/commit/c6c62a69)

### Other

- Issue template improvements ([#2069](https://github.com/PrismJS/prism/issues/2069)) [`53f07b1b`](https://github.com/PrismJS/prism/commit/53f07b1b)
- Readme: Links now use HTTPS if available ([#2045](https://github.com/PrismJS/prism/issues/2045)) [`6cd0738a`](https://github.com/PrismJS/prism/commit/6cd0738a)
- **Core**
    - Fixed null reference ([#2106](https://github.com/PrismJS/prism/issues/2106)) [`0fd062d5`](https://github.com/PrismJS/prism/commit/0fd062d5)
    - Fixed race condition caused by deferring the script ([#2103](https://github.com/PrismJS/prism/issues/2103)) [`a3785ec9`](https://github.com/PrismJS/prism/commit/a3785ec9)
    - Minor improvements ([#1973](https://github.com/PrismJS/prism/issues/1973)) [`2d858e0a`](https://github.com/PrismJS/prism/commit/2d858e0a)
    - Fixed greedy partial lookbehinds not working ([#2030](https://github.com/PrismJS/prism/issues/2030)) [`174ed103`](https://github.com/PrismJS/prism/commit/174ed103)
    - Fixed greedy targeting bug ([#1932](https://github.com/PrismJS/prism/issues/1932)) [`e864d518`](https://github.com/PrismJS/prism/commit/e864d518)
    - Doubly check the `manual` flag ([#1957](https://github.com/PrismJS/prism/issues/1957)) [`d49f0f26`](https://github.com/PrismJS/prism/commit/d49f0f26)
    - IE11 workaround for `currentScript` ([#2104](https://github.com/PrismJS/prism/issues/2104)) [`2108c60f`](https://github.com/PrismJS/prism/commit/2108c60f)
- **Infrastructure**
    - gulp: Fixed changes task [`2f495905`](https://github.com/PrismJS/prism/commit/2f495905)
    - npm: Added `.github` folder to npm ignore ([#2052](https://github.com/PrismJS/prism/issues/2052)) [`1af89e06`](https://github.com/PrismJS/prism/commit/1af89e06)
    - npm: Updated dependencies to fix 122 vulnerabilities ([#1997](https://github.com/PrismJS/prism/issues/1997)) [`3af5d744`](https://github.com/PrismJS/prism/commit/3af5d744)
    - Tests: New test for unused capturing groups ([#1996](https://github.com/PrismJS/prism/issues/1996)) [`c187e229`](https://github.com/PrismJS/prism/commit/c187e229)
    - Tests: Simplified error message format ([#2056](https://github.com/PrismJS/prism/issues/2056)) [`007c9af4`](https://github.com/PrismJS/prism/commit/007c9af4)
    - Tests: New test for nice names ([#1911](https://github.com/PrismJS/prism/issues/1911)) [`3fda5c95`](https://github.com/PrismJS/prism/commit/3fda5c95)
    - Standardized dependency logic implementation ([#1998](https://github.com/PrismJS/prism/issues/1998)) [`7a4a0c7c`](https://github.com/PrismJS/prism/commit/7a4a0c7c)
- **Website**
    - Added @mAAdhaTTah and @RunDevelopment to credits and footer [`5d07aa7c`](https://github.com/PrismJS/prism/commit/5d07aa7c)
    - Added plugin descriptions to plugin list ([#2076](https://github.com/PrismJS/prism/issues/2076)) [`cdfa60ac`](https://github.com/PrismJS/prism/commit/cdfa60ac)
    - Use HTTPS link to alistapart.com ([#2044](https://github.com/PrismJS/prism/issues/2044)) [`8bcc1b85`](https://github.com/PrismJS/prism/commit/8bcc1b85)
    - Fixed the Toolbar plugin's overflow issue ([#1966](https://github.com/PrismJS/prism/issues/1966)) [`56a8711c`](https://github.com/PrismJS/prism/commit/56a8711c)
    - FAQ update ([#1977](https://github.com/PrismJS/prism/issues/1977)) [`8a572af5`](https://github.com/PrismJS/prism/commit/8a572af5)
    - Use modern JavaScript in the NodeJS usage section ([#1942](https://github.com/PrismJS/prism/issues/1942)) [`5c68a556`](https://github.com/PrismJS/prism/commit/5c68a556)
    - Improved test page performance for Chromium ([#2020](https://github.com/PrismJS/prism/issues/2020)) [`3509f3e5`](https://github.com/PrismJS/prism/commit/3509f3e5)
    - Fixed alias example in extending page ([#2011](https://github.com/PrismJS/prism/issues/2011)) [`7cb65eec`](https://github.com/PrismJS/prism/commit/7cb65eec)
    - Robot Framework: Renamed example file ([#2126](https://github.com/PrismJS/prism/issues/2126)) [`9908ca69`](https://github.com/PrismJS/prism/commit/9908ca69)

## 1.17.1 (2019-07-21)

### Other

- **Infrastructure**
    - Add .DS_Store to npmignore [`c2229ec2`](https://github.com/PrismJS/prism/commit/c2229ec2)

## 1.17.0 (2019-07-21)

### New components

- **DNS zone file** ([#1961](https://github.com/PrismJS/prism/issues/1961)) [`bb84f98c`](https://github.com/PrismJS/prism/commit/bb84f98c)
- **JQ** ([#1896](https://github.com/PrismJS/prism/issues/1896)) [`73d964be`](https://github.com/PrismJS/prism/commit/73d964be)
- **JS Templates**: Syntax highlighting inside tagged template literals ([#1931](https://github.com/PrismJS/prism/issues/1931)) [`c8844286`](https://github.com/PrismJS/prism/commit/c8844286)
- **LilyPond** ([#1967](https://github.com/PrismJS/prism/issues/1967)) [`5d992fc5`](https://github.com/PrismJS/prism/commit/5d992fc5)
- **PascaLIGO** ([#1947](https://github.com/PrismJS/prism/issues/1947)) [`858201c7`](https://github.com/PrismJS/prism/commit/858201c7)
- **PC-Axis** ([#1940](https://github.com/PrismJS/prism/issues/1940)) [`473f7fbd`](https://github.com/PrismJS/prism/commit/473f7fbd)
- **Shell session** ([#1892](https://github.com/PrismJS/prism/issues/1892)) [`96044979`](https://github.com/PrismJS/prism/commit/96044979)
- **Splunk SPL** ([#1962](https://github.com/PrismJS/prism/issues/1962)) [`c93c066b`](https://github.com/PrismJS/prism/commit/c93c066b)

### New plugins

- **Diff Highlight**: Syntax highlighting inside diff blocks ([#1889](https://github.com/PrismJS/prism/issues/1889)) [`e7702ae1`](https://github.com/PrismJS/prism/commit/e7702ae1)

### Updated components

- **Bash**
    - Major improvements ([#1443](https://github.com/PrismJS/prism/issues/1443)) [`363281b3`](https://github.com/PrismJS/prism/commit/363281b3)
- **C#**
    - Added `cs` alias ([#1899](https://github.com/PrismJS/prism/issues/1899)) [`a8164559`](https://github.com/PrismJS/prism/commit/a8164559)
- **C++**
    - Fixed number pattern ([#1887](https://github.com/PrismJS/prism/issues/1887)) [`3de29e72`](https://github.com/PrismJS/prism/commit/3de29e72)
- **CSS**
    - Extended `url` inside ([#1874](https://github.com/PrismJS/prism/issues/1874)) [`f0a10669`](https://github.com/PrismJS/prism/commit/f0a10669)
    - Removed unnecessary flag and modifier ([#1875](https://github.com/PrismJS/prism/issues/1875)) [`74050c68`](https://github.com/PrismJS/prism/commit/74050c68)
- **CSS Extras**
    - Added `even` & `odd` keywords to `n-th` pattern ([#1872](https://github.com/PrismJS/prism/issues/1872)) [`5e5a3e00`](https://github.com/PrismJS/prism/commit/5e5a3e00)
- **F#**
    - Improved character literals ([#1956](https://github.com/PrismJS/prism/issues/1956)) [`d58d2aeb`](https://github.com/PrismJS/prism/commit/d58d2aeb)
- **JavaScript**
    - Fixed escaped template interpolation ([#1931](https://github.com/PrismJS/prism/issues/1931)) [`c8844286`](https://github.com/PrismJS/prism/commit/c8844286)
    - Added support for private fields ([#1950](https://github.com/PrismJS/prism/issues/1950)) [`7bd08327`](https://github.com/PrismJS/prism/commit/7bd08327)
    - Added support for numeric separators ([#1895](https://github.com/PrismJS/prism/issues/1895)) [`6068bf18`](https://github.com/PrismJS/prism/commit/6068bf18)
    - Increased bracket count of interpolation expressions in template strings ([#1845](https://github.com/PrismJS/prism/issues/1845)) [`c13d6e7d`](https://github.com/PrismJS/prism/commit/c13d6e7d)
    - Added support for the `s` regex flag ([#1846](https://github.com/PrismJS/prism/issues/1846)) [`9e164935`](https://github.com/PrismJS/prism/commit/9e164935)
    - Formatting: Added missing semicolon ([#1856](https://github.com/PrismJS/prism/issues/1856)) [`e2683959`](https://github.com/PrismJS/prism/commit/e2683959)
- **JSON**
    - Kinda fixed comment issue ([#1853](https://github.com/PrismJS/prism/issues/1853)) [`cbe05ec3`](https://github.com/PrismJS/prism/commit/cbe05ec3)
- **Julia**
    - Added `struct` keyword ([#1941](https://github.com/PrismJS/prism/issues/1941)) [`feb1b6f5`](https://github.com/PrismJS/prism/commit/feb1b6f5)
    - Highlight `Inf` and `NaN` as constants ([#1921](https://github.com/PrismJS/prism/issues/1921)) [`2141129f`](https://github.com/PrismJS/prism/commit/2141129f)
    - Added `in` keyword ([#1918](https://github.com/PrismJS/prism/issues/1918)) [`feb3187f`](https://github.com/PrismJS/prism/commit/feb3187f)
- **LaTeX**
    - Added TeX and ConTeXt alias ([#1915](https://github.com/PrismJS/prism/issues/1915)) [`5ad58a75`](https://github.com/PrismJS/prism/commit/5ad58a75)
    - Added support for $$ equations [`6f53f749`](https://github.com/PrismJS/prism/commit/6f53f749)
- **Markdown**
    - Markdown: Added support for auto-loading code block languages ([#1898](https://github.com/PrismJS/prism/issues/1898)) [`05823e88`](https://github.com/PrismJS/prism/commit/05823e88)
    - Improved URLs ([#1955](https://github.com/PrismJS/prism/issues/1955)) [`b9ec6fd8`](https://github.com/PrismJS/prism/commit/b9ec6fd8)
    - Added support for nested bold and italic expressions ([#1897](https://github.com/PrismJS/prism/issues/1897)) [`11903721`](https://github.com/PrismJS/prism/commit/11903721)
    - Added support for tables ([#1848](https://github.com/PrismJS/prism/issues/1848)) [`cedb8e84`](https://github.com/PrismJS/prism/commit/cedb8e84)
- **Perl**
    - Added `return` keyword ([#1943](https://github.com/PrismJS/prism/issues/1943)) [`2f39de97`](https://github.com/PrismJS/prism/commit/2f39de97)
- **Protocol Buffers**
    - Full support for PB2 and PB3 syntax + numerous other improvements ([#1948](https://github.com/PrismJS/prism/issues/1948)) [`de10bd1d`](https://github.com/PrismJS/prism/commit/de10bd1d)
- **reST (reStructuredText)**
    - Fixed exponentially backtracking pattern ([#1986](https://github.com/PrismJS/prism/issues/1986)) [`8b5d67a3`](https://github.com/PrismJS/prism/commit/8b5d67a3)
- **Rust**
    - Added `async` and `await` keywords. ([#1882](https://github.com/PrismJS/prism/issues/1882)) [`4faa3314`](https://github.com/PrismJS/prism/commit/4faa3314)
    - Improved punctuation and operators ([#1839](https://github.com/PrismJS/prism/issues/1839)) [`a42b1557`](https://github.com/PrismJS/prism/commit/a42b1557)
- **Sass (Scss)**
    - Fixed exponential url pattern ([#1938](https://github.com/PrismJS/prism/issues/1938)) [`4b6b6e8b`](https://github.com/PrismJS/prism/commit/4b6b6e8b)
- **Scheme**
    - Added support for rational number literals ([#1964](https://github.com/PrismJS/prism/issues/1964)) [`e8811d22`](https://github.com/PrismJS/prism/commit/e8811d22)
- **TOML**
    - Minor improvements ([#1917](https://github.com/PrismJS/prism/issues/1917)) [`3e181241`](https://github.com/PrismJS/prism/commit/3e181241)
- **Visual Basic**
    - Added support for interpolation strings ([#1971](https://github.com/PrismJS/prism/issues/1971)) [`4a2c90c1`](https://github.com/PrismJS/prism/commit/4a2c90c1)

### Updated plugins

- **Autolinker**
    - Improved component path guessing ([#1928](https://github.com/PrismJS/prism/issues/1928)) [`452d5c7d`](https://github.com/PrismJS/prism/commit/452d5c7d)
    - Improved URL regex ([#1842](https://github.com/PrismJS/prism/issues/1842)) [`eb28b62b`](https://github.com/PrismJS/prism/commit/eb28b62b)
- **Autoloader**
    - Fixed and improved callbacks ([#1935](https://github.com/PrismJS/prism/issues/1935)) [`b19f512f`](https://github.com/PrismJS/prism/commit/b19f512f)
- **Command Line**
    - Fix for uncaught errors for empty 'commandLine' object. ([#1862](https://github.com/PrismJS/prism/issues/1862)) [`c24831b5`](https://github.com/PrismJS/prism/commit/c24831b5)
- **Copy to Clipboard Button**
    - Switch anchor to button ([#1926](https://github.com/PrismJS/prism/issues/1926)) [`79880197`](https://github.com/PrismJS/prism/commit/79880197)
- **Custom Class**
    - Added mapper functions for language specific transformations ([#1873](https://github.com/PrismJS/prism/issues/1873)) [`acceb3b5`](https://github.com/PrismJS/prism/commit/acceb3b5)
- **Line Highlight**
    - Batching DOM read/writes to avoid reflows ([#1865](https://github.com/PrismJS/prism/issues/1865)) [`632ce00c`](https://github.com/PrismJS/prism/commit/632ce00c)
- **Toolbar**
    - Added `className` option for toolbar items ([#1951](https://github.com/PrismJS/prism/issues/1951)) [`5ab28bbe`](https://github.com/PrismJS/prism/commit/5ab28bbe)
    - Set opacity to 1 when focus is within ([#1927](https://github.com/PrismJS/prism/issues/1927)) [`0b1662dd`](https://github.com/PrismJS/prism/commit/0b1662dd)

### Updated themes

- **Funky**
    - Fixed typo ([#1960](https://github.com/PrismJS/prism/issues/1960)) [`7d056591`](https://github.com/PrismJS/prism/commit/7d056591)

### Other

- README: Added npm downloads badge ([#1934](https://github.com/PrismJS/prism/issues/1934)) [`d673d701`](https://github.com/PrismJS/prism/commit/d673d701)
- README: Minor changes ([#1857](https://github.com/PrismJS/prism/issues/1857)) [`77e403cb`](https://github.com/PrismJS/prism/commit/77e403cb)
- Clearer description for the highlighting bug report template ([#1850](https://github.com/PrismJS/prism/issues/1850)) [`2f9c9261`](https://github.com/PrismJS/prism/commit/2f9c9261)
- More language examples ([#1917](https://github.com/PrismJS/prism/issues/1917)) [`3e181241`](https://github.com/PrismJS/prism/commit/3e181241)
- **Core**
    - Removed `env.elements` from `before-highlightall` hook ([#1968](https://github.com/PrismJS/prism/issues/1968)) [`9d9e2ca4`](https://github.com/PrismJS/prism/commit/9d9e2ca4)
    - Made `language-none` the default language ([#1858](https://github.com/PrismJS/prism/issues/1858)) [`fd691c52`](https://github.com/PrismJS/prism/commit/fd691c52)
    - Removed `parent` from the `wrap` hook's environment ([#1837](https://github.com/PrismJS/prism/issues/1837)) [`65a4e894`](https://github.com/PrismJS/prism/commit/65a4e894)
- **Infrastructure**
    - gulp: Split `gulpfile.js` and expanded `changes` task ([#1835](https://github.com/PrismJS/prism/issues/1835)) [`033c5ad8`](https://github.com/PrismJS/prism/commit/033c5ad8)
    - gulp: JSON formatting for partly generated files ([#1933](https://github.com/PrismJS/prism/issues/1933)) [`d4373f3a`](https://github.com/PrismJS/prism/commit/d4373f3a)
    - gulp: Use `async` functions & drop testing on Node v6 ([#1783](https://github.com/PrismJS/prism/issues/1783)) [`0dd44d53`](https://github.com/PrismJS/prism/commit/0dd44d53)
    - Tests: `lookbehind` test for patterns ([#1890](https://github.com/PrismJS/prism/issues/1890)) [`3ba786cd`](https://github.com/PrismJS/prism/commit/3ba786cd)
    - Tests: Added test for empty regexes ([#1847](https://github.com/PrismJS/prism/issues/1847)) [`c1e6a7fd`](https://github.com/PrismJS/prism/commit/c1e6a7fd)
- **Website**
    - Added tutorial for using PrismJS with React ([#1979](https://github.com/PrismJS/prism/issues/1979)) [`f1e16c7b`](https://github.com/PrismJS/prism/commit/f1e16c7b)
    - Update footer's GitHub repository URL and capitalisation of "GitHub" ([#1983](https://github.com/PrismJS/prism/issues/1983)) [`bab744a6`](https://github.com/PrismJS/prism/commit/bab744a6)
    - Added known failures page ([#1876](https://github.com/PrismJS/prism/issues/1876)) [`36a5fa0e`](https://github.com/PrismJS/prism/commit/36a5fa0e)
    - Added basic usage for CDNs ([#1924](https://github.com/PrismJS/prism/issues/1924)) [`922ec555`](https://github.com/PrismJS/prism/commit/922ec555)
    - New tutorial for Drupal ([#1859](https://github.com/PrismJS/prism/issues/1859)) [`d2089d83`](https://github.com/PrismJS/prism/commit/d2089d83)
    - Updated website page styles to not interfere with themes ([#1952](https://github.com/PrismJS/prism/issues/1952)) [`b6543853`](https://github.com/PrismJS/prism/commit/b6543853)
    - Download page: Improved performance for Chromium-based browsers ([#1907](https://github.com/PrismJS/prism/issues/1907)) [`11f18e36`](https://github.com/PrismJS/prism/commit/11f18e36)
    - Download page: Fixed Edge's word wrap ([#1920](https://github.com/PrismJS/prism/issues/1920)) [`5d191b92`](https://github.com/PrismJS/prism/commit/5d191b92)
    - Examples page: Minor improvements ([#1919](https://github.com/PrismJS/prism/issues/1919)) [`a16d4a25`](https://github.com/PrismJS/prism/commit/a16d4a25)
    - Extending page: Fixed typo + new alias section ([#1949](https://github.com/PrismJS/prism/issues/1949)) [`24c8e717`](https://github.com/PrismJS/prism/commit/24c8e717)
    - Extending page: Added "Creating a new language definition" section ([#1925](https://github.com/PrismJS/prism/issues/1925)) [`ddf81233`](https://github.com/PrismJS/prism/commit/ddf81233)
    - Test page: Use `prism-core.js` instead of `prism.js` ([#1908](https://github.com/PrismJS/prism/issues/1908)) [`0853e694`](https://github.com/PrismJS/prism/commit/0853e694)
    - Copy to clipboard: Fixed typo ([#1869](https://github.com/PrismJS/prism/issues/1869)) [`59d4323f`](https://github.com/PrismJS/prism/commit/59d4323f)
    - JSONP Highlight: Fixed examples ([#1877](https://github.com/PrismJS/prism/issues/1877)) [`f8ae465d`](https://github.com/PrismJS/prism/commit/f8ae465d)
    - Line numbers: Fixed typo on webpage ([#1838](https://github.com/PrismJS/prism/issues/1838)) [`0f16eb87`](https://github.com/PrismJS/prism/commit/0f16eb87)

## 1.16.0 (2019-03-24)

### New components

- **ANBF** ([#1753](https://github.com/PrismJS/prism/issues/1753)) [`6d98f0e7`](https://github.com/PrismJS/prism/commit/6d98f0e7)
- **BNF** & **RBNF** ([#1754](https://github.com/PrismJS/prism/issues/1754)) [`1df96c55`](https://github.com/PrismJS/prism/commit/1df96c55)
- **CIL** ([#1593](https://github.com/PrismJS/prism/issues/1593)) [`38def334`](https://github.com/PrismJS/prism/commit/38def334)
- **CMake** ([#1820](https://github.com/PrismJS/prism/issues/1820)) [`30779976`](https://github.com/PrismJS/prism/commit/30779976)
- **Doc comment** ([#1541](https://github.com/PrismJS/prism/issues/1541)) [`493d19ef`](https://github.com/PrismJS/prism/commit/493d19ef)
- **EBNF** ([#1756](https://github.com/PrismJS/prism/issues/1756)) [`13e1c97d`](https://github.com/PrismJS/prism/commit/13e1c97d)
- **EJS** ([#1769](https://github.com/PrismJS/prism/issues/1769)) [`c37c90df`](https://github.com/PrismJS/prism/commit/c37c90df)
- **G-code** ([#1572](https://github.com/PrismJS/prism/issues/1572)) [`2288c25e`](https://github.com/PrismJS/prism/commit/2288c25e)
- **GameMaker Language** ([#1551](https://github.com/PrismJS/prism/issues/1551)) [`e529edd8`](https://github.com/PrismJS/prism/commit/e529edd8)
- **HCL** ([#1594](https://github.com/PrismJS/prism/issues/1594)) [`c939df8e`](https://github.com/PrismJS/prism/commit/c939df8e)
- **Java stack trace** ([#1520](https://github.com/PrismJS/prism/issues/1520)) [`4a8219a4`](https://github.com/PrismJS/prism/commit/4a8219a4)
- **JavaScript Extras** ([#1743](https://github.com/PrismJS/prism/issues/1743)) [`bb628606`](https://github.com/PrismJS/prism/commit/bb628606)
- **JSON5** ([#1744](https://github.com/PrismJS/prism/issues/1744)) [`64dc049d`](https://github.com/PrismJS/prism/commit/64dc049d)
- **N1QL** ([#1620](https://github.com/PrismJS/prism/issues/1620)) [`7def8f5c`](https://github.com/PrismJS/prism/commit/7def8f5c)
- **Nand To Tetris HDL** ([#1710](https://github.com/PrismJS/prism/issues/1710)) [`b94b56c1`](https://github.com/PrismJS/prism/commit/b94b56c1)
- **Regex** ([#1682](https://github.com/PrismJS/prism/issues/1682)) [`571704cb`](https://github.com/PrismJS/prism/commit/571704cb)
- **T4** ([#1699](https://github.com/PrismJS/prism/issues/1699)) [`16f2ad06`](https://github.com/PrismJS/prism/commit/16f2ad06)
- **TOML** ([#1488](https://github.com/PrismJS/prism/issues/1488)) [`5b6ad70d`](https://github.com/PrismJS/prism/commit/5b6ad70d)
- **Vala** ([#1658](https://github.com/PrismJS/prism/issues/1658)) [`b48c012c`](https://github.com/PrismJS/prism/commit/b48c012c)

### Updated components

- Fixed dependencies of Pug and Pure ([#1759](https://github.com/PrismJS/prism/issues/1759)) [`c9a32674`](https://github.com/PrismJS/prism/commit/c9a32674)
- Add file extensions support for major languages ([#1478](https://github.com/PrismJS/prism/issues/1478)) [`0c8f6504`](https://github.com/PrismJS/prism/commit/0c8f6504)
- Fixed patterns which can match the empty string ([#1775](https://github.com/PrismJS/prism/issues/1775)) [`86dd3e42`](https://github.com/PrismJS/prism/commit/86dd3e42)
- More variables for better code compression ([#1489](https://github.com/PrismJS/prism/issues/1489)) [`bc53e093`](https://github.com/PrismJS/prism/commit/bc53e093)
- Added missing aliases ([#1830](https://github.com/PrismJS/prism/issues/1830)) [`8d28c74c`](https://github.com/PrismJS/prism/commit/8d28c74c)
- Replaced all occurrences of `new RegExp` with `RegExp` ([#1493](https://github.com/PrismJS/prism/issues/1493)) [`44fed4d3`](https://github.com/PrismJS/prism/commit/44fed4d3)
- Added missing aliases to components.json ([#1503](https://github.com/PrismJS/prism/issues/1503)) [`2fb66e04`](https://github.com/PrismJS/prism/commit/2fb66e04)
- **Apacheconf**
    - Apache config: Minor improvements + new keyword ([#1823](https://github.com/PrismJS/prism/issues/1823)) [`a91be7b2`](https://github.com/PrismJS/prism/commit/a91be7b2)
- **AsciiDoc**
    - Added `adoc` alias for AsciiDoc ([#1685](https://github.com/PrismJS/prism/issues/1685)) [`88434f7a`](https://github.com/PrismJS/prism/commit/88434f7a)
- **Bash**
    - Add additional commands to bash ([#1577](https://github.com/PrismJS/prism/issues/1577)) [`a2230c38`](https://github.com/PrismJS/prism/commit/a2230c38)
    - Added `yarn add` to bash functions ([#1731](https://github.com/PrismJS/prism/issues/1731)) [`3a32cb75`](https://github.com/PrismJS/prism/commit/3a32cb75)
    - Added `pnpm` function to Bash ([#1734](https://github.com/PrismJS/prism/issues/1734)) [`fccfb98d`](https://github.com/PrismJS/prism/commit/fccfb98d)
- **Batch**
    - Remove batch's shell alias ([#1543](https://github.com/PrismJS/prism/issues/1543)) [`7155e60f`](https://github.com/PrismJS/prism/commit/7155e60f)
- **C**
    - Improve C language ([#1697](https://github.com/PrismJS/prism/issues/1697)) [`7eccea5c`](https://github.com/PrismJS/prism/commit/7eccea5c)
- **C-like**
    - Simplify function pattern of C-like language ([#1552](https://github.com/PrismJS/prism/issues/1552)) [`b520e1b6`](https://github.com/PrismJS/prism/commit/b520e1b6)
- **C/C++/Java**
    - Operator fixes ([#1528](https://github.com/PrismJS/prism/issues/1528)) [`7af8f8be`](https://github.com/PrismJS/prism/commit/7af8f8be)
- **C#**
    - Improvements to C# operator and punctuation ([#1532](https://github.com/PrismJS/prism/issues/1532)) [`3b1e0916`](https://github.com/PrismJS/prism/commit/3b1e0916)
- **CSS**
    - Fix tokenizing !important ([#1585](https://github.com/PrismJS/prism/issues/1585)) [`c1d6cb85`](https://github.com/PrismJS/prism/commit/c1d6cb85)
    - Added the comma to the list of CSS punctuation [`7ea2ff28`](https://github.com/PrismJS/prism/commit/7ea2ff28)
    - CSS: Comma punctuation ([#1632](https://github.com/PrismJS/prism/issues/1632)) [`1b812386`](https://github.com/PrismJS/prism/commit/1b812386)
    - Reuse CSS selector pattern in CSS Extras ([#1637](https://github.com/PrismJS/prism/issues/1637)) [`e2f2fd19`](https://github.com/PrismJS/prism/commit/e2f2fd19)
    - Fixed CSS extra variable ([#1649](https://github.com/PrismJS/prism/issues/1649)) [`9de47d3a`](https://github.com/PrismJS/prism/commit/9de47d3a)
    - Identify CSS units and variables ([#1450](https://github.com/PrismJS/prism/issues/1450)) [`5fcee966`](https://github.com/PrismJS/prism/commit/5fcee966)
    - Allow multiline CSS at-rules ([#1676](https://github.com/PrismJS/prism/issues/1676)) [`4f6f3c7d`](https://github.com/PrismJS/prism/commit/4f6f3c7d)
    - CSS: Highlight attribute selector ([#1671](https://github.com/PrismJS/prism/issues/1671)) [`245b59d4`](https://github.com/PrismJS/prism/commit/245b59d4)
    - CSS: Selectors can contain any string ([#1638](https://github.com/PrismJS/prism/issues/1638)) [`a2d445d0`](https://github.com/PrismJS/prism/commit/a2d445d0)
    - CSS extras: Highlighting for pseudo class arguments ([#1650](https://github.com/PrismJS/prism/issues/1650)) [`70a40414`](https://github.com/PrismJS/prism/commit/70a40414)
- **Django**
    - Django/Jinja2 improvements ([#1800](https://github.com/PrismJS/prism/issues/1800)) [`f2467488`](https://github.com/PrismJS/prism/commit/f2467488)
- **F#**
    - Chars can only contain one character ([#1570](https://github.com/PrismJS/prism/issues/1570)) [`f96b083a`](https://github.com/PrismJS/prism/commit/f96b083a)
    - Improve F# ([#1573](https://github.com/PrismJS/prism/issues/1573)) [`00bfc969`](https://github.com/PrismJS/prism/commit/00bfc969)
- **GraphQL**
    - Improved field highlighting for GraphQL ([#1711](https://github.com/PrismJS/prism/issues/1711)) [`44aeffb9`](https://github.com/PrismJS/prism/commit/44aeffb9)
    - Added GraphQL improvements and tests ([#1788](https://github.com/PrismJS/prism/issues/1788)) [`b2298b12`](https://github.com/PrismJS/prism/commit/b2298b12)
- **Haskell**
    - Added `hs` alias for Haskell ([#1831](https://github.com/PrismJS/prism/issues/1831)) [`64baec3c`](https://github.com/PrismJS/prism/commit/64baec3c)
- **HTTP**
    - Improved HTTP content highlighting ([#1598](https://github.com/PrismJS/prism/issues/1598)) [`1b75da90`](https://github.com/PrismJS/prism/commit/1b75da90)
- **Ini**
    - Add support for # comments to INI language ([#1730](https://github.com/PrismJS/prism/issues/1730)) [`baf6bb0c`](https://github.com/PrismJS/prism/commit/baf6bb0c)
- **Java**
    - Add Java 10 support ([#1549](https://github.com/PrismJS/prism/issues/1549)) [`8c981a22`](https://github.com/PrismJS/prism/commit/8c981a22)
    - Added module keywords to Java. ([#1655](https://github.com/PrismJS/prism/issues/1655)) [`6e250a5f`](https://github.com/PrismJS/prism/commit/6e250a5f)
    - Improve Java ([#1474](https://github.com/PrismJS/prism/issues/1474)) [`81bd8f0b`](https://github.com/PrismJS/prism/commit/81bd8f0b)
- **JavaScript**
    - Fix regex for `catch` and `finally` ([#1527](https://github.com/PrismJS/prism/issues/1527)) [`ebd1b9a6`](https://github.com/PrismJS/prism/commit/ebd1b9a6)
    - Highlighting of supposed classes and functions ([#1482](https://github.com/PrismJS/prism/issues/1482)) [`c40f6047`](https://github.com/PrismJS/prism/commit/c40f6047)
    - Added support for JS BigInt literals ([#1542](https://github.com/PrismJS/prism/issues/1542)) [`2b62e57b`](https://github.com/PrismJS/prism/commit/2b62e57b)
    - Fixed lowercase supposed class names ([#1544](https://github.com/PrismJS/prism/issues/1544)) [`a47c05ad`](https://github.com/PrismJS/prism/commit/a47c05ad)
    - Fixes regex for JS examples ([#1591](https://github.com/PrismJS/prism/issues/1591)) [`b41fb8f1`](https://github.com/PrismJS/prism/commit/b41fb8f1)
    - Improve regex detection in JS ([#1473](https://github.com/PrismJS/prism/issues/1473)) [`2a4758ab`](https://github.com/PrismJS/prism/commit/2a4758ab)
    - Identify JavaScript function parameters ([#1446](https://github.com/PrismJS/prism/issues/1446)) [`0cc8c56a`](https://github.com/PrismJS/prism/commit/0cc8c56a)
    - Improved JavaScript parameter recognization ([#1722](https://github.com/PrismJS/prism/issues/1722)) [`57a92035`](https://github.com/PrismJS/prism/commit/57a92035)
    - Make `undefined` a keyword in JS ([#1740](https://github.com/PrismJS/prism/issues/1740)) [`d9fa29a8`](https://github.com/PrismJS/prism/commit/d9fa29a8)
    - Fix `function-variable` in JS ([#1739](https://github.com/PrismJS/prism/issues/1739)) [`bfbea4d6`](https://github.com/PrismJS/prism/commit/bfbea4d6)
    - Improved JS constant pattern ([#1737](https://github.com/PrismJS/prism/issues/1737)) [`7bcec584`](https://github.com/PrismJS/prism/commit/7bcec584)
    - Improved JS function pattern ([#1736](https://github.com/PrismJS/prism/issues/1736)) [`8378ac83`](https://github.com/PrismJS/prism/commit/8378ac83)
    - JS: Fixed variables named "async" ([#1738](https://github.com/PrismJS/prism/issues/1738)) [`3560c643`](https://github.com/PrismJS/prism/commit/3560c643)
    - JS: Keyword fix ([#1808](https://github.com/PrismJS/prism/issues/1808)) [`f2d8e1c7`](https://github.com/PrismJS/prism/commit/f2d8e1c7)
- **JSON** / **JSONP**
    - Fix bugs in JSON language ([#1479](https://github.com/PrismJS/prism/issues/1479)) [`74fe81c6`](https://github.com/PrismJS/prism/commit/74fe81c6)
    - Adds support for comments in JSON ([#1595](https://github.com/PrismJS/prism/issues/1595)) [`8720b3e6`](https://github.com/PrismJS/prism/commit/8720b3e6)
    - Cleaned up JSON ([#1596](https://github.com/PrismJS/prism/issues/1596)) [`da474c77`](https://github.com/PrismJS/prism/commit/da474c77)
    - Added `keyword` alias to JSON's `null` ([#1733](https://github.com/PrismJS/prism/issues/1733)) [`eee06649`](https://github.com/PrismJS/prism/commit/eee06649)
    - Fix JSONP support ([#1745](https://github.com/PrismJS/prism/issues/1745)) [`b5041cf9`](https://github.com/PrismJS/prism/commit/b5041cf9)
    - Fixed JSON/JSONP examples ([#1765](https://github.com/PrismJS/prism/issues/1765)) [`ae4842db`](https://github.com/PrismJS/prism/commit/ae4842db)
- **JSX**
    - React component tags are styled as classes in JSX ([#1519](https://github.com/PrismJS/prism/issues/1519)) [`3e1a9a3d`](https://github.com/PrismJS/prism/commit/3e1a9a3d)
    - Support JSX/TSX class-name with dot ([#1725](https://github.com/PrismJS/prism/issues/1725)) [`4362e42c`](https://github.com/PrismJS/prism/commit/4362e42c)
- **Less**
    - Remove useless insertBefore in LESS ([#1629](https://github.com/PrismJS/prism/issues/1629)) [`86d31793`](https://github.com/PrismJS/prism/commit/86d31793)
- **Lisp**
    - Fix Lisp exponential string pattern ([#1763](https://github.com/PrismJS/prism/issues/1763)) [`5bd182c0`](https://github.com/PrismJS/prism/commit/5bd182c0))
- **Markdown**
    - Added strike support to markdown ([#1563](https://github.com/PrismJS/prism/issues/1563)) [`9d2fddc2`](https://github.com/PrismJS/prism/commit/9d2fddc2)
    - Fixed Markdown headers ([#1557](https://github.com/PrismJS/prism/issues/1557)) [`c6584290`](https://github.com/PrismJS/prism/commit/c6584290)
    - Add support for code blocks in Markdown ([#1562](https://github.com/PrismJS/prism/issues/1562)) [`b0717e70`](https://github.com/PrismJS/prism/commit/b0717e70)
    - Markdown: The 'md' alias is now recognized by hooks ([#1771](https://github.com/PrismJS/prism/issues/1771)) [`8ca3d65b`](https://github.com/PrismJS/prism/commit/8ca3d65b)
- **Markup**
    - Decouple XML from Markup ([#1603](https://github.com/PrismJS/prism/issues/1603)) [`0030a4ef`](https://github.com/PrismJS/prism/commit/0030a4ef)
    - Fix for markup attributes ([#1752](https://github.com/PrismJS/prism/issues/1752)) [`c3862a24`](https://github.com/PrismJS/prism/commit/c3862a24)
    - Markup: Added support for CSS and JS inside of CDATAs ([#1660](https://github.com/PrismJS/prism/issues/1660)) [`57127701`](https://github.com/PrismJS/prism/commit/57127701)
    - Markup `addInline` improvements ([#1798](https://github.com/PrismJS/prism/issues/1798)) [`af67c32e`](https://github.com/PrismJS/prism/commit/af67c32e)
- **Markup Templating**
    - Markup-templating improvements ([#1653](https://github.com/PrismJS/prism/issues/1653)) [`b62e282b`](https://github.com/PrismJS/prism/commit/b62e282b)
- **nginx**
    - Add new keywords to nginx ([#1587](https://github.com/PrismJS/prism/issues/1587)) [`0d73f7f5`](https://github.com/PrismJS/prism/commit/0d73f7f5)
- **PHP**
    - Update PHP keywords ([#1690](https://github.com/PrismJS/prism/issues/1690)) [`55fb0f8e`](https://github.com/PrismJS/prism/commit/55fb0f8e)
    - Improve recognition of constants in PHP ([#1688](https://github.com/PrismJS/prism/issues/1688)) [`f1026b4b`](https://github.com/PrismJS/prism/commit/f1026b4b)
    - Made false, true, and null constants in PHP ([#1694](https://github.com/PrismJS/prism/issues/1694)) [`439e3bd7`](https://github.com/PrismJS/prism/commit/439e3bd7)
    - PHP: Fixed closing tag issue ([#1652](https://github.com/PrismJS/prism/issues/1652)) [`289ddd9b`](https://github.com/PrismJS/prism/commit/289ddd9b)
- **Python**
    - Operator keywords are now keywords ([#1617](https://github.com/PrismJS/prism/issues/1617)) [`1d1fb800`](https://github.com/PrismJS/prism/commit/1d1fb800)
    - Add decorator support to Python ([#1639](https://github.com/PrismJS/prism/issues/1639)) [`2577b6e6`](https://github.com/PrismJS/prism/commit/2577b6e6)
    - Improvements to Python F-strings and string prefixes ([#1642](https://github.com/PrismJS/prism/issues/1642)) [`a69c2b62`](https://github.com/PrismJS/prism/commit/a69c2b62)
- **Reason**
    - Added additional operators to Reason ([#1648](https://github.com/PrismJS/prism/issues/1648)) [`8b1bb469`](https://github.com/PrismJS/prism/commit/8b1bb469)
- **Ruby**
    - Consistent Ruby method highlighting ([#1523](https://github.com/PrismJS/prism/issues/1523)) [`72775919`](https://github.com/PrismJS/prism/commit/72775919)
    - Ruby/ERB: Fixed block comments ([#1768](https://github.com/PrismJS/prism/issues/1768)) [`c805f859`](https://github.com/PrismJS/prism/commit/c805f859)
- **Rust**
    - Add missing keywords ([#1634](https://github.com/PrismJS/prism/issues/1634)) [`3590edde`](https://github.com/PrismJS/prism/commit/3590edde)
- **SAS**
    - Added new SAS keywords ([#1784](https://github.com/PrismJS/prism/issues/1784)) [`3b396ef5`](https://github.com/PrismJS/prism/commit/3b396ef5)
- **Scheme**
    - Fix function without arguments in scheme language ([#1463](https://github.com/PrismJS/prism/issues/1463)) [`12a827e7`](https://github.com/PrismJS/prism/commit/12a827e7)
    - Scheme improvements ([#1556](https://github.com/PrismJS/prism/issues/1556)) [`225dd3f7`](https://github.com/PrismJS/prism/commit/225dd3f7)
    - Fixed operator-like functions in Scheme ([#1467](https://github.com/PrismJS/prism/issues/1467)) [`f8c8add2`](https://github.com/PrismJS/prism/commit/f8c8add2)
    - Scheme: Minor improvements ([#1814](https://github.com/PrismJS/prism/issues/1814)) [`191830f2`](https://github.com/PrismJS/prism/commit/191830f2)
- **SCSS**
    - Fixed that selector pattern can take exponential time ([#1499](https://github.com/PrismJS/prism/issues/1499)) [`0f75d9d4`](https://github.com/PrismJS/prism/commit/0f75d9d4)
    - Move SCSS `property` definition ([#1633](https://github.com/PrismJS/prism/issues/1633)) [`0536fb14`](https://github.com/PrismJS/prism/commit/0536fb14)
    - Add `keyword` alias for SCSS' `null` ([#1735](https://github.com/PrismJS/prism/issues/1735)) [`bd0378f0`](https://github.com/PrismJS/prism/commit/bd0378f0)
- **Smalltalk**
    - Allowed empty strings and comments ([#1747](https://github.com/PrismJS/prism/issues/1747)) [`5fd7577a`](https://github.com/PrismJS/prism/commit/5fd7577a)
- **Smarty**
    - Removed useless `insertBefore` call in Smarty ([#1677](https://github.com/PrismJS/prism/issues/1677)) [`bc49c361`](https://github.com/PrismJS/prism/commit/bc49c361)
- **SQL**
    - Added support for quote escapes to SQL strings ([#1500](https://github.com/PrismJS/prism/issues/1500)) [`a59a7926`](https://github.com/PrismJS/prism/commit/a59a7926)
    - SQL Quoted variables are now greedy ([#1510](https://github.com/PrismJS/prism/issues/1510)) [`42d119a2`](https://github.com/PrismJS/prism/commit/42d119a2)
- **TypeScript**
    - Enhance definitions in TypeScript component ([#1522](https://github.com/PrismJS/prism/issues/1522)) [`11695629`](https://github.com/PrismJS/prism/commit/11695629)
- **YAML**
    - Allow YAML strings to have trailing comments ([#1602](https://github.com/PrismJS/prism/issues/1602)) [`1c5f28a9`](https://github.com/PrismJS/prism/commit/1c5f28a9)

### Updated plugins

- Better class name detection for plugins ([#1772](https://github.com/PrismJS/prism/issues/1772)) [`c9762c6f`](https://github.com/PrismJS/prism/commit/c9762c6f)
- **Autolinker**
    - Fix Autolinker url-decoding all tokens ([#1723](https://github.com/PrismJS/prism/issues/1723)) [`8cf20d49`](https://github.com/PrismJS/prism/commit/8cf20d49)
- **Autoloader**
    - Resolved variable name clash ([#1568](https://github.com/PrismJS/prism/issues/1568)) [`bfa5a8d9`](https://github.com/PrismJS/prism/commit/bfa5a8d9)
    - Autoloader: Fixed the directory of scripts ([#1828](https://github.com/PrismJS/prism/issues/1828)) [`fd4c764f`](https://github.com/PrismJS/prism/commit/fd4c764f)
    - Autoloader: Added support for aliases ([#1829](https://github.com/PrismJS/prism/issues/1829)) [`52889b5b`](https://github.com/PrismJS/prism/commit/52889b5b)
- **Command Line**
    - Fixed class regex for Command Line plugin ([#1566](https://github.com/PrismJS/prism/issues/1566)) [`9f6e5026`](https://github.com/PrismJS/prism/commit/9f6e5026)
- **File Highlight**
    - Prevent double-loading & add scope to File Highlight ([#1586](https://github.com/PrismJS/prism/issues/1586)) [`10239c14`](https://github.com/PrismJS/prism/commit/10239c14)
- **JSONP Highlight**
    - Cleanup JSONP highlight code ([#1674](https://github.com/PrismJS/prism/issues/1674)) [`28489698`](https://github.com/PrismJS/prism/commit/28489698)
    - Fix typos & other issues in JSONP docs ([#1672](https://github.com/PrismJS/prism/issues/1672)) [`cd058a91`](https://github.com/PrismJS/prism/commit/cd058a91)
    - JSONP highlight: Fixed minified adapter names ([#1793](https://github.com/PrismJS/prism/issues/1793)) [`5dd8f916`](https://github.com/PrismJS/prism/commit/5dd8f916)
- **Keep Markup**
    - Add unit tests to the Keep Markup plugin ([#1646](https://github.com/PrismJS/prism/issues/1646)) [`a944c418`](https://github.com/PrismJS/prism/commit/a944c418)
- **Line Numbers**
    - Added inheritance for the `line-numbers` class ([#1799](https://github.com/PrismJS/prism/issues/1799)) [`14be7489`](https://github.com/PrismJS/prism/commit/14be7489)
- **Previewers**
    - Fixed Previewers bug [#1496](https://github.com/PrismJS/prism/issues/1496) ([#1497](https://github.com/PrismJS/prism/issues/1497)) [`4b56f3c1`](https://github.com/PrismJS/prism/commit/4b56f3c1)
- **Show Invisibles**
    - Updated styles of show invisibles ([#1607](https://github.com/PrismJS/prism/issues/1607)) [`2ba62268`](https://github.com/PrismJS/prism/commit/2ba62268)
    - Corrected load order of Show Invisibles ([#1612](https://github.com/PrismJS/prism/issues/1612)) [`6e0c6e86`](https://github.com/PrismJS/prism/commit/6e0c6e86)
    - Show invisibles inside tokens ([#1610](https://github.com/PrismJS/prism/issues/1610)) [`1090b253`](https://github.com/PrismJS/prism/commit/1090b253)
- **Show Language**
    - Show Language plugin alias support and improvements ([#1683](https://github.com/PrismJS/prism/issues/1683)) [`4c66d72c`](https://github.com/PrismJS/prism/commit/4c66d72c)
- **Toolbar**
    - Toolbar: Minor improvements ([#1818](https://github.com/PrismJS/prism/issues/1818)) [`3ad47047`](https://github.com/PrismJS/prism/commit/3ad47047)

### Updated themes

- Normalized the font-size of pre and code ([#1791](https://github.com/PrismJS/prism/issues/1791)) [`878ef295`](https://github.com/PrismJS/prism/commit/878ef295)
- **Coy**
    - Correct typo ([#1508](https://github.com/PrismJS/prism/issues/1508)) [`c322fc80`](https://github.com/PrismJS/prism/commit/c322fc80)

### Other changes

- **Core**
    - `insertBefore` now correctly updates references ([#1531](https://github.com/PrismJS/prism/issues/1531)) [`9dfec340`](https://github.com/PrismJS/prism/commit/9dfec340)
    - Invoke `callback` after `after-highlight` hook ([#1588](https://github.com/PrismJS/prism/issues/1588)) [`bfbe4464`](https://github.com/PrismJS/prism/commit/bfbe4464)
    - Improve `Prism.util.type` performance ([#1545](https://github.com/PrismJS/prism/issues/1545)) [`2864fe24`](https://github.com/PrismJS/prism/commit/2864fe24)
    - Remove unused `insertBefore` overload ([#1631](https://github.com/PrismJS/prism/issues/1631)) [`39686e12`](https://github.com/PrismJS/prism/commit/39686e12)
    - Ignore duplicates in insertBefore ([#1628](https://github.com/PrismJS/prism/issues/1628)) [`d33d259c`](https://github.com/PrismJS/prism/commit/d33d259c)
    - Remove the Prism.tokenize language parameter ([#1654](https://github.com/PrismJS/prism/issues/1654)) [`fbf0b094`](https://github.com/PrismJS/prism/commit/fbf0b094)
    - Call `insert-before` hook properly ([#1709](https://github.com/PrismJS/prism/issues/1709)) [`393ab164`](https://github.com/PrismJS/prism/commit/393ab164)
    - Improved languages.DFS and util.clone ([#1506](https://github.com/PrismJS/prism/issues/1506)) [`152a68ef`](https://github.com/PrismJS/prism/commit/152a68ef)
    - Core: Avoid redeclaring variables in util.clone ([#1778](https://github.com/PrismJS/prism/issues/1778)) [`b06f532f`](https://github.com/PrismJS/prism/commit/b06f532f)
    - Made prism-core a little more editor friendly ([#1776](https://github.com/PrismJS/prism/issues/1776)) [`bac09f0a`](https://github.com/PrismJS/prism/commit/bac09f0a)
    - Applied Array.isArray ([#1804](https://github.com/PrismJS/prism/issues/1804)) [`11d0f75e`](https://github.com/PrismJS/prism/commit/11d0f75e)
- **Infrastructure**
    - Linkify changelog more + add missing PR references [`2a100db7`](https://github.com/PrismJS/prism/commit/2a100db7)
    - Set default indentation size ([#1516](https://github.com/PrismJS/prism/issues/1516)) [`e63d1597`](https://github.com/PrismJS/prism/commit/e63d1597)
    - Add travis repo badge to readme ([#1561](https://github.com/PrismJS/prism/issues/1561)) [`716923f4`](https://github.com/PrismJS/prism/commit/716923f4)
    - Update README.md ([#1553](https://github.com/PrismJS/prism/issues/1553)) [`6d1a2c61`](https://github.com/PrismJS/prism/commit/6d1a2c61)
    - Mention Prism Themes in README ([#1625](https://github.com/PrismJS/prism/issues/1625)) [`5db04656`](https://github.com/PrismJS/prism/commit/5db04656)
    - Fixed CHANGELOG.md ([#1707](https://github.com/PrismJS/prism/issues/1707)) [`b1f8a65d`](https://github.com/PrismJS/prism/commit/b1f8a65d) ([#1704](https://github.com/PrismJS/prism/issues/1704)) [`66d2104a`](https://github.com/PrismJS/prism/commit/66d2104a)
    - Change tested NodeJS versions ([#1651](https://github.com/PrismJS/prism/issues/1651)) [`6ec71e0b`](https://github.com/PrismJS/prism/commit/6ec71e0b)
    - Inline regex source with gulp ([#1537](https://github.com/PrismJS/prism/issues/1537)) [`e894fc89`](https://github.com/PrismJS/prism/commit/e894fc89) ([#1716](https://github.com/PrismJS/prism/issues/1716)) [`217a6ea4`](https://github.com/PrismJS/prism/commit/217a6ea4)
    - Improve gulp error messages with pump ([#1741](https://github.com/PrismJS/prism/issues/1741)) [`671f4ca0`](https://github.com/PrismJS/prism/commit/671f4ca0)
    - Update gulp to version 4.0.0 ([#1779](https://github.com/PrismJS/prism/issues/1779)) [`06627f6a`](https://github.com/PrismJS/prism/commit/06627f6a)
    - gulp: Refactoring ([#1780](https://github.com/PrismJS/prism/issues/1780)) [`6c9fe257`](https://github.com/PrismJS/prism/commit/6c9fe257)
    - npm: Updated all dependencies ([#1742](https://github.com/PrismJS/prism/issues/1742)) [`9d908d5a`](https://github.com/PrismJS/prism/commit/9d908d5a)
    - Tests: Pretty-printed token stream ([#1801](https://github.com/PrismJS/prism/issues/1801)) [`9ea6d600`](https://github.com/PrismJS/prism/commit/9ea6d600)
    - Refactored tests ([#1795](https://github.com/PrismJS/prism/issues/1795)) [`832a9643`](https://github.com/PrismJS/prism/commit/832a9643)
    - Added issue templates ([#1805](https://github.com/PrismJS/prism/issues/1805)) [`dedb475f`](https://github.com/PrismJS/prism/commit/dedb475f)
    - npm: Fixed `test` script ([#1809](https://github.com/PrismJS/prism/issues/1809)) [`bc649dfa`](https://github.com/PrismJS/prism/commit/bc649dfa)
    - Add command to generate CHANGELOG [`212666d3`](https://github.com/PrismJS/prism/commit/212666d3)
    - Name in composer.json set to lowercase ([#1824](https://github.com/PrismJS/prism/issues/1824)) [`4f78f1d6`](https://github.com/PrismJS/prism/commit/4f78f1d6)
    - Added alias tests ([#1832](https://github.com/PrismJS/prism/issues/1832)) [`5c1a6fb2`](https://github.com/PrismJS/prism/commit/5c1a6fb2)
    - Travis: Fail when changed files are detected ([#1819](https://github.com/PrismJS/prism/issues/1819)) [`66b44e3b`](https://github.com/PrismJS/prism/commit/66b44e3b)
    - Tests: Additional checks for Prism functions ([#1803](https://github.com/PrismJS/prism/issues/1803)) [`c3e74ea3`](https://github.com/PrismJS/prism/commit/c3e74ea3)
    - Adjusted .npmignore ([#1834](https://github.com/PrismJS/prism/issues/1834)) [`29a30c62`](https://github.com/PrismJS/prism/commit/29a30c62)
- **Website**
    - Add Python triple-quoted strings "known failure" ([#1449](https://github.com/PrismJS/prism/issues/1449)) [`334c7bca`](https://github.com/PrismJS/prism/commit/334c7bca)
    - Updated index.html to fix broken instructions ([#1462](https://github.com/PrismJS/prism/issues/1462)) [`7418dfdd`](https://github.com/PrismJS/prism/commit/7418dfdd)
    - Improve download page typography ([#1484](https://github.com/PrismJS/prism/issues/1484)) [`b1c2f4df`](https://github.com/PrismJS/prism/commit/b1c2f4df)
    - Fixed peer dependencies in download page ([#1491](https://github.com/PrismJS/prism/issues/1491)) [`9d15ff6e`](https://github.com/PrismJS/prism/commit/9d15ff6e)
    - Fixed empty link in extending ([#1507](https://github.com/PrismJS/prism/issues/1507)) [`74916d48`](https://github.com/PrismJS/prism/commit/74916d48)
    - Display language aliases ([#1626](https://github.com/PrismJS/prism/issues/1626)) [`654b527b`](https://github.com/PrismJS/prism/commit/654b527b)
    - Clean up Previewers' page ([#1630](https://github.com/PrismJS/prism/issues/1630)) [`b0d1823c`](https://github.com/PrismJS/prism/commit/b0d1823c)
    - Updated website table of contents styles ([#1681](https://github.com/PrismJS/prism/issues/1681)) [`efdd96c3`](https://github.com/PrismJS/prism/commit/efdd96c3)
    - Added new third-party tutorial for using Prism in Gutenberg ([#1701](https://github.com/PrismJS/prism/issues/1701)) [`ff9ccbe5`](https://github.com/PrismJS/prism/commit/ff9ccbe5)
    - Remove dead tutorial ([#1702](https://github.com/PrismJS/prism/issues/1702)) [`e2d3bc7e`](https://github.com/PrismJS/prism/commit/e2d3bc7e)
    - Fix downloads page fetching from GitHub([#1684](https://github.com/PrismJS/prism/issues/1684)) [`dbd3555e`](https://github.com/PrismJS/prism/commit/dbd3555e)
    - Remove parentheses from download page ([#1627](https://github.com/PrismJS/prism/issues/1627)) [`2ce0666d`](https://github.com/PrismJS/prism/commit/2ce0666d)
    - Line Numbers plugin instructions clarifications ([#1719](https://github.com/PrismJS/prism/issues/1719)) [`00f4f04f`](https://github.com/PrismJS/prism/commit/00f4f04f)
    - Fixed Toolbar plugin example ([#1726](https://github.com/PrismJS/prism/issues/1726)) [`5311ca32`](https://github.com/PrismJS/prism/commit/5311ca32)
    - Test page: Show tokens option ([#1757](https://github.com/PrismJS/prism/issues/1757)) [`729cb28b`](https://github.com/PrismJS/prism/commit/729cb28b)
    - Some encouragement for visitors of PrismJS.com to request new languages ([#1760](https://github.com/PrismJS/prism/issues/1760)) [`ea769e0b`](https://github.com/PrismJS/prism/commit/ea769e0b)
    - Docs: Added missing parameter ([#1774](https://github.com/PrismJS/prism/issues/1774)) [`18f2921d`](https://github.com/PrismJS/prism/commit/18f2921d)
    - More persistent test page ([#1529](https://github.com/PrismJS/prism/issues/1529)) [`3100fa31`](https://github.com/PrismJS/prism/commit/3100fa31)
    - Added scripts directory ([#1781](https://github.com/PrismJS/prism/issues/1781)) [`439ea1ee`](https://github.com/PrismJS/prism/commit/439ea1ee)
    - Fixed download page ([#1811](https://github.com/PrismJS/prism/issues/1811)) [`77c57446`](https://github.com/PrismJS/prism/commit/77c57446)

## 1.15.0 (2018-06-16)

### New components

- **Template Tookit 2** ([#1418](https://github.com/PrismJS/prism/issues/1418)) [[`e063992`](https://github.com/PrismJS/prism/commit/e063992)]
- **XQuery** ([#1411](https://github.com/PrismJS/prism/issues/1411)) [[`e326cb0`](https://github.com/PrismJS/prism/commit/e326cb0)]
- **TAP** ([#1430](https://github.com/PrismJS/prism/issues/1430)) [[`8c2b71f`](https://github.com/PrismJS/prism/commit/8c2b71f)]

### Updated components

- **HTTP**
    - Absolute path is a valid request uri ([#1388](https://github.com/PrismJS/prism/issues/1388)) [[`f6e81cb`](https://github.com/PrismJS/prism/commit/f6e81cb)]
- **Kotlin**
    - Add keywords of Kotlin and modify it's number pattern. ([#1389](https://github.com/PrismJS/prism/issues/1389)) [[`1bf73b0`](https://github.com/PrismJS/prism/commit/1bf73b0)]
    - Add `typealias` keyword ([#1437](https://github.com/PrismJS/prism/issues/1437)) [[`a21fdee`](https://github.com/PrismJS/prism/commit/a21fdee)]
- **JavaScript**
    - Improve Regexp pattern [[`5b043cf`](https://github.com/PrismJS/prism/commit/5b043cf)]
    - Add support for one level of nesting inside template strings. Fix [#1397](https://github.com/PrismJS/prism/issues/1397) [[`db2d0eb`](https://github.com/PrismJS/prism/commit/db2d0eb)]
- **Elixir**
    - Elixir: Fix attributes consuming punctuation. Fix [#1392](https://github.com/PrismJS/prism/issues/1392) [[`dac0485`](https://github.com/PrismJS/prism/commit/dac0485)]
- **Bash**
    - Change reserved keyword reference ([#1396](https://github.com/PrismJS/prism/issues/1396)) [[`b94f01f`](https://github.com/PrismJS/prism/commit/b94f01f)]
- **PowerShell**
    - Allow for one level of nesting in expressions inside strings. Fix [#1407](https://github.com/PrismJS/prism/issues/1407) [[`9272d6f`](https://github.com/PrismJS/prism/commit/9272d6f)]
- **JSX**
    - Allow for two levels of nesting inside JSX tags. Fix [#1408](https://github.com/PrismJS/prism/issues/1408) [[`f1cd7c5`](https://github.com/PrismJS/prism/commit/f1cd7c5)]
    - Add support for fragments short syntax. Fix [#1421](https://github.com/PrismJS/prism/issues/1421) [[`38ce121`](https://github.com/PrismJS/prism/commit/38ce121)]
- **Pascal**
    - Add `objectpascal` as an alias to `pascal` ([#1426](https://github.com/PrismJS/prism/issues/1426)) [[`a0bfc84`](https://github.com/PrismJS/prism/commit/a0bfc84)]
- **Swift**
    - Fix Swift 'protocol' keyword ([#1440](https://github.com/PrismJS/prism/issues/1440)) [[`081e318`](https://github.com/PrismJS/prism/commit/081e318)]

### Updated plugins

- **File Highlight**
    - Fix issue causing the Download button to show up on every code blocks. [[`cd22499`](https://github.com/PrismJS/prism/commit/cd22499)]
    - Simplify lang regex on File Highlight plugin ([#1399](https://github.com/PrismJS/prism/issues/1399)) [[`7bc9a4a`](https://github.com/PrismJS/prism/commit/7bc9a4a)]
- **Show Language**
    - Don't process language if block language not set ([#1410](https://github.com/PrismJS/prism/issues/1410)) [[`c111869`](https://github.com/PrismJS/prism/commit/c111869)]
- **Autoloader**
    - ASP.NET should require C# [[`fa328bb`](https://github.com/PrismJS/prism/commit/fa328bb)]
- **Line Numbers**
    - Make line-numbers styles more specific ([#1434](https://github.com/PrismJS/prism/issues/1434), [#1435](https://github.com/PrismJS/prism/issues/1435)) [[`9ee4f54`](https://github.com/PrismJS/prism/commit/9ee4f54)]

### Updated themes

- Add .token.class-name to rest of themes ([#1360](https://github.com/PrismJS/prism/issues/1360)) [[`f356dfe`](https://github.com/PrismJS/prism/commit/f356dfe)]

### Other changes

- **Website**
    - Site now loads over HTTPS!
    - Use HTTPS / canonical URLs ([#1390](https://github.com/PrismJS/prism/issues/1390)) [[`95146c8`](https://github.com/PrismJS/prism/commit/95146c8)]
    - Added Angular tutorial link [[`c436a7c`](https://github.com/PrismJS/prism/commit/c436a7c)]
    - Use rel="icon" instead of rel="shortcut icon" ([#1398](https://github.com/PrismJS/prism/issues/1398)) [[`d95f8fb`](https://github.com/PrismJS/prism/commit/d95f8fb)]
    - Fix Download page not handling multiple dependencies when from Redownload URL [[`c2ff248`](https://github.com/PrismJS/prism/commit/c2ff248)]
    - Update documentation for node & webpack usage [[`1e99e96`](https://github.com/PrismJS/prism/commit/1e99e96)]
- Handle optional dependencies in `loadLanguages()` ([#1417](https://github.com/PrismJS/prism/issues/1417)) [[`84935ac`](https://github.com/PrismJS/prism/commit/84935ac)]
- Add Chinese translation [[`f2b1964`](https://github.com/PrismJS/prism/commit/f2b1964)]

## 1.14.0 (2018-04-11)

### New components

- **GEDCOM** ([#1385](https://github.com/PrismJS/prism/issues/1385)) [[`6e0b20a`](https://github.com/PrismJS/prism/commit/6e0b20a)]
- **Lisp** ([#1297](https://github.com/PrismJS/prism/issues/1297)) [[`46468f8`](https://github.com/PrismJS/prism/commit/46468f8)]
- **Markup Templating** ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
- **Soy** ([#1387](https://github.com/PrismJS/prism/issues/1387)) [[`b4509bf`](https://github.com/PrismJS/prism/commit/b4509bf)]
- **Velocity** ([#1378](https://github.com/PrismJS/prism/issues/1378)) [[`5a524f7`](https://github.com/PrismJS/prism/commit/5a524f7)]
- **Visual Basic** ([#1382](https://github.com/PrismJS/prism/issues/1382)) [[`c673ec2`](https://github.com/PrismJS/prism/commit/c673ec2)]
- **WebAssembly** ([#1386](https://github.com/PrismJS/prism/issues/1386)) [[`c28d8c5`](https://github.com/PrismJS/prism/commit/c28d8c5)]

### Updated components

- **Bash**:
    - Add curl to the list of common functions. Close [#1160](https://github.com/PrismJS/prism/issues/1160) [[`1bfc084`](https://github.com/PrismJS/prism/commit/1bfc084)]
- **C-like**:
    - Make single-line comments greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337). Make sure [#1340](https://github.com/PrismJS/prism/issues/1340) stays fixed. [[`571f2c5`](https://github.com/PrismJS/prism/commit/571f2c5)]
- **C#**:
    - More generic class-name highlighting. Fix [#1365](https://github.com/PrismJS/prism/issues/1365) [[`a6837d2`](https://github.com/PrismJS/prism/commit/a6837d2)]
    - More specific class-name highlighting. Fix [#1371](https://github.com/PrismJS/prism/issues/1371) [[`0a95f69`](https://github.com/PrismJS/prism/commit/0a95f69)]
- **Eiffel**:
    - Fix verbatim strings. Fix [#1379](https://github.com/PrismJS/prism/issues/1379) [[`04df41b`](https://github.com/PrismJS/prism/commit/04df41b)]
- **Elixir**
    - Make regexps greedy, remove comment hacks. Update known failures and tests. [[`e93d61f`](https://github.com/PrismJS/prism/commit/e93d61f)]
- **ERB**:
    - Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
- **Fortran**:
    - Make single-line comments greedy. Update known failures and tests. [[`c083b78`](https://github.com/PrismJS/prism/commit/c083b78)]
- **Handlebars**:
    - Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
- **Java**:
    - Add support for generics. Fix [#1351](https://github.com/PrismJS/prism/issues/1351) [[`a5cf302`](https://github.com/PrismJS/prism/commit/a5cf302)]
- **JavaScript**:
    - Add support for constants. Fix [#1348](https://github.com/PrismJS/prism/issues/1348) [[`9084481`](https://github.com/PrismJS/prism/commit/9084481)]
    - Improve Regex matching [[`172d351`](https://github.com/PrismJS/prism/commit/172d351)]
- **JSX**:
    - Fix highlighting of empty objects. Fix [#1364](https://github.com/PrismJS/prism/issues/1364) [[`b26bbb8`](https://github.com/PrismJS/prism/commit/b26bbb8)]
- **Monkey**:
    - Make comments greedy. Update known failures and tests. [[`d7b2b43`](https://github.com/PrismJS/prism/commit/d7b2b43)]
- **PHP**:
    - Make highlighting work properly in NodeJS ([#1367](https://github.com/PrismJS/prism/issues/1367)) [[`5f9c078`](https://github.com/PrismJS/prism/commit/5f9c078)]
- **Puppet**:
    - Make heredoc, comments, regexps and strings greedy. Update known failures and tests. [[`0c139d1`](https://github.com/PrismJS/prism/commit/0c139d1)]
- **Q**:
    - Make comments greedy. Update known failures and tests. [[`a0f5081`](https://github.com/PrismJS/prism/commit/a0f5081)]
- **Ruby**:
    - Make multi-line comments greedy, remove single-line comment hack. Update known failures and tests. [[`b0e34fb`](https://github.com/PrismJS/prism/commit/b0e34fb)]
- **SQL**:
    - Add missing keywords. Fix [#1374](https://github.com/PrismJS/prism/issues/1374) [[`238b195`](https://github.com/PrismJS/prism/commit/238b195)]

### Updated plugins

- **Command Line**:
    - Command Line: Allow specifying output prefix using data-filter-output attribute. ([#856](https://github.com/PrismJS/prism/issues/856)) [[`094d546`](https://github.com/PrismJS/prism/commit/094d546)]
- **File Highlight**:
    - Add option to provide a download button, when used with the Toolbar plugin. Fix [#1030](https://github.com/PrismJS/prism/issues/1030) [[`9f22952`](https://github.com/PrismJS/prism/commit/9f22952)]

### Updated themes

- **Default**:
    - Reach AA contrast ratio level ([#1296](https://github.com/PrismJS/prism/issues/1296)) [[`8aea939`](https://github.com/PrismJS/prism/commit/8aea939)]

### Other changes

- Website: Remove broken third-party tutorials from homepage [[`0efd6e1`](https://github.com/PrismJS/prism/commit/0efd6e1)]
- Docs: Mention `loadLanguages()` function on homepage in the nodeJS section. Close [#972](https://github.com/PrismJS/prism/issues/972), close [#593](https://github.com/PrismJS/prism/issues/593) [[`4a14d20`](https://github.com/PrismJS/prism/commit/4a14d20)]
- Core: Greedy patterns should always be matched against the full string. Fix [#1355](https://github.com/PrismJS/prism/issues/1355) [[`294efaa`](https://github.com/PrismJS/prism/commit/294efaa)]
- Crystal: Update known failures. [[`e1d2d42`](https://github.com/PrismJS/prism/commit/e1d2d42)]
- D: Update known failures and tests. [[`13d9991`](https://github.com/PrismJS/prism/commit/13d9991)]
- Markdown: Update known failures. [[`5b6c76d`](https://github.com/PrismJS/prism/commit/5b6c76d)]
- Matlab: Update known failures. [[`259b6fc`](https://github.com/PrismJS/prism/commit/259b6fc)]
- Website: Remove non-existent anchor to failures. Reword on homepage to make is less misleading. [[`8c0911a`](https://github.com/PrismJS/prism/commit/8c0911a)]
- Website: Add link to Keep Markup plugin in FAQ [[`e8cb6d4`](https://github.com/PrismJS/prism/commit/e8cb6d4)]
- Test suite: Memory leak in vm.runInNewContext() seems fixed. Revert [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)] to drastically improve tests execution time. [[`9bceece`](https://github.com/PrismJS/prism/commit/9bceece), [`7c7602b`](https://github.com/PrismJS/prism/commit/7c7602b)]
- Gulp: Don't minify `components/index.js` [[`689227b`](https://github.com/PrismJS/prism/commit/689227b)]
- Website: Fix theme selection on Download page, when theme is in query string or hash. [[`b4d3063`](https://github.com/PrismJS/prism/commit/b4d3063)]
- Update JSPM config to also include unminified components. Close [#995](https://github.com/PrismJS/prism/issues/995) [[`218f160`](https://github.com/PrismJS/prism/commit/218f160)]
- Core: Fix support for language alias containing dash `-` [[`659ea31`](https://github.com/PrismJS/prism/commit/659ea31)]

## 1.13.0 (2018-03-21)

### New components

- **ERB** [[`e6213ac`](https://github.com/PrismJS/prism/commit/e6213ac)]
- **PL/SQL** ([#1338](https://github.com/PrismJS/prism/issues/1338)) [[`3599e6a`](https://github.com/PrismJS/prism/commit/3599e6a)]

### Updated components

- **JSX**:
    - Add support for plain text inside tags ([#1357](https://github.com/PrismJS/prism/issues/1357)) [[`2b8321d`](https://github.com/PrismJS/prism/commit/2b8321d)]
- **Markup**:
    - Make tags greedy. Fix [#1356](https://github.com/PrismJS/prism/issues/1356) [[`af834be`](https://github.com/PrismJS/prism/commit/af834be)]
- **Powershell**:
    - Add lookbehind to fix function interpolation inside strings. Fix [#1361](https://github.com/PrismJS/prism/issues/1361) [[`d2c026e`](https://github.com/PrismJS/prism/commit/d2c026e)]
- **Rust**:
    - Improve char pattern so that lifetime annotations are matched better. Fix [#1353](https://github.com/PrismJS/prism/issues/1353) [[`efdccbf`](https://github.com/PrismJS/prism/commit/efdccbf)]

### Updated themes

- **Default**:
    - Add color for class names [[`8572474`](https://github.com/PrismJS/prism/commit/8572474)]
- **Coy**:
    - Inherit pre's height on code, so it does not break on Download page. [[`c6c7fd1`](https://github.com/PrismJS/prism/commit/c6c7fd1)]

### Other changes

- Website: Auto-generate example headers [[`c3ed5b5`](https://github.com/PrismJS/prism/commit/c3ed5b5)]
- Core: Allow cloning of circular structures. ([#1345](https://github.com/PrismJS/prism/issues/1345)) [[`f90d555`](https://github.com/PrismJS/prism/commit/f90d555)]
- Core: Generate components.js from components.json and make it exportable to nodeJS. ([#1354](https://github.com/PrismJS/prism/issues/1354)) [[`ba60df0`](https://github.com/PrismJS/prism/commit/ba60df0)]
- Website: Improve appearance of theme selector [[`0460cad`](https://github.com/PrismJS/prism/commit/0460cad)]
- Website: Check stored theme by default + link both theme selectors together. Close [#1038](https://github.com/PrismJS/prism/issues/1038) [[`212dd4e`](https://github.com/PrismJS/prism/commit/212dd4e)]
- Tests: Use the new components.js file directly [[`0e1a8b7`](https://github.com/PrismJS/prism/commit/0e1a8b7)]
- Update .npmignore Close [#1274](https://github.com/PrismJS/prism/issues/1274) [[`a52319a`](https://github.com/PrismJS/prism/commit/a52319a)]
- Add a loadLanguages() function for easy component loading on NodeJS ([#1359](https://github.com/PrismJS/prism/issues/1359)) [[`a5331a6`](https://github.com/PrismJS/prism/commit/a5331a6)]

## 1.12.2 (2018-03-08)

### Other changes

- Test against NodeJS 4, 6, 8 and 9 ([#1329](https://github.com/PrismJS/prism/issues/1329)) [[`97b7d0a`](https://github.com/PrismJS/prism/commit/97b7d0a)]
- Stop testing against NodeJS 0.10 and 0.12 [[`df01b1b`](https://github.com/PrismJS/prism/commit/df01b1b)]

## 1.12.1 (2018-03-08)

### Updated components

- **C-like**:
    - Revert [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)] to fix [#1340](https://github.com/PrismJS/prism/issues/1340). Reopened [#1337](https://github.com/PrismJS/prism/issues/1337). [[`cebacdf`](https://github.com/PrismJS/prism/commit/cebacdf)]
- **JSX**:
    - Allow for one level of nested curly braces inside tag attribute value. Fix [#1335](https://github.com/PrismJS/prism/issues/1335) [[`05bf67d`](https://github.com/PrismJS/prism/commit/05bf67d)]
- **Ruby**:
    - Ensure module syntax is not confused with symbols. Fix [#1336](https://github.com/PrismJS/prism/issues/1336) [[`31a2a69`](https://github.com/PrismJS/prism/commit/31a2a69)]

## 1.12.0 (2018-03-07)

### New components

- **ARFF** ([#1327](https://github.com/PrismJS/prism/issues/1327)) [[`0bc98ac`](https://github.com/PrismJS/prism/commit/0bc98ac)]
- **Clojure** ([#1311](https://github.com/PrismJS/prism/issues/1311)) [[`8b4d3bd`](https://github.com/PrismJS/prism/commit/8b4d3bd)]
- **Liquid** ([#1326](https://github.com/PrismJS/prism/issues/1326)) [[`f0b2c9e`](https://github.com/PrismJS/prism/commit/f0b2c9e)]

### Updated components

- **Bash**:
    - Add shell as an alias ([#1321](https://github.com/PrismJS/prism/issues/1321)) [[`67e16a2`](https://github.com/PrismJS/prism/commit/67e16a2)]
    - Add support for quoted command substitution. Fix [#1287](https://github.com/PrismJS/prism/issues/1287) [[`63fc215`](https://github.com/PrismJS/prism/commit/63fc215)]
- **C#**:
    - Add "dotnet" alias. [[`405867c`](https://github.com/PrismJS/prism/commit/405867c)]
- **C-like**:
    - Change order of comment patterns and make multi-line one greedy. Fix [#1337](https://github.com/PrismJS/prism/issues/1337) [[`b98e5b9`](https://github.com/PrismJS/prism/commit/b98e5b9)]
- **NSIS**:
    - Add support for NSIS 3.03 ([#1288](https://github.com/PrismJS/prism/issues/1288)) [[`bd1e98b`](https://github.com/PrismJS/prism/commit/bd1e98b)]
    - Add missing NSIS commands ([#1289](https://github.com/PrismJS/prism/issues/1289)) [[`ad2948f`](https://github.com/PrismJS/prism/commit/ad2948f)]
- **PHP**:
    - Add support for string interpolation inside double-quoted strings. Fix [#1146](https://github.com/PrismJS/prism/issues/1146) [[`9f1f8d6`](https://github.com/PrismJS/prism/commit/9f1f8d6)]
    - Add support for Heredoc and Nowdoc strings [[`5d7223c`](https://github.com/PrismJS/prism/commit/5d7223c)]
    - Fix shell-comment failure now that strings are greedy [[`ad25d22`](https://github.com/PrismJS/prism/commit/ad25d22)]
- **PowerShell**:
    - Add support for two levels of nested brackets inside namespace pattern. Fixes [#1317](https://github.com/PrismJS/prism/issues/1317) [[`3bc3e9c`](https://github.com/PrismJS/prism/commit/3bc3e9c)]
- **Ruby**:
    - Add keywords "protected", "private" and "public" [[`4593837`](https://github.com/PrismJS/prism/commit/4593837)]
- **Rust**:
    - Add support for lifetime-annotation and => operator. Fix [#1339](https://github.com/PrismJS/prism/issues/1339) [[`926f6f8`](https://github.com/PrismJS/prism/commit/926f6f8)]
- **Scheme**:
    - Don't highlight first number of a list as a function. Fix [#1331](https://github.com/PrismJS/prism/issues/1331) [[`51bff80`](https://github.com/PrismJS/prism/commit/51bff80)]
- **SQL**:
    - Add missing keywords and functions, fix numbers [[`de29d4a`](https://github.com/PrismJS/prism/commit/de29d4a)]

### Updated plugins

- **Autolinker**:
    - Allow more chars in query string and hash to match more URLs. Fix [#1142](https://github.com/PrismJS/prism/issues/1142) [[`109bd6f`](https://github.com/PrismJS/prism/commit/109bd6f)]
- **Copy to Clipboard**:
    - Bump ClipboardJS to 2.0.0 and remove hack ([#1314](https://github.com/PrismJS/prism/issues/1314)) [[`e9f410e`](https://github.com/PrismJS/prism/commit/e9f410e)]
- **Toolbar**:
    - Prevent scrolling toolbar with content ([#1305](https://github.com/PrismJS/prism/issues/1305), [#1314](https://github.com/PrismJS/prism/issues/1314)) [[`84eeb89`](https://github.com/PrismJS/prism/commit/84eeb89)]
- **Unescaped Markup**:
    - Use msMatchesSelector for IE11 and below. Fix [#1302](https://github.com/PrismJS/prism/issues/1302) [[`c246c1a`](https://github.com/PrismJS/prism/commit/c246c1a)]
- **WebPlatform Docs**:
    - WebPlatform Docs plugin: Fix links. Fixes [#129
Download .txt
gitextract_l38tlemh/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   ├── feature_request.md
│   │   ├── highlighting-bug-report.md
│   │   └── new-language-request.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── danger.yml
│       ├── test.yml
│       └── website-rebuild.yml
├── .gitignore
├── .jsdoc.json
├── .npmignore
├── .prettierrc.js
├── .vscode/
│   └── settings.json
├── CHANGELOG.md
├── CNAME
├── LICENSE
├── MAINTAINERS.md
├── README.md
├── SECURITY.md
├── _headers
├── benchmark/
│   ├── benchmark.js
│   └── config.js
├── composer.json
├── dangerfile.js
├── eslint.config.mjs
├── package.json
├── scripts/
│   ├── build.js
│   ├── create-changelog.js
│   ├── linkify-changelog.js
│   └── tasks.js
├── src/
│   ├── auto-start.js
│   ├── components.json
│   ├── config.js
│   ├── core/
│   │   ├── classes/
│   │   │   ├── component-registry.js
│   │   │   ├── hooks.js
│   │   │   ├── language-registry.js
│   │   │   ├── language.js
│   │   │   ├── list.js
│   │   │   ├── plugin-registry.js
│   │   │   ├── plugin.js
│   │   │   ├── prism.js
│   │   │   └── token.js
│   │   ├── highlight-all.js
│   │   ├── highlight-element.js
│   │   ├── highlight.js
│   │   ├── linked-list.js
│   │   ├── prism.js
│   │   ├── registry.js
│   │   ├── stringify.js
│   │   └── tokenize/
│   │       ├── match.js
│   │       ├── tokenize.js
│   │       └── util.js
│   ├── core.js
│   ├── global.js
│   ├── index.js
│   ├── languages/
│   │   ├── abap.js
│   │   ├── abnf.js
│   │   ├── actionscript.js
│   │   ├── ada.js
│   │   ├── agda.js
│   │   ├── al.js
│   │   ├── antlr4.js
│   │   ├── apacheconf.js
│   │   ├── apex.js
│   │   ├── apl.js
│   │   ├── applescript.js
│   │   ├── aql.js
│   │   ├── arduino.js
│   │   ├── arff.js
│   │   ├── armasm.js
│   │   ├── arturo.js
│   │   ├── asciidoc.js
│   │   ├── asm6502.js
│   │   ├── asmatmel.js
│   │   ├── aspnet.js
│   │   ├── autohotkey.js
│   │   ├── autoit.js
│   │   ├── avisynth.js
│   │   ├── avro-idl.js
│   │   ├── awk.js
│   │   ├── bash.js
│   │   ├── basic.js
│   │   ├── batch.js
│   │   ├── bbcode.js
│   │   ├── bbj.js
│   │   ├── bicep.js
│   │   ├── birb.js
│   │   ├── bison.js
│   │   ├── bnf.js
│   │   ├── bqn.js
│   │   ├── brainfuck.js
│   │   ├── brightscript.js
│   │   ├── bro.js
│   │   ├── bsl.js
│   │   ├── c.js
│   │   ├── cfscript.js
│   │   ├── chaiscript.js
│   │   ├── cil.js
│   │   ├── cilkc.js
│   │   ├── cilkcpp.js
│   │   ├── clike.js
│   │   ├── clojure.js
│   │   ├── cmake.js
│   │   ├── cobol.js
│   │   ├── coffeescript.js
│   │   ├── concurnas.js
│   │   ├── cooklang.js
│   │   ├── coq.js
│   │   ├── cpp.js
│   │   ├── crystal.js
│   │   ├── csharp.js
│   │   ├── cshtml.js
│   │   ├── csp.js
│   │   ├── css-extras.js
│   │   ├── css-selector.js
│   │   ├── css.js
│   │   ├── csv.js
│   │   ├── cue.js
│   │   ├── cypher.js
│   │   ├── d.js
│   │   ├── dart.js
│   │   ├── dataweave.js
│   │   ├── dax.js
│   │   ├── dhall.js
│   │   ├── diff.js
│   │   ├── django.js
│   │   ├── dns-zone-file.js
│   │   ├── docker.js
│   │   ├── dot.js
│   │   ├── ebnf.js
│   │   ├── editorconfig.js
│   │   ├── eiffel.js
│   │   ├── ejs.js
│   │   ├── elixir.js
│   │   ├── elm.js
│   │   ├── erb.js
│   │   ├── erlang.js
│   │   ├── etlua.js
│   │   ├── excel-formula.js
│   │   ├── factor.js
│   │   ├── false.js
│   │   ├── firestore-security-rules.js
│   │   ├── flow.js
│   │   ├── fortran.js
│   │   ├── fsharp.js
│   │   ├── ftl.js
│   │   ├── gap.js
│   │   ├── gcode.js
│   │   ├── gdscript.js
│   │   ├── gedcom.js
│   │   ├── gettext.js
│   │   ├── gherkin.js
│   │   ├── git.js
│   │   ├── glsl.js
│   │   ├── gml.js
│   │   ├── gn.js
│   │   ├── go-module.js
│   │   ├── go.js
│   │   ├── gradle.js
│   │   ├── graphql.js
│   │   ├── groovy.js
│   │   ├── haml.js
│   │   ├── handlebars.js
│   │   ├── haskell.js
│   │   ├── haxe.js
│   │   ├── hcl.js
│   │   ├── hlsl.js
│   │   ├── hoon.js
│   │   ├── hpkp.js
│   │   ├── hsts.js
│   │   ├── http.js
│   │   ├── ichigojam.js
│   │   ├── icon.js
│   │   ├── icu-message-format.js
│   │   ├── idris.js
│   │   ├── iecst.js
│   │   ├── ignore.js
│   │   ├── inform7.js
│   │   ├── ini.js
│   │   ├── io.js
│   │   ├── j.js
│   │   ├── java.js
│   │   ├── javadoc.js
│   │   ├── javadoclike.js
│   │   ├── javascript.js
│   │   ├── javastacktrace.js
│   │   ├── jexl.js
│   │   ├── jolie.js
│   │   ├── jq.js
│   │   ├── js-templates.js
│   │   ├── jsdoc.js
│   │   ├── json.js
│   │   ├── json5.js
│   │   ├── jsonp.js
│   │   ├── jsstacktrace.js
│   │   ├── jsx.js
│   │   ├── julia.js
│   │   ├── keepalived.js
│   │   ├── keyman.js
│   │   ├── kotlin.js
│   │   ├── kumir.js
│   │   ├── kusto.js
│   │   ├── latex.js
│   │   ├── latte.js
│   │   ├── less.js
│   │   ├── lilypond.js
│   │   ├── linker-script.js
│   │   ├── liquid.js
│   │   ├── lisp.js
│   │   ├── livescript.js
│   │   ├── llvm.js
│   │   ├── log.js
│   │   ├── lolcode.js
│   │   ├── lua.js
│   │   ├── magma.js
│   │   ├── makefile.js
│   │   ├── markdown.js
│   │   ├── markup.js
│   │   ├── mata.js
│   │   ├── matlab.js
│   │   ├── maxscript.js
│   │   ├── mel.js
│   │   ├── mermaid.js
│   │   ├── metafont.js
│   │   ├── mizar.js
│   │   ├── mongodb.js
│   │   ├── monkey.js
│   │   ├── moonscript.js
│   │   ├── n1ql.js
│   │   ├── n4js.js
│   │   ├── nand2tetris-hdl.js
│   │   ├── naniscript.js
│   │   ├── nasm.js
│   │   ├── neon.js
│   │   ├── nevod.js
│   │   ├── nginx.js
│   │   ├── nim.js
│   │   ├── nix.js
│   │   ├── nsis.js
│   │   ├── objectivec.js
│   │   ├── ocaml.js
│   │   ├── odin.js
│   │   ├── opencl-extensions.js
│   │   ├── opencl.js
│   │   ├── openqasm.js
│   │   ├── oz.js
│   │   ├── parigp.js
│   │   ├── parser.js
│   │   ├── pascal.js
│   │   ├── pascaligo.js
│   │   ├── pcaxis.js
│   │   ├── peoplecode.js
│   │   ├── perl.js
│   │   ├── php-extras.js
│   │   ├── php.js
│   │   ├── phpdoc.js
│   │   ├── plain.js
│   │   ├── plant-uml.js
│   │   ├── plsql.js
│   │   ├── powerquery.js
│   │   ├── powershell.js
│   │   ├── processing.js
│   │   ├── prolog.js
│   │   ├── promql.js
│   │   ├── properties.js
│   │   ├── protobuf.js
│   │   ├── psl.js
│   │   ├── pug.js
│   │   ├── puppet.js
│   │   ├── pure.js
│   │   ├── purebasic.js
│   │   ├── purescript.js
│   │   ├── python.js
│   │   ├── q.js
│   │   ├── qml.js
│   │   ├── qore.js
│   │   ├── qsharp.js
│   │   ├── r.js
│   │   ├── racket.js
│   │   ├── reason.js
│   │   ├── regex.js
│   │   ├── rego.js
│   │   ├── renpy.js
│   │   ├── rescript.js
│   │   ├── rest.js
│   │   ├── rip.js
│   │   ├── roboconf.js
│   │   ├── robotframework.js
│   │   ├── ruby.js
│   │   ├── rust.js
│   │   ├── sas.js
│   │   ├── sass.js
│   │   ├── scala.js
│   │   ├── scheme.js
│   │   ├── scss.js
│   │   ├── shell-session.js
│   │   ├── smali.js
│   │   ├── smalltalk.js
│   │   ├── smarty.js
│   │   ├── sml.js
│   │   ├── solidity.js
│   │   ├── solution-file.js
│   │   ├── soy.js
│   │   ├── sparql.js
│   │   ├── splunk-spl.js
│   │   ├── sqf.js
│   │   ├── sql.js
│   │   ├── squirrel.js
│   │   ├── stan.js
│   │   ├── stata.js
│   │   ├── stylus.js
│   │   ├── supercollider.js
│   │   ├── swift.js
│   │   ├── systemd.js
│   │   ├── t4-cs.js
│   │   ├── t4-vb.js
│   │   ├── tap.js
│   │   ├── tcl.js
│   │   ├── textile.js
│   │   ├── toml.js
│   │   ├── treeview.js
│   │   ├── tremor.js
│   │   ├── tsx.js
│   │   ├── tt2.js
│   │   ├── turtle.js
│   │   ├── twig.js
│   │   ├── typescript.js
│   │   ├── typoscript.js
│   │   ├── unrealscript.js
│   │   ├── uorazor.js
│   │   ├── uri.js
│   │   ├── v.js
│   │   ├── vala.js
│   │   ├── vbnet.js
│   │   ├── velocity.js
│   │   ├── verilog.js
│   │   ├── vhdl.js
│   │   ├── vim.js
│   │   ├── visual-basic.js
│   │   ├── warpscript.js
│   │   ├── wasm.js
│   │   ├── web-idl.js
│   │   ├── wgsl.js
│   │   ├── wiki.js
│   │   ├── wolfram.js
│   │   ├── wren.js
│   │   ├── xeora.js
│   │   ├── xml-doc.js
│   │   ├── xml.js
│   │   ├── xojo.js
│   │   ├── xquery.js
│   │   ├── yaml.js
│   │   ├── yang.js
│   │   └── zig.js
│   ├── load-languages.js
│   ├── plugins/
│   │   ├── autolinker/
│   │   │   ├── README.md
│   │   │   ├── autolinker.css
│   │   │   └── autolinker.js
│   │   ├── autoloader/
│   │   │   ├── README.md
│   │   │   ├── autoloader.js
│   │   │   └── demo.js
│   │   ├── command-line/
│   │   │   ├── README.md
│   │   │   ├── command-line.css
│   │   │   └── command-line.js
│   │   ├── copy-to-clipboard/
│   │   │   ├── README.md
│   │   │   └── copy-to-clipboard.js
│   │   ├── custom-class/
│   │   │   ├── README.md
│   │   │   └── custom-class.js
│   │   ├── data-uri-highlight/
│   │   │   ├── README.md
│   │   │   └── data-uri-highlight.js
│   │   ├── diff-highlight/
│   │   │   ├── README.md
│   │   │   ├── diff-highlight.css
│   │   │   └── diff-highlight.js
│   │   ├── download-button/
│   │   │   ├── README.md
│   │   │   └── download-button.js
│   │   ├── file-highlight/
│   │   │   ├── README.md
│   │   │   └── file-highlight.js
│   │   ├── filter-highlight-all/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   └── filter-highlight-all.js
│   │   ├── highlight-keywords/
│   │   │   ├── README.md
│   │   │   └── highlight-keywords.js
│   │   ├── inline-color/
│   │   │   ├── README.md
│   │   │   ├── inline-color.css
│   │   │   └── inline-color.js
│   │   ├── jsonp-highlight/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   └── jsonp-highlight.js
│   │   ├── keep-markup/
│   │   │   ├── README.md
│   │   │   └── keep-markup.js
│   │   ├── line-highlight/
│   │   │   ├── README.md
│   │   │   ├── line-highlight.css
│   │   │   └── line-highlight.js
│   │   ├── line-numbers/
│   │   │   ├── README.md
│   │   │   ├── line-numbers.css
│   │   │   └── line-numbers.js
│   │   ├── match-braces/
│   │   │   ├── README.md
│   │   │   ├── match-braces.css
│   │   │   └── match-braces.js
│   │   ├── normalize-whitespace/
│   │   │   ├── README.md
│   │   │   ├── demo.md
│   │   │   └── normalize-whitespace.js
│   │   ├── previewers/
│   │   │   ├── README.md
│   │   │   ├── previewers.css
│   │   │   └── previewers.js
│   │   ├── show-invisibles/
│   │   │   ├── README.md
│   │   │   ├── show-invisibles.css
│   │   │   └── show-invisibles.js
│   │   ├── show-language/
│   │   │   ├── README.md
│   │   │   └── show-language.js
│   │   ├── toolbar/
│   │   │   ├── README.md
│   │   │   ├── demo.js
│   │   │   ├── toolbar.css
│   │   │   └── toolbar.js
│   │   ├── treeview-icons/
│   │   │   ├── README.md
│   │   │   ├── treeview-icons.css
│   │   │   └── treeview-icons.js
│   │   ├── unescaped-markup/
│   │   │   ├── README.md
│   │   │   ├── unescaped-markup.css
│   │   │   └── unescaped-markup.js
│   │   └── wpd/
│   │       ├── README.md
│   │       ├── wpd.css
│   │       └── wpd.js
│   ├── prism.global.js
│   ├── shared/
│   │   ├── dom-util.js
│   │   ├── languages/
│   │   │   ├── patterns.js
│   │   │   ├── t4-templating.js
│   │   │   └── templating.js
│   │   ├── meta/
│   │   │   ├── alias-data.js
│   │   │   ├── all-languages-data.js
│   │   │   └── title-data.js
│   │   ├── tokenize-strings.js
│   │   └── util.js
│   ├── shared.js
│   ├── themes/
│   │   ├── coy.css
│   │   ├── dark.css
│   │   ├── funky.css
│   │   ├── okaidia.css
│   │   ├── prism.css
│   │   ├── solarizedlight.css
│   │   ├── tomorrow.css
│   │   └── twilight.css
│   ├── types.d.ts
│   └── util/
│       ├── async.js
│       ├── combine-callbacks.js
│       ├── extend.js
│       ├── grammar-patch.js
│       ├── insert.js
│       ├── iterables.js
│       ├── language-util.js
│       ├── objects.js
│       └── without-tokenize.js
├── tests/
│   ├── components-test.js
│   ├── core/
│   │   ├── greedy.js
│   │   └── registry.js
│   ├── coverage.js
│   ├── helper/
│   │   ├── args.js
│   │   ├── prism-dom-util.js
│   │   ├── prism-loader.js
│   │   ├── snapshot.js
│   │   ├── test-case.js
│   │   ├── test-discovery.js
│   │   ├── token-stream-transformer.js
│   │   └── util.js
│   ├── identifier-test.js
│   ├── languages/
│   │   ├── abap/
│   │   │   ├── comment_feature.test
│   │   │   ├── eol-comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-template_feature.test
│   │   │   └── string_feature.test
│   │   ├── abnf/
│   │   │   ├── comment_feature.test
│   │   │   ├── core-rule_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── repetition_feature.test
│   │   │   ├── rule_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── terminal_feature.test
│   │   ├── actionscript/
│   │   │   ├── keyword_feature.test
│   │   │   └── operator_feature.test
│   │   ├── ada/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── agda/
│   │   │   ├── comment_feature.test
│   │   │   ├── data_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── module_feature.test
│   │   │   └── record_feature.test
│   │   ├── al/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── antlr4/
│   │   │   ├── action_feature.test
│   │   │   ├── annotation_feature.test
│   │   │   ├── character-class_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── apacheconf/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive-block_feature.test
│   │   │   ├── directive-flags_feature.test
│   │   │   ├── directive-inline_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── apex/
│   │   │   ├── annotation_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── sql_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── trigger_feature.test
│   │   ├── apl/
│   │   │   ├── assignment_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── dfn_feature.test
│   │   │   ├── dyadic-operator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── monadic-operator_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── statement_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── system-function_feature.test
│   │   ├── applescript/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── aql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── arduino/
│   │   │   ├── builtin_feature.test
│   │   │   ├── constant_feature.test
│   │   │   └── keyword_feature.test
│   │   ├── arff/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── armasm/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directives_feature.test
│   │   │   ├── instruction_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── version-symbol_feature.test
│   │   ├── arturo/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── character_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── multistring_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── predicate_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── sugar_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── type_feature.test
│   │   ├── arturo!+bash/
│   │   │   └── sh-string_feature.test
│   │   ├── arturo!+css/
│   │   │   └── css-string_feature.test
│   │   ├── arturo!+javascript/
│   │   │   └── js-string_feature.test
│   │   ├── arturo!+markdown/
│   │   │   └── md-string_feature.test
│   │   ├── arturo!+markup/
│   │   │   └── html-string_feature.test
│   │   ├── arturo!+sql/
│   │   │   └── sql-string_feature.test
│   │   ├── asciidoc/
│   │   │   ├── admonition_feature.test
│   │   │   ├── attribute-entry_feature.test
│   │   │   ├── attributes_feature.test
│   │   │   ├── callout_feature.test
│   │   │   ├── comment-block_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── entity_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── indented-block_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── issue3480.test
│   │   │   ├── line-continuation_feature.test
│   │   │   ├── list-label_feature.test
│   │   │   ├── list-punctuation_feature.test
│   │   │   ├── literal-block_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── other-block_feature.test
│   │   │   ├── page-break_feature.test
│   │   │   ├── passthrough-block_feature.test
│   │   │   ├── replacement_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── title_feature.test
│   │   ├── asm6502/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── opcode_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── asmatmel/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── opcode_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── aspnet/
│   │   │   ├── comment_feature.test
│   │   │   └── page-directive_feature.test
│   │   ├── autohotkey/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2911.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   ├── tag_feature.test
│   │   │   └── variable_feature.test
│   │   ├── autoit/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── avisynth/
│   │   │   ├── clipproperties_feature.test
│   │   │   ├── comments_strings_predefines_feature.test
│   │   │   ├── intenalfuncs_feature.test
│   │   │   ├── internalfilters_feature.test
│   │   │   ├── keywords_constants_bools_last_feature.test
│   │   │   ├── operators_numbers_punctuation.test
│   │   │   ├── types_arguments_feature.test
│   │   │   └── userfunctions_feature.test
│   │   ├── avro-idl/
│   │   │   ├── annotation_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── awk/
│   │   │   ├── comment_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── bash/
│   │   │   ├── arithmetic_environment_feature.test
│   │   │   ├── assign-left_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── command_substitution_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── entities_in_strings_feature.test
│   │   │   ├── environment_feature.test
│   │   │   ├── for-or-select_feature.test
│   │   │   ├── function-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── heredoc_command_feature.test
│   │   │   ├── issue2436.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── variable_operator_feature.test
│   │   ├── basic/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── batch/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── string_feature.test
│   │   ├── bbcode/
│   │   │   └── tag_feature.test
│   │   ├── bbj/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── bicep/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── var_feature.test
│   │   ├── birb/
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── bison/
│   │   │   ├── c_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── bnf/
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── rule_feature.test
│   │   │   └── string_featrue.test
│   │   ├── bqn/
│   │   │   ├── comments.test
│   │   │   ├── namespace.test
│   │   │   ├── strings.test
│   │   │   ├── system-functions.test
│   │   │   ├── tokens.test
│   │   │   └── words.test
│   │   ├── brainfuck/
│   │   │   └── all_feature.test
│   │   ├── brightscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive-statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── bro/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── bsl/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── c/
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── c+pure/
│   │   │   └── c_inclusion.test
│   │   ├── cfscript/
│   │   │   ├── comment_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── scope_feature.test
│   │   │   └── type_feature.test
│   │   ├── chaiscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cil/
│   │   │   ├── asm_reference.test
│   │   │   ├── boolean.test
│   │   │   ├── comment.test
│   │   │   ├── directive_feature.test
│   │   │   ├── instructions.test
│   │   │   ├── keywords.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── strings.test
│   │   ├── cilkc/
│   │   │   └── cilk_keywords_feature.test
│   │   ├── cilkcpp/
│   │   │   └── cilk_keywords_feature.test
│   │   ├── clike/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1340.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── clojure/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── cmake/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── inserted_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── cobol/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── level_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── coffeescript/
│   │   │   ├── block-regex_feature.test
│   │   │   ├── class-member_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── inline-javascript_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── coffeescript+haml/
│   │   │   └── coffeescript_inclusion.test
│   │   ├── coffeescript+pug/
│   │   │   └── coffeescript_inclusion.test
│   │   ├── concurnas/
│   │   │   ├── annotation_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── langext_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── cooklang/
│   │   │   ├── comment_feature.test
│   │   │   ├── cookware_feature.test
│   │   │   ├── ingredient_feature.test
│   │   │   ├── meta_feature.test
│   │   │   └── timer_feature.test
│   │   ├── coq/
│   │   │   ├── attribute_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cpp/
│   │   │   ├── base-clause_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2347.test
│   │   │   ├── issue3042.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── raw_string_feature.test
│   │   ├── cpp+pure/
│   │   │   └── cpp_inclusion.test
│   │   ├── crystal/
│   │   │   ├── attribute_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── expansion_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── csharp/
│   │   │   ├── attribute_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name-declaration_feature.test
│   │   │   ├── class-name-variables-parameters_feature.test
│   │   │   ├── constructor-invocation_feature.test
│   │   │   ├── for_feature.test
│   │   │   ├── generic-constraint_feature.test
│   │   │   ├── generic_feature.test
│   │   │   ├── interpolation-string_feature.test
│   │   │   ├── issue1091.test
│   │   │   ├── issue1365.test
│   │   │   ├── issue1371.test
│   │   │   ├── issue2968.test
│   │   │   ├── issue806.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── named-parameter_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── return-type_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── switch_feature.test
│   │   │   ├── type-expression_feature.test
│   │   │   ├── type-list_feature.test
│   │   │   └── using-directive_feature.test
│   │   ├── csharp!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── csharp+aspnet/
│   │   │   └── directive_feature.test
│   │   ├── cshtml/
│   │   │   ├── block_feature.test
│   │   │   ├── code-block_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue3354.test
│   │   │   └── value_feature.test
│   │   ├── csp/
│   │   │   ├── directive_no_value_feature.test
│   │   │   ├── directive_with_source_expression_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── host_feature.test
│   │   │   ├── issue2661.test
│   │   │   ├── keyword_safe_feature.html.test
│   │   │   ├── keyword_unsafe_feature.html.test
│   │   │   ├── nonce_feature.test
│   │   │   ├── none_feature.test
│   │   │   └── scheme_feature.test
│   │   ├── css/
│   │   │   ├── atrule_feature.test
│   │   │   ├── atrule_selector-function-argument_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── css!+css-extras/
│   │   │   ├── atrule_selector-function-argument_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── entity_feature.test
│   │   │   ├── hexcode_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── selector_attribute_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── selector_n-th_feature.test
│   │   │   ├── selector_pseudo-class_feature.test
│   │   │   ├── unit_feature.test
│   │   │   └── variable_feature.test
│   │   ├── css+css-extras+sass/
│   │   │   └── issue2992.test
│   │   ├── css+haml/
│   │   │   └── css+haml_usage.test
│   │   ├── css+http/
│   │   │   └── css_inclusion.test
│   │   ├── css+textile/
│   │   │   └── css_inclusion.test
│   │   ├── css-selector/
│   │   │   └── token-types_feature.test
│   │   ├── csv/
│   │   │   └── value.test
│   │   ├── cue/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── cypher/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── relationship_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── d/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue2027.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── dart/
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── dataweave/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── dates_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── keywords_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── dax/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datafield_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── measure_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── dhall/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── env_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── diff/
│   │   │   ├── coord_feature.test
│   │   │   └── diff_feature.test
│   │   ├── django/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── for-loop_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── test_feature.test
│   │   │   └── variable_feature.test
│   │   ├── django!+css/
│   │   │   └── inclusion.test
│   │   ├── django!+javascript/
│   │   │   └── inclusion.test
│   │   ├── dns-zone-file/
│   │   │   ├── class_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type_featrue.test
│   │   │   └── variable_feature.test
│   │   ├── docker/
│   │   │   ├── comment_feature.test
│   │   │   ├── instruction_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── options_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── dot/
│   │   │   ├── attribute_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── graph-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── node_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── dot!+markup/
│   │   │   └── attribute_feature.test
│   │   ├── ebnf/
│   │   │   ├── comment_feature.test
│   │   │   ├── definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── rule_feature.test
│   │   │   ├── special_feature.test
│   │   │   └── string_feature.test
│   │   ├── editorconfig/
│   │   │   ├── comment_feature.test
│   │   │   ├── key_value_feature.test
│   │   │   └── section_feature.test
│   │   ├── eiffel/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── ejs/
│   │   │   ├── comment_feature.test
│   │   │   ├── ejs_feature.test
│   │   │   ├── escape_feature.test
│   │   │   └── markup_feature.test
│   │   ├── ejs+pug/
│   │   │   └── ejs_inclusion.test
│   │   ├── elixir/
│   │   │   ├── atom_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── capture_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doc_feature.test
│   │   │   ├── issue1392.test
│   │   │   ├── issue775.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── elm/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import-statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── erb/
│   │   │   ├── erb_feature.test
│   │   │   ├── erb_in_markup_feature.test
│   │   │   └── issue1767.test
│   │   ├── erb+haml/
│   │   │   └── erb_inclusion.test
│   │   ├── erlang/
│   │   │   ├── atom_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── etlua/
│   │   │   └── delimiter_feature.test
│   │   ├── excel-formula/
│   │   │   ├── cell_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── range_feature.test
│   │   │   ├── reference_feature.test
│   │   │   └── string_feature.test
│   │   ├── factor/
│   │   │   ├── builtin_words_feature.test
│   │   │   ├── colon_words_feature.test
│   │   │   ├── comments_feature.test
│   │   │   ├── constructors_feature.test
│   │   │   ├── normal_words_feature.test
│   │   │   ├── numbers_feature.test
│   │   │   ├── other_builtin_parsing_words_feature.test
│   │   │   ├── quotations_feature.test
│   │   │   ├── regexps_feature.test
│   │   │   ├── sequences_feature.test
│   │   │   ├── stack_effects_feature.test
│   │   │   └── strings_feature.test
│   │   ├── false/
│   │   │   ├── assembler_code_feature.test
│   │   │   ├── character_code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── non-standard_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── firestore-security-rules/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── method_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── flow/
│   │   │   ├── flow-punctuation_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── type_feature.test
│   │   ├── fortran/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── fortran+pure/
│   │   │   └── fortran_inclusion.test
│   │   ├── fsharp/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── computation-expression_feature.test
│   │   │   ├── issue1480.test
│   │   │   ├── issue2696.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   └── string_feature.test
│   │   ├── fsharp!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── ftl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gap/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── shell_feature.test
│   │   │   └── string_feature.test
│   │   ├── gcode/
│   │   │   ├── checksum_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── gdscript/
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gedcom/
│   │   │   ├── level_feature.test
│   │   │   ├── line-value_feature.test
│   │   │   ├── pointer_feature.test
│   │   │   └── record_feature.test
│   │   ├── gettext/
│   │   │   ├── comment_feature.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── gherkin/
│   │   │   ├── atrule_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── feature_feature.test
│   │   │   ├── outline_feature.test
│   │   │   ├── pystring_feature.test
│   │   │   ├── scenario_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── tag_feature.test
│   │   ├── git/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── commit-sha1_feature.test
│   │   │   ├── coord_feature.test
│   │   │   ├── diff_feature.test
│   │   │   └── string_feature.test
│   │   ├── glsl/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   └── number_feature.test
│   │   ├── gml/
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── variable_feature.test
│   │   ├── gn/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-function_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── go/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── go-module/
│   │   │   ├── comment_feature.test
│   │   │   ├── directives_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── version_feature.test
│   │   ├── gradle/
│   │   │   ├── annotation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── spock-block_feature.test
│   │   │   ├── string-interpolation_feature.html.test
│   │   │   └── string_feature.test
│   │   ├── graphql/
│   │   │   ├── advanced_tokens.html.test
│   │   │   ├── atom-input_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── description_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── fragment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mutation_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── scalar_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── groovy/
│   │   │   ├── annotation_feature.test
│   │   │   ├── issue1049.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── shebang_feature.test
│   │   │   ├── spock-block_feature.test
│   │   │   ├── string-interpolation_feature.html.test
│   │   │   └── string_feature.test
│   │   ├── groovy+sas/
│   │   │   └── groovy_inclusion.test
│   │   ├── haml/
│   │   │   ├── code_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── multiline-code_feature.test
│   │   │   ├── multiline-comment_feature.test
│   │   │   └── tag_feature.test
│   │   ├── handlebars/
│   │   │   ├── block_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── handlebars_in_html_feature.test
│   │   │   ├── handlebars_in_markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── handlebars+pug/
│   │   │   └── handlebars_inclusion.test
│   │   ├── haskell/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── haxe/
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── reification_feature.test
│   │   │   └── string_feature.test
│   │   ├── haxe!+regex/
│   │   │   └── regex_inclusion.test
│   │   ├── hcl/
│   │   │   ├── comment_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── hlsl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── operator_feature.test
│   │   ├── hoon/
│   │   │   ├── comments_and_leaves.test
│   │   │   ├── core_with_arms.test
│   │   │   ├── nested_strings.test
│   │   │   └── strings_with_escapes.test
│   │   ├── hpkp/
│   │   │   ├── max-age_feature.test
│   │   │   └── sha256_pin_feature.test
│   │   ├── hsts/
│   │   │   ├── include_subdomains_feature.test
│   │   │   ├── max-age_feature.test
│   │   │   └── preload_feature.test
│   │   ├── http/
│   │   │   ├── header_feature.test
│   │   │   ├── request-line_feature.test
│   │   │   ├── response-status_feature.test
│   │   │   └── text-plain_feature.test
│   │   ├── http!+csp/
│   │   │   └── inclusion.test
│   │   ├── http!+hpkp/
│   │   │   └── inclusion.test
│   │   ├── http!+hsts/
│   │   │   └── inclusion.test
│   │   ├── http!+uri/
│   │   │   └── request-line_feature.test
│   │   ├── ichigojam/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── icon/
│   │   │   ├── builtin-keyword_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── icu-message-format/
│   │   │   ├── arg-skeleton_feature.test
│   │   │   ├── choice-style_feature.test
│   │   │   ├── plural-style_feature.test
│   │   │   ├── select-style_feature.test
│   │   │   └── string_feature.test
│   │   ├── idris/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── iecst/
│   │   │   ├── address_feature.test
│   │   │   ├── block.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── ignore/
│   │   │   ├── comment_feature.test
│   │   │   └── entry_feature.test
│   │   ├── inform7/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── position_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── title_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── verb_feature.test
│   │   ├── ini/
│   │   │   ├── comment_feature.test
│   │   │   ├── key_value_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── section_feature.test
│   │   ├── io/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── j/
│   │   │   ├── adverb_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── conjunction_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── verb_feature.test
│   │   ├── java/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_featrue.test
│   │   │   ├── generics_feature.test
│   │   │   ├── issue1351.test
│   │   │   ├── issue3345.test
│   │   │   ├── issue3350.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── package_feature.test
│   │   │   └── string_feature.test
│   │   ├── javadoc/
│   │   │   ├── code_feature.test
│   │   │   ├── entity_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── reference_feature.test
│   │   │   └── tag_feature.test
│   │   ├── javadoc+java/
│   │   │   └── javadoc_inclusion.test
│   │   ├── javascript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-method_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function-variable_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── getter-setter_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── issue1337.test
│   │   │   ├── issue1340.test
│   │   │   ├── issue1397.test
│   │   │   ├── issue1526.test
│   │   │   ├── issue1807.test
│   │   │   ├── issue2694.test
│   │   │   ├── keyword_feature.html.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── private_fields_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── spread_and_keyword_feature.test
│   │   │   ├── supposed-classes_feature.test
│   │   │   ├── supposed-function_feature.test
│   │   │   ├── template-string_feature.test
│   │   │   ├── try-catch_feature.test
│   │   │   └── variable_feature.test
│   │   ├── javascript!+css+js-templates/
│   │   │   └── css_inclusion.test
│   │   ├── javascript!+graphql+js-templates/
│   │   │   └── graphql_inclusion.test
│   │   ├── javascript!+markdown+js-templates/
│   │   │   └── markdown_inclusion.test
│   │   ├── javascript!+markup+js-templates/
│   │   │   └── markup_inclusion.test
│   │   ├── javascript!+regex/
│   │   │   └── regex_inclusion.test
│   │   ├── javascript!+sql+js-templates/
│   │   │   └── sql_inclusion.test
│   │   ├── javascript+haml/
│   │   │   └── javascript_inclusion.test
│   │   ├── javascript+http/
│   │   │   ├── issue2733.test
│   │   │   └── javascript_inclusion.test
│   │   ├── javastacktrace/
│   │   │   ├── more_feature.test
│   │   │   ├── stack-frame_feature.test
│   │   │   └── summary_feature.test
│   │   ├── jexl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── transform_feature.test
│   │   ├── jolie/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── deployment_features.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── jq/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── dot_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── jsdoc/
│   │   │   ├── class-name_feature.test
│   │   │   ├── example_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── parameter_feature.test
│   │   ├── jsdoc+javascript/
│   │   │   └── jsdoc_inclusion.test
│   │   ├── json/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── issue1852.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── json+http/
│   │   │   ├── issue2733.test
│   │   │   ├── issue3168.test
│   │   │   ├── json-suffix_inclusion.test
│   │   │   └── json_inclusion.test
│   │   ├── json5/
│   │   │   ├── number_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── jsonp/
│   │   │   ├── function_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── jsstacktrace/
│   │   │   ├── alias_feature.test
│   │   │   ├── errormessage-nodejs_feature.test
│   │   │   ├── errormessage_feature.test
│   │   │   ├── filename_feature.test
│   │   │   ├── filenamedirect_feature.test
│   │   │   ├── filenamedirectwindows_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── linenumber_feature.test
│   │   │   └── notmycode_feature.test
│   │   ├── jsx/
│   │   │   ├── dollars-in-attrs.test
│   │   │   ├── issue1103.test
│   │   │   ├── issue1235.test
│   │   │   ├── issue1236.test
│   │   │   ├── issue1294.test
│   │   │   ├── issue1335.test
│   │   │   ├── issue1342.test
│   │   │   ├── issue1356.test
│   │   │   ├── issue1364.test
│   │   │   ├── issue1408.test
│   │   │   ├── issue1421.test
│   │   │   ├── issue2727.test
│   │   │   ├── issue2753.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── spread_in_tags.test
│   │   │   └── tag_feature.test
│   │   ├── jsx!+graphql+js-templates/
│   │   │   └── graphql_inclusion.test
│   │   ├── julia/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── issue2360.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── keepalived/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── conditional-configuration_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── ip_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── keyman/
│   │   │   ├── comment_feature.test
│   │   │   ├── compile-target_feature.test
│   │   │   ├── header-keyword.test
│   │   │   ├── header-statement.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── rule-keyword_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── structural-keyword_feature.test
│   │   │   └── virtual-key_feature.test
│   │   ├── kotlin/
│   │   │   ├── annotation_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── kumir/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── name_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── system-variable_feature.test
│   │   │   └── type_feature.test
│   │   ├── kusto/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── verb_feature.test
│   │   ├── latex/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── equation_feature.test
│   │   │   ├── headline_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── url_feature.test
│   │   ├── latte/
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── html_feature.test
│   │   │   ├── n-attr_feature.test
│   │   │   └── php_feature.test
│   │   ├── less/
│   │   │   ├── atrule_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   └── variable_feature.test
│   │   ├── less+haml/
│   │   │   └── less_inclusion.test
│   │   ├── less+pug/
│   │   │   └── less_inclusion.test
│   │   ├── lilypond/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── embedded-scheme_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── linker-script/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── location-counter_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── section_feature.test
│   │   ├── liquid/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── empty_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── object_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── raw_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── template_feature.test
│   │   ├── lisp/
│   │   │   ├── boolean_feature.test
│   │   │   ├── car_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── declare_feature.test
│   │   │   ├── defun_feature.test
│   │   │   ├── defvar_feature.test
│   │   │   ├── heading_feature.test
│   │   │   ├── interactive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda-feature.test
│   │   │   ├── lisp-property_feature.test
│   │   │   ├── number_boolean.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── quoted-symbol_feature.test
│   │   │   ├── splice_feature.test
│   │   │   └── string_feature.test
│   │   ├── livescript/
│   │   │   ├── argument_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── interpolated-string.test
│   │   │   ├── keyword-operator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── livescript+pug/
│   │   │   └── livescript_inclusion.test
│   │   ├── llvm/
│   │   │   ├── attributes.test
│   │   │   ├── example-iterative.test
│   │   │   ├── example-recursive.test
│   │   │   ├── langref-module-example.test
│   │   │   ├── numbers.test
│   │   │   └── string.test
│   │   ├── log/
│   │   │   ├── _discord.test
│   │   │   ├── _docker.test
│   │   │   ├── _hadoop.test
│   │   │   ├── _java_stack_trace.test
│   │   │   ├── _minecraft.test
│   │   │   ├── _nginx.test
│   │   │   ├── _npm_console.test
│   │   │   ├── _npm_log.test
│   │   │   ├── _table.test
│   │   │   ├── _tomcat.test
│   │   │   ├── _windows.test
│   │   │   ├── date_feature.test
│   │   │   ├── email_feature.test
│   │   │   ├── exception_feature.test
│   │   │   ├── hash_feature.test
│   │   │   ├── level_feature.test
│   │   │   ├── mac-address_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── separator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── time_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── uuid_feature.test
│   │   ├── log!+javastacktrace/
│   │   │   ├── _hadoop_javastacktrace_inclusion.test
│   │   │   ├── _java_stack_trace_inclusion.test
│   │   │   ├── _minecraft_javastacktrace_inclusion.test
│   │   │   └── exception_javastacktrace_inclusion.test
│   │   ├── lolcode/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── variable_feature.test
│   │   ├── lua/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── lua+sas/
│   │   │   └── lua_inclusion.test
│   │   ├── magma/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── generator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── shell_feature.test
│   │   │   └── string_feature.test
│   │   ├── makefile/
│   │   │   ├── builtin-target_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── target_feature.test
│   │   │   └── variable_feature.test
│   │   ├── markdown/
│   │   │   ├── blockquote_feature.test
│   │   │   ├── bold_feature.test
│   │   │   ├── code-block_feature.html.test
│   │   │   ├── code-block_feature.test
│   │   │   ├── code_block_language_detection_feature.html.test
│   │   │   ├── code_feature.test
│   │   │   ├── front-matter-block_empty_feature.test
│   │   │   ├── front-matter-block_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── issue2966.test
│   │   │   ├── italic_feature.test
│   │   │   ├── list_feature.test
│   │   │   ├── nested_bold_italic_feature.test
│   │   │   ├── strike_feature.test
│   │   │   ├── table_feature.test
│   │   │   ├── title_feature.test
│   │   │   ├── url-reference_feature.test
│   │   │   └── url_feature.test
│   │   ├── markdown+graphql/
│   │   │   └── description_feature.test
│   │   ├── markdown+haml/
│   │   │   └── markdown_inclusion.test
│   │   ├── markdown+pug/
│   │   │   └── markdown_inclusion.test
│   │   ├── markup/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── issue3441.test
│   │   │   ├── issue585.test
│   │   │   ├── issue888.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── tag_attribute_feature.test
│   │   │   └── tag_feature.test
│   │   ├── markup!+css/
│   │   │   └── css_inclusion.test
│   │   ├── markup!+css+javascript/
│   │   │   └── issue1240.test
│   │   ├── markup!+javascript/
│   │   │   └── javascript_inclusion.test
│   │   ├── markup+actionscript/
│   │   │   └── xml_feature.test
│   │   ├── markup+css+wiki/
│   │   │   └── table-tag_feature.test
│   │   ├── markup+haml/
│   │   │   └── markup_feature.test
│   │   ├── markup+http/
│   │   │   └── html_inclusion.test
│   │   ├── markup+javascript+csharp+aspnet/
│   │   │   └── script_feature.test
│   │   ├── markup+php/
│   │   │   ├── issue1582.test
│   │   │   ├── php_in_markup_feature.test
│   │   │   └── php_with_closing_tag_in_markup_feature.test
│   │   ├── markup+pug/
│   │   │   └── markup_feature.test
│   │   ├── markup+tt2/
│   │   │   └── tt2_in_markup_feature.test
│   │   ├── mata/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── missing_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── type_feature.test
│   │   ├── matlab/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── maxscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── path_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── time_feature.test
│   │   ├── mel/
│   │   │   ├── code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── flag_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mermaid/
│   │   │   ├── arrow_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── full_classdiagram.test
│   │   │   ├── full_erdiagram.test
│   │   │   ├── full_flowchart.test
│   │   │   ├── full_sequencediagram.test
│   │   │   ├── full_statediagram.test
│   │   │   ├── inter-arrow-label_feature.test
│   │   │   └── operator_feature.test
│   │   ├── metafont/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── internal_quantity_feature.test
│   │   │   ├── keywords_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── ponctuation_feature.test
│   │   │   ├── primitive_feature.test
│   │   │   ├── string_and_comment_feature.test
│   │   │   ├── type_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mizar/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   └── variable_feature.test
│   │   ├── mongodb/
│   │   │   ├── document_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── operations_feature.test
│   │   │   ├── query_feature.test
│   │   │   ├── string_url_and_ip_feature.test
│   │   │   └── update_feature.test
│   │   ├── monkey/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── type-char_feature.test
│   │   ├── moonscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── n1ql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   └── string_feature.test
│   │   ├── n4js/
│   │   │   ├── annotation_feature.test
│   │   │   └── keyword_feature.test
│   │   ├── nand2tetris-hdl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── naniscript/
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── define_feature.test
│   │   │   ├── expression_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── mixed_content_feature.test
│   │   ├── nasm/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── neon/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── composite.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── json_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── string_feature.test
│   │   ├── nevod/
│   │   │   ├── comment_feature.test
│   │   │   ├── full_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── package_feature.test
│   │   │   ├── pattern_feature.test
│   │   │   ├── search_feature.test
│   │   │   └── string_feature.test
│   │   ├── nginx/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── nim/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── nix/
│   │   │   ├── antiquotation_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── url_feature.test
│   │   ├── nsis/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── objectivec/
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── ocaml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type-variable_feature.test
│   │   │   └── variant_feature.test
│   │   ├── odin/
│   │   │   ├── boolean_feature.test
│   │   │   ├── character_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_parameter_sign_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── discard_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── not_a_number_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── procedure_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── raw_string_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── undefined_feature.test
│   │   ├── opencl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin-type_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── number_feature.test
│   │   ├── opencl-extensions+c/
│   │   │   ├── boolean_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   └── type_feature.test
│   │   ├── opencl-extensions+cpp/
│   │   │   └── type_feature.test
│   │   ├── openqasm/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── oz/
│   │   │   ├── atom_feature.test
│   │   │   ├── attr-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── parigp/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── parser/
│   │   │   ├── boolean_feature.test
│   │   │   ├── escape_feature.test
│   │   │   ├── expression_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parser-comment_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pascal/
│   │   │   ├── asm_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── pascaligo/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── pcaxis/
│   │   │   ├── boolean_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tlist_feature.test
│   │   ├── peoplecode/
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── perl/
│   │   │   ├── comment_feature.test
│   │   │   ├── filehandle_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── v-string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── php/
│   │   │   ├── argument-name_feature.test
│   │   │   ├── array_feature.test
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── enum_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2156.test
│   │   │   ├── issue2614.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── package_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── type_feature.test
│   │   │   └── variable_feature.test
│   │   ├── php!+css+css-extras/
│   │   │   └── issue2008.test
│   │   ├── php!+php-extras/
│   │   │   ├── global_feature.test
│   │   │   ├── scope_feature.test
│   │   │   └── this_feature.test
│   │   ├── phpdoc/
│   │   │   ├── class-name_feature.test
│   │   │   ├── issue2197.test
│   │   │   ├── keyword_feature.test
│   │   │   └── parameter_feature.test
│   │   ├── phpdoc+php/
│   │   │   └── phpdoc_inclusion.test
│   │   ├── plant-uml/
│   │   │   ├── arrow_feature.test
│   │   │   ├── color_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── divider_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── preprocessor_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── text_feature.test
│   │   │   ├── time_feature.test
│   │   │   └── variable_feature.test
│   │   ├── plsql/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   └── operator_feature.test
│   │   ├── powerquery/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── quoted_identifier_feature.test
│   │   │   └── string_feature.test
│   │   ├── powershell/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1407.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── processing/
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── type_feature.test
│   │   ├── prolog/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── promql/
│   │   │   ├── aggregate_selection.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── subquery_selection.test
│   │   │   └── time_series_selection.test
│   │   ├── properties/
│   │   │   ├── comment_feature.test
│   │   │   └── key_value_feature.test
│   │   ├── protobuf/
│   │   │   ├── annotation_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── map_feature.test
│   │   │   ├── rpc_feature.test
│   │   │   └── string_feature.test
│   │   ├── psl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function-foreach_feature.test
│   │   │   ├── heredoc_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── overall_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pug/
│   │   │   ├── code_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── filter_feature.test
│   │   │   ├── flow-control_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mixin_feature.test
│   │   │   ├── multiline-plain-text_feature.test
│   │   │   ├── multiline-script_feature.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── script_feature.test
│   │   │   └── tag_feature.test
│   │   ├── puppet/
│   │   │   ├── attr-name_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datatype_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── heredoc_feature.test
│   │   │   ├── interpolation_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── pure/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── special_feature.test
│   │   │   └── string_feature.test
│   │   ├── purebasic/
│   │   │   ├── asm_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── purescript/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── hvariable_feature.test
│   │   │   ├── import_statement_feature.test
│   │   │   ├── issue3006.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── python/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1355.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── triple-quoted-string_feature.test
│   │   ├── q/
│   │   │   ├── adverb_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── verb_feature.test
│   │   ├── qml/
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── import_feature.test
│   │   │   ├── javascript-function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── qore/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── qsharp/
│   │   │   ├── comments_feature.test
│   │   │   ├── if_with_function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── operators_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_assignment_numbers_feature.test
│   │   ├── r/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── ellipsis_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── percent-operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── racket/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda_parameter_feature.test
│   │   │   ├── lang_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── reason/
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constructor_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── regex/
│   │   │   ├── anchor_feature.test
│   │   │   ├── backreference_feature.test
│   │   │   ├── char-class_feature.test
│   │   │   ├── char-set_feature.test
│   │   │   ├── escape_feature.test
│   │   │   ├── group_feature.test
│   │   │   ├── quantifier_feature.test
│   │   │   └── range_feature.test
│   │   ├── rego/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── renpy/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── rescript/
│   │   │   ├── attr-value_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── rest/
│   │   │   ├── command-line-option_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── doctest-block_feature.test
│   │   │   ├── field_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── issue2940.test
│   │   │   ├── link-target_feature.test
│   │   │   ├── link_feature.test
│   │   │   ├── list-bullet_feature.test
│   │   │   ├── literal-block_feature.test
│   │   │   ├── quoted-literal-block_feature.test
│   │   │   ├── substitution-def_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── title_feature.test
│   │   ├── rip/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_time_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── reference_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── roboconf/
│   │   │   ├── comment_feature.test
│   │   │   ├── component_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── optional_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── value_feature.test
│   │   │   └── wildcard_feature.test
│   │   ├── robotframework/
│   │   │   ├── comment_feature.test
│   │   │   ├── documentation_feature.test
│   │   │   ├── name_and_property_feature.test
│   │   │   ├── sections_feature.test
│   │   │   ├── settings_property_feature.test
│   │   │   ├── tag_feature.test
│   │   │   └── variable_feature.test
│   │   ├── ruby/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── issue1336.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── method_definition_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── variable_feature.test
│   │   ├── ruby+haml/
│   │   │   └── ruby_inclusion.test
│   │   ├── rust/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── closure-params_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue1339.test
│   │   │   ├── issue1353.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lifetime-annotation_feature.test
│   │   │   ├── macro_example.test
│   │   │   ├── macro_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── sas/
│   │   │   ├── comment_feature.test
│   │   │   ├── datalines_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── format_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── input_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── macro_string_function_feature.test
│   │   │   ├── macrodefinition_feature.test
│   │   │   ├── macrokeyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── options_feature.test
│   │   │   ├── proccas_feature.test
│   │   │   ├── step_feature.test
│   │   │   └── string_feature.test
│   │   ├── sass/
│   │   │   ├── atrule-line_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── property-line_feature.test
│   │   │   ├── selector_feature.test
│   │   │   └── variable-line_feature.test
│   │   ├── scala/
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── scheme/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── issue1331.test
│   │   │   ├── issue2609.test
│   │   │   ├── issue2811.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── lambda_parameter_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── scss/
│   │   │   ├── atrule_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── module-modifier_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── placeholder_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── statement_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── scss+haml/
│   │   │   └── scss_inclusion.test
│   │   ├── scss+pug/
│   │   │   └── scss_inclusion.test
│   │   ├── shell-session/
│   │   │   ├── command_feature.test
│   │   │   ├── command_string_feature.test
│   │   │   ├── info_feature.test
│   │   │   ├── issue2644.test
│   │   │   ├── issue2685.test
│   │   │   ├── issue2871.test
│   │   │   ├── issue3047_1.test
│   │   │   └── issue3047_2.test
│   │   ├── smali/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── field_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── register_feature.test
│   │   │   └── string_feature.test
│   │   ├── smalltalk/
│   │   │   ├── block-arguments_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_char_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   └── temporary-variables_feature.test
│   │   ├── smarty/
│   │   │   ├── attr-name_feature.test
│   │   │   ├── booelan_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── php_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── smarty_in_markup_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── smarty!+php/
│   │   │   └── inclusion.test
│   │   ├── sml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── classname_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── word_feature.test
│   │   ├── solidity/
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── version_feature.test
│   │   ├── solution-file/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── guid_feature.test
│   │   │   ├── object_feature.test
│   │   │   ├── property_feature.test
│   │   │   └── string_feature.test
│   │   ├── soy/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command-arg.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── parameter_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── soy_in_markup_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── sparql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── splunk-spl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── sqf/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── magic-variable_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── sql/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── issue3140.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── sql+sas/
│   │   │   └── sql_inclusion.test
│   │   ├── squirrel/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── stan/
│   │   │   ├── comment_feature.test
│   │   │   ├── constraint_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function-arg_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── program-block_feature.html.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── stata/
│   │   │   ├── boolean_feature.test
│   │   │   ├── command_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── java_inclusion.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── mata_inclusion.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── python_inclusion.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── stylus/
│   │   │   ├── atrule-declaration_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── func_feature.test
│   │   │   ├── hexcode_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── property-declaration_feature.test
│   │   │   ├── selector_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable-declaration_feature.test
│   │   ├── stylus+pug/
│   │   │   └── stylus_inclusion.test
│   │   ├── supercollider/
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── symbol_feature.test
│   │   ├── swift/
│   │   │   ├── attribute_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── label_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── omit_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── short-argument_feature.test
│   │   │   └── string_feature.test
│   │   ├── systemd/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── section_feature.test
│   │   │   └── value_feature.test
│   │   ├── t4-cs/
│   │   │   ├── block_class-feature_feature.test
│   │   │   ├── block_directive_feature.test
│   │   │   ├── block_expression_feature.test
│   │   │   └── block_standard_feature.test
│   │   ├── t4-vb/
│   │   │   └── block_feature.test
│   │   ├── tap/
│   │   │   ├── bail_out_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── pass_fail_feature.test
│   │   │   ├── plan_feature.test
│   │   │   ├── pragma_feature.test
│   │   │   ├── subtest_feature.test
│   │   │   ├── version_feature.test
│   │   │   └── yamlish_feature.test
│   │   ├── tcl/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── scope_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── textile/
│   │   │   ├── acronym_feature.test
│   │   │   ├── block-tag_feature.test
│   │   │   ├── footnote_feature.test
│   │   │   ├── image_feature.test
│   │   │   ├── inline_feature.test
│   │   │   ├── link-ref_feature.test
│   │   │   ├── link_feature.test
│   │   │   ├── list_feature.test
│   │   │   ├── mark_feature.test
│   │   │   ├── table_feature.test
│   │   │   └── tag_feature.test
│   │   ├── textile+haml/
│   │   │   └── textile_inclusion.test
│   │   ├── toml/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── table_feature.test
│   │   ├── treeview/
│   │   │   ├── ascii.html.test
│   │   │   ├── box.html.test
│   │   │   ├── markers_feature.html.test
│   │   │   └── symlink_feature.test
│   │   ├── tremor/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── extractor_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── identifier_feature.test
│   │   │   ├── keyword_escape_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── modularity_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── tsx/
│   │   │   ├── issue2594.test
│   │   │   ├── issue3089.test
│   │   │   └── tag_feature.test
│   │   ├── tt2/
│   │   │   ├── comment_feature.test
│   │   │   ├── delimiter_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string-interpolation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── turtle/
│   │   │   ├── blank-node_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── language-tag_feature.test
│   │   │   ├── local-name-with-colons_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── twig/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── markup_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── twig+pug/
│   │   │   └── twig_inclusion.test
│   │   ├── typescript/
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── decorator_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── issue2819.test
│   │   │   ├── issue2860.test
│   │   │   ├── issue3000.test
│   │   │   ├── keyword_feature.html.test
│   │   │   └── keyword_feature.test
│   │   ├── typoscript/
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   └── tag_string_feature.test
│   │   ├── unrealscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── category_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── metadata_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── uorazor/
│   │   │   ├── boolean_feature.test
│   │   │   ├── breakdown_script_example_feature.test
│   │   │   ├── commands_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── functions_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   └── source_layers_feature.test
│   │   ├── uri/
│   │   │   ├── authority_feature.test
│   │   │   ├── full.test
│   │   │   ├── query_feature.test
│   │   │   ├── relative.test
│   │   │   └── scheme_feature.test
│   │   ├── v/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── char_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── vala/
│   │   │   ├── class-name_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── regex_feature.test
│   │   │   └── string_feature.test
│   │   ├── vbnet/
│   │   │   ├── comment_feature.test
│   │   │   ├── issue2781.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── vbnet!+xml-doc/
│   │   │   └── inclusion.test
│   │   ├── velocity/
│   │   │   ├── directive_feature.test
│   │   │   ├── unparsed_feature.test
│   │   │   ├── variable_feature.test
│   │   │   └── velocity-comment_feature.test
│   │   ├── verilog/
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── kernel-function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── vhdl/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── vhdl-vectors_feature.test
│   │   ├── vim/
│   │   │   ├── builtin_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── visual-basic/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── date_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── string_feature.test
│   │   ├── warpscript/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── macro_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── wasm/
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── variable_feature.test
│   │   ├── web-idl/
│   │   │   ├── boolean_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── primitive-type_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── wgsl/
│   │   │   ├── attributes_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── class_name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── literal_feature.test
│   │   │   ├── operator_feature.test
│   │   │   └── punctuation_feature.test
│   │   ├── wiki/
│   │   │   ├── block-comment_feature.test
│   │   │   ├── emphasis_feature.test
│   │   │   ├── heading_feature.test
│   │   │   ├── hr_feature.test
│   │   │   ├── nowiki_feature.test
│   │   │   ├── symbol_feature.test
│   │   │   ├── url_feature.test
│   │   │   └── variable_feature.test
│   │   ├── wolfram/
│   │   │   ├── black_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── context_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── wren/
│   │   │   ├── attribute_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── class-name_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── constant_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── hashbang_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── xeora/
│   │   │   ├── constant_feature.test
│   │   │   ├── directive-block-close_feature.test
│   │   │   ├── directive-block-open_feature.test
│   │   │   ├── directive-block-separator_feature.test
│   │   │   ├── directive-inline_feature.test
│   │   │   ├── function-block_feature.test
│   │   │   ├── function-inline_feature.test
│   │   │   └── variable_feature.test
│   │   ├── xml/
│   │   │   ├── cdata_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── doctype_feature.test
│   │   │   ├── entity_feature.html.test
│   │   │   ├── issue3441.test
│   │   │   ├── issue585.test
│   │   │   ├── issue888.test
│   │   │   ├── prolog_feature.test
│   │   │   ├── tag_attribute_feature.test
│   │   │   └── tag_feature.test
│   │   ├── xml+http/
│   │   │   ├── issue2733.test
│   │   │   ├── text-xml_inclusion.test
│   │   │   ├── xml-suffix_inclusion.test
│   │   │   └── xml_inclusion.test
│   │   ├── xojo/
│   │   │   ├── comment_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── punctuation_feature.test
│   │   │   └── string_feature.test
│   │   ├── xquery/
│   │   │   ├── axis_feature.test
│   │   │   ├── builtin_feature.test
│   │   │   ├── extension_feature.test
│   │   │   ├── function_feature.test
│   │   │   ├── keyword-operator_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── operator_feature.test
│   │   │   ├── plain-text_feature.test
│   │   │   ├── string_feature.test
│   │   │   ├── tag_feature.test
│   │   │   ├── variable_feature.test
│   │   │   ├── xquery-attribute_feature.test
│   │   │   ├── xquery-comment_feature.test
│   │   │   └── xquery-element_feature.test
│   │   ├── yaml/
│   │   │   ├── anchor_and_alias_feature.test
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── datetime_feature.test
│   │   │   ├── directive_feature.test
│   │   │   ├── important_feature.test
│   │   │   ├── key_feature.test
│   │   │   ├── null_feature.test
│   │   │   ├── number_feature.test
│   │   │   ├── scalar_feature.test
│   │   │   ├── string_feature.test
│   │   │   └── tag_feature.test
│   │   ├── yaml+markdown/
│   │   │   └── front-matter_feature.test
│   │   ├── yang/
│   │   │   ├── boolean_feature.test
│   │   │   ├── comment_feature.test
│   │   │   ├── keyword_feature.test
│   │   │   ├── namespace_feature.test
│   │   │   └── string_feature.test
│   │   └── zig/
│   │       ├── builtin-type_feature.test
│   │       ├── builtin_feature.test
│   │       ├── class-name_feature.test
│   │       ├── comment_feature.test
│   │       ├── keyword_feature.test
│   │       ├── label_feature.test
│   │       ├── number_feature.test
│   │       ├── operator_feature.test
│   │       ├── punctuation_feature.test
│   │       └── string_char_feature.test
│   ├── pattern-tests.js
│   ├── plugins/
│   │   ├── autolinker/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── copy-to-clipboard/
│   │   │   └── basic-functionality.js
│   │   ├── custom-class/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── data-uri-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── diff-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── highlight-keywords/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── keep-markup/
│   │   │   └── test.js
│   │   ├── line-highlight/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── show-invisibles/
│   │   │   ├── __snapshots__/
│   │   │   │   └── basic-functionality.js.snap
│   │   │   └── basic-functionality.js
│   │   ├── show-language/
│   │   │   └── basic-functionality.js
│   │   ├── unescaped-markup/
│   │   │   └── basic-functionality.js
│   │   └── wpd/
│   │       ├── __snapshots__/
│   │       │   └── basic-functionality.js.snap
│   │       └── basic-functionality.js
│   ├── run.js
│   ├── testrunner-tests.js
│   ├── tsconfig.json
│   └── types.d.ts
└── tsconfig.json
Download .txt
SYMBOL INDEX (641 symbols across 259 files)

FILE: benchmark/benchmark.js
  function runBenchmark (line 61) | async function runBenchmark (config) {
  function getConfig (line 181) | function getConfig () {
  function getCases (line 206) | async function getCases (config) {
  function getFileInfo (line 287) | function getFileInfo (uri) {
  function getFileInfoUncached (line 300) | async function getFileInfoUncached (uri) {
  function getFilePath (line 319) | async function getFilePath (uri) {
  function measureCandidates (line 348) | function measureCandidates (candidates, options) {
  function getBest (line 379) | function getBest (results) {
  function getWorst (line 398) | function getWorst (results) {
  function createTestFunction (line 422) | function createTestFunction (Prism, mainLanguage, testFunction) {
  function getCandidates (line 450) | async function getCandidates (config) {
  function toArray (line 514) | function toArray (value) {

FILE: dangerfile.js
  function readBaseFile (line 19) | function readBaseFile (path) {
  function readPRFile (line 28) | function readPRFile (path) {

FILE: eslint.config.mjs
  function replaceErrorsWithWarnings (line 218) | function replaceErrorsWithWarnings (config) {

FILE: scripts/build.js
  constant SRC_DIR (line 24) | const SRC_DIR = path.join(__dirname, '../src/');
  constant DIST_DIR (line 25) | const DIST_DIR = path.join(__dirname, '../dist');
  function loadComponent (line 41) | async function loadComponent (id) {
  function minifyCSS (line 53) | async function minifyCSS () {
  function treeviewIconFont (line 87) | async function treeviewIconFont () {
  function guessTitle (line 194) | function guessTitle (name) {
  method renderChunk (line 212) | async renderChunk (code, chunk) {
  method renderChunk (line 250) | renderChunk (code) {
  method renderChunk (line 297) | renderChunk (code) {
  function toRenderedChunk (line 311) | function toRenderedChunk (s) {
  function clean (line 334) | async function clean () {
  function copyComponentsJson (line 343) | async function copyComponentsJson () {
  function buildTypes (line 349) | async function buildTypes () {
  function buildJS (line 384) | async function buildJS () {
  function calculateFileSizes (line 461) | async function calculateFileSizes () {

FILE: scripts/create-changelog.js
  function createSortedArray (line 16) | function createSortedArray (compareFn) {
  function getCommitInfo (line 51) | async function getCommitInfo (line) {
  function getLog (line 83) | async function getLog (range) {
  method nextRelease (line 101) | nextRelease () {
  function addEntry (line 133) | function addEntry (category, info) {
  function notGenerated (line 154) | function notGenerated (change) {
  function notPartlyGenerated (line 166) | function notPartlyGenerated (change) {
  function notTests (line 177) | function notTests (change) {
  function notExamples (line 186) | function notExamples (change) {
  function notFailures (line 195) | function notFailures (change) {
  function notComponentsJSON (line 203) | function notComponentsJSON (change) {
  function and (line 212) | function and (...filters) {
  function removeMessagePrefix (line 231) | function removeMessagePrefix (prefix, info) {
  function infoToString (line 410) | function infoToString (info) {
  function printCategory (line 421) | function printCategory (category, indentation = '') {

FILE: scripts/tasks.js
  function wrapTask (line 10) | function wrapTask (name, task) {
  function wrapUnnamedTask (line 24) | function wrapUnnamedTask (task) {
  function series (line 36) | function series (...tasks) {
  function parallel (line 48) | function parallel (...tasks) {
  function run (line 65) | function run (tasks) {
  function runTask (line 84) | function runTask (tasks) {

FILE: src/config.js
  function getGlobalSetting (line 12) | function getGlobalSetting (name) {
  function getGlobalBooleanSetting (line 35) | function getGlobalBooleanSetting (name, defaultValue) {
  function getGlobalArraySetting (line 49) | function getGlobalArraySetting (name) {

FILE: src/core/classes/component-registry.js
  class ComponentRegistry (line 6) | class ComponentRegistry extends EventTarget {
    method constructor (line 59) | constructor (options) {
    method whenDefined (line 84) | async whenDefined (id) {
    method add (line 119) | add (def, id = def.id, options) {
    method has (line 160) | has (id) {
    method get (line 169) | get (id) {
    method load (line 178) | load (id) {
    method loadAll (line 210) | loadAll (ids) {

FILE: src/core/classes/hooks.js
  class Hooks (line 5) | class Hooks {
    method add (line 30) | add (name, callback) {
    method remove (line 65) | remove (name, callback) {
    method run (line 95) | run (name, env) {

FILE: src/core/classes/language-registry.js
  class LanguageRegistry (line 4) | class LanguageRegistry extends ComponentRegistry {
    method add (line 23) | add (def) {
    method resolveRef (line 54) | resolveRef (ref) {
    method peek (line 90) | peek (ref) {
    method getLanguage (line 115) | getLanguage (ref) {

FILE: src/core/classes/language.js
  class Language (line 6) | class Language extends EventTarget {
    method constructor (line 29) | constructor (def, registry) {
    method resolve (line 84) | resolve () {}
    method id (line 86) | get id () {
    method alias (line 90) | get alias () {
    method base (line 101) | get base () {
    method grammar (line 120) | get grammar () {
    method grammar (line 177) | set grammar (grammar) {
    method resolvedGrammar (line 182) | get resolvedGrammar () {
    method resolvedGrammar (line 190) | set resolvedGrammar (grammar) {

FILE: src/core/classes/list.js
  class List (line 8) | class List extends Set {
    method length (line 12) | get length () {
    method addAll (line 20) | addAll (arg) {

FILE: src/core/classes/plugin-registry.js
  class PluginRegistry (line 4) | class PluginRegistry extends ComponentRegistry {
    method add (line 19) | add (def) {
    method peek (line 41) | peek (ref) {

FILE: src/core/classes/plugin.js
  class Plugin (line 3) | class Plugin extends EventTarget {
    method constructor (line 17) | constructor (def, registry) {
    method id (line 38) | get id () {
    method plugin (line 42) | get plugin () {
    method plugin (line 51) | set plugin (value) {
    method effect (line 55) | get effect () {

FILE: src/core/classes/prism.js
  class Prism (line 15) | class Prism {
    method constructor (line 49) | constructor (config = {}) {
    method languages (line 88) | get languages () {
    method plugins (line 92) | get plugins () {
    method loadLanguage (line 102) | async loadLanguage (id) {
    method loadPlugin (line 114) | async loadPlugin (id) {
    method highlightAll (line 126) | highlightAll (options = {}) {
    method highlightElement (line 136) | highlightElement (element, options = {}) {
    method highlight (line 148) | highlight (text, language, options = {}) {
    method tokenize (line 159) | tokenize (text, grammar) {

FILE: src/core/classes/token.js
  class Token (line 1) | class Token {
    method constructor (line 47) | constructor (type, content, alias, matchedStr = '') {
    method addAlias (line 60) | addAlias (alias) {
  function getTextContent (line 80) | function getTextContent (token) {

FILE: src/core/highlight-all.js
  function highlightAll (line 16) | function highlightAll (options = {}) {

FILE: src/core/highlight-element.js
  function highlightElement (line 23) | function highlightElement (element, options = {}) {

FILE: src/core/highlight.js
  function highlight (line 23) | function highlight (text, language, options) {

FILE: src/core/linked-list.js
  class LinkedList (line 4) | class LinkedList {
    method constructor (line 20) | constructor () {
    method addAfter (line 44) | addAfter (node, value) {
    method removeRange (line 63) | removeRange (node, count) {
    method toArray (line 77) | toArray () {

FILE: src/core/registry.js
  class Registry (line 10) | class Registry {
    method constructor (line 35) | constructor (Prism) {
    method resolveAlias (line 46) | resolveAlias (name) {
    method has (line 56) | has (name) {
    method add (line 63) | add (...components) {
    method update (line 111) | update (changed) {
    method getLanguage (line 195) | getLanguage (id) {

FILE: src/core/stringify.js
  function stringify (line 14) | function stringify (o, language, hooks) {

FILE: src/core/tokenize/match.js
  function _matchGrammar (line 16) | function _matchGrammar (text, tokenList, grammar, startNode, startPos, r...
  function matchPattern (line 186) | function matchPattern (pattern, pos, text, lookbehind) {
  function toGrammarToken (line 202) | function toGrammarToken (pattern) {

FILE: src/core/tokenize/tokenize.js
  function tokenize (line 28) | function tokenize (text, grammar) {

FILE: src/core/tokenize/util.js
  function resolve (line 8) | function resolve (reference) {

FILE: src/languages/abnf.js
  method grammar (line 4) | grammar () {

FILE: src/languages/actionscript.js
  method grammar (line 7) | grammar () {

FILE: src/languages/apex.js
  method grammar (line 8) | grammar ({ languages }) {

FILE: src/languages/arduino.js
  method grammar (line 8) | grammar () {

FILE: src/languages/arturo.js
  function createLanguageString (line 6) | function createLanguageString (lang, pattern) {

FILE: src/languages/asciidoc.js
  method grammar (line 5) | grammar () {
  method effect (line 286) | effect (Prism) {

FILE: src/languages/aspnet.js
  method grammar (line 9) | grammar ({ base }) {

FILE: src/languages/autohotkey.js
  method grammar (line 4) | grammar () {

FILE: src/languages/avisynth.js
  method grammar (line 5) | grammar () {

FILE: src/languages/avro-idl.js
  method grammar (line 5) | grammar () {

FILE: src/languages/bash.js
  method grammar (line 5) | grammar () {

FILE: src/languages/batch.js
  method grammar (line 4) | grammar () {

FILE: src/languages/birb.js
  method grammar (line 7) | grammar () {

FILE: src/languages/bison.js
  method grammar (line 7) | grammar ({ base }) {

FILE: src/languages/bsl.js
  method grammar (line 6) | grammar () {

FILE: src/languages/c.js
  method grammar (line 8) | grammar ({ base, getOptionalLanguage }) {

FILE: src/languages/cfscript.js
  method grammar (line 8) | grammar () {

FILE: src/languages/chaiscript.js
  method grammar (line 10) | grammar ({ languages }) {

FILE: src/languages/cilkc.js
  method grammar (line 8) | grammar () {

FILE: src/languages/cilkcpp.js
  method grammar (line 8) | grammar () {

FILE: src/languages/clojure.js
  method grammar (line 4) | grammar () {

FILE: src/languages/coffeescript.js
  method grammar (line 8) | grammar () {

FILE: src/languages/cooklang.js
  method grammar (line 4) | grammar () {

FILE: src/languages/coq.js
  method grammar (line 4) | grammar () {

FILE: src/languages/cpp.js
  method grammar (line 9) | grammar ({ extend, getOptionalLanguage }) {

FILE: src/languages/crystal.js
  method grammar (line 8) | grammar ({ base }) {

FILE: src/languages/csharp.js
  function replace (line 13) | function replace (pattern, replacements) {
  function re (line 18) | function re (pattern, replacements, flags) {
  function nested (line 25) | function nested (pattern, depthLog2) {
  method grammar (line 38) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/cshtml.js
  method grammar (line 11) | grammar ({ extend }) {

FILE: src/languages/csp.js
  method grammar (line 4) | grammar () {

FILE: src/languages/css-extras.js
  method grammar (line 7) | grammar () {

FILE: src/languages/css-selector.js
  method grammar (line 4) | grammar () {

FILE: src/languages/css.js
  method grammar (line 5) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/csv.js
  method grammar (line 4) | grammar () {

FILE: src/languages/cue.js
  method grammar (line 4) | grammar () {

FILE: src/languages/d.js
  method grammar (line 7) | grammar () {

FILE: src/languages/dart.js
  method grammar (line 7) | grammar () {

FILE: src/languages/diff.js
  constant PREFIXES (line 4) | const PREFIXES = {
  method grammar (line 16) | grammar () {

FILE: src/languages/docker.js
  method grammar (line 5) | grammar () {

FILE: src/languages/dot.js
  method grammar (line 5) | grammar () {

FILE: src/languages/elixir.js
  method grammar (line 4) | grammar () {

FILE: src/languages/factor.js
  method grammar (line 6) | grammar () {

FILE: src/languages/false.js
  method grammar (line 4) | grammar () {

FILE: src/languages/firestore-security-rules.js
  method grammar (line 7) | grammar () {

FILE: src/languages/flow.js
  method grammar (line 8) | grammar ({ base }) {

FILE: src/languages/fsharp.js
  method grammar (line 8) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/ftl.js
  method grammar (line 8) | grammar () {

FILE: src/languages/gap.js
  method grammar (line 4) | grammar () {

FILE: src/languages/gherkin.js
  method grammar (line 4) | grammar () {

FILE: src/languages/glsl.js
  method grammar (line 7) | grammar () {

FILE: src/languages/gml.js
  method grammar (line 8) | grammar () {

FILE: src/languages/gn.js
  method grammar (line 5) | grammar () {

FILE: src/languages/go.js
  method grammar (line 7) | grammar () {

FILE: src/languages/gradle.js
  method grammar (line 7) | grammar () {

FILE: src/languages/graphql.js
  method $tokenize (line 69) | $tokenize (code, grammar, Prism) {

FILE: src/languages/groovy.js
  method grammar (line 7) | grammar () {

FILE: src/languages/haml.js
  method grammar (line 7) | grammar () {

FILE: src/languages/haxe.js
  method grammar (line 7) | grammar () {

FILE: src/languages/hlsl.js
  method grammar (line 8) | grammar ({ base }) {

FILE: src/languages/hpkp.js
  method grammar (line 4) | grammar () {

FILE: src/languages/hsts.js
  method grammar (line 4) | grammar () {

FILE: src/languages/http.js
  method grammar (line 5) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/ichigojam.js
  method grammar (line 4) | grammar () {

FILE: src/languages/icu-message-format.js
  method grammar (line 4) | grammar () {

FILE: src/languages/idris.js
  method grammar (line 8) | grammar () {

FILE: src/languages/inform7.js
  method grammar (line 4) | grammar () {

FILE: src/languages/java.js
  method grammar (line 8) | grammar ({ base }) {

FILE: src/languages/javadoc.js
  method grammar (line 10) | grammar ({ languages }) {

FILE: src/languages/javascript.js
  method grammar (line 11) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/javastacktrace.js
  method grammar (line 4) | grammar () {

FILE: src/languages/jolie.js
  method grammar (line 7) | grammar () {

FILE: src/languages/jq.js
  method grammar (line 4) | grammar () {

FILE: src/languages/js-templates.js
  function createTemplate (line 15) | function createTemplate (language, tag) {
  method grammar (line 52) | grammar () {

FILE: src/languages/jsdoc.js
  method grammar (line 10) | grammar ({ languages }) {

FILE: src/languages/json.js
  method grammar (line 5) | grammar () {

FILE: src/languages/json5.js
  method grammar (line 7) | grammar () {

FILE: src/languages/jsonp.js
  method grammar (line 7) | grammar () {

FILE: src/languages/jsx.js
  function stringifyToken (line 10) | function stringifyToken (token) {
  function walkTokens (line 24) | function walkTokens (tokens) {
  method grammar (line 117) | grammar ({ extend }) {

FILE: src/languages/kotlin.js
  method grammar (line 8) | grammar () {

FILE: src/languages/kumir.js
  method grammar (line 7) | grammar () {

FILE: src/languages/latex.js
  method grammar (line 5) | grammar () {

FILE: src/languages/latte.js
  method grammar (line 10) | grammar ({ extend }) {

FILE: src/languages/less.js
  method grammar (line 7) | grammar () {

FILE: src/languages/lilypond.js
  method grammar (line 8) | grammar () {

FILE: src/languages/lisp.js
  method grammar (line 5) | grammar () {

FILE: src/languages/log.js
  method grammar (line 5) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/markdown.js
  method grammar (line 10) | grammar () {
  method effect (line 349) | effect (Prism) {

FILE: src/languages/markup.js
  function inlineEmbedded (line 15) | function inlineEmbedded (tagName, lang) {
  function attributeEmbedded (line 58) | function attributeEmbedded (attrName, lang) {
  method grammar (line 98) | grammar () {

FILE: src/languages/mata.js
  method grammar (line 4) | grammar () {

FILE: src/languages/maxscript.js
  method grammar (line 4) | grammar () {

FILE: src/languages/mongodb.js
  method grammar (line 7) | grammar () {

FILE: src/languages/n1ql.js
  method grammar (line 4) | grammar () {

FILE: src/languages/n4js.js
  method grammar (line 8) | grammar () {

FILE: src/languages/naniscript.js
  function isBracketsBalanced (line 8) | function isBracketsBalanced (input) {
  method grammar (line 30) | grammar () {

FILE: src/languages/nginx.js
  method grammar (line 4) | grammar () {

FILE: src/languages/nsis.js
  method grammar (line 4) | grammar () {

FILE: src/languages/objectivec.js
  method grammar (line 8) | grammar () {

FILE: src/languages/ocaml.js
  method grammar (line 4) | grammar () {

FILE: src/languages/odin.js
  method grammar (line 4) | grammar () {

FILE: src/languages/opencl.js
  method grammar (line 7) | grammar () {

FILE: src/languages/openqasm.js
  method grammar (line 5) | grammar () {

FILE: src/languages/parigp.js
  method grammar (line 4) | grammar () {

FILE: src/languages/parser.js
  method grammar (line 7) | grammar () {

FILE: src/languages/pascal.js
  method grammar (line 5) | grammar () {

FILE: src/languages/pascaligo.js
  method grammar (line 4) | grammar () {

FILE: src/languages/perl.js
  method grammar (line 4) | grammar () {

FILE: src/languages/php.js
  method grammar (line 10) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/phpdoc.js
  method grammar (line 7) | grammar () {

FILE: src/languages/plant-uml.js
  method grammar (line 5) | grammar () {

FILE: src/languages/plsql.js
  method grammar (line 7) | grammar () {

FILE: src/languages/powerquery.js
  method grammar (line 5) | grammar () {

FILE: src/languages/powershell.js
  method grammar (line 4) | grammar () {

FILE: src/languages/processing.js
  method grammar (line 7) | grammar () {

FILE: src/languages/promql.js
  method grammar (line 4) | grammar () {

FILE: src/languages/protobuf.js
  method grammar (line 7) | grammar () {

FILE: src/languages/pug.js
  method grammar (line 8) | grammar () {

FILE: src/languages/puppet.js
  method grammar (line 4) | grammar () {

FILE: src/languages/pure.js
  method grammar (line 4) | grammar () {

FILE: src/languages/purebasic.js
  method grammar (line 8) | grammar () {

FILE: src/languages/purescript.js
  method grammar (line 8) | grammar () {

FILE: src/languages/qml.js
  method grammar (line 7) | grammar () {

FILE: src/languages/qore.js
  method grammar (line 7) | grammar () {

FILE: src/languages/qsharp.js
  method grammar (line 8) | grammar () {

FILE: src/languages/racket.js
  method grammar (line 8) | grammar () {

FILE: src/languages/reason.js
  method grammar (line 7) | grammar () {

FILE: src/languages/regex.js
  method grammar (line 4) | grammar () {

FILE: src/languages/rego.js
  method grammar (line 4) | grammar () {

FILE: src/languages/rescript.js
  method grammar (line 5) | grammar () {

FILE: src/languages/robotframework.js
  method grammar (line 5) | grammar () {

FILE: src/languages/ruby.js
  method grammar (line 8) | grammar () {

FILE: src/languages/rust.js
  method grammar (line 4) | grammar () {

FILE: src/languages/sas.js
  method grammar (line 4) | grammar () {

FILE: src/languages/sass.js
  method grammar (line 7) | grammar ({ base }) {

FILE: src/languages/scala.js
  method grammar (line 7) | grammar () {

FILE: src/languages/scheme.js
  function SortedBNF (line 7) | function SortedBNF (grammar) {

FILE: src/languages/scss.js
  method grammar (line 7) | grammar () {

FILE: src/languages/shell-session.js
  method grammar (line 8) | grammar () {

FILE: src/languages/smali.js
  method grammar (line 4) | grammar () {

FILE: src/languages/smarty.js
  method grammar (line 8) | grammar () {

FILE: src/languages/sml.js
  method grammar (line 5) | grammar () {

FILE: src/languages/solidity.js
  method grammar (line 8) | grammar () {

FILE: src/languages/solution-file.js
  method grammar (line 5) | grammar () {

FILE: src/languages/soy.js
  method grammar (line 8) | grammar () {

FILE: src/languages/sparql.js
  method grammar (line 8) | grammar () {

FILE: src/languages/sqf.js
  method grammar (line 7) | grammar ({ base }) {

FILE: src/languages/squirrel.js
  method grammar (line 8) | grammar ({ base }) {

FILE: src/languages/stan.js
  method grammar (line 4) | grammar () {

FILE: src/languages/stata.js
  method grammar (line 9) | grammar () {

FILE: src/languages/stylus.js
  method grammar (line 4) | grammar () {

FILE: src/languages/systemd.js
  method grammar (line 4) | grammar () {

FILE: src/languages/t4-cs.js
  method grammar (line 9) | grammar () {

FILE: src/languages/t4-vb.js
  method grammar (line 8) | grammar () {

FILE: src/languages/textile.js
  method grammar (line 7) | grammar ({ base }) {

FILE: src/languages/toml.js
  method grammar (line 4) | grammar () {

FILE: src/languages/treeview.js
  method $tokenize (line 48) | $tokenize (code, grammar, Prism) {

FILE: src/languages/tremor.js
  method grammar (line 5) | grammar () {

FILE: src/languages/tsx.js
  method grammar (line 8) | grammar ({ extend }) {

FILE: src/languages/tt2.js
  method grammar (line 10) | grammar ({ extend }) {

FILE: src/languages/typescript.js
  method grammar (line 10) | grammar ({ extend }) {

FILE: src/languages/typoscript.js
  method grammar (line 5) | grammar () {

FILE: src/languages/uri.js
  method grammar (line 5) | grammar () {

FILE: src/languages/v.js
  method grammar (line 7) | grammar () {

FILE: src/languages/vala.js
  method grammar (line 7) | grammar () {

FILE: src/languages/vbnet.js
  method grammar (line 8) | grammar ({ getOptionalLanguage }) {

FILE: src/languages/velocity.js
  method grammar (line 7) | grammar () {

FILE: src/languages/web-idl.js
  method grammar (line 5) | grammar () {

FILE: src/languages/wiki.js
  method grammar (line 7) | grammar ({ base }) {

FILE: src/languages/xeora.js
  method grammar (line 8) | grammar () {

FILE: src/languages/xml-doc.js
  method grammar (line 7) | grammar ({ languages }) {

FILE: src/languages/xml.js
  method grammar (line 7) | grammar () {
  method effect (line 89) | effect (Prism) {

FILE: src/languages/xquery.js
  function walkTokens (line 8) | function walkTokens (tokens) {
  method grammar (line 113) | grammar ({ base }) {

FILE: src/languages/yaml.js
  method grammar (line 5) | grammar () {

FILE: src/languages/zig.js
  method grammar (line 4) | grammar () {

FILE: src/load-languages.js
  function pathJoin (line 10) | function pathJoin (dir, file) {
  function importFile (line 22) | function importFile (file) {
  function loadLanguages (line 41) | async function loadLanguages (Prism, languages = knownLanguages, srcPath...

FILE: src/plugins/autolinker/autolinker.js
  method effect (line 8) | effect (Prism) {

FILE: src/plugins/autoloader/autoloader.js
  function getDefaultSrcPath (line 6) | function getDefaultSrcPath () {
  function pathJoin (line 41) | function pathJoin (dir, file) {
  function isLoaded (line 52) | function isLoaded (Prism, name) {
  class Autoloader (line 58) | class Autoloader {
    method constructor (line 74) | constructor (Prism) {
    method loadLanguages (line 84) | async loadLanguages (languages) {
    method preloadLanguages (line 115) | preloadLanguages (languages) {
  method plugin (line 127) | plugin (Prism) {
  method effect (line 130) | effect (Prism) {

FILE: src/plugins/autoloader/demo.js
  function getZip (line 1) | async function getZip (files, elt) {
  function addFile (line 20) | async function addFile (zip, filename, filepath) {
  function getFileContents (line 25) | async function getFileContents (filepath) {

FILE: src/plugins/command-line/command-line.js
  constant CLASS_PATTERN (line 5) | const CLASS_PATTERN = /(?:^|\s)command-line(?:\s|$)/;
  constant PROMPT_CLASS (line 6) | const PROMPT_CLASS = 'command-line-prompt';
  method effect (line 11) | effect (Prism) {

FILE: src/plugins/copy-to-clipboard/copy-to-clipboard.js
  function registerClipboard (line 10) | function registerClipboard (element, copyInfo) {
  function fallbackCopyTextToClipboard (line 21) | function fallbackCopyTextToClipboard (copyInfo) {
  function copyTextToClipboard (line 57) | function copyTextToClipboard (copyInfo) {
  function selectElementText (line 74) | function selectElementText (element) {
  function getInheritedAttribute (line 84) | function getInheritedAttribute (element, attribute) {
  function getSettings (line 102) | function getSettings (startElement) {
  method effect (line 133) | effect (Prism) {

FILE: src/plugins/custom-class/custom-class.js
  class CustomClass (line 3) | class CustomClass {
    method add (line 27) | add (classAdder) {
    method map (line 38) | map (classMapper) {
    method apply (line 53) | apply (className) {
  method plugin (line 61) | plugin () {
  method effect (line 64) | effect (Prism) {

FILE: src/plugins/data-uri-highlight/data-uri-highlight.js
  method effect (line 8) | effect (Prism) {

FILE: src/plugins/diff-highlight/diff-highlight.js
  method effect (line 9) | effect (Prism) {

FILE: src/plugins/download-button/download-button.js
  method effect (line 9) | effect (Prism) {

FILE: src/plugins/file-highlight/file-highlight.js
  constant LOADING_MESSAGE (line 13) | const LOADING_MESSAGE = 'Loading…';
  constant FAILURE_EMPTY_MESSAGE (line 14) | const FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';
  function loadFile (line 23) | function loadFile (src, success, error) {
  constant EXTENSIONS (line 44) | const EXTENSIONS = {
  constant STATUS_ATTR (line 56) | const STATUS_ATTR = 'data-src-status';
  constant STATUS_LOADING (line 57) | const STATUS_LOADING = 'loading';
  constant STATUS_LOADED (line 58) | const STATUS_LOADED = 'loaded';
  constant STATUS_FAILED (line 59) | const STATUS_FAILED = 'failed';
  constant SELECTOR (line 61) | const SELECTOR =
  class FileHighlight (line 73) | class FileHighlight {
    method constructor (line 83) | constructor (Prism) {
    method highlight (line 94) | highlight (container = document) {
  method plugin (line 106) | plugin (Prism) {
  method effect (line 109) | effect (Prism) {

FILE: src/plugins/filter-highlight-all/filter-highlight-all.js
  class FilterHighlightAll (line 4) | class FilterHighlightAll {
    method add (line 25) | add (condition) {
    method addSelector (line 40) | addSelector (selector) {
    method everyFilter (line 77) | everyFilter (element) {
  method plugin (line 90) | plugin (Prism) {
  method effect (line 116) | effect (Prism) {

FILE: src/plugins/highlight-keywords/highlight-keywords.js
  method effect (line 6) | effect (Prism) {

FILE: src/plugins/inline-color/inline-color.js
  constant HTML_TAG (line 5) | const HTML_TAG = RegExp(MARKUP_TAG, 'g');
  constant HEX_COLOR (line 8) | const HEX_COLOR = /^#?((?:[\da-f]){3,4}|(?:[\da-f]{2}){3,4})$/i;
  function parseHexColor (line 22) | function parseHexColor (hex) {
  function validateColor (line 64) | function validateColor (color) {
  method effect (line 78) | effect (Prism) {

FILE: src/plugins/jsonp-highlight/demo.js
  function dump_json (line 1) | function dump_json (x) {

FILE: src/plugins/jsonp-highlight/jsonp-highlight.js
  function getGlobal (line 3) | function getGlobal () {
  function jsonp (line 19) | function jsonp (src, callbackParameter, timeout, onSuccess, onError) {
  constant STATUS_ATTR (line 57) | const STATUS_ATTR = 'data-jsonp-status';
  constant STATUS_LOADING (line 58) | const STATUS_LOADING = 'loading';
  constant STATUS_LOADED (line 59) | const STATUS_LOADED = 'loaded';
  constant STATUS_FAILED (line 60) | const STATUS_FAILED = 'failed';
  constant SELECTOR (line 62) | const SELECTOR =
  class JsonpHighlight (line 74) | class JsonpHighlight {
    method constructor (line 98) | constructor (Prism) {
    method getAdapter (line 109) | getAdapter (adapter) {
    method registerAdapter (line 136) | registerAdapter (name, adapter) {
    method removeAdapter (line 148) | removeAdapter (adapter) {
    method runAdapters (line 165) | runAdapters (...args) {
    method highlight (line 184) | highlight (container = document) {
  method plugin (line 196) | plugin (Prism) {
  method effect (line 248) | effect (Prism) {

FILE: src/plugins/keep-markup/keep-markup.js
  function isElement (line 9) | function isElement (child) {
  function isText (line 18) | function isText (child) {
  method effect (line 26) | effect (Prism) {

FILE: src/plugins/line-highlight/line-highlight.js
  constant LINE_NUMBERS_CLASS (line 6) | const LINE_NUMBERS_CLASS = 'line-numbers';
  constant LINKABLE_LINE_NUMBERS_CLASS (line 7) | const LINKABLE_LINE_NUMBERS_CLASS = 'linkable-line-numbers';
  constant NEW_LINE_EXP (line 8) | const NEW_LINE_EXP = /\n(?!$)/g;
  function $$ (line 16) | function $$ (selector, container = document) {
  function getContentBoxTopOffset (line 27) | function getContentBoxTopOffset (parent, child) {
  function hasClass (line 56) | function hasClass (element, className) {
  function callFunction (line 66) | function callFunction (func) {
  class LineHighlight (line 87) | class LineHighlight {
    method constructor (line 98) | constructor (Prism) {
    method highlightLines (line 111) | highlightLines (pre, lines, classes = '') {
  method plugin (line 259) | plugin (Prism) {
  method effect (line 262) | effect (Prism) {

FILE: src/plugins/line-numbers/line-numbers.js
  constant PLUGIN_NAME (line 9) | const PLUGIN_NAME = 'line-numbers';
  constant NEW_LINE_EXP (line 14) | const NEW_LINE_EXP = /\n(?!$)/g;
  function getLineNumbersRows (line 22) | function getLineNumbersRows (element) {
  function resizeElements (line 31) | function resizeElements (elements) {
  class LineNumbers (line 128) | class LineNumbers {
    method getLine (line 146) | getLine (element, number) {
    method getLines (line 176) | getLines (element) {
    method resize (line 197) | resize (element) {
  method plugin (line 205) | plugin () {
  method effect (line 208) | effect (Prism) {

FILE: src/plugins/match-braces/match-braces.js
  method effect (line 7) | effect (Prism) {

FILE: src/plugins/normalize-whitespace/normalize-whitespace.js
  function tabLength (line 8) | function tabLength (str) {
  function readSetting (line 48) | function readSetting (element) {
  class NormalizeWhitespace (line 115) | class NormalizeWhitespace {
    method constructor (line 117) | constructor (defaults) {
    method setDefaults (line 121) | setDefaults (defaults) {
    method normalize (line 130) | normalize (input, settings) {
  method plugin (line 148) | plugin () {
  method effect (line 161) | effect (Prism) {

FILE: src/plugins/previewers/previewers.js
  constant TOKEN_CLASS (line 29) | const TOKEN_CLASS = 'token';
  constant ACTIVE_CLASS (line 30) | const ACTIVE_CLASS = 'active';
  constant FLIPPED_CLASS (line 31) | const FLIPPED_CLASS = 'flipped';
  class Previewer (line 50) | class Previewer {
    method constructor (line 78) | constructor (type, updater, supportedLanguages = '*', initializer) {
    method init (line 89) | init () {
    method isDisabled (line 105) | isDisabled (token) {
    method tryShow (line 116) | tryShow (token) {
    method show (line 137) | show () {
    method hide (line 170) | hide () {
  class PreviewerCollection (line 175) | class PreviewerCollection {
    method add (line 192) | add (previewer) {
    method initEvents (line 213) | initEvents (elt, lang) {
  method create (line 242) | create () {
  method create (line 482) | create () {
  method create (line 571) | create () {
  method create (line 626) | create () {
  method create (line 736) | create () {
  method plugin (line 813) | plugin () {
  method effect (line 824) | effect (Prism) {

FILE: src/plugins/show-invisibles/show-invisibles.js
  method effect (line 8) | effect (Prism) {

FILE: src/plugins/show-language/show-language.js
  method effect (line 10) | effect (Prism) {

FILE: src/plugins/toolbar/toolbar.js
  function getOrder (line 10) | function getOrder (element) {
  class Toolbar (line 27) | class Toolbar {
    method registerButton (line 47) | registerButton (key, opts) {
  method plugin (line 205) | plugin () {
  method effect (line 210) | effect (Prism) {

FILE: src/plugins/unescaped-markup/unescaped-markup.js
  method effect (line 6) | effect (Prism) {

FILE: src/plugins/wpd/wpd.js
  function getLanguage (line 116) | function getLanguage (tag) {
  method effect (line 164) | effect (Prism) {

FILE: src/shared/dom-util.js
  function getLanguage (line 11) | function getLanguage (element) {
  function setLanguage (line 30) | function setLanguage (element, language) {
  function isActive (line 59) | function isActive (element, className, defaultActivation = false) {
  function getParentPre (line 73) | function getParentPre (element) {

FILE: src/shared/languages/patterns.js
  constant MARKUP_TAG (line 1) | const MARKUP_TAG =
  constant JS_TEMPLATE_INTERPOLATION (line 4) | const JS_TEMPLATE_INTERPOLATION = /\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\...
  constant JS_TEMPLATE (line 5) | const JS_TEMPLATE = RegExp(

FILE: src/shared/languages/t4-templating.js
  function createBlock (line 6) | function createBlock (prefix, insideLang) {
  function createT4 (line 28) | function createT4 (insideLang) {

FILE: src/shared/languages/templating.js
  function getPlaceholder (line 11) | function getPlaceholder (id) {
  function buildPlaceholders (line 21) | function buildPlaceholders (code, grammar, Prism) {
  function insertIntoHostToken (line 62) | function insertIntoHostToken (hostTokens, tokenStack) {
  function templating (line 126) | function templating (code, hostGrammar, templateGrammar, Prism) {
  function embeddedIn (line 141) | function embeddedIn (hostGrammar) {

FILE: src/shared/meta/alias-data.js
  function resolveAlias (line 12) | function resolveAlias (name) {

FILE: src/shared/meta/title-data.js
  function guessTitle (line 14) | function guessTitle (name) {
  function getTitle (line 26) | function getTitle (name) {

FILE: src/shared/tokenize-strings.js
  function tokenizeStrings (line 11) | function tokenizeStrings (tokens, tokenize) {

FILE: src/shared/util.js
  function lazy (line 8) | function lazy (supplier) {
  function htmlEncode (line 27) | function htmlEncode (text) {
  function isNonNull (line 47) | function isNonNull (value) {
  function regexEscape (line 57) | function regexEscape (string) {
  function capitalize (line 65) | function capitalize (string) {
  function kebabToCamelCase (line 75) | function kebabToCamelCase (kebab) {

FILE: src/types.d.ts
  type Languages (line 9) | type Languages = Record<string, Language>;
  type LanguageGrammars (line 10) | type LanguageGrammars = Record<string, Grammar>;
  type Plugins (line 15) | type Plugins = Record<string, Plugin>;
  type PrismConfig (line 17) | interface PrismConfig {
  type GlobalConfig (line 27) | type GlobalConfig = Record<string, PrismConfig[keyof PrismConfig] | null>;
  type BaseHookEnv (line 29) | interface BaseHookEnv {
  type HookEnv (line 33) | interface HookEnv extends BaseHookEnv, Record<string, any> {}
  type HookCallback (line 35) | type HookCallback<T extends keyof HookEnv = string> = (env: HookEnv[T]) ...
  type MultipleHooks (line 37) | type MultipleHooks<T extends keyof HookEnv> = { [K in T]?: HookCallback<...
  type HooksAll (line 39) | type HooksAll = Record<keyof HookEnv, HookCallback[]>;
  type HooksAdd (line 41) | type HooksAdd = <Name extends keyof HookEnv>(
  type HooksRemove (line 46) | type HooksRemove = <Name extends keyof HookEnv>(
  type HooksRun (line 51) | type HooksRun = <Name extends keyof HookEnv>(name: Name, env: HookEnv[Na...
  type GrammarOptions (line 53) | interface GrammarOptions {
  type ComponentProtoBase (line 58) | interface ComponentProtoBase<Id extends string = string> {
  type LanguageProto (line 66) | type LanguageProto<Id extends string = string> =
  type LanguageProtoPlain (line 72) | interface LanguageProtoPlain<Id extends string = string> extends Compone...
  type LanguageProtoWithBase (line 79) | interface LanguageProtoWithBase<Id extends string = string> extends Comp...
  type LanguageProtoWithRequire (line 86) | interface LanguageProtoWithRequire<Id extends string = string> extends C...
  type LanguageProtoWithBaseAndRequire (line 95) | interface LanguageProtoWithBaseAndRequire<Id extends string = string>
  type PluginType (line 110) | type PluginType<Name extends string> = unknown;
  type PluginProto (line 111) | interface PluginProto<Id extends string = string> extends ComponentProto...
  type ComponentProto (line 117) | type ComponentProto = LanguageProto | PluginProto;
  type StandardTokenName (line 119) | type StandardTokenName =
  type TokenName (line 152) | type TokenName = (string & {}) | StandardTokenName;
  type TokenStream (line 165) | type TokenStream = (string | Token)[];
  type TokenStack (line 167) | type TokenStack = [number, Token][];
  type RegExpLike (line 169) | type RegExpLike = RegExp & { readonly pattern?: never };
  type GrammarToken (line 174) | interface GrammarToken {
  type GrammarTokens (line 208) | type GrammarTokens = Partial<
  type GrammarSpecial (line 212) | type GrammarSpecial = {
  type InsertableToken (line 223) | type InsertableToken = (RegExpLike | GrammarToken | (RegExpLike | Gramma...
  type GrammarPatch (line 231) | type GrammarPatch = {
  type Grammar (line 241) | interface Grammar extends GrammarSpecial, GrammarPatch {
  type PlainObject (line 250) | interface PlainObject {
  type KebabToCamelCase (line 254) | type KebabToCamelCase<S extends string> = S extends `${infer T}-${infer U}`

FILE: src/util/async.js
  function documentReady (line 5) | function documentReady (document = globalThis.document) {
  function nextTick (line 32) | function nextTick () {
  function allSettled (line 53) | async function allSettled (promises) {
  function defer (line 77) | function defer () {

FILE: src/util/combine-callbacks.js
  function combineCallbacks (line 7) | function combineCallbacks (...callbacks) {

FILE: src/util/extend.js
  function extend (line 30) | function extend (base, grammar) {

FILE: src/util/grammar-patch.js
  function grammarPatch (line 12) | function grammarPatch (grammar, patch = grammar) {

FILE: src/util/insert.js
  function insertBefore (line 35) | function insertBefore (grammar, beforeKey, tokens) {
  function insertAfter (line 45) | function insertAfter (grammar, afterKey, tokens) {
  function insert (line 56) | function insert (grammar, atKey, insert, position = 'after') {

FILE: src/util/iterables.js
  function toArray (line 10) | function toArray (value) {
  function forEach (line 34) | function forEach (value, callbackFn) {
  function isIterable (line 49) | function isIterable (value) {
  function toIterable (line 63) | function toIterable (value) {

FILE: src/util/objects.js
  function defineLazyProperty (line 12) | async function defineLazyProperty (obj, key, getter, waitFor) {
  function defineSimpleProperty (line 40) | function defineSimpleProperty (obj, key, value) {
  function isObject (line 55) | function isObject (obj, type) {
  function isPlainObject (line 68) | function isPlainObject (obj) {
  function deepMerge (line 89) | function deepMerge (target, source, options = {}) {
  function deepClone (line 130) | function deepClone (obj, options = {}) {
  function betterAssign (line 170) | function betterAssign (target, ...sources) {

FILE: src/util/without-tokenize.js
  function withoutTokenize (line 5) | function withoutTokenize (grammar) {

FILE: tests/components-test.js
  function forEachEntry (line 65) | function forEachEntry (consumeFn) {
  function transformTitle (line 125) | function transformTitle (title) {

FILE: tests/core/greedy.js
  function testTokens (line 11) | function testTokens ({ grammar, code, expected }) {

FILE: tests/core/registry.js
  method grammar (line 31) | grammar ({ getOptionalLanguage }) {

FILE: tests/coverage.js
  function createInstance (line 16) | async function createInstance (languages) {
  function getAllOf (line 165) | function getAllOf (language) {
  function short (line 174) | function short (string, maxLength) {
  function getKeywordList (line 190) | function getKeywordList (pattern) {
  function splitOccurrences (line 215) | function splitOccurrences (occurrences) {
  function formatProblem (line 228) | function formatProblem (data, messageLines) {
  function makeGlobal (line 249) | function makeGlobal (regex) {

FILE: tests/helper/prism-dom-util.js
  function createUtil (line 8) | function createUtil (window) {
  function createTestSuite (line 73) | function createTestSuite (options) {

FILE: tests/helper/prism-loader.js
  constant SRC_DIR (line 10) | const SRC_DIR = path.join(__dirname, '../../src');
  function getComponentUncached (line 35) | async function getComponentUncached (id) {
  function getComponent (line 55) | function getComponent (id) {
  function createInstance (line 72) | async function createInstance (languages) {
  function overwriteProps (line 85) | function overwriteProps (target, source) {
  function createPrismDOM (line 105) | function createPrismDOM () {

FILE: tests/helper/snapshot.js
  function assertEqual (line 13) | function assertEqual (actual, expected) {

FILE: tests/helper/test-case.js
  class TestCaseFile (line 27) | class TestCaseFile {
    method constructor (line 70) | constructor (code, expected, description) {
    method print (line 81) | print () {
    method writeToFile (line 107) | writeToFile (filePath) {
    method parse (line 119) | static parse (content) {
    method readFromFile (line 154) | static readFromFile (filePath) {
  method run (line 170) | run (Prism, code, language) {
  method print (line 174) | print (actual) {
  method isEqual (line 177) | isEqual (actual, expected) {
  method assertEqual (line 189) | assertEqual (actual, expected, message) {
  function normalizeHtml (line 216) | function normalizeHtml (html) {
  method run (line 225) | run (Prism, code, language) {
  method print (line 228) | print (actual) {
  method isEqual (line 231) | isEqual (actual, expected) {
  method assertEqual (line 234) | assertEqual (actual, expected, message) {
  function runTestCase (line 259) | async function runTestCase (
  function runTestCaseWithRunner (line 293) | async function runTestCaseWithRunner (
  function parseLanguageNames (line 369) | function parseLanguageNames (languageIdentifier) {
  function firstDiff (line 403) | function firstDiff (expected, actual) {
  function translateIndexIgnoreSpaces (line 433) | function translateIndexIgnoreSpaces (spacey, withoutSpaces, withoutSpace...

FILE: tests/helper/test-discovery.js
  constant LANGUAGES_DIR (line 6) | const LANGUAGES_DIR = path.join(__dirname, '..', 'languages');
  function loadAllTests (line 14) | function loadAllTests (rootDir = LANGUAGES_DIR) {
  function loadSomeTests (line 29) | function loadSomeTests (languages, rootDir = LANGUAGES_DIR) {
  function getAllDirectories (line 44) | function getAllDirectories (src) {
  function getSomeDirectories (line 58) | function getSomeDirectories (src, languages) {
  function directoryMatches (line 71) | function directoryMatches (directory, languages) {
  function getAllFiles (line 85) | function getAllFiles (src) {

FILE: tests/helper/token-stream-transformer.js
  function simplify (line 13) | function simplify (tokenStream) {
  function prettyprint (line 43) | function prettyprint (tokenStream, indentation) {
  class LineBreakItem (line 53) | class LineBreakItem {
    method constructor (line 62) | constructor (sourceCount) {
  class GlueItem (line 71) | class GlueItem {}
  function toPrettyTokenStream (line 79) | function toPrettyTokenStream (tokenStream, level = 0) {
  function prettyFormat (line 134) | function prettyFormat (prettyStream, indentationWidth) {
  function printPrettyTokenStream (line 251) | function printPrettyTokenStream (prettyStream, indentationLevel = 1, ind...
  function isBlank (line 319) | function isBlank (str) {
  function countLineBreaks (line 327) | function countLineBreaks (str) {
  function prettyTrimLineBreaks (line 336) | function prettyTrimLineBreaks (prettyStream) {
  function prettyEnableLineBreaks (line 363) | function prettyEnableLineBreaks (prettyStream, cond) {
  function prettySplit (line 379) | function prettySplit (prettyStream, cond) {
  function prettySomeLineBreak (line 409) | function prettySomeLineBreak (prettyStream, recursive, cond) {
  function prettyContainsNonTriviallyNested (line 426) | function prettyContainsNonTriviallyNested (prettyStream) {
  function prettyCountTokens (line 441) | function prettyCountTokens (prettyStream, recursive) {
  function prettyGlueTogether (line 461) | function prettyGlueTogether (prettyStream, prev, next) {
  function prettyGlueTogetherAll (line 488) | function prettyGlueTogetherAll (prettyStream, slice) {
  function isToken (line 503) | function isToken (item) {
  function isNested (line 511) | function isNested (item) {
  function isTriviallyNested (line 520) | function isTriviallyNested (item) {

FILE: tests/helper/util.js
  function BFS (line 15) | function BFS (start, callback) {
  function BFSPathToPrismTokenPath (line 59) | function BFSPathToPrismTokenPath (path, root = 'Prism.languages') {
  function parseRegex (line 84) | function parseRegex (regex) {
  function getLeadingSpaces (line 100) | function getLeadingSpaces (string) {
  function getTrailingSpaces (line 109) | function getTrailingSpaces (string) {
  function formatHtml (line 118) | function formatHtml (html) {
  function isRegExp (line 131) | function isRegExp (value) {

FILE: tests/identifier-test.js
  function getOptions (line 95) | function getOptions (lang) {
  function isNotBroken (line 103) | function isNotBroken (token) {
  function testLiterals (line 121) | function testLiterals (getPrism, lang) {

FILE: tests/pattern-tests.js
  function testPatterns (line 75) | function testPatterns (getPrism, mainLanguage) {
  function getFirstCapturingGroup (line 405) | function getFirstCapturingGroup (pattern) {
  function isFirstMatch (line 429) | function isFirstMatch (element) {
  function underAStar (line 467) | function underAStar (node) {
  function firstOf (line 476) | function firstOf (iter) {
  function getResultCache (line 512) | function getResultCache (cacheName) {
  function withResultCache (line 528) | function withResultCache (cacheName, cacheKey, compute) {
  function asError (line 558) | function asError (error) {
  function checkExponentialBacktracking (line 574) | function checkExponentialBacktracking (path, pattern, ast) {
  function checkPolynomialBacktracking (line 742) | function checkPolynomialBacktracking (path, pattern, ast) {
  function highlight (line 841) | function highlight (highlights, offset = 0) {
  function indent (line 876) | function indent (str, amount = '    ') {
  function replaceRegExpProto (line 888) | async function replaceRegExpProto (execSupplier, fn) {

FILE: tests/plugins/copy-to-clipboard/basic-functionality.js
  class DummyClipboard (line 4) | class DummyClipboard {
    method readText (line 6) | readText () {
    method writeText (line 13) | writeText (data) {
    method assign (line 22) | assign (navigator) {

FILE: tests/plugins/keep-markup/test.js
  function highlightInElement (line 17) | function highlightInElement ({ Prism, document }, html, language = 'none...
  function keepMarkup (line 34) | function keepMarkup (dom, html, language = 'none') {

FILE: tests/plugins/show-language/basic-functionality.js
  function test (line 22) | function test ({ document, Prism }, expectedLanguage, code) {

FILE: tests/plugins/unescaped-markup/basic-functionality.js
  function test (line 16) | function test ({ Prism, document }, expectedText, code) {

FILE: tests/types.d.ts
  type PrismWindow (line 7) | type PrismWindow<T> = DOMWindow & { Prism: Prism & T };
  type PrismDOM (line 9) | interface PrismDOM<T> {
  type AssertOptions (line 19) | interface AssertOptions {
  type TestSuiteDom (line 26) | type TestSuiteDom<T extends string> = PrismDOM<{
Condensed preview — 3077 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,573K chars).
[
  {
    "path": ".editorconfig",
    "chars": 209,
    "preview": "root = true\n\n[*]\ninsert_final_newline = false\ncharset = utf-8\nindent_style = tab\nindent_size = 4\n\n[tests/languages/**.te"
  },
  {
    "path": ".gitattributes",
    "chars": 12,
    "preview": "* text=auto\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 847,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve.\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\n**Information:**"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 217,
    "preview": "contact_links:\n  - name: Questions and Help\n    url: https://github.com/PrismJS/prism/discussions/categories/q-a\n    abo"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 440,
    "preview": "---\nname: Feature request\nabout: Suggest a new feature for Prism.\ntitle: ''\nlabels: enhancement\nassignees: ''\n---\n\n**Mot"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/highlighting-bug-report.md",
    "chars": 1037,
    "preview": "---\nname: Highlighting bug report\nabout: Does Prism highlight parts of your code incorrectly or is a language feature\n  "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/new-language-request.md",
    "chars": 299,
    "preview": "---\nname: New language request\nabout: Suggest a new language Prism should support.\ntitle: ''\nlabels: language-definition"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 118,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: 'github-actions'\n    directory: '/'\n    schedule:\n      interval: 'weekly'\n"
  },
  {
    "path": ".github/workflows/danger.yml",
    "chars": 610,
    "preview": "name: Danger\n\non:\n  pull_request_target:\n\njobs:\n  run:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/chec"
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 1309,
    "preview": "name: CI\n\non:\n  push:\n    branches: [v2]\n  pull_request:\n    branches: [v2]\n\npermissions:\n  contents: read\n\njobs:\n  test"
  },
  {
    "path": ".github/workflows/website-rebuild.yml",
    "chars": 335,
    "preview": "name: Rebuild Website\n\non:\n  push:\n    branches:\n      # FIXME: Use the main branch when v2 is out\n      - v2\n\njobs:\n  t"
  },
  {
    "path": ".gitignore",
    "chars": 107,
    "preview": "hide-*.js\nnode_modules\n.idea/\n.DS_Store\n.eslintcache\ndist/\ntypes/\n\nbenchmark/remotes/\nbenchmark/downloads/\n"
  },
  {
    "path": ".jsdoc.json",
    "chars": 1128,
    "preview": "{\n\t\"plugins\": [\"plugins/markdown\", \"./gulpfile.js/docs.js\"],\n\t\"opts\": {\n\t\t\"destination\": \"./docs\",\n\t\t\"encoding\": \"utf8\","
  },
  {
    "path": ".npmignore",
    "chars": 224,
    "preview": ".idea\n*.iml\n\nhide-*.js\n.DS_Store\nCNAME\n.github/\nbenchmark/\ntests/\n*.tgz\n*.html\n*.svg\ncomposer.json\ndangerfile.js\n.editor"
  },
  {
    "path": ".prettierrc.js",
    "chars": 1031,
    "preview": "/**\n * @see https://prettier.io/docs/configuration\n * @type {import(\"prettier\").Config}\n */\nexport default {\n\tplugins: ["
  },
  {
    "path": ".vscode/settings.json",
    "chars": 149,
    "preview": "{\n\t\"editor.formatOnSave\": true,\n\t\"editor.formatOnSaveMode\": \"file\",\n\t\"editor.defaultFormatter\": \"esbenp.prettier-vscode\""
  },
  {
    "path": "CHANGELOG.md",
    "chars": 272388,
    "preview": "# Prism Changelog\n\n## 1.29.0 (2022-08-23)\n\n### New components\n\n- **BBj** ([#3511](https://github.com/PrismJS/prism/issue"
  },
  {
    "path": "CNAME",
    "chars": 11,
    "preview": "prismjs.com"
  },
  {
    "path": "LICENSE",
    "chars": 1066,
    "preview": "MIT LICENSE\n\nCopyright (c) 2012 Lea Verou\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "MAINTAINERS.md",
    "chars": 471,
    "preview": "## Maintainers (alphabetical by user name)\n\n- [@Golmote](https://github.com/Golmote)\n- [@JaKXz](https://github.com/JaKXz"
  },
  {
    "path": "README.md",
    "chars": 3778,
    "preview": "# [Prism](https://prismjs.com/)\n\n[![Build Status](https://github.com/PrismJS/prism/workflows/CI/badge.svg)](https://gith"
  },
  {
    "path": "SECURITY.md",
    "chars": 3289,
    "preview": "# Security Policy\n\n## What is considered a vulnerability?\n\nThere are some types of [low-severity][severity] vulnerabilit"
  },
  {
    "path": "_headers",
    "chars": 35,
    "preview": "/*\n\tAccess-Control-Allow-Origin: *\n"
  },
  {
    "path": "benchmark/benchmark.js",
    "chars": 13487,
    "preview": "import crypto from 'crypto';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport B"
  },
  {
    "path": "benchmark/config.js",
    "chars": 2972,
    "preview": "/**\n * @typedef {object} Config\n * @property {ConfigOptions} options\n * @property {ConfigRemote[]} remotes\n * @property "
  },
  {
    "path": "composer.json",
    "chars": 344,
    "preview": "{\n\t\"name\": \"prismjs/prism\",\n\t\"description\": \"Lightweight, robust, elegant syntax highlighting. A spin-off project from D"
  },
  {
    "path": "dangerfile.js",
    "chars": 3850,
    "preview": "import { markdown } from 'danger';\nimport { gzipSize } from 'gzip-size';\nimport { simpleGit } from 'simple-git';\nimport "
  },
  {
    "path": "eslint.config.mjs",
    "chars": 6634,
    "preview": "import js from '@eslint/js';\n\nimport { defineConfig } from 'eslint/config';\nimport eslintConfigPrettier from 'eslint-con"
  },
  {
    "path": "package.json",
    "chars": 3498,
    "preview": "{\n\t\"name\": \"prismjs\",\n\t\"version\": \"1.29.0\",\n\t\"description\": \"Lightweight, robust, elegant syntax highlighting.\",\n\t\"type\""
  },
  {
    "path": "scripts/build.js",
    "chars": 12781,
    "preview": "import fs from 'fs';\nimport { copyFile, mkdir, readFile, rm, writeFile } from 'fs/promises';\nimport path from 'path';\nim"
  },
  {
    "path": "scripts/create-changelog.js",
    "chars": 11025,
    "preview": "import simpleGit from 'simple-git';\nimport components from '../src/components.json' with { type: 'json' };\nimport { runT"
  },
  {
    "path": "scripts/linkify-changelog.js",
    "chars": 503,
    "preview": "import fs from 'fs/promises';\nimport { runTask } from './tasks.js';\n\nrunTask(async () => {\n\tconst changelog = 'CHANGELOG"
  },
  {
    "path": "scripts/tasks.js",
    "chars": 1694,
    "preview": "/**\n * @typedef {() => void | Promise<void>} Task\n */\n\n/**\n * @param {string} name\n * @param {Task} task\n * @returns {Ta"
  },
  {
    "path": "src/auto-start.js",
    "chars": 101,
    "preview": "import Prism from './global.js';\nimport './plugins/autoloader/autoloader.js';\n\nexport default Prism;\n"
  },
  {
    "path": "src/components.json",
    "chars": 27165,
    "preview": "{\n\t\"core\": {\n\t\t\"meta\": {\n\t\t\t\"path\": \"index.js\",\n\t\t\t\"option\": \"mandatory\"\n\t\t},\n\t\t\"core\": \"Core\"\n\t},\n\t\"themes\": {\n\t\t\"meta\""
  },
  {
    "path": "src/config.js",
    "chars": 2038,
    "preview": "const hasDOM = typeof document !== 'undefined' && typeof window !== 'undefined';\nconst scriptElement = hasDOM ? document"
  },
  {
    "path": "src/core/classes/component-registry.js",
    "chars": 4852,
    "preview": "import { allSettled } from '../../util/async.js';\n\n/**\n * @template {ComponentProto} T\n */\nexport default class Componen"
  },
  {
    "path": "src/core/classes/hooks.js",
    "chars": 3275,
    "preview": "/**\n * A class for managing hooks for deep extensibility.\n * Inspired by https://www.npmjs.com/package/blissful-hooks.\n "
  },
  {
    "path": "src/core/classes/language-registry.js",
    "chars": 2923,
    "preview": "import ComponentRegistry from './component-registry.js';\nimport Language from './language.js';\n\nexport default class Lan"
  },
  {
    "path": "src/core/classes/language.js",
    "chars": 4231,
    "preview": "import { extend } from '../../shared.js';\nimport { grammarPatch } from '../../util/grammar-patch.js';\nimport { deepClone"
  },
  {
    "path": "src/core/classes/list.js",
    "chars": 458,
    "preview": "import { toIterable } from '../../util/iterables.js';\n\n/**\n * Set with some conveniences.\n *\n * @template T\n */\nexport d"
  },
  {
    "path": "src/core/classes/plugin-registry.js",
    "chars": 1219,
    "preview": "import ComponentRegistry from './component-registry.js';\nimport Plugin from './plugin.js';\n\nexport default class PluginR"
  },
  {
    "path": "src/core/classes/plugin.js",
    "chars": 1181,
    "preview": "import List from './list.js';\n\nexport default class Plugin extends EventTarget {\n\t/** @type {PluginProto} */\n\tdef;\n\n\t/**"
  },
  {
    "path": "src/core/classes/prism.js",
    "chars": 3971,
    "preview": "import globalDefaults from '../../config.js';\nimport { allSettled, documentReady, nextTick } from '../../util/async.js';"
  },
  {
    "path": "src/core/classes/token.js",
    "chars": 1972,
    "preview": "export class Token {\n\t/**\n\t * The type of the token.\n\t *\n\t * This is usually the key of a pattern in a {@link Grammar}.\n"
  },
  {
    "path": "src/core/highlight-all.js",
    "chars": 1623,
    "preview": "import singleton from './prism.js';\n\n/**\n * This is the most high-level function in Prism's API.\n * It queries all the e"
  },
  {
    "path": "src/core/highlight-element.js",
    "chars": 3416,
    "preview": "import { getLanguage, setLanguage } from '../shared/dom-util.js';\nimport { htmlEncode } from '../shared/util.js';\nimport"
  },
  {
    "path": "src/core/highlight.js",
    "chars": 1569,
    "preview": "import singleton from './prism.js';\nimport stringify from './stringify.js';\n\n/**\n * Low-level function, only use if you "
  },
  {
    "path": "src/core/linked-list.js",
    "chars": 2207,
    "preview": "/**\n * @template T\n */\nexport class LinkedList {\n\t/**\n\t * @template T\n\t * @type {LinkedListHeadNode<T>}\n\t */\n\thead;\n\n\t/*"
  },
  {
    "path": "src/core/prism.js",
    "chars": 766,
    "preview": "/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n"
  },
  {
    "path": "src/core/registry.js",
    "chars": 6280,
    "preview": "import { kebabToCamelCase } from '../shared/util.js';\nimport { extend } from '../util/extend.js';\nimport { grammarPatch "
  },
  {
    "path": "src/core/stringify.js",
    "chars": 1635,
    "preview": "import { htmlEncode } from '../shared/util.js';\n\n/**\n * Converts the given token or token stream to an HTML representati"
  },
  {
    "path": "src/core/tokenize/match.js",
    "chars": 6172,
    "preview": "import { Token } from '../classes/token.js';\nimport singleton from '../prism.js';\nimport { tokenize } from './tokenize.j"
  },
  {
    "path": "src/core/tokenize/tokenize.js",
    "chars": 1677,
    "preview": "import { LinkedList } from '../linked-list.js';\nimport singleton from '../prism.js';\nimport { _matchGrammar } from './ma"
  },
  {
    "path": "src/core/tokenize/util.js",
    "chars": 745,
    "preview": "import singleton from '../prism.js';\n\n/**\n * @this {Prism}\n * @param {Grammar | string | null | undefined} reference\n * "
  },
  {
    "path": "src/core.js",
    "chars": 90,
    "preview": "export { Prism } from './core/prism.js';\nexport { Token } from './core/classes/token.js';\n"
  },
  {
    "path": "src/global.js",
    "chars": 259,
    "preview": "import globalPrism from './core/prism.js';\n\n/**\n * The global {@link Prism} instance.\n *\n * This instance of Prism is un"
  },
  {
    "path": "src/index.js",
    "chars": 210,
    "preview": "// Auto Start runs on Global Prism and the re-exports it.\nimport globalPrism from './auto-start.js';\n\nexport * from './c"
  },
  {
    "path": "src/languages/abap.js",
    "chars": 8798,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'abap'>} */\nexport default {\n\tid: 'abap',\n\tgrammar: {\n\t\t'comment': /^\\*"
  },
  {
    "path": "src/languages/abnf.js",
    "chars": 1343,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'abnf'>} */\nexport default {\n\tid: 'abnf',\n\tgrammar () {\n\t\tconst coreRul"
  },
  {
    "path": "src/languages/actionscript.js",
    "chars": 1020,
    "preview": "import javascript from './javascript.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'actionscript'>} */\nexport d"
  },
  {
    "path": "src/languages/ada.js",
    "chars": 1110,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'ada'>} */\nexport default {\n\tid: 'ada',\n\tgrammar: {\n\t\t'comment': /--.*/"
  },
  {
    "path": "src/languages/agda.js",
    "chars": 902,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'agda'>} */\nexport default {\n\tid: 'agda',\n\tgrammar: {\n\t\t'comment': /\\{-"
  },
  {
    "path": "src/languages/al.js",
    "chars": 2963,
    "preview": "// based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n\n/** @type {import('../types.d.ts')."
  },
  {
    "path": "src/languages/antlr4.js",
    "chars": 1710,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'antlr4'>} */\nexport default {\n\tid: 'antlr4',\n\talias: 'g4',\n\tgrammar: {"
  },
  {
    "path": "src/languages/apacheconf.js",
    "chars": 8569,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'apacheconf'>} */\nexport default {\n\tid: 'apacheconf',\n\tgrammar: {\n\t\t'co"
  },
  {
    "path": "src/languages/apex.js",
    "chars": 2916,
    "preview": "import clike from './clike.js';\nimport sql from './sql.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'apex'>} *"
  },
  {
    "path": "src/languages/apl.js",
    "chars": 853,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'apl'>} */\nexport default {\n\tid: 'apl',\n\tgrammar: {\n\t\t'comment': /(?:⍝|"
  },
  {
    "path": "src/languages/applescript.js",
    "chars": 1957,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'applescript'>} */\nexport default {\n\tid: 'applescript',\n\tgrammar: {\n\t\t'"
  },
  {
    "path": "src/languages/aql.js",
    "chars": 1445,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'aql'>} */\nexport default {\n\tid: 'aql',\n\tgrammar: {\n\t\t'comment': /\\/\\/."
  },
  {
    "path": "src/languages/arduino.js",
    "chars": 4047,
    "preview": "import cpp from './cpp.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'arduino'>} */\nexport default {\n\tid: 'ardu"
  },
  {
    "path": "src/languages/arff.js",
    "chars": 325,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'arff'>} */\nexport default {\n\tid: 'arff',\n\tgrammar: {\n\t\t'comment': /%.*"
  },
  {
    "path": "src/languages/armasm.js",
    "chars": 1573,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'armasm'>} */\nexport default {\n\tid: 'armasm',\n\talias: 'arm-asm',\n\tgramm"
  },
  {
    "path": "src/languages/arturo.js",
    "chars": 3876,
    "preview": "/**\n * @param {string} lang\n * @param {string} [pattern]\n * @returns {import('../types.d.ts').GrammarToken}\n */\nfunction"
  },
  {
    "path": "src/languages/asciidoc.js",
    "chars": 8541,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'asciidoc'>} */\nexport default {\n\tid: 'asciidoc',\n\talias: 'adoc',\n\tgram"
  },
  {
    "path": "src/languages/asm6502.js",
    "chars": 1089,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'asm6502'>} */\nexport default {\n\tid: 'asm6502',\n\tgrammar: {\n\t\t'comment'"
  },
  {
    "path": "src/languages/asmatmel.js",
    "chars": 2023,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'asmatmel'>} */\nexport default {\n\tid: 'asmatmel',\n\tgrammar: {\n\t\t'commen"
  },
  {
    "path": "src/languages/aspnet.js",
    "chars": 1731,
    "preview": "import csharp from './csharp.js';\nimport markup from './markup.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'a"
  },
  {
    "path": "src/languages/autohotkey.js",
    "chars": 9240,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'autohotkey'>} */\nexport default {\n\tid: 'autohotkey',\n\tgrammar () {\n\t\t/"
  },
  {
    "path": "src/languages/autoit.js",
    "chars": 1197,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'autoit'>} */\nexport default {\n\tid: 'autoit',\n\tgrammar: {\n\t\t'comment': "
  },
  {
    "path": "src/languages/avisynth.js",
    "chars": 7790,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'avisynth'>} */\nexport default {\n\tid: 'avisynth',\n\talias: 'avs',\n\tgramm"
  },
  {
    "path": "src/languages/avro-idl.js",
    "chars": 1440,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'avro-idl'>} */\nexport default {\n\tid: 'avro-idl',\n\talias: 'avdl',\n\tgram"
  },
  {
    "path": "src/languages/awk.js",
    "chars": 911,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'awk'>} */\nexport default {\n\tid: 'awk',\n\talias: 'gawk',\n\tgrammar: {\n\t\t'"
  },
  {
    "path": "src/languages/bash.js",
    "chars": 9474,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bash'>} */\nexport default {\n\tid: 'bash',\n\talias: ['sh', 'shell'],\n\tgra"
  },
  {
    "path": "src/languages/basic.js",
    "chars": 2010,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'basic'>} */\nexport default {\n\tid: 'basic',\n\tgrammar: {\n\t\t'comment': {\n"
  },
  {
    "path": "src/languages/batch.js",
    "chars": 2696,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'batch'>} */\nexport default {\n\tid: 'batch',\n\tgrammar () {\n\t\tconst varia"
  },
  {
    "path": "src/languages/bbcode.js",
    "chars": 699,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bbcode'>} */\nexport default {\n\tid: 'bbcode',\n\talias: 'shortcode',\n\tgra"
  },
  {
    "path": "src/languages/bbj.js",
    "chars": 1032,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bbj'>} */\nexport default {\n\tid: 'bbj',\n\tgrammar: {\n\t\t'comment': {\n\t\t\tp"
  },
  {
    "path": "src/languages/bicep.js",
    "chars": 1985,
    "preview": "// based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n\n/** @type {import('../typ"
  },
  {
    "path": "src/languages/birb.js",
    "chars": 878,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'birb'>} */\nexport default {\n\tid: 'bir"
  },
  {
    "path": "src/languages/bison.js",
    "chars": 1162,
    "preview": "import c from './c.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'bison'>} */\nexport default {\n\tid: 'bison',\n\tb"
  },
  {
    "path": "src/languages/bnf.js",
    "chars": 458,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bnf'>} */\nexport default {\n\tid: 'bnf',\n\talias: 'rbnf',\n\tgrammar: {\n\t\t'"
  },
  {
    "path": "src/languages/bqn.js",
    "chars": 1521,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bqn'>} */\nexport default {\n\tid: 'bqn',\n\tgrammar: {\n\t\t'shebang': {\n\t\t\tp"
  },
  {
    "path": "src/languages/brainfuck.js",
    "chars": 410,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'brainfuck'>} */\nexport default {\n\tid: 'brainfuck',\n\tgrammar: {\n\t\t'poin"
  },
  {
    "path": "src/languages/brightscript.js",
    "chars": 1324,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'brightscript'>} */\nexport default {\n\tid: 'brightscript',\n\tgrammar: {\n\t"
  },
  {
    "path": "src/languages/bro.js",
    "chars": 1356,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'bro'>} */\nexport default {\n\tid: 'bro',\n\tgrammar: {\n\t\t'comment': {\n\t\t\tp"
  },
  {
    "path": "src/languages/bsl.js",
    "chars": 2394,
    "preview": "/* eslint-disable no-misleading-character-class */\n/** @type {import('../types.d.ts').LanguageProto<'bsl'>} */\nexport de"
  },
  {
    "path": "src/languages/c.js",
    "chars": 3330,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'c'>} */\nexport default {\n\tid: 'c',\n\tb"
  },
  {
    "path": "src/languages/cfscript.js",
    "chars": 1662,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'cfscript'>} */\nexport default {\n\tid: "
  },
  {
    "path": "src/languages/chaiscript.js",
    "chars": 1984,
    "preview": "import { toArray } from '../util/iterables.js';\nimport clike from './clike.js';\nimport cpp from './cpp.js';\n\n/** @type {"
  },
  {
    "path": "src/languages/cil.js",
    "chars": 2338,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cil'>} */\nexport default {\n\tid: 'cil',\n\tgrammar: {\n\t\t'comment': /\\/\\/."
  },
  {
    "path": "src/languages/cilkc.js",
    "chars": 346,
    "preview": "import c from './c.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'cilkc'>} */\nexport default {\n\tid: 'cilkc',\n\tb"
  },
  {
    "path": "src/languages/cilkcpp.js",
    "chars": 368,
    "preview": "import cpp from './cpp.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'cilkcpp'>} */\nexport default {\n\tid: 'cilk"
  },
  {
    "path": "src/languages/clike.js",
    "chars": 971,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'clike'>} */\nexport default {\n\tid: 'clike',\n\tgrammar: {\n\t\t'comment': [\n"
  },
  {
    "path": "src/languages/clojure.js",
    "chars": 3405,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'clojure'>} */\nexport default {\n\tid: 'clojure',\n\tgrammar () {\n\t\t// Copi"
  },
  {
    "path": "src/languages/cmake.js",
    "chars": 10741,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cmake'>} */\nexport default {\n\tid: 'cmake',\n\tgrammar: {\n\t\t'comment': /#"
  },
  {
    "path": "src/languages/cobol.js",
    "chars": 5567,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cobol'>} */\nexport default {\n\tid: 'cobol',\n\tgrammar: {\n\t\t'comment': {\n"
  },
  {
    "path": "src/languages/coffeescript.js",
    "chars": 2293,
    "preview": "import javascript from './javascript.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'coffeescript'>} */\nexport d"
  },
  {
    "path": "src/languages/concurnas.js",
    "chars": 2209,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'concurnas'>} */\nexport default {\n\tid: 'concurnas',\n\talias: 'conc',\n\tgr"
  },
  {
    "path": "src/languages/cooklang.js",
    "chars": 3135,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cooklang'>} */\nexport default {\n\tid: 'cooklang',\n\tgrammar () {\n\t\t// se"
  },
  {
    "path": "src/languages/coq.js",
    "chars": 3574,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'coq'>} */\nexport default {\n\tid: 'coq',\n\tgrammar () {\n\t\t// https://gith"
  },
  {
    "path": "src/languages/cpp.js",
    "chars": 4465,
    "preview": "import { insertBefore } from '../util/language-util.js';\nimport c from './c.js';\n\n/** @type {import('../types.d.ts').Lan"
  },
  {
    "path": "src/languages/crystal.js",
    "chars": 1960,
    "preview": "import { toArray } from '../util/iterables.js';\nimport ruby from './ruby.js';\n\n/** @type {import('../types.d.ts').Langua"
  },
  {
    "path": "src/languages/csharp.js",
    "chars": 14511,
    "preview": "import clike from './clike.js';\n\n/**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (ze"
  },
  {
    "path": "src/languages/cshtml.js",
    "chars": 7729,
    "preview": "import { insertBefore } from '../util/language-util.js';\nimport csharp from './csharp.js';\nimport markup from './markup."
  },
  {
    "path": "src/languages/csp.js",
    "chars": 2035,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'csp'>} */\nexport default {\n\tid: 'csp',\n\tgrammar () {\n\t\t/**\n\t\t * Origin"
  },
  {
    "path": "src/languages/css-extras.js",
    "chars": 2663,
    "preview": "import cssSelector from './css-selector.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'css-extras'>} */\nexport "
  },
  {
    "path": "src/languages/css-selector.js",
    "chars": 1665,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'css-selector'>} */\nexport default {\n\tid: 'css-selector',\n\tgrammar () {"
  },
  {
    "path": "src/languages/css.js",
    "chars": 2171,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'css'>} */\nexport default {\n\tid: 'css',\n\toptional: 'css-extras',\n\tgramm"
  },
  {
    "path": "src/languages/csv.js",
    "chars": 237,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'csv'>} */\nexport default {\n\tid: 'csv',\n\tgrammar () {\n\t\t// https://tool"
  },
  {
    "path": "src/languages/cue.js",
    "chars": 3144,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cue'>} */\nexport default {\n\tid: 'cue',\n\tgrammar () {\n\t\t// https://cuel"
  },
  {
    "path": "src/languages/cypher.js",
    "chars": 1488,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'cypher'>} */\nexport default {\n\tid: 'cypher',\n\tgrammar: {\n\t\t// https://"
  },
  {
    "path": "src/languages/d.js",
    "chars": 3632,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'d'>} */\nexport default {\n\tid: 'd',\n\tb"
  },
  {
    "path": "src/languages/dart.js",
    "chars": 2470,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'dart'>} */\nexport default {\n\tid: 'dar"
  },
  {
    "path": "src/languages/dataweave.js",
    "chars": 1133,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'dataweave'>} */\nexport default {\n\tid: 'dataweave',\n\tgrammar: {\n\t\t'url'"
  },
  {
    "path": "src/languages/dax.js",
    "chars": 3655,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'dax'>} */\nexport default {\n\tid: 'dax',\n\tgrammar: {\n\t\t'comment': {\n\t\t\tp"
  },
  {
    "path": "src/languages/dhall.js",
    "chars": 2377,
    "preview": "// ABNF grammar:\n// https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n\n/** @type {import('../type"
  },
  {
    "path": "src/languages/diff.js",
    "chars": 1317,
    "preview": "/**\n * A map from the name of a block to its line prefix.\n */\nexport const PREFIXES = {\n\t'deleted-sign': '-',\n\t'deleted-"
  },
  {
    "path": "src/languages/django.js",
    "chars": 1458,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport markup from './markup.js';\n\n// Django/Jinja2 synt"
  },
  {
    "path": "src/languages/dns-zone-file.js",
    "chars": 1145,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'dns-zone-file'>} */\nexport default {\n\tid: 'dns-zone-file',\n\talias: 'dn"
  },
  {
    "path": "src/languages/docker.js",
    "chars": 3018,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'docker'>} */\nexport default {\n\tid: 'docker',\n\talias: 'dockerfile',\n\tgr"
  },
  {
    "path": "src/languages/dot.js",
    "chars": 1941,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'dot'>} */\nexport default {\n\tid: 'dot',\n\talias: 'gv',\n\tgrammar () {\n\t\t/"
  },
  {
    "path": "src/languages/ebnf.js",
    "chars": 566,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'ebnf'>} */\nexport default {\n\tid: 'ebnf',\n\tgrammar: {\n\t\t'comment': /\\(\\"
  },
  {
    "path": "src/languages/editorconfig.js",
    "chars": 669,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'editorconfig'>} */\nexport default {\n\tid: 'editorconfig',\n\tgrammar: {\n\t"
  },
  {
    "path": "src/languages/eiffel.js",
    "chars": 1414,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'eiffel'>} */\nexport default {\n\tid: 'eiffel',\n\tgrammar: {\n\t\t'comment': "
  },
  {
    "path": "src/languages/ejs.js",
    "chars": 725,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport javascript from './javascript.js';\nimport markup "
  },
  {
    "path": "src/languages/elixir.js",
    "chars": 3045,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'elixir'>} */\nexport default {\n\tid: 'elixir',\n\tgrammar () {\n\t\tconst str"
  },
  {
    "path": "src/languages/elm.js",
    "chars": 2211,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'elm'>} */\nexport default {\n\tid: 'elm',\n\tgrammar: {\n\t\t'comment': /--.*|"
  },
  {
    "path": "src/languages/erb.js",
    "chars": 622,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport markup from './markup.js';\nimport ruby from './ru"
  },
  {
    "path": "src/languages/erlang.js",
    "chars": 1185,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'erlang'>} */\nexport default {\n\tid: 'erlang',\n\tgrammar: {\n\t\t'comment': "
  },
  {
    "path": "src/languages/etlua.js",
    "chars": 523,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport lua from './lua.js';\nimport markup from './markup"
  },
  {
    "path": "src/languages/excel-formula.js",
    "chars": 1841,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'excel-formula'>} */\nexport default {\n\tid: 'excel-formula',\n\talias: ['x"
  },
  {
    "path": "src/languages/factor.js",
    "chars": 19777,
    "preview": "import { regexEscape } from '../shared/util.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'factor'>} */\nexport "
  },
  {
    "path": "src/languages/false.js",
    "chars": 737,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'false'>} */\nexport default {\n\tid: 'false',\n\tgrammar () {\n\t\t/**\n\t\t * Ba"
  },
  {
    "path": "src/languages/firestore-security-rules.js",
    "chars": 1180,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'firestore-security-rules'>} */\nexport"
  },
  {
    "path": "src/languages/flow.js",
    "chars": 1252,
    "preview": "import { toArray } from '../util/iterables.js';\nimport javascript from './javascript.js';\n\n/** @type {import('../types.d"
  },
  {
    "path": "src/languages/fortran.js",
    "chars": 1650,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'fortran'>} */\nexport default {\n\tid: 'fortran',\n\tgrammar: {\n\t\t'quoted-n"
  },
  {
    "path": "src/languages/fsharp.js",
    "chars": 2921,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'fsharp'>} */\nexport default {\n\tid: 'f"
  },
  {
    "path": "src/languages/ftl.js",
    "chars": 3213,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport markup from './markup.js';\n\n/** @type {import('.."
  },
  {
    "path": "src/languages/gap.js",
    "chars": 1504,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gap'>} */\nexport default {\n\tid: 'gap',\n\tgrammar () {\n\t\t// https://www."
  },
  {
    "path": "src/languages/gcode.js",
    "chars": 395,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gcode'>} */\nexport default {\n\tid: 'gcode',\n\tgrammar: {\n\t\t'comment': /;"
  },
  {
    "path": "src/languages/gdscript.js",
    "chars": 1338,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gdscript'>} */\nexport default {\n\tid: 'gdscript',\n\tgrammar: {\n\t\t'commen"
  },
  {
    "path": "src/languages/gedcom.js",
    "chars": 845,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gedcom'>} */\nexport default {\n\tid: 'gedcom',\n\tgrammar: {\n\t\t'line-value"
  },
  {
    "path": "src/languages/gettext.js",
    "chars": 819,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gettext'>} */\nexport default {\n\tid: 'gettext',\n\talias: 'po',\n\tgrammar:"
  },
  {
    "path": "src/languages/gherkin.js",
    "chars": 8302,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gherkin'>} */\nexport default {\n\tid: 'gherkin',\n\tgrammar () {\n\t\tconst t"
  },
  {
    "path": "src/languages/git.js",
    "chars": 1786,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'git'>} */\nexport default {\n\tid: 'git',\n\tgrammar: {\n\t\t/*\n\t\t * A simple "
  },
  {
    "path": "src/languages/glsl.js",
    "chars": 1220,
    "preview": "import c from './c.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'glsl'>} */\nexport default {\n\tid: 'glsl',\n\tbas"
  },
  {
    "path": "src/languages/gml.js",
    "chars": 8333,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'gml'>} */\nexport default {\n\tid: 'gml'"
  },
  {
    "path": "src/languages/gn.js",
    "chars": 1511,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'gn'>} */\nexport default {\n\tid: 'gn',\n\talias: 'gni',\n\tgrammar () {\n\t\t//"
  },
  {
    "path": "src/languages/go-module.js",
    "chars": 655,
    "preview": "// https://go.dev/ref/mod#go-mod-file-module\n\n/** @type {import('../types.d.ts').LanguageProto<'go-module'>} */\nexport d"
  },
  {
    "path": "src/languages/go.js",
    "chars": 1312,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'go'>} */\nexport default {\n\tid: 'go',\n"
  },
  {
    "path": "src/languages/gradle.js",
    "chars": 1791,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'gradle'>} */\nexport default {\n\tid: 'g"
  },
  {
    "path": "src/languages/graphql.js",
    "chars": 5716,
    "preview": "import { withoutTokenize } from '../util/language-util.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'graphql'>"
  },
  {
    "path": "src/languages/groovy.js",
    "chars": 2258,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'groovy'>} */\nexport default {\n\tid: 'g"
  },
  {
    "path": "src/languages/haml.js",
    "chars": 3715,
    "preview": "import ruby from './ruby.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'haml'>} */\nexport default {\n\tid: 'haml'"
  },
  {
    "path": "src/languages/handlebars.js",
    "chars": 1063,
    "preview": "import { embeddedIn } from '../shared/languages/templating.js';\nimport markup from './markup.js';\n\n/** @type {import('.."
  },
  {
    "path": "src/languages/haskell.js",
    "chars": 4218,
    "preview": "export const infixOperator = {\n\tpattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n\tgreedy: true,\n};\n\n// Most of this is neede"
  },
  {
    "path": "src/languages/haxe.js",
    "chars": 2335,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'haxe'>} */\nexport default {\n\tid: 'hax"
  },
  {
    "path": "src/languages/hcl.js",
    "chars": 1913,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'hcl'>} */\nexport default {\n\tid: 'hcl',\n\tgrammar: {\n\t\t'comment': /(?:\\/"
  },
  {
    "path": "src/languages/hlsl.js",
    "chars": 2499,
    "preview": "import { toArray } from '../util/iterables.js';\nimport c from './c.js';\n\n/** @type {import('../types.d.ts').LanguageProt"
  },
  {
    "path": "src/languages/hoon.js",
    "chars": 643,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'hoon'>} */\nexport default {\n\tid: 'hoon',\n\tgrammar: {\n\t\t'comment': {\n\t\t"
  },
  {
    "path": "src/languages/hpkp.js",
    "chars": 438,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'hpkp'>} */\nexport default {\n\tid: 'hpkp',\n\tgrammar () {\n\t\t/**\n\t\t * Orig"
  },
  {
    "path": "src/languages/hsts.js",
    "chars": 394,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'hsts'>} */\nexport default {\n\tid: 'hsts',\n\tgrammar () {\n\t\t/**\n\t\t * Orig"
  },
  {
    "path": "src/languages/http.js",
    "chars": 4270,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'http'>} */\nexport default {\n\tid: 'http',\n\toptional: 'json',\n\tgrammar ("
  },
  {
    "path": "src/languages/ichigojam.js",
    "chars": 1040,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'ichigojam'>} */\nexport default {\n\tid: 'ichigojam',\n\tgrammar () {\n\t\t// "
  },
  {
    "path": "src/languages/icon.js",
    "chars": 1123,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'icon'>} */\nexport default {\n\tid: 'icon',\n\tgrammar: {\n\t\t'comment': /#.*"
  },
  {
    "path": "src/languages/icu-message-format.js",
    "chars": 4063,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'icu-message-format'>} */\nexport default {\n\tid: 'icu-message-format',\n\t"
  },
  {
    "path": "src/languages/idris.js",
    "chars": 841,
    "preview": "import haskell from './haskell.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'idris'>} */\nexport default {\n\tid:"
  },
  {
    "path": "src/languages/iecst.js",
    "chars": 1588,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'iecst'>} */\nexport default {\n\tid: 'iecst',\n\tgrammar: {\n\t\t'comment': [\n"
  },
  {
    "path": "src/languages/ignore.js",
    "chars": 460,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'ignore'>} */\nexport default {\n\tid: 'ignore',\n\talias: ['gitignore', 'hg"
  },
  {
    "path": "src/languages/inform7.js",
    "chars": 3966,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'inform7'>} */\nexport default {\n\tid: 'inform7',\n\tgrammar () {\n\t\tconst i"
  },
  {
    "path": "src/languages/ini.js",
    "chars": 1056,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'ini'>} */\nexport default {\n\tid: 'ini',\n\tgrammar: {\n\t\t/**\n\t\t * The comp"
  },
  {
    "path": "src/languages/io.js",
    "chars": 1920,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'io'>} */\nexport default {\n\tid: 'io',\n\tgrammar: {\n\t\t'comment': {\n\t\t\tpat"
  },
  {
    "path": "src/languages/j.js",
    "chars": 1119,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'j'>} */\nexport default {\n\tid: 'j',\n\tgrammar: {\n\t\t'comment': {\n\t\t\tpatte"
  },
  {
    "path": "src/languages/java.js",
    "chars": 4863,
    "preview": "import { toArray } from '../util/iterables.js';\nimport clike from './clike.js';\n\n/** @type {import('../types.d.ts').Lang"
  },
  {
    "path": "src/languages/javadoc.js",
    "chars": 2542,
    "preview": "import java from './java.js';\nimport javadoclike from './javadoclike.js';\nimport markup from './markup.js';\n\n/** @type {"
  },
  {
    "path": "src/languages/javadoclike.js",
    "chars": 495,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'javadoclike'>} */\nexport default {\n\tid: 'javadoclike',\n\tgrammar: {\n\t\t'"
  },
  {
    "path": "src/languages/javascript.js",
    "chars": 7323,
    "preview": "import { JS_TEMPLATE, JS_TEMPLATE_INTERPOLATION } from '../shared/languages/patterns.js';\nimport { toArray } from '../ut"
  },
  {
    "path": "src/languages/javastacktrace.js",
    "chars": 4672,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'javastacktrace'>} */\nexport default {\n\tid: 'javastacktrace',\n\tgrammar "
  },
  {
    "path": "src/languages/jexl.js",
    "chars": 682,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'jexl'>} */\nexport default {\n\tid: 'jexl',\n\tgrammar: {\n\t\t'string': /([\"'"
  },
  {
    "path": "src/languages/jolie.js",
    "chars": 1902,
    "preview": "import clike from './clike.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'jolie'>} */\nexport default {\n\tid: 'jo"
  },
  {
    "path": "src/languages/jq.js",
    "chars": 1717,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'jq'>} */\nexport default {\n\tid: 'jq',\n\tgrammar () {\n\t\tconst interpolati"
  },
  {
    "path": "src/languages/js-templates.js",
    "chars": 2320,
    "preview": "import { JS_TEMPLATE, JS_TEMPLATE_INTERPOLATION } from '../shared/languages/patterns.js';\nimport { embeddedIn } from '.."
  },
  {
    "path": "src/languages/jsdoc.js",
    "chars": 2455,
    "preview": "import javadoclike from './javadoclike.js';\nimport javascript from './javascript.js';\nimport typescript from './typescri"
  },
  {
    "path": "src/languages/json.js",
    "chars": 713,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'json'>} */\nexport default {\n\tid: 'json',\n\talias: 'webmanifest',\n\tgramm"
  },
  {
    "path": "src/languages/json5.js",
    "chars": 635,
    "preview": "import json from './json.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'json5'>} */\nexport default {\n\tid: 'json"
  },
  {
    "path": "src/languages/jsonp.js",
    "chars": 346,
    "preview": "import json from './json.js';\n\n/** @type {import('../types.d.ts').LanguageProto<'jsonp'>} */\nexport default {\n\tid: 'json"
  },
  {
    "path": "src/languages/jsstacktrace.js",
    "chars": 1126,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'jsstacktrace'>} */\nexport default {\n\tid: 'jsstacktrace',\n\tgrammar: {\n\t"
  },
  {
    "path": "src/languages/jsx.js",
    "chars": 5345,
    "preview": "import { getTextContent, Token } from '../core/classes/token.js';\nimport { insertBefore, withoutTokenize } from '../util"
  },
  {
    "path": "src/languages/julia.js",
    "chars": 1966,
    "preview": "/** @type {import('../types.d.ts').LanguageProto<'julia'>} */\nexport default {\n\tid: 'julia',\n\tgrammar: {\n\t\t'comment': {\n"
  }
]

// ... and 2877 more files (download for full content)

About this extraction

This page contains the full source code of the PrismJS/prism GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3077 files (5.1 MB), approximately 1.5M tokens, and a symbol index with 641 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!