Class RSyntaxTextAreaHighlighter

  • All Implemented Interfaces:
    javax.swing.plaf.UIResource, javax.swing.text.Highlighter

    public class RSyntaxTextAreaHighlighter
    extends RTextAreaHighlighter
    The highlighter implementation used by RSyntaxTextAreas. It knows to always paint "marked occurrences" highlights below selection highlights, and squiggle underline highlights above all other highlights.

    Most of this code is copied from javax.swing.text.DefaultHighlighter; unfortunately, we cannot re-use much of it since it is package private.

    Version:
    1.0
    • Field Detail

      • DEFAULT_PARSER_NOTICE_COLOR

        private static final java.awt.Color DEFAULT_PARSER_NOTICE_COLOR
        The default color used for parser notices when none is specified.
    • Constructor Detail

      • RSyntaxTextAreaHighlighter

        public RSyntaxTextAreaHighlighter()
        Constructor.
    • Method Detail

      • addMarkedOccurrenceHighlight

        java.lang.Object addMarkedOccurrenceHighlight​(int start,
                                                      int end,
                                                      SmartHighlightPainter p)
                                               throws javax.swing.text.BadLocationException
        Adds a special "marked occurrence" highlight.
        Parameters:
        start - The start offset.
        end - The end offset, exclusive.
        p - The painter to use.
        Returns:
        A tag to reference the highlight later.
        Throws:
        javax.swing.text.BadLocationException - If the specified range is invalid.
        See Also:
        clearMarkOccurrencesHighlights()
      • clearParserHighlights

        public void clearParserHighlights​(Parser parser)
        Removes all the highlights for a specific parser.
        Parameters:
        parser - The parser.
      • deinstall

        public void deinstall​(javax.swing.text.JTextComponent c)
        Specified by:
        deinstall in interface javax.swing.text.Highlighter
        Overrides:
        deinstall in class RTextAreaHighlighter
      • getMarkedOccurrences

        public java.util.List<DocumentRange> getMarkedOccurrences()
        Returns a list of "marked occurrences" in the text area. If there are no marked occurrences, this will be an empty list.
        Returns:
        The list of marked occurrences, or an empty list if none. The contents of this list will be of type DocumentRange.
      • paintLayeredHighlights

        public void paintLayeredHighlights​(java.awt.Graphics g,
                                           int lineStart,
                                           int lineEnd,
                                           java.awt.Shape viewBounds,
                                           javax.swing.text.JTextComponent editor,
                                           javax.swing.text.View view)
        Paints the "marked occurrences" highlights, then any other standard layered highlights (e.g. the text selection).
        Overrides:
        paintLayeredHighlights in class RTextAreaHighlighter
        Parameters:
        g - The graphics context.
        lineStart - The starting offset of the line.
        lineEnd - The end offset of the line.
        viewBounds - The bounds of the view.
        editor - The parent text component.
        view - The view instance being rendered.
        See Also:
        paintParserHighlights(Graphics, int, int, Shape, JTextComponent, View)
      • paintParserHighlights

        public void paintParserHighlights​(java.awt.Graphics g,
                                          int lineStart,
                                          int lineEnd,
                                          java.awt.Shape viewBounds,
                                          javax.swing.text.JTextComponent editor,
                                          javax.swing.text.View view)
        Paints any highlights from Parsers.
        Parameters:
        g - The graphics context.
        lineStart - The starting offset of the line.
        lineEnd - The end offset of the line.
        viewBounds - The bounds of the view.
        editor - The parent text component.
        view - The view instance being rendered.
        See Also:
        paintLayeredHighlights(Graphics, int, int, Shape, JTextComponent, View)