no indentation of HTML and phpdocs
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / formatter / CodeFormatter.java
index 420ed30..b272fbd 100644 (file)
@@ -372,6 +372,11 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
         }
         if (token == Scanner.TokenNameEOF)
           break;
+        if (token == Scanner.TokenNameHEREDOC || token == Scanner.TokenNameINLINE_HTML) {
+          // no indentation for heredocs and HTML !
+          outputCurrentTokenWithoutIndent(Scanner.TokenNameHEREDOC);
+          continue;
+        }
         /*
          * ## MODIFYING the indentation level before generating new lines and indentation in the output string
          */
@@ -612,6 +617,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
           break;
         case TokenNameswitch:
         case TokenNamefor:
+        case TokenNameforeach:
         case TokenNameif:
         case TokenNamewhile:
           if (openParenthesisCount == openParenthesis.length) {
@@ -722,6 +728,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
             if (constructionsCount > 0) {
               switch (constructions[constructionsCount - 1]) {
               case TokenNamefor:
+              case TokenNameforeach:
               //indentationLevel += popExclusiveUntilBlock();
               //break;
               case TokenNameswitch:
@@ -1418,7 +1425,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
       // |= (15.25.2)
       return "|="; //$NON-NLS-1$
     case TokenNameDOT_EQUAL:
-      // .= 
+      // .=
       return ".="; //$NON-NLS-1$
     case TokenNameDOT:
       // .
@@ -1442,6 +1449,11 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
     }
   }
 
+  private void outputCurrentTokenWithoutIndent(int token) {
+    newLine(0);
+    formattedSource.append(scanner.source, scanner.startPosition, scanner.currentPosition - scanner.startPosition);
+  }
+
   /**
    * Appends <code>token</code> to the formatted output. <br>
    * If it contains <code>\n</code>, append a LINE_SEPARATOR and indent after it.
@@ -1906,7 +1918,8 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
     //return (currentToken == TokenNameCOMMA || currentToken ==
     // TokenNameSEMICOLON);
     return currentToken != TokenNameif && currentToken != TokenNameLPAREN && currentToken != TokenNameNOT
-        && currentToken != TokenNamewhile && currentToken != TokenNamefor && currentToken != TokenNameswitch;
+        && currentToken != TokenNamewhile && currentToken != TokenNamefor && currentToken != TokenNameforeach
+        && currentToken != TokenNameswitch;
   }
 
   /**