JavaScript RegExp Engine Compatibility References | Shiki

ID: 1762https://shiki.matsu.io/references/engine-js-compat
Source

JavaScript RegExp Engine Compatibility References

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

Generated on Saturday, August 2, 2025
Version 3.9.1
Runtime: Node.js v23.11.0

Report Summary

Count
Total Languages222
Supported222
Mismatched0
Unsupported0

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 highlighting will be 100 % the same. If that happens, please create an issue with the sample snippet.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
abap✅ OK52
actionscript-3✅ OK57
ada✅ OK200
angular-html✅ OK669
angular-ts✅ OK776
apache✅ OK60
apex✅ OK186
apl✅ OK912
applescript✅ OK152
ara✅ OK54
asciidoc✅ OK262
asm✅ OK298
astro✅ OK610
awk✅ OK36
ballerina✅ OK224
bash✅ OK147
bat✅ OK58
beancount✅ OK39
berry✅ OK18
bibtex✅ OK19
bicep✅ OK27
blade✅ OK1120
bsl✅ OK96
c✅ OK176
cadence✅ OK71
cairo✅ OK236
clarity✅ OK42
clj✅ OK38
clojure✅ OK38
cmake✅ OK23
cobol✅ OK858
codeowners✅ OK4
codeql✅ OK147
coffee✅ OK466
common-lisp✅ OK60
coq✅ OK27
cpp✅ OK506
crystal✅ OK1054
csharp✅ OK301
css✅ OK141
csv✅ OK1
cue✅ OK85
cypher✅ OK39
d✅ OK272
dart✅ OK75
dax✅ OK23
desktop✅ OK16
diff✅ OK16
docker✅ OK7
dotenv✅ OK9
dream-maker✅ OK56
edge✅ OK629
elixir✅ OK704
elm✅ OK241
emacs-lisp✅ OK15322
erb✅ OK1764
erlang✅ OK265
fennel✅ OK31
fish✅ OK25
fluent✅ OK23
fortran-fixed-form✅ OK330
fortran-free-form✅ OK326
fsharp✅ OK238
fsl✅ OK30
gdresource✅ OK157
gdscript✅ OK94
gdshader✅ OK39
genie✅ OK20
gherkin✅ OK19
gleam✅ OK26
glimmer-js✅ OK673
glimmer-ts✅ OK673
glsl✅ OK185
gnuplot✅ OK82
go✅ OK126
graphql✅ OK445
groovy✅ OK130
hack✅ OK941
haml✅ OK559
handlebars✅ OK696
haskell✅ OK157
haxe✅ OK173
hcl✅ OK67
hjson✅ OK57
hlsl✅ OK52
html✅ OK608
http✅ OK746
hxml✅ OK181
hy✅ OK12
imba✅ OK239
ini✅ OK11
java✅ OK141
javascript✅ OK375
jinja✅ OK639
jison✅ OK431
json✅ OK19
json5✅ OK23
jsonc✅ OK19
jsonl✅ OK19
jsonnet✅ OK33
jssm✅ OK30
jsx✅ OK375
julia✅ OK1167
kotlin✅ OK58
kusto✅ OK60
latex✅ OK327
lean✅ OK32
less✅ OK279
liquid✅ OK689
llvm✅ OK25
log✅ OK31
logo✅ OK9
lua✅ OK276
luau✅ OK88
make✅ OK51
markdown✅ OK118
marko✅ OK929
matlab✅ OK88
mdc✅ OK780
mdx✅ OK197
mermaid✅ OK138
mipsasm✅ OK17
mojo✅ OK213
move✅ OK116
narrat✅ OK34
nextflow✅ OK32
nginx✅ OK375
nim✅ OK1117
nix✅ OK80
nushell✅ OK85
objective-c✅ OK222
objective-cpp✅ OK306
ocaml✅ OK178
pascal✅ OK23
perl✅ OK937
php✅ OK1124
plsql✅ OK45
po✅ OK23
polar✅ OK31
postcss✅ OK49
powerquery✅ OK30
powershell✅ OK88
prisma✅ OK28
prolog✅ OK26
proto✅ OK33
pug✅ OK683
puppet✅ OK60
purescript✅ OK87
python✅ OK218
qml✅ OK407
qmldir✅ OK7
qss✅ OK31
r✅ OK85
racket✅ OK69
raku✅ OK52
razor✅ OK941
reg✅ OK9
regexp✅ OK34
rel✅ OK17
risc-v✅ OK36
rst✅ OK2005
ruby✅ OK1756
rust✅ OK89
sas✅ OK100
sass✅ OK69
scala✅ OK116
scheme✅ OK34
scss✅ OK233
sdbl✅ OK23
shaderlab✅ OK87
shellscript✅ OK147
shellsession✅ OK149
smalltalk✅ OK44
solidity✅ OK103
soy✅ OK646
sparql✅ OK19
splunk✅ OK17
sql✅ OK68
ssh-config✅ OK12
stata✅ OK254
stylus✅ OK106
svelte✅ OK642
swift✅ OK334
system-verilog✅ OK102
systemd✅ OK32
talonscript✅ OK46
tasl✅ OK23
tcl✅ OK34
templ✅ OK674
terraform✅ OK68
tex✅ OK120
toml✅ OK44
ts-tags✅ OK990
tsv✅ OK1
tsx✅ OK375
turtle✅ OK15
twig✅ OK2391
typescript✅ OK362
typespec✅ OK73
typst✅ OK78
v✅ OK78
vala✅ OK20
vb✅ OK34
verilog✅ OK33
vhdl✅ OK82
viml✅ OK72
vue✅ OK690
vue-html✅ OK714
vue-vine✅ OK1203
vyper✅ OK238
wasm✅ OK78
wenyan✅ OK18
wgsl✅ OK44
wikitext✅ OK105
wit✅ OK81
wolfram✅ OK501
xml✅ OK168
xsl✅ OK170
yaml✅ OK48
zenscript✅ OK21
zig✅ OK51
zsh✅ OK147

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.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
(none)

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.

LanguageHighlight MatchPatterns ParsablePatterns FailedDiff
(none)

Previous page: Languages