Package: groovy.console.ui.text

## [Java] Class StructuredSyntaxDocumentFilter

- groovy.console.ui.text.StructuredSyntaxDocumentFilter

-     public class StructuredSyntaxDocumentFilter
      extends DocumentFilter

  Document filter that applies regex-driven syntax highlighting to styled text.

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `class` | `StructuredSyntaxDocumentFilter.LexerNode` | Regex-driven lexer node that applies styles and nested lexers.
    `protected class` | `StructuredSyntaxDocumentFilter.MultiLineRun` | Tracks a multi-line styled region within the document.

  - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `TAB_REPLACEMENT` | Spaces inserted in place of tab characters.
    `protected StructuredSyntaxDocumentFilter.LexerNode` | `lexer` | The root of the lexical parsing tree.
    `protected SortedSet<Object>` | `mlTextRunSet` | The position tree of multi-line comments.
    `protected DefaultStyledDocument` | `styledDocument` | The styled document currently being parsed.

  - ### Constructor Summary

    Constructors
    Constructor and description
    `StructuredSyntaxDocumentFilter(DefaultStyledDocument document)` Creates a new instance of StructuredSyntaxDocumentFilter

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public StructuredSyntaxDocumentFilter.LexerNode` | `createLexerNode()` Create a new LexerNode for adding to root.
    `` | `public StructuredSyntaxDocumentFilter.LexerNode` | `getRootNode()` Get the root node for lexing the document.
    `` | `public void` | `insertString(FilterBypass fb, int offset, String text, AttributeSet attrs)` Insert a string into the document, and then parse it if the parser has been set.
    `` | `protected void` | `parseDocument(int offset, int length)` Parse the Document to update the character styles given an initial start position.
    `` | `public void` | `remove(FilterBypass fb, int offset, int length)` Remove a string from the document, and then parse it if the parser has been set.
    `` | `public void` | `replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs)` Replace a string in the document, and then parse it if the parser has been set.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class DocumentFilter` | `equals, getClass, hashCode, insertString, notify, notifyAll, remove, replace, toString, wait, wait, wait`

- - ### Field Detail

    - #### public static final String TAB_REPLACEMENT

      Spaces inserted in place of tab characters.

    - #### protected StructuredSyntaxDocumentFilter.LexerNode lexer

      The root of the lexical parsing tree.

    - #### protected SortedSet<Object> mlTextRunSet

      The position tree of multi-line comments.

    - #### protected DefaultStyledDocument styledDocument

      The styled document currently being parsed.

  - ### Constructor Detail

    - #### public StructuredSyntaxDocumentFilter(DefaultStyledDocument document)

      Creates a new instance of StructuredSyntaxDocumentFilter

      Parameters:
        `document` - the styled document to parse

  - ### Method Detail

    - #### public StructuredSyntaxDocumentFilter.LexerNode createLexerNode()

      Create a new LexerNode for adding to root.

      Returns:
        a new LexerNode

    - #### public StructuredSyntaxDocumentFilter.LexerNode getRootNode()

      Get the root node for lexing the document. Children can be added such that matching patterns can be further parsed if required.

      Returns:
        the root lexing node.

    - #### public void insertString(FilterBypass fb, int offset, String text, AttributeSet attrs)

      Insert a string into the document, and then parse it if the parser has been set.

      throws:
        BadLocationException
      Parameters:
        fb
        offset
        text
        attrs

    - #### protected void parseDocument(int offset, int length)

      Parse the Document to update the character styles given an initial start position. Called by the filter after it has updated the text.

      throws:
        BadLocationException
      Parameters:
        offset
        length

    - #### public void remove(FilterBypass fb, int offset, int length)

      Remove a string from the document, and then parse it if the parser has been set.

      throws:
        BadLocationException
      Parameters:
        fb
        offset
        length

    - #### public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs)

      Replace a string in the document, and then parse it if the parser has been set.

      throws:
        BadLocationException
      Parameters:
        fb
        offset
        length
        text
        attrs