Language catalog
Every language Lumis supports, with its parser source, query source, and parser packages on npm and Hex.
Every name in this table is a name you can highlight with, or hand to a preload call — see Languages for when to do which.
Source: LANGUAGES.md.
Size is the .wasm file unpacked. Memory is what loading that parser
reserves in the Tree-sitter WASM store, which every language in a process shares
and which is capped at 128 MB. Nothing is ever reclaimed from it, so Memory — not
Size, and not the number of languages — is what a preload list has to stay under.
The store spends that cap on more than parsers — it also holds a lexer, a
serialization buffer, and the heap it allocates from while parsing — so leave
headroom rather than preloading up to the number.
Neither column is what you download. A package manager fetches the parser gzipped, which is several times smaller. Installing a parser is cheap; loading one is what spends the budget.
Injections
A language can highlight another inside it, such as CSS in an HTML <style>.
Each needs its own parser installed, or that block stays plain. Injects lists
the languages a query always names; From the document means it also takes a
language from the source, such as a Markdown fence's info string, so any language
can appear. Languages that inject nothing are not listed.
| Language | Injects | From the document |
|---|---|---|
| angular | comment, css, javascript, json, regex | yes |
| arduino | comment | yes |
| asm | comment | no |
| astro | comment, css, javascript, json, regex, scss, typescript | yes |
| bash | comment, regex | yes |
| bicep | comment | no |
| c | comment | no |
| caddy | comment | no |
| clojure | comment | no |
| cmake | comment | no |
| commonlisp | comment | no |
| cpp | comment | yes |
| csharp | comment | no |
| css | comment | no |
| d | comment | no |
| dart | comment | no |
| diff | comment | yes |
| dockerfile | bash, comment | no |
| dot | comment, html | no |
| editorconfig | comment | no |
| eex | elixir | no |
| ejs | html, ruby | no |
| elixir | comment, eex, heex, javascript, json, lua, markdown, python, regex, sql, surface, svelte, vue, zig | no |
| elm | comment, glsl | no |
| erb | html, ruby | no |
| erlang | comment | no |
| fish | comment | no |
| fortran | comment | no |
| fsharp | comment, xml | no |
| gitattributes | comment | no |
| gitignore | comment | no |
| gleam | markdown | no |
| glimmer | comment | no |
| glsl | comment | no |
| go | comment, regex | no |
| graphql | comment | no |
| groovy | comment | no |
| haskell | comment, css, graphql, html, javascript, json, python, sql, typescript | yes |
| hcl | comment | yes |
| heex | comment, elixir | no |
| html | comment, css, javascript, json, python, regex, toml | yes |
| htmldjango | comment, html | no |
| http | comment, graphql, javascript, json, xml | yes |
| hurl | comment, json, xml | yes |
| iex | elixir | no |
| ini | comment | no |
| java | comment, javadoc | no |
| javadoc | html, markdown_inline | yes |
| javascript | angular, comment, css, glimmer, graphql, html, regex, sql | yes |
| jinja | comment, jinja_inline | no |
| jinja_inline | comment | no |
| jq | comment, regex | no |
| json | comment | no |
| json5 | comment | no |
| julia | bash, comment, markdown, regex | no |
| just | bash, comment, javascript, python, regex | yes |
| kdl | comment | no |
| kotlin | comment, regex | no |
| latex | c, comment, lua, python | yes |
| lean | markdown | no |
| liquid | comment, css, html, javascript, json, yaml | no |
| llvm | comment | no |
| lua | c, comment, luadoc, vim | no |
| make | bash | no |
| markdown | html, markdown_inline, toml, yaml | yes |
| markdown_inline | html, latex | no |
| matlab | comment | no |
| mdx | html, javascript, markdown_inline, toml, yaml | yes |
| mermaid | comment | no |
| nginx | comment | no |
| nim | markdown, markdown_inline, regex | yes |
| nix | bash | yes |
| nushell | comment, regex | no |
| objc | comment | no |
| ocaml | comment | no |
| ocaml_interface | comment | no |
| pascal | asm, comment | no |
| perl | comment | yes |
| php | bash, regex | yes |
| powershell | comment, regex | no |
| prisma | comment | no |
| protobuf | comment | no |
| puppet | comment, regex | no |
| python | comment, regex | no |
| qmljs | angular, comment, css, glimmer, graphql, html, regex, sql | yes |
| r | comment | no |
| racket | comment | no |
| rst | comment, csv, latex, python | yes |
| ruby | comment, regex | yes |
| rust | comment, html, json, regex, xml | no |
| scala | comment | no |
| scheme | comment | no |
| scss | comment | no |
| slim | comment, css, javascript, markdown, ruby, scss | no |
| solidity | comment | no |
| sql | comment | no |
| surface | comment, elixir | no |
| svelte | comment, css, javascript, json, regex, scss, typescript | yes |
| swift | comment, regex | no |
| systemverilog | comment | no |
| tcl | comment | no |
| terraform | comment | yes |
| tlaplus | comment | no |
| toml | comment | no |
| tsx | angular, comment, css, glimmer, graphql, html, regex, sql | yes |
| typescript | angular, comment, css, glimmer, graphql, html, regex, sql | yes |
| typst | comment | yes |
| vhdl | comment | no |
| vim | comment, lua, python, regex, ruby | no |
| vue | comment, css, javascript, json, regex, scss, tsx, typescript | yes |
| wgsl | comment | no |
| xml | comment, css, javascript, sql | no |
| yaml | bash, comment | no |
| zig | comment | no |
| zsh | comment, regex | yes |
Bundles
| Bundle | Languages |
|---|---|
| web | css, html, javascript, json, tsx, typescript |
| web-extra | angular, astro, dart, eex, ejs, elm, erb, glimmer, graphql, heex, htmldjango, markdown, markdown_inline, mdx, php, prisma, scss, slim, surface, svelte, vue, xml |
| system | asm, bash, c, cmake, cpp, go, llvm, make, rust, wat, zig, zsh |
| backend | csharp, elixir, erlang, go, java, javadoc, javascript, kotlin, php, protobuf, python, ruby, rust, scala, sql, typescript |
| full | angular, asm, astro, bash, bend, bicep, c, caddy, clojure, cmake, comment, commonlisp, cpp, csharp, css, csv, dart, diff, dockerfile, dot, editorconfig, eex, ejs, elixir, elm, erb, erlang, fish, gitattributes, gitignore, gleam, glimmer, glsl, go, graphql, groovy, hcl, heex, html, htmldjango, http, hurl, iex, ini, java, javadoc, javascript, jinja, jinja_inline, jq, json, json5, just, kdl, kotlin, liquid, llvm, lua, luadoc, make, markdown, markdown_inline, matlab, mdx, mermaid, nginx, nix, pascal, php, powershell, prisma, protobuf, puppet, python, r, racket, regex, rst, ruby, rust, scala, scheme, scss, slim, solidity, sql, surface, svelte, swift, tcl, terraform, toml, toon, tsx, typescript, typst, vim, vue, wat, wgsl, xml, yaml, zig, zsh |