Terminal Formatter
ANSI escape codes for shell output.
Options
| Runtime | Options |
|---|---|
| Rust | language, theme |
| Elixir | language, theme |
| JavaScript | language, theme |
| Java | withLang(), withTheme(), withFormatter(Formatter.TERMINAL) |
| CLI | default formatter, --theme |
Example
- JavaScript
- Rust
- Elixir
- Java
- CLI
import {highlight} from '@lumis-sh/lumis'
import {terminal} from '@lumis-sh/lumis/formatters'
import javascript from '@lumis-sh/lumis/langs/javascript'
import dracula from '@lumis-sh/themes/dracula'
const ansi = await highlight('const x = 1', terminal({language: javascript, theme: dracula}))
console.log(ansi)
use lumis::{highlight, TerminalBuilder, languages::Language, themes};
let ansi = highlight(
"fn main() {}",
TerminalBuilder::new()
.language(Language::Rust)
.theme(Some(themes::get("dracula").unwrap()))
.build()
.unwrap(),
);
println!("{}", ansi);
Lumis.highlight!(
"fn main() {}",
formatter: {:terminal, language: "rust", theme: "dracula"}
)
import io.roastedroot.lumis4j.core.Formatter;
import io.roastedroot.lumis4j.core.Lang;
import io.roastedroot.lumis4j.core.Lumis;
import io.roastedroot.lumis4j.core.Theme;
var lumis = Lumis.builder().build();
var highlighter = lumis.highlighter()
.withLang(Lang.JAVASCRIPT)
.withTheme(Theme.DRACULA)
.withFormatter(Formatter.TERMINAL)
.build();
var ansi = highlighter.highlight("const x = 1").string();
System.out.println(ansi);
lumis.close();
lumis highlight main.rs --theme dracula
# same as: lumis highlight main.rs --formatter terminal --theme dracula
Output format
Terminal output is plain text wrapped in ANSI escape sequences:
\x1b[38;2;229;192;123mfn\x1b[0m \x1b[38;2;97;175;239mmain\x1b[0m() {}
- the source stays as terminal text, not HTML
- ANSI escape sequences set foreground color and text styles
\x1b[0mresets formatting between styled segments
When to use it
- CLI tools
- logs and local scripts
- previewing highlighted code in a terminal