From 875d81df050bfd5abf74c008683cc436cbeb2789 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 24 Apr 2012 14:20:32 +0200 Subject: [PATCH] IDEA-81062 During typing of Live Template prefix top element at lookup must be selected. --- .../intellij/codeInsight/template/LiveTemplateTest.groovy | 7 ++++++- .../codeInsight/template/impl/ListTemplatesHandler.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy index 31a483984333..f196fbbf025c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy @@ -310,9 +310,14 @@ public class LiveTemplateTest extends LightCodeInsightFixtureTestCase { myFixture.type('it') assert myFixture.lookupElementStrings[0].startsWith('it') + assert LookupManager.getInstance(project).activeLookup.currentItem == myFixture.getLookupElements()[0] + + myFixture.type('e') + assert myFixture.lookupElementStrings[0].startsWith('ite') + assert LookupManager.getInstance(project).activeLookup.currentItem == myFixture.getLookupElements()[0] LookupManager.getInstance(project).hideActiveLookup() - myFixture.type('\b') + myFixture.type('\b\b') new ListTemplatesHandler().invoke(project, editor, myFixture.file); assert myFixture.lookupElementStrings.containsAll(['iter', 'itco']) LookupManager.getInstance(project).hideActiveLookup() diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java index f824802af91c..1778d0c1a6ae 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/ListTemplatesHandler.java @@ -190,7 +190,7 @@ public class ListTemplatesHandler implements CodeInsightActionHandler { } result.addAll(items); ArrayList list = new ArrayList(result); - int selected = list.indexOf(lookup.getCurrentItem()); + int selected = lookup.isSelectionTouched() ? list.indexOf(lookup.getCurrentItem()) : 0; return new Pair, Integer>(list, selected >= 0 ? selected : 0); }