X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java index 434287e..f5d3ea3 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java @@ -511,14 +511,24 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { pendingSpace = false; } } + // don't linebreak empty array declarations + if (token == TokenNameRPAREN && arrayDeclarationCount > 0) { + if (previousCompilableToken == TokenNameLPAREN) { + pendingNewLines = 0; + } + } // Add pending new lines to the formatted source string. // Note: pending new lines are not added if the current token // is a single line comment or whitespace. // if the comment is between parenthesis, there is no blank line // preservation // (if it's a one-line comment, a blank line is added after it). - if (((pendingNewLines > 0 && (!isComment(token))) - || (newLinesInWhitespace > 0 && (openParenthesisCount <= 1 && isComment(token))) || (previousCompilableToken == TokenNameLBRACE && token == TokenNameRBRACE)) + if (( + (pendingNewLines > 0 && (!isComment(token))) + || (newLinesInWhitespace > 0 && (openParenthesisCount <= 1 && isComment(token))) + || (previousCompilableToken == TokenNameLBRACE && token == TokenNameRBRACE) + || (newLinesInWhitespace > 0 && previousCompilableToken == TokenNameDOT) + ) && token != Scanner.TokenNameWHITESPACE) { // Do not add newline & indent between an adjoining close brace and // close paren. Anonymous inner classes may use this form. @@ -690,7 +700,9 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { // check for closing array declaration if (arrayDeclarationCount>0) { if (arrayDeclarationParenthesis[arrayDeclarationCount]==openParenthesis[openParenthesisCount]) { - newLine(1); + if (previousCompilableToken != TokenNameLPAREN) { + newLine(1); + } indentationLevel--; currentLineIndentationLevel = indentationLevel; pendingNewLines = 0; @@ -728,6 +740,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { // Add new line and increase indentation level after open brace. pendingNewLines = 1; indentationLevel += pushBlock(); + inAssignment = false; } } break; @@ -791,6 +804,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { } break; case TokenNameDOT: + space(); pendingSpace = false; break; case TokenNameSEMICOLON: @@ -1108,6 +1122,13 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { * @deprecated There is no need to retrieve the mapped positions anymore. */ public int[] getMappedPositions() { + if (null!=mappedPositions) { + for (int i=0;i=formattedSource.length()) { + mappedPositions[i]=formattedSource.length()-1; + } + } + } return mappedPositions; } @@ -1252,7 +1273,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { case TokenNameLPAREN: case TokenNameNOT: case TokenNameTWIDDLE: - case TokenNameDOT: case 0: // no token case TokenNameWHITESPACE: @@ -2479,7 +2499,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { if (posToMap < 0 || posToMap >= sourceLength) { // protection against out of bounds position if (posToMap == sourceLength) { - mappedPositions[indexToMap] = formattedSource.length()-1; + mappedPositions[indexToMap] = formattedSource.length(); } indexToMap = positionsToMap.length; // no more mapping return; @@ -2492,9 +2512,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { } else { mappedPositions[indexToMap] = posToMap + globalDelta + lineDelta; } - if (mappedPositions[indexToMap]>=formattedSource.length()) { - mappedPositions[indexToMap]=formattedSource.length()-1; - } } indexToMap++; } @@ -2506,9 +2523,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter { while (indexInMap < mappedPositions.length && startPosition <= mappedPositions[indexInMap] && mappedPositions[indexInMap] < endPosition && indexInMap < indexToMap) { mappedPositions[indexInMap] += splitDelta; - if (mappedPositions[indexInMap]>=formattedSource.length()) { - mappedPositions[indexInMap]=formattedSource.length()-1; - } indexInMap++; } }