From 59aef31c8e70af9afd080a65c94d7b393459815e Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Mon, 2 Jun 2014 06:52:43 +0200 Subject: [PATCH] IDEA-125781 ReadAction in GroovyTraitFieldSearcher --- .../groovy/findUsages/GroovyScopeUtil.java | 2 +- .../findUsages/GroovyTraitFieldSearcher.java | 25 +++++++------------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyScopeUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyScopeUtil.java index c503938d35db..81f6b16cae54 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyScopeUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyScopeUtil.java @@ -34,7 +34,7 @@ public class GroovyScopeUtil { public static SearchScope restrictScopeToGroovyFiles(SearchScope originalScope, SearchScope effectiveScope) { SearchScope restricted = restrictScopeToGroovyFiles(originalScope); - return originalScope.intersectWith(effectiveScope); + return restricted.intersectWith(effectiveScope); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyTraitFieldSearcher.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyTraitFieldSearcher.java index 286198033ebc..fda97125853a 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyTraitFieldSearcher.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/findUsages/GroovyTraitFieldSearcher.java @@ -15,9 +15,7 @@ */ package org.jetbrains.plugins.groovy.findUsages; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.QueryExecutorBase; -import com.intellij.openapi.util.Computable; import com.intellij.psi.*; import com.intellij.psi.search.RequestResultProcessor; import com.intellij.psi.search.UsageSearchContext; @@ -33,26 +31,21 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GrTraitUtil; * Created by Max Medvedev on 15/04/14 */ public class GroovyTraitFieldSearcher extends QueryExecutorBase { + public GroovyTraitFieldSearcher() { + super(true); + } + @Override public void processQuery(@NotNull ReferencesSearch.SearchParameters p, @NotNull Processor consumer) { final PsiElement target = p.getElementToSearch(); - String traitFieldName = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public String compute() { - if (target instanceof GrField && !(target instanceof GrTraitField)) { - PsiClass aClass = ((GrField)target).getContainingClass(); - if (GrTraitUtil.isTrait(aClass)) { - return GrTraitUtil.getTraitFieldPrefix(aClass) + ((GrField)target).getName(); - } - } + if (target instanceof GrField && !(target instanceof GrTraitField)) { + PsiClass aClass = ((GrField)target).getContainingClass(); + if (GrTraitUtil.isTrait(aClass)) { + String traitFieldName = GrTraitUtil.getTraitFieldPrefix(aClass) + ((GrField)target).getName(); - return null; + p.getOptimizer().searchWord(traitFieldName, p.getEffectiveSearchScope(), UsageSearchContext.IN_CODE, true, target, new MyProcessor(target)); } - }); - - if (traitFieldName != null) { - p.getOptimizer().searchWord(traitFieldName, p.getEffectiveSearchScope(), UsageSearchContext.IN_CODE, true, target, new MyProcessor(target)); } }