|
|||||||||
Home >> All >> alice >> util >> [ jedit overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |
alice.util.jedit
Class TokenMarker

java.lang.Objectalice.util.jedit.TokenMarker
- public abstract class TokenMarker
- extends java.lang.Object
A token marker that splits lines of text into tokens. Each token carries a length field and an indentification tag that can be mapped to a color for painting that token.
For performance reasons, the linked list of tokens is reused after each
line is tokenized. Therefore, the return value of markTokens
should only be used for immediate painting. Notably, it cannot be
cached.
- Version:
- $Id: TokenMarker.java,v 1.32 1999/12/13 03:40:30 sp Exp $
Nested Class Summary | |
class |
TokenMarker.LineInfo
Inner class for storing information about tokenized lines. |
Field Summary | |
protected Token |
firstToken
The first token in the list. |
protected int |
lastLine
The last tokenized line. |
protected Token |
lastToken
The last token in the list. |
protected int |
length
The number of lines in the model being tokenized. |
protected TokenMarker.LineInfo[] |
lineInfo
An array for storing information about lines. |
protected boolean |
nextLineRequested
True if the next line should be painted. |
Constructor Summary | |
protected |
TokenMarker()
Creates a new TokenMarker . |
Method Summary | |
protected void |
addToken(int length,
byte id)
Adds a token to the token list. |
void |
deleteLines(int index,
int lines)
Informs the token marker that line have been deleted from the document. |
protected void |
ensureCapacity(int index)
Ensures that the lineInfo array can contain the
specified index. |
int |
getLineCount()
Returns the number of lines in this token marker. |
void |
insertLines(int index,
int lines)
Informs the token marker that lines have been inserted into the document. |
boolean |
isNextLineRequested()
Returns true if the next line should be repainted. |
Token |
markTokens(javax.swing.text.Segment line,
int lineIndex)
A wrapper for the lower-level markTokensImpl method
that is called to split a line up into tokens. |
protected abstract byte |
markTokensImpl(byte token,
javax.swing.text.Segment line,
int lineIndex)
An abstract method that splits a line up into tokens. |
boolean |
supportsMultilineTokens()
Returns if the token marker supports tokens that span multiple lines. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
firstToken
protected Token firstToken
- The first token in the list. This should be used as the return
value from
markTokens()
.
lastToken
protected Token lastToken
- The last token in the list. New tokens are added here.
This should be set to null before a new line is to be tokenized.
lineInfo
protected TokenMarker.LineInfo[] lineInfo
- An array for storing information about lines. It is enlarged and
shrunk automatically by the
insertLines()
anddeleteLines()
methods.
length
protected int length
- The number of lines in the model being tokenized. This can be
less than the length of the
lineInfo
array.
lastLine
protected int lastLine
- The last tokenized line.
nextLineRequested
protected boolean nextLineRequested
- True if the next line should be painted.
Constructor Detail |
TokenMarker
protected TokenMarker()
- Creates a new
TokenMarker
. This DOES NOT create a lineInfo array; an initial call toinsertLines()
does that.
Method Detail |
markTokens
public Token markTokens(javax.swing.text.Segment line, int lineIndex)
- A wrapper for the lower-level
markTokensImpl
method that is called to split a line up into tokens.
markTokensImpl
protected abstract byte markTokensImpl(byte token, javax.swing.text.Segment line, int lineIndex)
- An abstract method that splits a line up into tokens. It
should parse the line, and call
addToken()
to add syntax tokens to the token list. Then, it should return the initial token type for the next line.For example if the current line contains the start of a multiline comment that doesn't end on that line, this method should return the comment token type so that it continues on the next line.
supportsMultilineTokens
public boolean supportsMultilineTokens()
- Returns if the token marker supports tokens that span multiple
lines. If this is true, the object using this token marker is
required to pass all lines in the document to the
markTokens()
method (in turn).The default implementation returns true; it should be overridden to return false on simpler token markers for increased speed.
insertLines
public void insertLines(int index, int lines)
- Informs the token marker that lines have been inserted into
the document. This inserts a gap in the
lineInfo
array.
deleteLines
public void deleteLines(int index, int lines)
- Informs the token marker that line have been deleted from
the document. This removes the lines in question from the
lineInfo
array.
getLineCount
public int getLineCount()
- Returns the number of lines in this token marker.
isNextLineRequested
public boolean isNextLineRequested()
- Returns true if the next line should be repainted. This
will return true after a line has been tokenized that starts
a multiline token that continues onto the next line.
ensureCapacity
protected void ensureCapacity(int index)
- Ensures that the
lineInfo
array can contain the specified index. This enlarges it if necessary. No action is taken if the array is large enough already.It should be unnecessary to call this under normal circumstances;
insertLine()
should take care of enlarging the line info array automatically.
addToken
protected void addToken(int length, byte id)
- Adds a token to the token list.
|
|||||||||
Home >> All >> alice >> util >> [ jedit overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |