Module rustdoc::html::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.


  • 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.
  • 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 πŸ”’


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


  • 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:
  • 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.
  • 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 than None.
  • 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 πŸ”’