From e3ae44d8765b61b1ba0e939311dea5aa85e3793d Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 26 Nov 2010 14:14:08 +0300 Subject: [PATCH] don't let some inner JDK classes be above my precious CompletionType in lookups --- .../codeInsight/completion/StaticMembersWeigher.java | 5 ++--- .../normalSorting/PreferTopLevelClasses.java | 10 ++++++++++ .../completion/NormalCompletionOrderingTest.java | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normalSorting/PreferTopLevelClasses.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/StaticMembersWeigher.java b/java/java-impl/src/com/intellij/codeInsight/completion/StaticMembersWeigher.java index 09bad5eecc58..1ae1ce9513ff 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/StaticMembersWeigher.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/StaticMembersWeigher.java @@ -20,7 +20,6 @@ import com.intellij.psi.*; import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * @author peter @@ -52,8 +51,8 @@ public class StaticMembersWeigher extends CompletionWeigher { } if (o instanceof PsiClass) { - if (((PsiClass) o).getContainingClass() != null) return 3; - return 2; + //if (((PsiClass) o).getContainingClass() != null) return 2; + return 3; } //instance method or field diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/PreferTopLevelClasses.java b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferTopLevelClasses.java new file mode 100644 index 000000000000..4765d1068550 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferTopLevelClasses.java @@ -0,0 +1,10 @@ +public class TestClass { + public TestClass create(XxY) { + } +} + +class XxxYyy {} + +class Aaa { + static class XxzYyy{} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java index 0f4c06849997..358f9135c4b9 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java @@ -116,6 +116,10 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { checkPreferredItems(0, "YyyXxx", "YyyZzz"); } + public void testPreferTopLevelClasses() throws Throwable { + checkPreferredItems(0, "XxxYyy", "XxzYyy"); + } + public void testDontDispreferImplsAfterNew() throws Throwable { VfsUtil.saveText(getSourceRoot().createChildDirectory(this, "foo").createChildData(this, "Xxx.java"), "package foo; public interface Xxx {}"); checkPreferredItems(0, "Xxx", "XxxImpl");