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); }