#1467296 patch for bug #1454529
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPUnitEditor.java
index 41387fe..8a88ecf 100644 (file)
@@ -24,6 +24,8 @@ import net.sourceforge.phpdt.internal.ui.actions.IndentAction;
 import net.sourceforge.phpdt.internal.ui.actions.RemoveBlockCommentAction;
 import net.sourceforge.phpdt.internal.ui.text.ContentAssistPreference;
 import net.sourceforge.phpdt.internal.ui.text.IPHPPartitions;
+import net.sourceforge.phpdt.internal.ui.text.JavaHeuristicScanner;
+import net.sourceforge.phpdt.internal.ui.text.JavaIndenter;
 import net.sourceforge.phpdt.internal.ui.text.PHPPairMatcher;
 import net.sourceforge.phpdt.internal.ui.text.SmartBackspaceManager;
 import net.sourceforge.phpdt.internal.ui.text.SmartSemicolonAutoEditStrategy;
@@ -1012,6 +1014,12 @@ public class PHPUnitEditor extends PHPEditor { //implements
                        if (hasIdentifierToTheRight(document, offset + length))
                          return;
                  // fall through
+                 case '{':
+                               if (!fCloseBracketsPHP)
+                                 return;
+                               if (hasIdentifierToTheRight(document, offset + length))
+                                 return;
+                         // fall through
                  case '"':
                        if (event.character == '"') {
                          if (!fCloseStringsPHPDQ)
@@ -1091,7 +1099,7 @@ public class PHPUnitEditor extends PHPEditor { //implements
                        if (!fCloseBracketsPHP) {
                          return;
                        }
-                         if (hasCharacterToTheLeft(document,offset,'{')) {
+                         if (hasCharacterToTheLeft(document,offset,'{') && hasCharacterToTheRight(document,offset,'}')) {
                                  String lineDelimiter=StubUtility.getLineDelimiterFor(document);
                                  int caretPos=sourceViewer.getTextWidget().getCaretOffset();
                                final StringBuffer buffer = new StringBuffer(lineDelimiter);
@@ -1106,11 +1114,12 @@ public class PHPUnitEditor extends PHPEditor { //implements
                                        index++;
                                }
                                buffer.append(indent);
-                               buffer.append("\t");
+                               JavaHeuristicScanner scanner= new JavaHeuristicScanner(document);
+                               JavaIndenter indenter= new JavaIndenter(document, scanner);
+                               buffer.append(indenter.createIndent(1));
                                int cursorPos=buffer.length();
                                buffer.append(lineDelimiter);
                                buffer.append(indent);
-                               buffer.append("}");
                                document.replace(offset, length, buffer.toString());
                                sourceViewer.getTextWidget().setCaretOffset(caretPos+cursorPos);
                                event.doit = false;