From 5e52a639a1fd5421d345309f96650e1dd0a1037b Mon Sep 17 00:00:00 2001 From: Mica White Date: Sun, 6 Sep 2026 11:41:56 -0400 Subject: Try arborium --- src/main.rs | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 6028801..d045db6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,34 +1,23 @@ use std::io::Read; use std::path::PathBuf; -use syntect::dumps::{from_binary, from_uncompressed_data}; -use syntect::highlighting::ThemeSet; -use syntect::html::highlighted_html_for_string; -use syntect::parsing::SyntaxSet; +use arborium::{detect_language, Highlighter}; fn main() { - let syntax_set: SyntaxSet = - from_uncompressed_data(include_bytes!("../assets/newlines.packdump")).unwrap(); - let theme_set = from_binary::(include_bytes!("../assets/themepack.themedump")); - let mut theme = theme_set.themes["Coldark-Cold"].clone(); - theme.settings.background = None; - let filename = std::env::args().nth(1).map(PathBuf::from); - let extension = filename - .as_ref() - .and_then(|p| p.extension()) - .and_then(|s| s.to_str()); - let syntax = extension.and_then(|extension| syntax_set.find_syntax_by_extension(extension)); - let mut file = String::new(); let _ = std::io::stdin().read_to_string(&mut file); - let Some(syntax) = syntax else { + let language = filename.and_then(|filename| detect_language(&filename.to_string_lossy())); + let Some(language) = language else { print!("{file}"); return; }; - let highlighted_file = - highlighted_html_for_string(&file, &syntax_set, syntax, &theme).unwrap_or(file); + let mut highlighter = Highlighter::with_config(arborium::Config { + html_format: arborium::HtmlFormat::ClassNames, + ..Default::default() + }); + let highlighted_file = highlighter.highlight(language, &file).unwrap_or(file); println!("{highlighted_file}"); } -- cgit v1.3.1