From 55a3f2211db9b78bb20f6519423fff4cc63e2d33 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 10 Jul 2012 07:27:06 +0200 Subject: [PATCH] calculate completionSorting weight outside EDT --- .../codeInsight/completion/CompletionLookupArranger.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 a3dc43164c21..94a58d7fc3db 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -33,6 +33,7 @@ import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.psi.WeighingComparable; import com.intellij.psi.WeighingService; import com.intellij.psi.statistics.StatisticsInfo; import com.intellij.psi.statistics.StatisticsManager; @@ -122,7 +123,9 @@ 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)); + WeighingComparable w = WeighingService.weigh(CompletionService.SORTING_KEY, element, myLocation); + w.force(); + mySortingWeights.put(element, w); CompletionSorterImpl sorter = obtainSorter(element); Classifier classifier = myClassifiers.get(sorter); if (classifier == null) {