diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java index 8e11364b29b5..eecb16174ce9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/impl/LiftShorterItemsClassifier.java @@ -18,6 +18,7 @@ package com.intellij.codeInsight.completion.impl; import com.intellij.codeInsight.lookup.Classifier; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.util.SmartList; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; import java.util.*; @@ -90,16 +91,22 @@ class LiftShorterItemsClassifier extends Classifier { } Collections.sort(prefixes); for (String prefix : prefixes) { + List shorter = new SmartList(); for (LookupElement shorterElement : myElements.get(prefix)) { if (srcSet.contains(shorterElement) && processed.add(shorterElement)) { - lifted.add(shorterElement); - if (group.isEmpty()) { - result.add(Collections.singletonList(shorterElement)); - } else { - group.add(shorterElement); - } + shorter.add(shorterElement); } } + + lifted.addAll(shorter); + + final Iterable> shorterClassified = myNext.classify(shorter); + if (group.isEmpty()) { + ContainerUtil.addAll(result, shorterClassified); + } else { + group.addAll(ContainerUtil.flatten(shorterClassified)); + } + } group.add(element);