Package groovy.console.ui.text
Class StructuredSyntaxDocumentFilter
java.lang.Object
javax.swing.text.DocumentFilter
groovy.console.ui.text.StructuredSyntaxDocumentFilter
- Direct Known Subclasses:
GroovyFilter
-
Nested Class Summary
Modifier and TypeClassDescriptionfinal class
protected class
Nested classes/interfaces inherited from class javax.swing.text.DocumentFilter
DocumentFilter.FilterBypass
-
Field Summary
Modifier and TypeFieldDescriptionprotected StructuredSyntaxDocumentFilter.LexerNode
The root of the lexical parsing tree.The position tree of multi-line comments.protected DefaultStyledDocument
static final String
-
Constructor Summary
ConstructorDescriptionCreates a new instance of StructuredSyntaxDocumentFilter -
Method Summary
Modifier and TypeMethodDescriptionCreate a new LexerNode for adding to root.Get the root node for lexing the document.void
insertString
(DocumentFilter.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.void
remove
(DocumentFilter.FilterBypass fb, int offset, int length) Remove a string from the document, and then parse it if the parser has been set.void
replace
(DocumentFilter.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.
-
Field Details
-
TAB_REPLACEMENT
- See Also:
-
lexer
The root of the lexical parsing tree. -
styledDocument
-
mlTextRunSet
The position tree of multi-line comments.
-
-
Constructor Details
-
StructuredSyntaxDocumentFilter
Creates a new instance of StructuredSyntaxDocumentFilter- Parameters:
document
- the styled document to parse
-
-
Method Details
-
createLexerNode
Create a new LexerNode for adding to root.- Returns:
- a new 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.
-
insertString
public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attrs) throws BadLocationException Insert a string into the document, and then parse it if the parser has been set.- Overrides:
insertString
in classDocumentFilter
- Parameters:
fb
-offset
-text
-attrs
-- Throws:
BadLocationException
-
parseDocument
Parse the Document to update the character styles given an initial start position. Called by the filter after it has updated the text.- Parameters:
offset
-length
-- Throws:
BadLocationException
-
remove
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException Remove a string from the document, and then parse it if the parser has been set.- Overrides:
remove
in classDocumentFilter
- Parameters:
fb
-offset
-length
-- Throws:
BadLocationException
-
replace
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException Replace a string in the document, and then parse it if the parser has been set.- Overrides:
replace
in classDocumentFilter
- Parameters:
fb
-offset
-length
-text
-attrs
-- Throws:
BadLocationException
-