Package jsyntaxpane

Class SyntaxDocument

All Implemented Interfaces:
Serializable, Document

public class SyntaxDocument extends PlainDocument
A document that supports being highlighted. The document maintains an internal List of all the Tokens. The Tokens are updated using a Lexer, passed to it during construction.
See Also:
  • Constructor Details

    • SyntaxDocument

      public SyntaxDocument(Lexer lexer)
  • Method Details

    • fireChangedUpdate

      protected void fireChangedUpdate(DocumentEvent e)
      Overrides:
      fireChangedUpdate in class AbstractDocument
    • fireInsertUpdate

      protected void fireInsertUpdate(DocumentEvent e)
      Overrides:
      fireInsertUpdate in class AbstractDocument
    • fireRemoveUpdate

      protected void fireRemoveUpdate(DocumentEvent e)
      Overrides:
      fireRemoveUpdate in class AbstractDocument
    • replaceToken

      public void replaceToken(Token token, String replacement)
      Replace the token with the replacement string
      Parameters:
      token -
      replacement -
    • getTokens

      public Iterator<Token> getTokens(int start, int end)
      Return an iterator of tokens between p0 and p1.
      Parameters:
      start - start position for getting tokens
      end - position for last token
      Returns:
      Iterator for tokens that overal with range from start to end
    • getTokenAt

      public Token getTokenAt(int pos)
      Find the token at a given position. May return null if no token is found (whitespace skipped) or if the position is out of range:
      Parameters:
      pos -
      Returns:
    • getWordAt

      public Token getWordAt(int offs, Pattern p)
    • getNextToken

      public Token getNextToken(Token tok)
      Return the token following the current token, or null This is an expensive operation, so do not use it to update the gui
      Parameters:
      tok -
      Returns:
    • getPrevToken

      public Token getPrevToken(Token tok)
      Return the token prior to the given token, or null This is an expensive operation, so do not use it to update the gui
      Parameters:
      tok -
      Returns:
    • getPairFor

      public Token getPairFor(Token t)
      This is used to return the other part of a paired token in the document. A paired part has token.pairValue <> 0, and the paired token will have the negative of t.pairValue. This method properly handles nestings of same pairValues, but overlaps are not checked. if The document does not contain a paired token, then null is returned.
      Parameters:
      t -
      Returns:
      the other pair's token, or null if nothing is found.
    • doUndo

      public void doUndo()
      Perform an undo action, if possible
    • doRedo

      public void doRedo()
      Perform a redo action, if possible.
    • getMatcher

      public Matcher getMatcher(Pattern pattern)
      Return a matcher that matches the given pattern on the entire document
      Parameters:
      pattern -
      Returns:
      matcher object
    • getMatcher

      public Matcher getMatcher(Pattern pattern, int start)
      Return a matcher that matches the given pattern in the part of the document starting at offset start. Note that the matcher will have offset starting from start
      Parameters:
      pattern -
      start -
      Returns:
      matcher that MUST be offset by start to get the proper location within the document
    • getMatcher

      public Matcher getMatcher(Pattern pattern, int start, int length)
      Return a matcher that matches the given pattern in the part of the document starting at offset start and ending at start + length. Note that the matcher will have offset starting from start
      Parameters:
      pattern -
      start -
      length -
      Returns:
      matcher that MUST be offset by start to get the proper location within the document
    • clearUndos

      public void clearUndos()
      This will discard all undoable edits
    • getLineAt

      public String getLineAt(int pos) throws BadLocationException
      Gets the line at given position. The line returned will NOT include the line terminator '\n'
      Parameters:
      pos - Position (usually from text.getCaretPosition()
      Returns:
      the STring of text at given position
      Throws:
      BadLocationException
    • removeLineAt

      public void removeLineAt(int pos) throws BadLocationException
      Deletes the line at given position
      Parameters:
      pos -
      Throws:
      BadLocationException
    • replaceLineAt

      public void replaceLineAt(int pos, String newLines) throws BadLocationException
      Replace the line at given position with the given string, which can span multiple lines
      Parameters:
      pos -
      newLines -
      Throws:
      BadLocationException
    • getUncommentedText

      public String getUncommentedText(int aStart, int anEnd)
      Gets the text without the comments. For example for the string { // it's a comment this method will return "{ ".
      Parameters:
      aStart - start of the text.
      anEnd - end of the text.
      Returns:
      String for the line without comments (if exists).
    • getLineStartOffset

      public int getLineStartOffset(int pos)
      Returns the starting position of the line at pos
      Parameters:
      pos -
      Returns:
      starting position of the line
    • getLineEndOffset

      public int getLineEndOffset(int pos)
      Returns the end position of the line at pos. Does a bounds check to ensure the returned value does not exceed document length
      Parameters:
      pos -
      Returns:
    • getLineCount

      public int getLineCount()
      Return the number of lines in this document
      Returns:
    • getLineNumberAt

      public int getLineNumberAt(int pos)
      Return the line number at given position. The line numbers are zero based
      Parameters:
      pos -
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • replace

      public void replace(int offset, int length, String text, AttributeSet attrs) throws BadLocationException
      We override this here so that the replace is treated as one operation by the undomanager
      Overrides:
      replace in class AbstractDocument
      Parameters:
      offset -
      length -
      text -
      attrs -
      Throws:
      BadLocationException
    • append

      public SyntaxDocument append(String str)
      Append the given string to the text of this document.
      Parameters:
      str -
      Returns:
      this document