diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java index 77ce85355add..3499436a3504 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionSorting.java @@ -116,6 +116,7 @@ public class JavaCompletionSorting { @Override public Comparable weigh(@NotNull LookupElement element) { final Object o = element.getObject(); + if (o instanceof PsiKeyword) return -3; if (!(o instanceof PsiMember)) return 0; if (((PsiMember)o).hasModifierProperty(PsiModifier.STATIC)) { diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/PreferModifiers.java b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferModifiers.java new file mode 100644 index 000000000000..c3348c249c2f --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/PreferModifiers.java @@ -0,0 +1,9 @@ +public class Test { + + p + + class paaa {} + + static class paab {} + +} \ 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 6324ba539edf..521469010051 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.java @@ -95,11 +95,11 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { } public void testClassStaticMembersInVoidContext() throws Throwable { - checkPreferredItems(0, "booleanMethod", "voidMethod", "AN_OBJECT", "BOOLEAN", "Inner"); + checkPreferredItems(0, "booleanMethod", "voidMethod", "AN_OBJECT", "BOOLEAN", "class"); } public void testClassStaticMembersInBooleanContext() throws Throwable { - checkPreferredItems(0, "booleanMethod", "voidMethod", "BOOLEAN", "AN_OBJECT", "Inner"); + checkPreferredItems(0, "booleanMethod", "voidMethod", "BOOLEAN", "AN_OBJECT", "class"); } public void testDispreferDeclared() throws Throwable { @@ -213,4 +213,8 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { checkPreferredItems(0, "return", "rLocal", "rParam", "rMethod"); } + public void testPreferModifiers() { + checkPreferredItems(0, "private", "protected", "public", "paaa", "paab"); + } + } \ No newline at end of file