mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-14 19:56:49 +00:00
22 lines
829 B
Rust
22 lines
829 B
Rust
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);
|
|
}
|
|
}
|