Skip to content

JavaScript RegExp Engine Compatibility References

Compatibility reference of all built-in grammars with the JavaScript RegExp engine.

Genreated on Friday, November 15, 2024

Version 1.23.0

Runtime: Node.js v20.18.0

Report Summary

Count
Total Languages214
Supported178
Mismatched18
Unsupported18

Supported Languages

Languages that work with the JavaScript RegExp engine, and will produce the same result as the WASM engine (with the sample snippets in the registry). In some edge cases, it's not guaranteed that the the highlighting will be 100% the same. If that happens, please create an issue with the sample snippet.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
abap✅ OK51-
actionscript-3✅ OK57-
angular-html✅ OK670-
angular-ts✅ OK779-
apache✅ OK60-
apl✅ OK917-
applescript✅ OK152-
ara✅ OK54-
asciidoc✅ OK262-
asm✅ OK297-
astro✅ OK613-
awk✅ OK36-
ballerina✅ OK230-
bat✅ OK58-
berry✅ OK18-
bibtex✅ OK19-
bicep✅ OK27-
cadence✅ OK71-
clarity✅ OK43-
clj✅ OK38-
clojure✅ OK38-
cmake✅ OK23-
cobol✅ OK864-
codeowners✅ OK4-
codeql✅ OK151-
coffee✅ OK469-
common-lisp✅ OK60-
coq✅ OK25-
css✅ OK141-
csv✅ OK1-
cue✅ OK85-
cypher✅ OK39-
d✅ OK270-
dart✅ OK72-
dax✅ OK23-
desktop✅ OK16-
diff✅ OK16-
docker✅ OK7-
dotenv✅ OK9-
dream-maker✅ OK56-
edge✅ OK632-
elm✅ OK244-
emacs-lisp✅ OK153-22
erb✅ OK1312-
fennel✅ OK31-
fish✅ OK25-
fluent✅ OK23-
fortran-fixed-form✅ OK332-
fortran-free-form✅ OK328-
fsl✅ OK30-
gdresource✅ OK157-
gdscript✅ OK93-
gdshader✅ OK39-
genie✅ OK20-
gherkin✅ OK19-
gleam✅ OK26-
glimmer-js✅ OK676-
glimmer-ts✅ OK676-
gnuplot✅ OK82-
go✅ OK123-
graphql✅ OK448-
groovy✅ OK133-
haml✅ OK562-
handlebars✅ OK699-
haxe✅ OK174-
hcl✅ OK67-
hjson✅ OK57-
hlsl✅ OK52-
html✅ OK611-
http✅ OK753-
hxml✅ OK182-
hy✅ OK12-
imba✅ OK516-
ini✅ OK11-
java✅ OK142-
javascript✅ OK376-
jinja✅ OK642-
jison✅ OK421-
json✅ OK19-
json5✅ OK23-
jsonc✅ OK19-
jsonl✅ OK19-
jsonnet✅ OK33-
jssm✅ OK30-
jsx✅ OK376-
latex✅ OK283-
lean✅ OK32-
less✅ OK280-
liquid✅ OK684-
log✅ OK30-
logo✅ OK9-
lua✅ OK278-
luau✅ OK88-
make✅ OK51-
marko✅ OK926-
matlab✅ OK88-
mipsasm✅ OK17-
mojo✅ OK213-
move✅ OK120-
narrat✅ OK34-
nextflow✅ OK17-
nginx✅ OK378-
nix✅ OK80-
nushell✅ OK81-
objective-c✅ OK223-
ocaml✅ OK178-
pascal✅ OK23-
perl✅ OK941-
plsql✅ OK45-
postcss✅ OK49-
powerquery✅ OK30-
powershell✅ OK88-
prisma✅ OK26-
prolog✅ OK26-
proto✅ OK33-
puppet✅ OK61-
python✅ OK218-
qml✅ OK408-
qmldir✅ OK7-
qss✅ OK31-
r✅ OK71-
racket✅ OK69-
raku✅ OK52-
reg✅ OK9-
regexp✅ OK34-
rel✅ OK17-
riscv✅ OK36-
rust✅ OK89-
sas✅ OK101-
sass✅ OK69-
scala✅ OK117-
scheme✅ OK34-
scss✅ OK234-
shaderlab✅ OK87-
shellsession✅ OK150-
solidity✅ OK102-
soy✅ OK649-
sparql✅ OK19-
splunk✅ OK17-
sql✅ OK67-
ssh-config✅ OK12-
stata✅ OK253-
stylus✅ OK107-
svelte✅ OK636-
system-verilog✅ OK102-
systemd✅ OK32-
tasl✅ OK23-
tcl✅ OK34-
templ✅ OK673-
terraform✅ OK68-
tex✅ OK106-
toml✅ OK44-
ts-tags✅ OK997-
tsv✅ OK1-
tsx✅ OK376-
turtle✅ OK15-
twig✅ OK1984-
typescript✅ OK363-
typespec✅ OK80-
typst✅ OK78-
v✅ OK80-
vala✅ OK20-
vb✅ OK34-
verilog✅ OK33-
vhdl✅ OK82-
viml✅ OK72-
vue✅ OK692-
vue-html✅ OK716-
vyper✅ OK238-
wasm✅ OK78-
wenyan✅ OK18-
wgsl✅ OK44-
wikitext✅ OK104-
xml✅ OK169-
xsl✅ OK171-
yaml✅ OK48-
zenscript✅ OK21-
zig✅ OK51-
Table Field Explanations
  • Highlight Match: Whether the highlighting results matched with the WASM engine for the sample snippet.
  • Patterns Parsable: Number of regex patterns that can be parsed by the JavaScript RegExp engine.
  • Patterns Failed: Number of regex patterns that can't be parsed by the JavaScript RegExp engine (throws error).
  • Diff: Length of characters that are different between the highlighting results of the two engines.

Mismatched Languages

Languages that do not throw with the JavaScript RegExp engine, but will produce different results than the WASM engine. Please use with caution.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
bash🚧 Mismatch148-56
beancount🚧 Mismatch39-171
c🚧 Mismatch177-209
crystal🚧 Mismatch1067-40
elixir🚧 Mismatch708-179
erlang🚧 Mismatch147-470
glsl🚧 Mismatch186-306
kotlin🚧 Mismatch58-1953
kusto🚧 Mismatch60-40
mermaid🚧 Mismatch129-38
objective-cpp🚧 Mismatch309-172
php🚧 Mismatch1131-605
po🚧 Mismatch23-423
pug🚧 Mismatch686-164
ruby🚧 Mismatch1307-1
shellscript🚧 Mismatch148-56
smalltalk🚧 Mismatch35-40
zsh🚧 Mismatch148-117

Unsupported Languages

Languages that throw with the JavaScript RegExp engine, either because they contain syntax we can't polyfill yet or because the grammar contains an invalid Oniguruma regex (that would also fail when using the WASM engine, but silently). You can try these languages with the forgiving option to skip errors, but usually it's best to use the Oniguruma engine instead.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
ada✅ OK2011
blade✅ OK11251
fsharp✅ OK2345
nim✅ OK11215
julia✅ OK114721
rst🚧 Mismatch18362162
hack❌ Error9471114
haskell❌ Error1561143
wolfram❌ Error500112
purescript❌ Error71236
swift❌ Error326340
mdx❌ Error1934
markdown❌ Error1135193
mdc❌ Error7786389
apex❌ Error17512269
cpp❌ Error4912125
csharp❌ Error28128207
razor❌ Error9273026

Released under the MIT License.