From 045b5445b20fa3d2841d74846685919ceeea5e8d Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 1 Jun 2011 15:11:57 +0200 Subject: [PATCH] after common prefix insertion, frozen items may suddenly disappear from the lookup model (EA-27207) --- .../com/intellij/codeInsight/lookup/impl/LookupImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index 07c24a6bde56..2385d0219070 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -378,7 +378,7 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable final Pair,Iterable>> snapshot = myModel.getModelSnapshot(); - final List items = matchingItems(snapshot); + final LinkedHashSet items = matchingItems(snapshot); checkMinPrefixLengthChanges(items); @@ -389,7 +389,10 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable LinkedHashSet model = new LinkedHashSet(); model.addAll(getPrefixItems(items, true)); model.addAll(getPrefixItems(items, false)); + + myFrozenItems.retainAll(items); model.addAll(myFrozenItems); + addMostRelevantItems(model, snapshot.second); if (hasPreselected) { model.add(myPreselectedItem); @@ -431,8 +434,8 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable } } - private List matchingItems(Pair, Iterable>> snapshot) { - final List items = new ArrayList(); + private LinkedHashSet matchingItems(Pair, Iterable>> snapshot) { + final LinkedHashSet items = new LinkedHashSet(); for (LookupElement element : snapshot.first) { if (prefixMatches(element)) { items.add(element);