use fast_rich::console::Console;
use fast_rich::syntax::{Syntax, Theme};
fn main() {
let console = Console::new();
console.rule("Syntax Highlighting Features");
console.rule("Rust (Monokai, Line 10)");
let rust_code = r#"fn main() {
println!("Hello, World!");
let x = 42;
// This is a comment
}"#;
let config = fast_rich::syntax::SyntaxConfig {
start_line: 10,
theme: Theme::Monokai,
highlight_lines: vec![12],
..Default::default()
};
let syntax = Syntax::new(rust_code, "rust").config(config);
console.print_renderable(&syntax);
console.print("\n");
console.rule("Python (Base16OceanDark, No Line Numbers)");
let python_code = r#"def hello(name):
"""Greets the user."""
print(f"Hello, {name}!")
return True"#;
let syntax = Syntax::new(python_code, "python")
.theme(Theme::Base16OceanDark)
.line_numbers(false);
console.print_renderable(&syntax);
console.print("\n");
console.rule("JSON (No Panel)");
let json_code = r#"{
"name": "fast-rich",
"version": "0.1.0",
"features": ["syntax", "markdown"]
}"#;
let syntax = Syntax::new(json_code, "json")
.panel(false)
.theme(Theme::SolarizedDark);
console.print_renderable(&syntax);
console.print("\n");
}