Mix.install([
  {:lumis, "~> 0.9"},
  {:lumis_wasm_rust, "~> 0.26.0"}
])

A parser is an ordinary dependency. lumis_wasm_rust carries the Rust grammar and the brackets.scm query below; without it Lumis.highlight!/2 raises.

Example

Rainbow brackets use each language's Tree-sitter brackets.scm query. The Rust query includes (), [], {}, < >, and closure pipes, and excludes string delimiters from rainbow coloring.

code = ~S'''
fn main() {
    let foo = OptionalI32::AnI32(1);
    match foo {
        OptionalI32::AnI32(n) => println!("it is an i32: {}", n),
        OptionalI32::Nothing => println!("it is nothing!"),
    }
}
'''

Lumis.highlight!(code,
  rainbow_brackets: true,
  formatter:
    {:html_inline,
     language: "rust",
     theme: "catppuccin_mocha",
     include_highlights: true}
)