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
. 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.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” means None
basically (since it’s Option<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 a macro, returning the HTML output.Highlights
src
as a source code page, 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
.This function writes
text
into out
with some modifications depending on klass
:Convert the given
src
source code into HTML by adding classes for highlighting.