From 90b26f2ad815f391d3abe8a7df75b91322e770c3 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 8 Jul 2013 12:12:19 +0200 Subject: [PATCH] preselect most relevant suggestion instead of prefix-matching one --- .../codeInsight/completion/JavaAutoPopupTest.groovy | 9 +++------ .../completion/NormalCompletionOrderingTest.groovy | 2 +- .../codeInsight/completion/CompletionLookupArranger.java | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy index 74a71e5d108b..4524ed7a77f1 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -741,7 +741,7 @@ class Foo { myFixture.checkResult(" class Foo { { int iteraaa; iteraaa } } ") assert !lookup } - + public void testChoosingItemDuringCopyCommit() { registerContributor(LongReplacementOffsetContributor) @@ -1024,8 +1024,7 @@ public class UTest { myFixture.addClass("package xxxxx; public class SYSTEM_EXCEPTION {}") myFixture.configureByText "a.java", "import xxxxx.*; class Foo { S }" type 'Ystem' - assert 'java.lang.System' == ((JavaPsiClassReferenceElement) myFixture.lookupElements[0]).qualifiedName - assert 'xxxxx.SYSTEM_EXCEPTION' == ((JavaPsiClassReferenceElement) myFixture.lookupElements[1]).qualifiedName + myFixture.assertPreferredCompletionItems 1, 'System', 'SYSTEM_EXCEPTION' } public void testSamePrefixIgnoreCase2() { @@ -1033,9 +1032,7 @@ public class UTest { myFixture.addClass("package xxxxx; public class SYstem {}") myFixture.configureByText "a.java", "import xxxxx.*; class Foo { S }" type 'Ystem' - assert 'xxxxx.SYstem' == ((JavaPsiClassReferenceElement) myFixture.lookupElements[0]).qualifiedName - assert 'java.lang.System' == ((JavaPsiClassReferenceElement) myFixture.lookupElements[1]).qualifiedName - assert 'xxxxx.SYSTEM_EXCEPTION' == ((JavaPsiClassReferenceElement) myFixture.lookupElements[2]).qualifiedName + myFixture.assertPreferredCompletionItems 0, 'SYstem', 'System', 'SYSTEM_EXCEPTION' } private FileEditor openEditorForUndo() { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index 7c2bc5ba5b15..8a1bfe6a1aa9 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -60,7 +60,7 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { final LookupImpl lookup = invokeCompletion(getTestName(false) + ".html"); assertPreferredItems(0, "p", "param", "pre"); incUseCount(lookup, 2); - assertPreferredItems(0, "p", "pre", "param"); + assertPreferredItems(1, "p", "pre", "param"); } public void testUppercaseMatters2() throws Throwable { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java index 00ef614a101c..5185944385ad 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -351,7 +351,7 @@ public class CompletionLookupArranger extends LookupArranger { String selectedText = lookup.getEditor().getSelectionModel().getSelectedText(); for (int i = 0; i < items.size(); i++) { LookupElement item = items.get(i); - if (isPrefixItem(lookup, item, true) && !isLiveTemplate(item) || + if (isAlphaSorted() && isPrefixItem(lookup, item, true) && !isLiveTemplate(item) || item.getLookupString().equals(selectedText)) { return i; }