From 7b4b48764d0dc8b97ebd32d01dae206f03f1407f Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Oct 2012 15:36:38 +0200 Subject: [PATCH] skip ignoring whitespaces when choosing the anchor (IDEA-93459) --- .../psi/impl/JavaPsiImplementationHelperImpl.java | 3 ++- .../createConstructorFromCall/afterIncompleteEnum.java | 8 ++++++++ .../createConstructorFromCall/beforeIncompleteEnum.java | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/afterIncompleteEnum.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/beforeIncompleteEnum.java diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java b/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java index b50de94d8e6a..993e71917652 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaPsiImplementationHelperImpl.java @@ -38,6 +38,7 @@ import com.intellij.psi.codeStyle.arrangement.MemberOrderService; import com.intellij.psi.impl.compiled.ClsClassImpl; import com.intellij.psi.impl.source.codeStyle.ImportHelper; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.IncorrectOperationException; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; @@ -184,7 +185,7 @@ public class JavaPsiImplementationHelperImpl extends JavaPsiImplementationHelper MemberOrderService service = ServiceManager.getService(MemberOrderService.class); PsiElement anchor = service.getAnchor(member, settings.getCommonSettings(JavaLanguage.INSTANCE), aClass); - if (anchor != null && anchor.getNextSibling() == aClass.getRBrace()) { + if (anchor != null && PsiTreeUtil.skipSiblingsForward(anchor, PsiWhiteSpace.class) == aClass.getRBrace()) { // Given member should be inserted as the last child. return aClass.getRBrace(); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/afterIncompleteEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/afterIncompleteEnum.java new file mode 100644 index 000000000000..0573407590a1 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/afterIncompleteEnum.java @@ -0,0 +1,8 @@ +// "Create Constructor" "true" +public enum ReportType { + AGING("Aging"); + + ReportType(String aging) { + //To change body of created methods use File | Settings | File Templates. + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/beforeIncompleteEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/beforeIncompleteEnum.java new file mode 100644 index 000000000000..b194d2dd8b08 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createConstructorFromCall/beforeIncompleteEnum.java @@ -0,0 +1,4 @@ +// "Create Constructor" "true" +public enum ReportType { + AGING("Aging") +} \ No newline at end of file