bug 1037094, to much indentation for first comment in a function parameters and defau...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / formatter / CodeFormatter.java
index 281ee1a..f5d3ea3 100644 (file)
@@ -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:
@@ -1259,7 +1273,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
     case TokenNameLPAREN:
     case TokenNameNOT:
     case TokenNameTWIDDLE:
-    case TokenNameDOT:
     case 0:
     // no token
     case TokenNameWHITESPACE: