summaryrefslogtreecommitdiff
path: root/java/java-indexing-impl/src
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-08-21 17:06:11 -0700
committerTor Norbye <tnorbye@google.com>2013-08-21 17:06:22 -0700
commitce0245dfc4d045479a910a98a0f8655e1ed1419a (patch)
tree438440769eaa8f0073f80d90fb47467a9abe03ce /java/java-indexing-impl/src
parentd34b4c8d74407f5b2be1a344e41f2ecdeb25f4fe (diff)
downloadidea-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')
-rw-r--r--java/java-indexing-impl/src/com/intellij/codeInsight/navigation/ClassImplementationsSearch.java20
-rw-r--r--java/java-indexing-impl/src/com/intellij/codeInsight/navigation/MethodImplementationsSearch.java18
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()]);
}
}