Module highlight

Source
Expand description

Basic syntax highlighting functionality.

This module uses librustc_ast’s lexer to provide token-based highlighting for the HTML documentation generated by rustdoc.

Use the render_with_highlighting to highlight some rust code.

Structs§

Classifier πŸ”’
Processes program tokens, classifying strings of text by highlighting category (Class).
DecorationInfo πŸ”’
Decorations are represented as a map from CSS class to vector of character ranges. Each range will be wrapped in a span with that class.
Decorations πŸ”’
Custom spans inserted into the source. Eg –scrape-examples uses this to highlight function calls
HrefContext πŸ”’
This type is needed in case we want to render links on items to allow to go to their definition.
LineInfo πŸ”’
PeekIter πŸ”’
This iterator comes from the same idea than β€œPeekable” except that it allows to β€œpeek” more than just the next item by using peek_next. The peek method always returns the next item after the current one whereas peek_next will return the next item after the last one peeked.
TokenHandler πŸ”’
This type is used as a conveniency to prevent having to pass all its fields as arguments into the various functions (which became its methods).
TokenIter πŸ”’

Enums§

Class πŸ”’
How a span of text is classified. Mostly corresponds to token kinds.
Highlight πŸ”’
Tooltip πŸ”’

Functions§

can_merge πŸ”’
Check if two Class can be merged together. In the following rules, β€œunclassified” means None basically (since it’s Option<Class>). The following rules apply:
empty_line_number πŸ”’
enter_span πŸ”’
Called when we start processing a span of text that should be highlighted. The Class argument specifies how it should be highlighted.
exit_span πŸ”’
Called at the end of a span of highlighted text.
get_real_ident_class πŸ”’
Classifies into identifier class; returns None if this is a non-keyword identifier.
render_example_with_highlighting πŸ”’
Highlights src as an inline example, returning the HTML output.
string πŸ”’
Called for a span of text. If the text should be highlighted differently from the surrounding text, then the Class argument will be a value other than None.
string_without_closing_tag πŸ”’
This function writes text into out with some modifications depending on klass:
write_code πŸ”’
Convert the given src source code into HTML by adding classes for highlighting.
write_footer πŸ”’
write_header πŸ”’
write_line_number πŸ”’
write_scraped_line_number πŸ”’