public abstract class TokenMakerBase extends java.lang.Object implements TokenMaker
| Modifier and Type | Field and Description |
|---|---|
protected TokenImpl |
currentToken
Used in the creation of the linked list.
|
protected TokenImpl |
firstToken
The first token in the returned linked list.
|
protected TokenImpl |
previousToken
Used in the creation of the linked list.
|
| Constructor and Description |
|---|
TokenMakerBase()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addNullToken()
Adds a null token to the end of the current linked list of tokens.
|
void |
addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset)
Adds the token specified to the current linked list of tokens.
|
void |
addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset,
boolean hyperlink)
Adds the token specified to the current linked list of tokens.
|
void |
addToken(javax.swing.text.Segment segment,
int start,
int end,
int tokenType,
int startOffset)
Adds the token specified to the current linked list of tokens.
|
protected OccurrenceMarker |
createOccurrenceMarker()
Returns the occurrence marker to use for this token maker.
|
int |
getClosestStandardTokenTypeForInternalType(int type)
Returns the closest
"standard" token type for a given
"internal" token type (e.g. |
boolean |
getCurlyBracesDenoteCodeBlocks(int languageIndex)
Returns whether this programming language uses curly braces
('
{' and '}') to denote code blocks. |
javax.swing.Action |
getInsertBreakAction()
Returns an action to handle "insert break" key presses (i.e.
|
protected int |
getLanguageIndex()
Returns the current language index.
|
int |
getLastTokenTypeOnLine(javax.swing.text.Segment text,
int initialTokenType)
Returns the last token on this line's type if the token is "unfinished",
or
TokenTypes.NULL if it was finished. |
java.lang.String[] |
getLineCommentStartAndEnd(int languageIndex)
Returns the text to place at the beginning and end of a
line to "comment" it in this programming language.
|
boolean |
getMarkOccurrencesOfTokenType(int type)
Returns whether tokens of the specified type should have "mark
occurrences" enabled for the current programming language.
|
OccurrenceMarker |
getOccurrenceMarker()
Returns the object in charge of marking all occurrences of the token
at the current caret position, if it is a relevant token.
|
boolean |
getShouldIndentNextLineAfter(Token token)
The default implementation returns
false always. |
boolean |
isIdentifierChar(int languageIndex,
char ch)
Returns whether a character could be part of an "identifier" token
in a specific language.
|
boolean |
isMarkupLanguage()
The default implementation returns
false always. |
protected void |
resetTokenList()
Deletes the linked list of tokens so we can begin anew.
|
protected void |
setLanguageIndex(int languageIndex)
Sets the language index to assign to tokens moving forward.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetTokenListprotected TokenImpl firstToken
protected TokenImpl currentToken
protected TokenImpl previousToken
public void addNullToken()
addNullToken in interface TokenMakerpublic void addToken(javax.swing.text.Segment segment,
int start,
int end,
int tokenType,
int startOffset)
segment - Segment to get text from.start - Start offset in segment of token.end - End offset in segment of token.tokenType - The token's type.startOffset - The offset in the document at which this token
occurs.public void addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset)
addToken in interface TokenMakerarray - The character array from which to get the text.start - Start offset in segment of token.end - End offset in segment of token.tokenType - The token's type.startOffset - The offset in the document at which this token
occurs.public void addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset,
boolean hyperlink)
array - The character array.start - The starting offset in the array.end - The ending offset in the array.tokenType - The token's type.startOffset - The offset in the document at which this token
occurs.hyperlink - Whether this token is a hyperlink.protected OccurrenceMarker createOccurrenceMarker()
public int getClosestStandardTokenTypeForInternalType(int type)
"standard" token type for a given
"internal" token type (e.g. one whose value is < 0).
The default implementation returns type always, which
denotes that a mapping from internal token types to standard token types
is not defined; subclasses can override.
getClosestStandardTokenTypeForInternalType in interface TokenMakertype - The token type.public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex)
{' and '}') to denote code blocks.
The default implementation returns false; subclasses can
override this method if necessary.getCurlyBracesDenoteCodeBlocks in interface TokenMakerlanguageIndex - The language index at the offset in question.
Since some TokenMakers effectively have nested
languages (such as JavaScript in HTML), this parameter tells the
TokenMaker what sub-language to look at.public javax.swing.Action getInsertBreakAction()
null. Subclasses
can override.getInsertBreakAction in interface TokenMakernull.protected int getLanguageIndex()
setLanguageIndex(int)public int getLastTokenTypeOnLine(javax.swing.text.Segment text,
int initialTokenType)
TokenTypes.NULL if it was finished. For example, if C-style
syntax highlighting is being implemented, and text
contained a line of code that contained the beginning of a comment but
no end-comment marker ("*\/"), then this method would return
TokenTypes.COMMENT_MULTILINE for that line. This is useful
for doing syntax highlighting.getLastTokenTypeOnLine in interface TokenMakertext - The line of tokens to examine.initialTokenType - The token type to start with (i.e., the value
of getLastTokenTypeOnLine for the line before
text).TokenTypes.NULL
if the line was completed.public java.lang.String[] getLineCommentStartAndEnd(int languageIndex)
getLineCommentStartAndEnd in interface TokenMakerlanguageIndex - The language index at the offset in question.
Since some TokenMakers effectively have nested
languages (such as JavaScript in HTML), this parameter tells the
TokenMaker what sub-language to look at.null value for either means there
is no string to add for that part. A value of
null for the array means this language
does not support commenting/uncommenting lines.public boolean getMarkOccurrencesOfTokenType(int type)
TokenTypes.IDENTIFIER.
Subclasses can override this method to support other token types, such
as TokenTypes.VARIABLE.getMarkOccurrencesOfTokenType in interface TokenMakertype - The token type.public OccurrenceMarker getOccurrenceMarker()
null is returned, a default OccurrenceMarker
is used.getOccurrenceMarker in interface TokenMakernull
for none.public boolean getShouldIndentNextLineAfter(Token token)
false always. Languages
that wish to better support auto-indentation can override this method.getShouldIndentNextLineAfter in interface TokenMakertoken - The token the previous line ends with.public boolean isIdentifierChar(int languageIndex,
char ch)
true for letters, numbers, and certain symbols.isIdentifierChar in interface TokenMakerlanguageIndex - The language index the character was found in.ch - The character.public boolean isMarkupLanguage()
false always.
Subclasses that are highlighting a markup language should override this
method to return true.isMarkupLanguage in interface TokenMakerfalse always.protected void resetTokenList()
getLastTokenTypeOnLine(Segment, int) or
TokenMaker.getTokenList(Segment, int, int).protected void setLanguageIndex(int languageIndex)
languageIndex - The new language index. A value of
0 denotes the "main" language, any positive value
denotes a specific secondary language. Negative values will
be treated as 0.getLanguageIndex()