From 0b7b3518ad6148b19b70cf726b0ae8495d3f56cb Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 25 Apr 2012 10:36:32 +0200 Subject: [PATCH] IDEA-84754 Completion preselect the specified value if it is selected in editor --- .../completion/normal/PreselectEditorSelection.java | 7 +++++++ .../codeInsight/completion/NormalCompletionTest.groovy | 6 ++++++ .../codeInsight/completion/CompletionLookupArranger.java | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/PreselectEditorSelection.java diff --git a/java/java-tests/testData/codeInsight/completion/normal/PreselectEditorSelection.java b/java/java-tests/testData/codeInsight/completion/normal/PreselectEditorSelection.java new file mode 100644 index 000000000000..544ac1af519c --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/PreselectEditorSelection.java @@ -0,0 +1,7 @@ +public class FooBar { + + int a() { + finalize + } + +} \ 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 459412915187..4588166a4914 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -632,6 +632,12 @@ public class ListUtils { public void testQualifierAsPackage3() throws Throwable { doTest(); } + + public void testPreselectEditorSelection() { + configure() + assert lookup.currentItem != myFixture.lookupElements[0] + assert 'finalize' == lookup.currentItem.lookupString + } public void testPackageNamedVariableBeforeAssignment() throws Throwable { doTest(); 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 e38d244acbff..968c6661ad76 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -215,9 +215,11 @@ 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 (isPrefixItem(lookup, item, true) && !isLiveTemplate(item) || + item.getLookupString().equals(selectedText)) { return i; } }