diff options
author | Tor Norbye <tnorbye@google.com> | 2013-08-21 17:06:11 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2013-08-21 17:06:22 -0700 |
commit | ce0245dfc4d045479a910a98a0f8655e1ed1419a (patch) | |
tree | 438440769eaa8f0073f80d90fb47467a9abe03ce /java/java-indexing-impl/src | |
parent | d34b4c8d74407f5b2be1a344e41f2ecdeb25f4fe (diff) | |
download | idea-ce0245dfc4d045479a910a98a0f8655e1ed1419a.tar.gz |
Snapshot 5755a4daa62e3fe56827696be38afb29f7fa297b from master branch of git://git.jetbrains.org/idea/community.git
5755a4d: 2013-08-21 Bas Leijdekkers - IDEA-112398 (Yellow code is green: Inspection "Overly broad 'catch' clause" and RuntimeException)
21e3c90: 2013-08-21 Gregory.Shrago - EditorImpl-based table cell renderer
8f24e2f: 2013-08-21 Maxim.Mossienko - fix performance regression
0ea191f: 2013-08-21 peter - IDEA-112373 Rectangular selection paste bug
e10ed95: 2013-08-21 peter - IDEA-112377 Caret moving problem inside "Find" input
e21aa9a: 2013-08-21 peter - allow stubs built from ast be gc'ed
78ecf28: 2013-08-21 peter - IDEA-112358 'Constant Conditions' does not understand non-short-circuit 'or'
dbb57c5: 2013-08-21 Roman Shevchenko - Xinerama suppression reverted
b81debe: 2013-08-21 Anna Kozlova - NPE
c94daa8: 2013-08-21 Anna Kozlova - build graph: cleanup done amount if exception is thrown and logged (IDEA-112290)
ac9c969: 2013-08-21 Anna Kozlova - definitions search: allow to provide additional information through search parameters: speed up Ctrl-Shift-I by reduction by type hierarchy (IDEA-109493)
2e10748: 2013-08-21 Maxim.Mossienko - less logging / better comment
6e64688: 2013-08-21 Maxim.Mossienko - NPE
3cd7a98: 2013-08-21 Nadya Zabrodina - Common updateContent method for Merge and UpdateTo dialog moved to HgUiUtil
2bb8b9c: 2013-08-21 Maxim.Mossienko - proper logging
83d01c8: 2013-08-21 Konstantin Bulenkov - fix coverage colors under Darcula
Change-Id: I06739ac3637c5ae6459132cc040c874e11244af6
Diffstat (limited to 'java/java-indexing-impl/src')
2 files changed, 19 insertions, 19 deletions
diff --git a/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/ClassImplementationsSearch.java b/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/ClassImplementationsSearch.java index a19630dad65c..128cf27ed3c4 100644 --- a/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/ClassImplementationsSearch.java +++ b/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/ClassImplementationsSearch.java @@ -15,8 +15,6 @@ */ package com.intellij.codeInsight.navigation; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; @@ -24,23 +22,21 @@ import com.intellij.psi.search.PsiElementProcessor; import com.intellij.psi.search.PsiElementProcessorAdapter; import com.intellij.psi.search.SearchScope; import com.intellij.psi.search.searches.ClassInheritorsSearch; +import com.intellij.psi.search.searches.DefinitionsScopedSearch; import com.intellij.util.Processor; import com.intellij.util.QueryExecutor; import org.jetbrains.annotations.NotNull; -public class ClassImplementationsSearch implements QueryExecutor<PsiElement, PsiElement> { - public boolean execute(@NotNull final PsiElement sourceElement, @NotNull final Processor<PsiElement> consumer) { - return !(sourceElement instanceof PsiClass) || processImplementations((PsiClass)sourceElement, consumer); +public class ClassImplementationsSearch implements QueryExecutor<PsiElement, DefinitionsScopedSearch.SearchParameters> { + @Override + public boolean execute(@NotNull DefinitionsScopedSearch.SearchParameters queryParameters, @NotNull Processor<PsiElement> consumer) { + final PsiElement sourceElement = queryParameters.getElement(); + return !(sourceElement instanceof PsiClass) || processImplementations((PsiClass)sourceElement, consumer, queryParameters.getScope()); } - public static boolean processImplementations(final PsiClass psiClass, final Processor<? super PsiClass> processor) { + public static boolean processImplementations(final PsiClass psiClass, final Processor<? super PsiClass> processor, SearchScope scope) { final boolean showInterfaces = Registry.is("ide.goto.implementation.show.interfaces"); - return ClassInheritorsSearch.search(psiClass, ApplicationManager.getApplication().runReadAction(new Computable<SearchScope>() { - @Override - public SearchScope compute() { - return psiClass.getUseScope(); - } - }), true).forEach(new PsiElementProcessorAdapter<PsiClass>(new PsiElementProcessor<PsiClass>() { + return ClassInheritorsSearch.search(psiClass, scope, true).forEach(new PsiElementProcessorAdapter<PsiClass>(new PsiElementProcessor<PsiClass>() { public boolean execute(@NotNull PsiClass element) { if (!showInterfaces && element.isInterface()) { return true; diff --git a/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/MethodImplementationsSearch.java b/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/MethodImplementationsSearch.java index dfe436afade2..fd73976f86c5 100644 --- a/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/MethodImplementationsSearch.java +++ b/java/java-indexing-impl/src/com/intellij/codeInsight/navigation/MethodImplementationsSearch.java @@ -17,6 +17,8 @@ package com.intellij.codeInsight.navigation; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; +import com.intellij.psi.search.SearchScope; +import com.intellij.psi.search.searches.DefinitionsScopedSearch; import com.intellij.psi.search.searches.OverridingMethodsSearch; import com.intellij.util.QueryExecutor; import com.intellij.util.Processor; @@ -25,25 +27,27 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; -public class MethodImplementationsSearch implements QueryExecutor<PsiElement, PsiElement> { - public boolean execute(@NotNull final PsiElement sourceElement, @NotNull final Processor<PsiElement> consumer) { +public class MethodImplementationsSearch implements QueryExecutor<PsiElement, DefinitionsScopedSearch.SearchParameters> { + @Override + public boolean execute(@NotNull DefinitionsScopedSearch.SearchParameters queryParameters, @NotNull Processor<PsiElement> consumer) { + final PsiElement sourceElement = queryParameters.getElement(); if (sourceElement instanceof PsiMethod) { - PsiMethod[] implementations = getMethodImplementations((PsiMethod)sourceElement); + PsiMethod[] implementations = getMethodImplementations((PsiMethod)sourceElement, queryParameters.getScope()); return ContainerUtil.process(implementations, consumer); } return true; } - public static void getOverridingMethods(PsiMethod method, ArrayList<PsiMethod> list) { - for (PsiMethod psiMethod : OverridingMethodsSearch.search(method)) { + public static void getOverridingMethods(PsiMethod method, ArrayList<PsiMethod> list, SearchScope scope) { + for (PsiMethod psiMethod : OverridingMethodsSearch.search(method, scope, true)) { list.add(psiMethod); } } - public static PsiMethod[] getMethodImplementations(final PsiMethod method) { + public static PsiMethod[] getMethodImplementations(final PsiMethod method, SearchScope scope) { ArrayList<PsiMethod> result = new ArrayList<PsiMethod>(); - getOverridingMethods(method, result); + getOverridingMethods(method, result, scope); return result.toArray(new PsiMethod[result.size()]); } } |