use syntect::easy::HighlightLines; use syntect::parsing::SyntaxSet; use syntect::highlighting::{ThemeSet,Style}; use syntect::util::{as_latex_escaped,LinesWithEndings}; fn main() { // Load these once at the start of your program let ps = SyntaxSet::load_defaults_newlines(); let ts = ThemeSet::load_defaults(); let syntax = ps.find_syntax_by_extension("rs").unwrap(); let s = "pub struct Wow { hi: u64 }\nfn blah() -> u64 {}\n"; let mut h = HighlightLines::new(syntax, &ts.themes["InspiredGitHub"]); for line in LinesWithEndings::from(s) { // LinesWithEndings enables use of newlines mode let ranges: Vec<(Style, &str)> = h.highlight_line(line, &ps).unwrap(); let escaped = as_latex_escaped(&ranges[..]); println!("\n{:?}", line); println!("\n{}", escaped); } }