mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 09:19:13 +07:00
don't suggest methods to override/implement, it seems to be quite useless (IDEA-74784)
This commit is contained in:
+5
-37
@@ -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<String> overrides = new ArrayList<String>();
|
||||
final Collection<CandidateInfo> 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<String> overrides = new ArrayList<String>();
|
||||
final Collection<CandidateInfo> 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,
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
class Foo extends Super {
|
||||
public void f<caret>oo() {
|
||||
int aaa;
|
||||
int bbb;
|
||||
|
||||
public int g<caret>oo() {
|
||||
}
|
||||
}
|
||||
|
||||
class Super {
|
||||
public void foo() {
|
||||
public int goo() {
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user