From 1bdf394db89e9e212b6b19a67d213392d2e44f92 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 26 Sep 2011 12:59:04 +0200 Subject: [PATCH] don't suggest methods to override/implement, it seems to be quite useless (IDEA-74784) --- .../JavaMemberNameCompletionContributor.java | 42 +++---------------- .../completion/normal/MapsInvalidation.java | 7 +++- .../completion/HeavyNormalCompletionTest.java | 2 +- 3 files changed, 11 insertions(+), 40 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java index 840b0f532f57..60796d377038 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java @@ -15,11 +15,9 @@ */ package com.intellij.codeInsight.completion; -import com.intellij.codeInsight.generation.OverrideImplementUtil; import com.intellij.codeInsight.lookup.*; import com.intellij.featureStatistics.FeatureUsageTracker; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.patterns.ElementPattern; import com.intellij.patterns.PsiJavaPatterns; @@ -28,7 +26,6 @@ import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.codeStyle.SuggestedNameInfo; import com.intellij.psi.codeStyle.VariableKind; -import com.intellij.psi.infos.CandidateInfo; import com.intellij.psi.statistics.JavaStatisticsManager; import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiTreeUtil; @@ -39,7 +36,10 @@ import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; import static com.intellij.patterns.PlatformPatterns.psiElement; import static com.intellij.patterns.PsiJavaPatterns.psiClass; @@ -257,9 +257,7 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor { tunePreferencePolicy(LookupItemUtil.addLookupItems(set, JavaStatisticsManager .getNameSuggestions(var.getType(), JavaStatisticsManager.getContext(var), matcher.getPrefix()), matcher), suggestedNameInfo); - tunePreferencePolicy( - LookupItemUtil.addLookupItems(set, getUnresolvedReferences(var.getParent(), false), - matcher), suggestedNameInfo); + tunePreferencePolicy(LookupItemUtil.addLookupItems(set, getUnresolvedReferences(var.getParent(), false), matcher), suggestedNameInfo); } public static void completeVariableNameForRefactoring(Project project, @@ -329,42 +327,12 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor { if (ourClassParent == null) return; LookupItemUtil.addLookupItems(set, getUnresolvedReferences(ourClassParent, true), matcher); - if(!((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.PRIVATE)){ - LookupItemUtil.addLookupItems(set, getOverrides(ourClassParent, PsiUtil.getTypeByPsiElement(element)), - matcher); - LookupItemUtil.addLookupItems(set, getImplements(ourClassParent, PsiUtil.getTypeByPsiElement(element)), - matcher); - } LookupItemUtil.addLookupItems(set, getPropertiesHandlersNames( ourClassParent, ((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC), PsiUtil.getTypeByPsiElement(element), element), matcher); } - private static String[] getOverrides(final PsiClass parent, final PsiType typeByPsiElement) { - final List overrides = new ArrayList(); - final Collection methodsToOverrideImplement = OverrideImplementUtil.getMethodsToOverrideImplement(parent, true); - for (final CandidateInfo candidateInfo : methodsToOverrideImplement) { - final PsiElement element = candidateInfo.getElement(); - if (Comparing.equal(typeByPsiElement, PsiUtil.getTypeByPsiElement(element)) && element instanceof PsiNamedElement) { - overrides.add(((PsiNamedElement)element).getName()); - } - } - return ArrayUtil.toStringArray(overrides); - } - - private static String[] getImplements(final PsiClass parent, final PsiType typeByPsiElement) { - final List overrides = new ArrayList(); - final Collection methodsToOverrideImplement = OverrideImplementUtil.getMethodsToOverrideImplement(parent, false); - for (final CandidateInfo candidateInfo : methodsToOverrideImplement) { - final PsiElement element = candidateInfo.getElement(); - if (Comparing.equal(typeByPsiElement,PsiUtil.getTypeByPsiElement(element)) && element instanceof PsiNamedElement) { - overrides.add(((PsiNamedElement)element).getName()); - } - } - return ArrayUtil.toStringArray(overrides); - } - private static String[] getPropertiesHandlersNames(final PsiClass psiClass, final boolean staticContext, final PsiType varType, diff --git a/java/java-tests/testData/codeInsight/completion/normal/MapsInvalidation.java b/java/java-tests/testData/codeInsight/completion/normal/MapsInvalidation.java index 2e19265a824e..297817150029 100644 --- a/java/java-tests/testData/codeInsight/completion/normal/MapsInvalidation.java +++ b/java/java-tests/testData/codeInsight/completion/normal/MapsInvalidation.java @@ -1,9 +1,12 @@ class Foo extends Super { - public void foo() { + int aaa; + int bbb; + + public int goo() { } } class Super { - public void foo() { + public int goo() { } } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.java index 19cd6d1d4e0f..fee55be96528 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.java @@ -66,7 +66,7 @@ public class HeavyNormalCompletionTest extends CompletionTestCase{ public void testMapsInvalidation() throws Exception { configureByFile("/codeInsight/completion/normal/" + getTestName(false) + ".java"); assert myFile.getVirtualFile().getFileSystem() instanceof LocalFileSystem; // otherwise the completion copy won't be preserved which is critical here - assertStringItems("finalize", "foo"); + assertStringItems("gAnInt", "getAaa", "getBbb"); myEditor.getCaretModel().moveToOffset(myEditor.getCaretModel().getOffset() + 2); complete(); assertNull(myItems);