pub struct HighlightLines<'a> { /* private fields */ }
Expand description

Simple way to go directly from lines of text to colored tokens.

Depending on how you load the syntaxes (see the SyntaxSet docs), this can either take strings with trailing \ns or without.

§Examples

Prints colored lines of a string to the terminal

use syntect::easy::HighlightLines;
use syntect::parsing::SyntaxSet;
use syntect::highlighting::{ThemeSet, Style};
use syntect::util::{as_24_bit_terminal_escaped, LinesWithEndings};

// 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 mut h = HighlightLines::new(syntax, &ts.themes["base16-ocean.dark"]);
let s = "pub struct Wow { hi: u64 }\nfn blah() -> u64 {}";
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_24_bit_terminal_escaped(&ranges[..], true);
    print!("{}", escaped);
}

Implementations§

source§

impl<'a> HighlightLines<'a>

source

pub fn new(syntax: &SyntaxReference, theme: &'a Theme) -> HighlightLines<'a>

source

pub fn highlight<'b>( &mut self, line: &'b str, syntax_set: &SyntaxSet ) -> Vec<(Style, &'b str)>

👎Deprecated since 5.0.0: Renamed to highlight_line to make it clear it should be passed a single line at a time
source

pub fn highlight_line<'b>( &mut self, line: &'b str, syntax_set: &SyntaxSet ) -> Result<Vec<(Style, &'b str)>, Error>

Highlights a line of a file

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for HighlightLines<'a>

§

impl<'a> !Send for HighlightLines<'a>

§

impl<'a> !Sync for HighlightLines<'a>

§

impl<'a> Unpin for HighlightLines<'a>

§

impl<'a> UnwindSafe for HighlightLines<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.