From f5f394cf1588b304ca614d5b142b1b60b957ca96 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 2 Dec 2013 15:30:33 +0400 Subject: [PATCH] Added read action wrapper #KT-4268 Fixed --- .../KotlinFindMemberUsagesHandler.java | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindMemberUsagesHandler.java b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindMemberUsagesHandler.java index 38583ba80f7..a841691161b 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindMemberUsagesHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindMemberUsagesHandler.java @@ -141,41 +141,48 @@ public abstract class KotlinFindMemberUsagesHandler processor, @NotNull FindUsagesOptions options + @NotNull final PsiElement element, @NotNull final Processor processor, @NotNull final FindUsagesOptions options ) { - KotlinCallableFindUsagesOptions kotlinOptions = (KotlinCallableFindUsagesOptions) options; + return ApplicationManager.getApplication().runReadAction( + new Computable() { + @Override + public Boolean compute() { + KotlinCallableFindUsagesOptions kotlinOptions = (KotlinCallableFindUsagesOptions) options; - @SuppressWarnings("unchecked") - UsagesSearchRequest request = - getSearchHelper(kotlinOptions).newRequest(FindUsagesPackage.toSearchTarget(options, (T) element, true)); + @SuppressWarnings("unchecked") + UsagesSearchRequest request = + getSearchHelper(kotlinOptions).newRequest(FindUsagesPackage.toSearchTarget(options, (T) element, true)); - for (PsiReference ref : UsagesSearch.instance$.search(request)) { - processUsage(processor, ref); - } + for (PsiReference ref : UsagesSearch.instance$.search(request)) { + processUsage(processor, ref); + } - Iterator lightMethods = ApplicationManager.getApplication().runReadAction(new Computable>() { - @Override - public Iterator compute() { - return getLightMethods((JetNamedDeclaration) element).iterator(); - } - }); + Iterator lightMethods = ApplicationManager.getApplication().runReadAction(new Computable>() { + @Override + public Iterator compute() { + return getLightMethods((JetNamedDeclaration) element).iterator(); + } + }); - if (kotlinOptions.getSearchOverrides()) { - while (lightMethods.hasNext()) { - OverridingMethodsSearch.search(lightMethods.next(), options.searchScope, true).forEach( - new PsiElementProcessorAdapter( - new PsiElementProcessor() { - @Override - public boolean execute(@NotNull PsiMethod element) { - return processUsage(processor, element.getNavigationElement()); - } - } - ) - ); - } - } + if (kotlinOptions.getSearchOverrides()) { + while (lightMethods.hasNext()) { + OverridingMethodsSearch.search(lightMethods.next(), options.searchScope, true).forEach( + new PsiElementProcessorAdapter( + new PsiElementProcessor() { + @Override + public boolean execute(@NotNull PsiMethod element) { + return processUsage(processor, element.getNavigationElement()); + } + } + ) + ); + } + } - return true; + return true; + } + } + ); } @Override