[−][src]Struct synoptic::highlighter::Highlighter
For performing highlighting operations
You can create a new Highlighter instance using the new
method
let mut h = Highlighter::new();
Fields
regex: HashMap<&'static str, Vec<Regex>>
multiline_regex: HashMap<&'static str, Vec<Regex>>
Implementations
impl Highlighter
[src]
#[must_use]pub fn new() -> Self
[src]
This will create a new, blank highlighter instance
pub fn join(
&mut self,
regex: &[&'static str],
token: &'static str
) -> Result<(), ReError>
[src]
&mut self,
regex: &[&'static str],
token: &'static str
) -> Result<(), ReError>
This method allows you to add multiple definitions to the highlighter The first argument is for your list of definitions and the second is for the name This is useful for adding lists of keywords, for example:
let mut python = Highlighter::new(); python.join(&["def", "return", "import"], "keyword");
For multiline tokens, you can add (?ms) or (?sm) to the beginning
Errors
This will return an error if one or more of your regex expressions are invalid
pub fn add(
&mut self,
regex: &'static str,
token: &'static str
) -> Result<(), ReError>
[src]
&mut self,
regex: &'static str,
token: &'static str
) -> Result<(), ReError>
This method allows you to add a single definition to the highlighter The first argument is for your definition and the second is for the name This is useful for adding things like regular expressions, for example:
let mut python = Highlighter::new(); python.add("[0-9]+", "number");
For multiline tokens, you can add (?ms) or (?sm) to the beginning
Errors
This will return an error if your regex is invalid
pub fn run_line(&mut self, context: &str, line: usize) -> Option<Vec<Token>>
[src]
This is the method that you call to get the stream of tokens for a specific line.
The first argument is the string with the code that you wish to highlight.
the second argument is the line number that you wish to highlight.
It returns a vector of tokens which can be used to highlight the individual line
let mut lua = Highlighter::new(); lua.add("(?ms)[[.*?]]", "string"); lua.add("print", "keyword"); lua.run_line(r#" print ([[ Hello World! ]]) "#, 2);
This example will return the second line, with the ]]
marked as a string
The advantage of using this over the run
method is that it is a lot faster
This is because it only has to render one line rather than all of them, saving time
pub fn run(&mut self, code: &str) -> Vec<Vec<Token>>
[src]
This is the method that you call to get the stream of tokens The argument is the string with the code that you wish to highlight Return a vector of a vector of tokens, representing the lines and the tokens in them
let mut python = Highlighter::new(); python.add("[0-9]+", "number"); python.run("some numbers: 123");
This example will highlight the numbers 123
in the string
#[must_use]pub fn from_stream(input: &[Token]) -> Vec<TokOpt>
[src]
This is a function that will convert from a stream of tokens into a token option type A token option type is nicer to work with for certain formats such as HTML
#[must_use]pub fn from_opt(input: &[TokOpt]) -> Vec<Token>
[src]
This is a function that will convert from a tokopt slice to a token stream A token stream is easier to render for certain formats such as the command line
Trait Implementations
impl Clone for Highlighter
[src]
pub fn clone(&self) -> Highlighter
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Highlighter
[src]
impl Default for Highlighter
[src]
Auto Trait Implementations
impl !RefUnwindSafe for Highlighter
[src]
impl Send for Highlighter
[src]
impl Sync for Highlighter
[src]
impl Unpin for Highlighter
[src]
impl UnwindSafe for Highlighter
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,