Package groovy.ui.text
Class StructuredSyntaxDocumentFilter
- java.lang.Object
-
- javax.swing.text.DocumentFilter
-
- groovy.ui.text.StructuredSyntaxDocumentFilter
-
- Direct Known Subclasses:
GroovyFilter
public class StructuredSyntaxDocumentFilter extends javax.swing.text.DocumentFilter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classStructuredSyntaxDocumentFilter.LexerNodeprotected classStructuredSyntaxDocumentFilter.MultiLineRun
-
Field Summary
Fields Modifier and Type Field Description protected StructuredSyntaxDocumentFilter.LexerNodelexerThe root of the lexical parsing tree.protected java.util.SortedSetmlTextRunSetThe position tree of multi-line comments.protected javax.swing.text.DefaultStyledDocumentstyledDocumentstatic java.lang.StringTAB_REPLACEMENT
-
Constructor Summary
Constructors Constructor Description StructuredSyntaxDocumentFilter(javax.swing.text.DefaultStyledDocument document)Creates a new instance of StructuredSyntaxDocumentFilter
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StructuredSyntaxDocumentFilter.LexerNodecreateLexerNode()Create a new LexerNode for adding to root.StructuredSyntaxDocumentFilter.LexerNodegetRootNode()Get the root node for lexing the document.voidinsertString(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, java.lang.String text, javax.swing.text.AttributeSet attrs)Insert a string into the document, and then parse it if the parser has been set.protected voidparseDocument(int offset, int length)Parse the Document to update the character styles given an initial start position.voidremove(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, int length)Remove a string from the document, and then parse it if the parser has been set.voidreplace(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, int length, java.lang.String text, javax.swing.text.AttributeSet attrs)Replace a string in the document, and then parse it if the parser has been set.
-
-
-
Field Detail
-
TAB_REPLACEMENT
public static final java.lang.String TAB_REPLACEMENT
- See Also:
- Constant Field Values
-
lexer
protected StructuredSyntaxDocumentFilter.LexerNode lexer
The root of the lexical parsing tree.
-
styledDocument
protected javax.swing.text.DefaultStyledDocument styledDocument
-
mlTextRunSet
protected java.util.SortedSet mlTextRunSet
The position tree of multi-line comments.
-
-
Method Detail
-
createLexerNode
public StructuredSyntaxDocumentFilter.LexerNode createLexerNode()
Create a new LexerNode for adding to root.- Returns:
- a new LexerNode
-
getRootNode
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.
-
insertString
public void insertString(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, java.lang.String text, javax.swing.text.AttributeSet attrs) throws javax.swing.text.BadLocationExceptionInsert a string into the document, and then parse it if the parser has been set.- Overrides:
insertStringin classjavax.swing.text.DocumentFilter- Parameters:
fb-offset-text-attrs-- Throws:
javax.swing.text.BadLocationException
-
parseDocument
protected void parseDocument(int offset, int length) throws javax.swing.text.BadLocationExceptionParse 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:
javax.swing.text.BadLocationException
-
remove
public void remove(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, int length) throws javax.swing.text.BadLocationExceptionRemove a string from the document, and then parse it if the parser has been set.- Overrides:
removein classjavax.swing.text.DocumentFilter- Parameters:
fb-offset-length-- Throws:
javax.swing.text.BadLocationException
-
replace
public void replace(javax.swing.text.DocumentFilter.FilterBypass fb, int offset, int length, java.lang.String text, javax.swing.text.AttributeSet attrs) throws javax.swing.text.BadLocationExceptionReplace a string in the document, and then parse it if the parser has been set.- Overrides:
replacein classjavax.swing.text.DocumentFilter- Parameters:
fb-offset-length-text-attrs-- Throws:
javax.swing.text.BadLocationException
-
-