pub struct ClassedHTMLGenerator<'a> { /* private fields */ }
Expand description
Output HTML for a line of code with <span>
elements using class names
Because this has to keep track of open and closed <span>
tags, it is a struct
with
additional state.
There is a finalize()
method that must be called in the end in order
to close all open <span>
tags.
Note that because CSS classes have slightly different matching semantics than Textmate themes, this may produce somewhat less accurate highlighting than the other highlighting functions which directly use inline colors as opposed to classes and a stylesheet.
§Example
use syntect::html::{ClassedHTMLGenerator, ClassStyle};
use syntect::parsing::SyntaxSet;
use syntect::util::LinesWithEndings;
let current_code = r#"
x <- 5
y <- 6
x + y
"#;
let syntax_set = SyntaxSet::load_defaults_newlines();
let syntax = syntax_set.find_syntax_by_name("R").unwrap();
let mut html_generator = ClassedHTMLGenerator::new_with_class_style(syntax, &syntax_set, ClassStyle::Spaced);
for line in LinesWithEndings::from(current_code) {
html_generator.parse_html_for_line_which_includes_newline(line);
}
let output_html = html_generator.finalize();
Implementations§
Source§impl<'a> ClassedHTMLGenerator<'a>
impl<'a> ClassedHTMLGenerator<'a>
pub fn new( syntax_reference: &'a SyntaxReference, syntax_set: &'a SyntaxSet, ) -> ClassedHTMLGenerator<'a>
new_with_class_style
insteadpub fn new_with_class_style( syntax_reference: &'a SyntaxReference, syntax_set: &'a SyntaxSet, style: ClassStyle, ) -> ClassedHTMLGenerator<'a>
Sourcepub fn parse_html_for_line_which_includes_newline(
&mut self,
line: &str,
) -> Result<(), Error>
pub fn parse_html_for_line_which_includes_newline( &mut self, line: &str, ) -> Result<(), Error>
Parse the line of code and update the internal HTML buffer with tagged HTML
Note: This function requires line
to include a newline at the end and
also use of the load_defaults_newlines
version of the syntaxes.
Sourcepub fn parse_html_for_line(&mut self, line: &str)
👎Deprecated since 4.5.0: Please use parse_html_for_line_which_includes_newline
instead
pub fn parse_html_for_line(&mut self, line: &str)
parse_html_for_line_which_includes_newline
insteadParse the line of code and update the internal HTML buffer with tagged HTML
§Warning
Due to an unfortunate oversight this function adds a newline after the HTML line,
and thus requires lines to be passed without newlines in them, and thus requires
usage of the load_defaults_nonewlines
version of the default syntaxes.
These versions of the syntaxes can have occasionally incorrect highlighting but this function can’t be changed without breaking compatibility so is deprecated.