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.

Structs

  • Classifier 🔒
    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).
  • 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:
  • 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.