From f72231e653d2913e6331f520cc919efa4afdbb2b Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 24 Apr 2012 19:38:26 +0200 Subject: [PATCH] less code --- .../completion/CompletionLookupArranger.java | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) 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 68aba5f3c3ab..360cb847541e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -16,7 +16,6 @@ package com.intellij.codeInsight.completion; -import com.google.common.collect.Maps; import com.intellij.codeInsight.completion.impl.CompletionSorterImpl; import com.intellij.codeInsight.lookup.*; import com.intellij.codeInsight.lookup.impl.LookupImpl; @@ -35,7 +34,6 @@ import com.intellij.psi.WeighingService; import com.intellij.psi.statistics.StatisticsInfo; import com.intellij.psi.statistics.StatisticsManager; import com.intellij.util.Alarm; -import com.intellij.util.containers.FactoryMap; import com.intellij.util.containers.MultiMap; import gnu.trove.THashMap; import gnu.trove.TObjectHashingStrategy; @@ -66,18 +64,7 @@ public class CompletionLookupArranger extends LookupArranger { private final CompletionParameters myParameters; private final CompletionProgressIndicator myProcess; @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"}) - private final FactoryMap> myClassifiers = - new FactoryMap>() { - @Override - protected Map> createMap() { - return Maps.newLinkedHashMap(); - } - - @Override - protected Classifier create(CompletionSorterImpl key) { - return key.buildClassifier(); - } - }; + private final Map> myClassifiers = new LinkedHashMap>(); public CompletionLookupArranger(final CompletionParameters parameters, CompletionProgressIndicator process) { myParameters = parameters; @@ -117,7 +104,10 @@ public class CompletionLookupArranger extends LookupArranger { for (LookupElement element : inputBySorter.get(sorter)) { subMap.put(element, map.get(element)); } - myClassifiers.get(sorter).describeItems(subMap); + Classifier classifier = myClassifiers.get(sorter); + if (classifier != null) { + classifier.describeItems(subMap); + } } return map; @@ -127,7 +117,12 @@ public class CompletionLookupArranger extends LookupArranger { @Override public void addElement(Lookup lookup, LookupElement element, LookupElementPresentation presentation) { mySortingWeights.put(element, WeighingService.weigh(CompletionService.SORTING_KEY, element, myLocation)); - myClassifiers.get(obtainSorter(element)).addElement(element); + CompletionSorterImpl sorter = obtainSorter(element); + Classifier classifier = myClassifiers.get(sorter); + if (classifier == null) { + myClassifiers.put(sorter, classifier = sorter.buildClassifier()); + } + classifier.addElement(element); final String invariant = presentation.getItemText() + "###" + presentation.getTailText() + "###" + presentation.getTypeText(); element.putUserData(PRESENTATION_INVARIANT, invariant);