syntastica 0.6.1

Modern and easy syntax highlighting using tree-sitter
Documentation
use std::collections::HashMap;

use syntastica::{renderer::TerminalRenderer, Highlights, Processor};
use syntastica_core::theme::ResolvedTheme;
use syntastica_parsers_git::{Lang, LanguageSetImpl};

fn main() {
    let examples: HashMap<String, String> =
        toml::from_str(include_str!("./example_programs.toml")).unwrap();

    let highlights =
        Processor::process_once(&examples["rust"], Lang::Rust, &LanguageSetImpl::new()).unwrap();

    for theme in syntastica_themes::THEMES {
        example(
            &highlights,
            syntastica_themes::from_str(theme).unwrap(),
            theme,
        );
    }
}

fn example(highlights: &Highlights, theme: ResolvedTheme, name: &str) {
    let bg_color = theme.bg();
    println!(
        "\n\x1b[1m{name}:\x1b[0m\n{0}\n{1}{0}",
        "-".repeat(50),
        syntastica::render(highlights, &mut TerminalRenderer::new(bg_color), theme),
    );
}