Package groovy.console.ui.text

# Class SmartDocumentFilter

java.lang.Object
javax.swing.text.DocumentFilter
groovy.console.ui.text.SmartDocumentFilter

public class SmartDocumentFilter extends DocumentFilter
The document filter based on Parrot's lexer is for highlighting the content of text editor

Since:
  3.0.0

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.text.DocumentFilter

  `DocumentFilter.FilterBypass`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final List<Integer>`
  `HIGHLIGHTED_TOKEN_TYPE_LIST`
  Token types rendered with the reserved-word style.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SmartDocumentFilter(DefaultStyledDocument styledDocument)`
  Creates a filter that styles the supplied document.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<org.antlr.v4.runtime.Token>`
  `getLatestTokenList()`
  Returns the tokens produced by the most recent successful parse.
  `Tuple2<Integer,Integer>`
  `getRenderRange()`
  Returns the character range scheduled for selective re-rendering.
  `void`
  `insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attrs)`
  `boolean`
  `isLatest()`
  Indicates whether the cached token list reflects the current document text.
  `void`
  `remove(DocumentFilter.FilterBypass fb, int offset, int length)`
  `void`
  `reparseDocument()`
  Forces a full re-parse and re-render of the document with current styles.
  `void`
  `replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs)`
  `void`
  `setRenderRange(Tuple2<Integer,Integer> renderRange)`
  Limits rendering to the supplied character range for the next parse.
  `static void`
  `updateStyles()`
  Updates all SmartDocumentFilter styles with current theme colors.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### HIGHLIGHTED_TOKEN_TYPE_LIST

    public static final List<Integer> HIGHLIGHTED_TOKEN_TYPE_LIST
    Token types rendered with the reserved-word style.

- ## Constructor Details

  - ### SmartDocumentFilter

    public SmartDocumentFilter(DefaultStyledDocument styledDocument)
    Creates a filter that styles the supplied document.
    Parameters:
      `styledDocument` - the document to tokenize and highlight

- ## Method Details

  - ### insertString

    public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attrs) throws BadLocationException
    Overrides:
      `insertString` in class `DocumentFilter`
    Throws:
      `BadLocationException`

  - ### remove

    public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException
    Overrides:
      `remove` in class `DocumentFilter`
    Throws:
      `BadLocationException`

  - ### replace

    public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException
    Overrides:
      `replace` in class `DocumentFilter`
    Throws:
      `BadLocationException`

  - ### reparseDocument

    public void reparseDocument()
    Forces a full re-parse and re-render of the document with current styles. Clears the incremental-render cache first so every token is restyled, not just the ones that differ from the last parse.
    Since:
      6.0.0

  - ### updateStyles

    public static void updateStyles()
    Updates all SmartDocumentFilter styles with current theme colors. Attribute values are sourced from ThemeManager so custom .theme files feed both this (ANTLR-token-driven) path and the regex-driven GroovyFilter path from one place. Called at init time and on theme switch.
    Since:
      6.0.0

  - ### isLatest

    public boolean isLatest()
    Indicates whether the cached token list reflects the current document text.
    Returns:
      `true` if the latest parse completed successfully

  - ### getLatestTokenList

    public List<org.antlr.v4.runtime.Token> getLatestTokenList()
    Returns the tokens produced by the most recent successful parse.
    Returns:
      the latest token list

  - ### setRenderRange

    public void setRenderRange(Tuple2<Integer,Integer> renderRange)
    Limits rendering to the supplied character range for the next parse.
    Parameters:
      `renderRange` - the inclusive start and stop offsets to re-render, or `null` for all text

  - ### getRenderRange

    public Tuple2<Integer,Integer> getRenderRange()
    Returns the character range scheduled for selective re-rendering.
    Returns:
      the current render range, or `null` if the whole document will be rendered