From 62b31806567d78155fdbd5531dfb4a390dc2c0fa Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 27 Jan 2017 15:32:30 +0100 Subject: [PATCH] fix broken lookup item order when printing weights --- .../completion/CompletionLookupArranger.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 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 df05f1d95bc8..4cdb55a1af19 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -112,9 +112,8 @@ public class CompletionLookupArranger extends LookupArranger { @Override public Map>> getRelevanceObjects(@NotNull Iterable items, boolean hideSingleValued) { - //noinspection unchecked - final Map>> map = new com.intellij.util.containers.hash.LinkedHashMap(EqualityPolicy.IDENTITY); - final MultiMap inputBySorter = groupItemsBySorter(items); + Map>> map = ContainerUtil.newIdentityHashMap(); + MultiMap inputBySorter = groupItemsBySorter(items); int sorterNumber = 0; for (CompletionSorterImpl sorter : inputBySorter.keySet()) { sorterNumber++; @@ -138,8 +137,12 @@ public class CompletionLookupArranger extends LookupArranger { } } - return map; - + //noinspection unchecked + Map>> result = new com.intellij.util.containers.hash.LinkedHashMap(EqualityPolicy.IDENTITY); + for (LookupElement item : items) { + result.put(item, map.get(item)); + } + return result; } private static boolean haveSameWeights(List> pairs) {