org.fife.ui.rsyntaxtextarea
Class AbstractJFlexCTokenMaker

java.lang.Object
  extended by org.fife.ui.rsyntaxtextarea.TokenMakerBase
      extended by org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker
          extended by org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker
All Implemented Interfaces:
TokenMaker
Direct Known Subclasses:
ActionScriptTokenMaker, CPlusPlusTokenMaker, CSharpTokenMaker, CSSTokenMaker, CTokenMaker, DartTokenMaker, DTokenMaker, GroovyTokenMaker, JavaScriptTokenMaker, JavaTokenMaker, NSISTokenMaker, PerlTokenMaker, ScalaTokenMaker, TclTokenMaker

public abstract class AbstractJFlexCTokenMaker
extends AbstractJFlexTokenMaker

Base class for JFlex-based token makers using C-style syntax. This class knows how to:


Nested Class Summary
protected  class AbstractJFlexCTokenMaker.CStyleInsertBreakAction
          Action that knows how to special-case inserting a newline in a multi-line comment for languages like C and Java.
 
Field Summary
 
Fields inherited from class org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker
offsetShift, s, start
 
Fields inherited from class org.fife.ui.rsyntaxtextarea.TokenMakerBase
currentToken, firstToken, previousToken
 
Constructor Summary
protected AbstractJFlexCTokenMaker()
           
 
Method Summary
protected  javax.swing.Action createInsertBreakAction()
          Creates and returns the action to use when the user inserts a newline.
 boolean getCurlyBracesDenoteCodeBlocks(int languageIndex)
          Returns true always as C-style languages use curly braces to denote code blocks.
 javax.swing.Action getInsertBreakAction()
          Returns an action to handle "insert break" key presses (i.e.
 boolean getMarkOccurrencesOfTokenType(int type)
          Returns whether tokens of the specified type should have "mark occurrences" enabled for the current programming language.
 boolean getShouldIndentNextLineAfter(Token t)
          The default implementation returns false always.
 
Methods inherited from class org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker
yybegin, yybegin
 
Methods inherited from class org.fife.ui.rsyntaxtextarea.TokenMakerBase
addNullToken, addToken, addToken, addToken, createOccurrenceMarker, getClosestStandardTokenTypeForInternalType, getLanguageIndex, getLastTokenTypeOnLine, getLineCommentStartAndEnd, getOccurrenceMarker, isIdentifierChar, isMarkupLanguage, resetTokenList, setLanguageIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.fife.ui.rsyntaxtextarea.TokenMaker
getTokenList
 

Constructor Detail

AbstractJFlexCTokenMaker

protected AbstractJFlexCTokenMaker()
Method Detail

createInsertBreakAction

protected javax.swing.Action createInsertBreakAction()
Creates and returns the action to use when the user inserts a newline. The default implementation intelligently closes multi-line comments. Subclasses can override.

Returns:
The action.
See Also:
getInsertBreakAction()

getCurlyBracesDenoteCodeBlocks

public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex)
Returns true always as C-style languages use curly braces to denote code blocks.

Specified by:
getCurlyBracesDenoteCodeBlocks in interface TokenMaker
Overrides:
getCurlyBracesDenoteCodeBlocks in class TokenMakerBase
Parameters:
languageIndex - 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.
Returns:
true always.

getInsertBreakAction

public javax.swing.Action getInsertBreakAction()
Returns an action to handle "insert break" key presses (i.e. Enter). An action is returned that handles newlines differently in multi-line comments.

Specified by:
getInsertBreakAction in interface TokenMaker
Overrides:
getInsertBreakAction in class TokenMakerBase
Returns:
The action.

getMarkOccurrencesOfTokenType

public boolean getMarkOccurrencesOfTokenType(int type)
Returns whether tokens of the specified type should have "mark occurrences" enabled for the current programming language. The default implementation returns true if type is TokenTypes.IDENTIFIER. Subclasses can override this method to support other token types, such as TokenTypes.VARIABLE.

Specified by:
getMarkOccurrencesOfTokenType in interface TokenMaker
Overrides:
getMarkOccurrencesOfTokenType in class TokenMakerBase
Parameters:
type - The token type.
Returns:
Whether tokens of this type should have "mark occurrences" enabled.

getShouldIndentNextLineAfter

public boolean getShouldIndentNextLineAfter(Token t)
The default implementation returns false always. Languages that wish to better support auto-indentation can override this method.

Specified by:
getShouldIndentNextLineAfter in interface TokenMaker
Overrides:
getShouldIndentNextLineAfter in class TokenMakerBase
Parameters:
t - The token the previous line ends with.
Returns:
Whether the next line should be indented.