diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/PreferLessParametersWeigher.java b/java/java-impl/src/com/intellij/codeInsight/completion/PreferLessParametersWeigher.java deleted file mode 100644 index f1660146f188..000000000000 --- a/java/java-impl/src/com/intellij/codeInsight/completion/PreferLessParametersWeigher.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2000-2009 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.codeInsight.completion; - -import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.psi.PsiMethod; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author peter - */ -public class PreferLessParametersWeigher extends CompletionWeigher { - @Override - public Integer weigh(@NotNull LookupElement element, @NotNull CompletionLocation location) { - if (location == null) { - return null; - } - final Object o = element.getObject(); - if (o instanceof PsiMethod) { - return ((PsiMethod)o).getParameterList().getParametersCount(); - } - return 0; - } -} diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/ClassInCallOfItsMethod.java b/java/java-tests/testData/codeInsight/completion/normalSorting/ClassInCallOfItsMethod.java deleted file mode 100644 index d9b57c5104d8..000000000000 --- a/java/java-tests/testData/codeInsight/completion/normalSorting/ClassInCallOfItsMethod.java +++ /dev/null @@ -1,8 +0,0 @@ -import foo.Foo; -import bar.*; - -class Bar { - { - Foo.foo(Foox) - } -} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index 98250aefeb70..f32e491cbf72 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -191,14 +191,6 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase { assertEquals("Foooo.Bar", presentation.getItemText());*/ } - public void testClassInCallOfItsMethod() throws Throwable { - myFixture.addClass("package foo; public interface Foo {}"); - myFixture.addClass("package bar; public interface Foo {}"); - - checkPreferredItems(0, "Foo", "Foo"); - assertEquals("foo.Foo", ((JavaPsiClassReferenceElement)getLookup().getCurrentItem()).getQualifiedName()); - } - public void testDeclaredMembersGoFirst() throws Exception { invokeCompletion(getTestName(false) + ".java"); assertStringItems("fromThis", "overridden", "fromSuper", "equals", "getClass", "hashCode", "notify", "notifyAll", "toString", "wait", diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index 546bfe7e17d7..c23f41246078 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -163,6 +163,10 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { configure() LookupElementPresentation presentation = renderElement(myItems[0]) assert "add" == presentation.itemText + assert "(int index, String element)" == presentation.tailText + assert "void" == presentation.typeText + + presentation = renderElement(myItems[1]) assert "(String o)" == presentation.tailText assert "boolean" == presentation.typeText diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java index 2e4c004c4415..590f5e2b7520 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java +++ b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionService.java @@ -41,6 +41,7 @@ public abstract class CompletionService { public static final Key RELEVANCE_KEY = Key.create("completion"); /** * A "weigher" extension key (see {@link Weigher}) to sort the whole lookup descending. + * @deprecated use "completion" relevance key instead */ public static final Key SORTING_KEY = Key.create("completionSorting"); diff --git a/platform/lang-api/src/com/intellij/psi/Weigher.java b/platform/lang-api/src/com/intellij/psi/Weigher.java index 59058becfab5..a97896f7590a 100644 --- a/platform/lang-api/src/com/intellij/psi/Weigher.java +++ b/platform/lang-api/src/com/intellij/psi/Weigher.java @@ -25,7 +25,6 @@ import org.jetbrains.annotations.Nullable; * Known key values include: *
  • "proximity" to measure proximity level of an element in a particular place (location) *
  • "completion" ({@link com.intellij.codeInsight.completion.CompletionService#RELEVANCE_KEY}) - to compare lookup elements by relevance and move preferred items to the top - *
  • "completionSorting" ({@link com.intellij.codeInsight.completion.CompletionService#SORTING_KEY}) - to sort lookup elements across the lookup list * * Your weigher should return {@link Comparable} instances of the same type. * 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 e6fb2faa94eb..3fe0b94dd32d 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java @@ -33,17 +33,12 @@ 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; import com.intellij.util.Alarm; import com.intellij.util.ProcessingContext; -import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; -import gnu.trove.THashMap; -import gnu.trove.TObjectHashingStrategy; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -68,16 +63,6 @@ public class CompletionLookupArranger extends LookupArranger { } private final CompletionLocation myLocation; - @SuppressWarnings("unchecked") - private final Map mySortingWeights = new THashMap(TObjectHashingStrategy.IDENTITY); - private final TreeMap mySortedByWeight = new TreeMap(new Comparator() { - @Override - public int compare(LookupElement o1, LookupElement o2) { - //noinspection unchecked - return mySortingWeights.get(o1).compareTo(mySortingWeights.get(o2)); - } - }); - private final CompletionParameters myParameters; private final CompletionProgressIndicator myProcess; @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"}) @@ -133,22 +118,6 @@ public class CompletionLookupArranger extends LookupArranger { @Override public void addElement(Lookup lookup, LookupElement element, LookupElementPresentation presentation) { - WeighingComparable w = WeighingService.weigh(CompletionService.SORTING_KEY, element, myLocation); - w.force(); - mySortingWeights.put(element, w); - - Object old = mySortedByWeight.put(element, element); - if (old != null) { - List list = new SmartList(); - if (old instanceof List) { - list.addAll((List)old); - } else { - list.add((LookupElement)old); - } - list.add(element); - mySortedByWeight.put(element, list); - } - CompletionSorterImpl sorter = obtainSorter(element); Classifier classifier = myClassifiers.get(sorter); if (classifier == null) { @@ -168,29 +137,13 @@ public class CompletionLookupArranger extends LookupArranger { @Override public Pair, Integer> arrangeItems(@NotNull Lookup lookup, boolean onExplicitAction) { List items = matchingItems(lookup); - if (isAlphaSorted()) { - Collections.sort(items, new Comparator() { - public int compare(LookupElement o1, LookupElement o2) { - String invariant = PRESENTATION_INVARIANT.get(o1); - assert invariant != null; - return invariant.compareToIgnoreCase(PRESENTATION_INVARIANT.get(o2)); - } - }); - } else { - Set set = new LinkedHashSet(items); - items.clear(); - for (Object o : mySortedByWeight.values()) { - if (o instanceof LookupElement && set.contains(o)) { - items.add((LookupElement)o); - } else if (o instanceof List) { - for (LookupElement item : (List)o) { - if (set.contains(item)) { - items.add(item); - } - } - } + Collections.sort(items, new Comparator() { + public int compare(LookupElement o1, LookupElement o2) { + String invariant = PRESENTATION_INVARIANT.get(o1); + assert invariant != null; + return invariant.compareToIgnoreCase(PRESENTATION_INVARIANT.get(o2)); } - } + }); MultiMap inputBySorter = groupInputBySorter(items); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/GroupingWeigher.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/GroupingWeigher.java index a452c63ec561..73553415738c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/GroupingWeigher.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/GroupingWeigher.java @@ -27,7 +27,7 @@ public class GroupingWeigher extends CompletionWeigher { public Integer weigh(@NotNull LookupElement element, @NotNull CompletionLocation location) { final PrioritizedLookupElement prioritized = element.as(PrioritizedLookupElement.CLASS_CONDITION_KEY); if (prioritized != null) { - return -prioritized.getGrouping(); + return prioritized.getGrouping(); } return 0; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/LookupElementProximityWeigher.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/LookupElementProximityWeigher.java index 8382565e0f25..475349db7641 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/LookupElementProximityWeigher.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/LookupElementProximityWeigher.java @@ -15,9 +15,8 @@ */ package com.intellij.codeInsight.completion; -import com.intellij.codeInsight.completion.impl.NegatingComparable; import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.openapi.util.Computable; +import com.intellij.openapi.util.NullableComputable; import com.intellij.psi.PsiElement; import com.intellij.psi.util.proximity.PsiProximityComparator; import org.jetbrains.annotations.NotNull; @@ -29,7 +28,7 @@ public class LookupElementProximityWeigher extends CompletionWeigher { public Comparable weigh(@NotNull final LookupElement item, @NotNull final CompletionLocation location) { if (item.getObject() instanceof PsiElement) { - return PsiProximityComparator.getProximity(new Computable() { + return PsiProximityComparator.getProximity(new NullableComputable() { @Override public PsiElement compute() { Object object = item.getObject(); @@ -39,12 +38,4 @@ public class LookupElementProximityWeigher extends CompletionWeigher { } return null; } - - public static class Negative extends LookupElementProximityWeigher { - @Override - public Comparable weigh(@NotNull LookupElement element, @NotNull CompletionLocation location) { - return new NegatingComparable(super.weigh(element, location)); - } - } - } diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml index d051b1750bac..9f01872cc29e 100644 --- a/platform/platform-resources/src/META-INF/LangExtensions.xml +++ b/platform/platform-resources/src/META-INF/LangExtensions.xml @@ -459,15 +459,8 @@ order="after stats"/> - - - - - + diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index a206d420a80c..8a60ac9e3e31 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -896,9 +896,6 @@ - -