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
- Processes program tokens, classifying strings of text by highlighting category (
Class
). - 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.
- Custom spans inserted into the source. Eg –scrape-examples uses this to highlight function calls
- This type is needed in case we want to render links on items to allow to go to their definition.
- 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
. Thepeek
method always returns the next item after the current one whereaspeek_next
will return the next item after the last one peeked. - 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).
Enums
Functions
- Check if two
Class
can be merged together. In the following rules, “unclassified” meansNone
basically (since it’sOption<Class>
). The following rules apply: - Called when we start processing a span of text that should be highlighted. The
Class
argument specifies how it should be highlighted. - Called at the end of a span of highlighted text.
- Classifies into identifier class; returns
None
if this is a non-keyword identifier. - Highlights
src
as an inline example, returning the HTML output. - Highlights
src
as an item-decl, 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 thanNone
. - This function writes
text
intoout
with some modifications depending onklass
: - Convert the given
src
source code into HTML by adding classes for highlighting.