diff options
2 files changed, 18 insertions, 1 deletions
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaAutoIndentStrategyTest.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaAutoIndentStrategyTest.java index b3c5a8cf1b..f812810f5f 100644 --- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaAutoIndentStrategyTest.java +++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JavaAutoIndentStrategyTest.java @@ -402,6 +402,21 @@ public class JavaAutoIndentStrategyTest extends TestCase implements ILogListener Assert.assertEquals(buf.toString(), fDocument.get()); } + public void testSmartIndentAfterNewLine10() { + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=404879 + fDocument.setInitialLineDelimiter("\r\n"); + fDocument.set("{ foo();"); + fDocumentCommand.doit= true; + fDocumentCommand.offset= 1; + fDocumentCommand.text= "\r\n"; + performSmartIndentAfterNewLine(); + StringBuffer buf= new StringBuffer(); + buf.append("{\r\n"); + buf.append("\tfoo();\r\n"); + buf.append("}"); + Assert.assertEquals(buf.toString(), fDocument.get()); + } + /* * @see junit.framework.TestCase#setUp() */ diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaAutoIndentStrategy.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaAutoIndentStrategy.java index 5e2288f471..2ddf4334ce 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaAutoIndentStrategy.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaAutoIndentStrategy.java @@ -417,8 +417,10 @@ public class JavaAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy { break; // only select insert positions for parenthesis currently embracing the caret - if (openingParen > pos) + if (openingParen > pos) { + openingParen= -1; continue; + } if (looksLikeAnonymousClassDef(document, partitioning, scanner, openingParen - 1)) return false; |