Package edu.rice.cs.drjava.model.definitions.indent

Provides a decision tree used to correctly indent the current line.

See:
          Description

Interface Summary
IndentRule A node in the decision tree used for the indentation system.
 

Class Summary
ActionBracePlus Aligns indentation of the current line to the character that opened the enclosing block or expression list.
ActionBracePlusTest Test class according to the JUnit protocol.
ActionDoNothing Indents the current line in the document to the indent level of the start of the contract or statement of the brace enclosing the current position, plus the given suffix.
ActionDoNothingTest Tests the action rule which does nothing to the given text.
ActionStartCurrStmtPlus Indents the current line in the document to the indent level of the start of the statement that the cursor is currently on, plus the given suffix string.
ActionStartPrevLinePlusMultilinePreserveTest Tests ActionStartPrevLinePlusMultilinePreserve(String,int,int,int,int).
ActionStartPrevLinePlusTest Tests ActionStartPrevLinePlus(String)
ActionStartPrevStmtPlus Indents the current line in the document to the indent level of the start of the statement previous to the one the cursor is currently on, plus the given suffix string.
ActionStartPrevStmtPlusTest Test the action rules for code in the indentation decision tree.
ActionStartStmtOfBracePlus Indents the current line in the document to the indent level of the start of the brace enclosing the start of the current line, plus the given suffix.
ActionStartStmtOfBracePlusTest Test the action rules for code in the indentation decision tree.
Indenter Singleton class to construct and use the indentation decision tree.
IndentRuleAction A leaf node in the decision tree for the indentation system.
IndentRuleQuestion A question node in the decision tree for the indentation system.
IndentRulesTestCase Superclass for all test classes for the indentation decision tree.
IndentRuleWithTrace This class does almost all the work for keeping an indent tree trace.
IndentRuleWithTraceTest This class does almost all the work for keeping an indent tree trace.
QuestionBraceIsCurly Determines whether or not the last block or expression list opened previous to the start of the current line was opened by the character '{'.
QuestionBraceIsCurlyTest Test class according to the JUnit protocol.
QuestionBraceIsParenOrBracket Determines whether or not the last block or expression list opened previous to the start of the current line was opened by one of the characters '(' or '['.
QuestionBraceIsParenOrBracketTest Test class according to the JUnit protocol.
QuestionCurrLineEmptyOrEnterPressTest Tests whether the current line is empty.
QuestionCurrLineIsWingComment Determines whether or not the current line in the document starts with "//"
QuestionCurrLineIsWingCommentTest Tests visitor class that determines whether the current line is a wing comment.
QuestionCurrLineStartsWith Question rule in the indentation decision tree.
QuestionCurrLineStartsWithSkipComments Determines whether the current line in the document starts with a specific character sequence, skipping over any comments and leading whitespace on that line.
QuestionCurrLineStartsWithSkipCommentsTest Tests the proper functionality of the class QuestionCurrLineStartsWithSkipComments.
QuestionCurrLineStartsWithTest Tests the indention rule which detects whether the current line starts with a particular string.
QuestionExistsCharInPrevStmt This class checks the previous statement for the given character
QuestionExistsCharInStmt Determines if the given search character is found between the start of the current statement and the end character.
QuestionExistsCharInStmtTest Tests the question rule which determines if the given findChar is found between the start of the statement and the endChar, which must exist on the current line.
QuestionFollowedByStar Question rule in the indentation decision tree.
QuestionHasCharPrecedingOpenBrace Determines whether or not the line enclosing brace is '{' and is immediately preceded by the given _prefix.
QuestionHasCharPrecedingOpenBraceTest Test class according to the JUnit protocol.
QuestionInsideCommentTest Tests whether start of line is within a multiline comment.
QuestionLineContains Question rule in the indentation decision tree.
QuestionLineContainsTest Tests the question rule which determines if the current line in the document contains the given character.
QuestionNewParenPhrase Question rule in the indentation decision tree.
QuestionNewParenPhraseTest Tests the indention rule which detects whether the current line starts a new parenthesized phrase.
QuestionPrevLineStartsCommentTest Tests whether the previous line starts the comment containing the cursor.
QuestionPrevLineStartsJavaDocWithText Question rule in the indentation decision tree.
QuestionPrevLineStartsWith Question rule in indentation decision tree.
QuestionPrevLineStartsWithTest Tests the indention rule which detects whether the immediately previous line starts with a particular string.
QuestionStartAfterOpenBrace Determines whether or not the closest non-whitespace character preceding the start of the current line (excluding any characters inside comments or strings) is on the same line as the enclosing CURLY brace (class is misnamed!).
QuestionStartAfterOpenBraceTest Tests whether the closest non-whitespace character preceding the start of the current line (excluding any characters inside comments or strings) is an open brace.
QuestionStartingNewStmt Determines if the current line is starting a new statement by searching backwards to see if the previous line was the end of a statement.
QuestionStartingNewStmtTest Tests the question rule which determines if the current line is starting a new statement.
 

Enum Summary
Indenter.IndentReason Enumeration of reasons why indentation may be preformed.
 

Package edu.rice.cs.drjava.model.definitions.indent Description

Provides a decision tree used to correctly indent the current line.

The tree is composed of IndentRules, and asks a series of yes or no questions about the current position before determining the appropriate action. All nodes use helper methods from DefinitionsDocument and the Reduced Model package for context.

The tree itself is built in the Indenter class, where a singleton instance is made available to DefinitionsDocument for using on a single line. An outline of the tree is given below.

See Also:
edu.rice.cs.drjava.model.definitions, edu.rice.cs.drjava.model.definitions.reducedmodel