From 8078ea568961a68c04158a80b0bf1f3b8ab274a8 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 2 Feb 2012 16:10:28 +0100 Subject: [PATCH] correctly place dot when chosen a class name in completion with it --- .../codeInsight/completion/JavaCompletionUtil.java | 2 +- .../codeInsight/completion/normal/ClassNameDot.java | 5 +++++ .../codeInsight/completion/normal/ClassNameDot_after.java | 7 +++++++ .../codeInsight/completion/NormalCompletionTest.groovy | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/ClassNameDot.java create mode 100644 java/java-tests/testData/codeInsight/completion/normal/ClassNameDot_after.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java index c081d03ff391..b803bc1d126d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java @@ -740,7 +740,7 @@ public class JavaCompletionUtil { newElement = CodeInsightUtilBase.forcePsiPostprocessAndRestoreElement(newElement); if (newElement != null) { newEndOffset = newElement.getTextRange().getEndOffset(); - if (newElement instanceof PsiJavaCodeReferenceElement) { + if (newElement instanceof PsiJavaCodeReferenceElement && !(newElement instanceof PsiReferenceExpression)) { PsiReferenceParameterList parameterList = ((PsiJavaCodeReferenceElement)newElement).getParameterList(); if (parameterList != null) { newEndOffset = parameterList.getTextRange().getStartOffset(); diff --git a/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot.java b/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot.java new file mode 100644 index 000000000000..9646474f789a --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot.java @@ -0,0 +1,5 @@ +class Foo { + { + FIStr + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot_after.java b/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot_after.java new file mode 100644 index 000000000000..33dc5773ce85 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/ClassNameDot_after.java @@ -0,0 +1,7 @@ +import java.io.FileInputStream; + +class Foo { + { + FileInputStream. + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index e5203e7f1069..4adf38e80a35 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1264,4 +1264,6 @@ public class ListUtils { public void testPackageInMemberType() { doTest() } + public void testClassNameDot() { doTest('.') } + }