some checkCanceled

This commit is contained in:
Max Medvedev
2014-04-25 23:59:55 +04:00
parent 876426ab71
commit 92da487a5e
5 changed files with 17 additions and 0 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.plugins.groovy.dsl
import com.intellij.openapi.application.ApplicationInfo
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.util.Pair
import com.intellij.openapi.util.text.StringUtil
import com.intellij.patterns.ElementPattern
@@ -181,6 +182,7 @@ public class GroovyDslExecutor {
CompoundMembersHolder processVariants(GroovyClassDescriptor descriptor, ProcessingContext ctx, PsiType psiType) {
CompoundMembersHolder holder = new CompoundMembersHolder()
for (pair in enhancers) {
ProgressManager.checkCanceled()
ctx.put(DslPointcut.BOUND, null)
if (pair.first.isApplicable(descriptor, ctx)) {
def generator = new CustomMembersGenerator(descriptor, psiType, ctx.get(DslPointcut.BOUND))
@@ -15,6 +15,7 @@
*/
package org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.psi.*;
import com.intellij.psi.scope.PsiScopeProcessor;
import com.intellij.psi.util.InheritanceUtil;
@@ -60,6 +61,12 @@ public class GrReferenceResolveUtil {
static boolean resolveImpl(@NotNull ResolverProcessor processor,
@NotNull GrReferenceExpression place) {
boolean b = doResolve(processor, place);
ProgressManager.checkCanceled();
return b;
}
private static boolean doResolve(ResolverProcessor processor, GrReferenceExpression place) {
GrExpression qualifier = place.getQualifier();
if (qualifier == null) {
if (!ResolveUtil.treeWalkUp(place, processor, true)) return false;
@@ -15,6 +15,7 @@
*/
package org.jetbrains.plugins.groovy.lang.resolve;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiElement;
import com.intellij.psi.ResolveState;
@@ -149,6 +150,7 @@ class DeclarationCacheKey {
boolean processCachedDeclarations(PsiElement place, PsiScopeProcessor processor) {
for (DeclarationHolder holder : getAllDeclarations(place)) {
ProgressManager.checkCanceled();
if (!holder.processCachedDeclarations(processor)) {
return false;
}
@@ -17,6 +17,7 @@
package org.jetbrains.plugins.groovy.lang.resolve;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiType;
@@ -89,6 +90,7 @@ public abstract class NonCodeMembersContributor {
if (aClass != null) {
for (String superClassName : TypesUtil.getSuperClassesWithCache(aClass).keySet()) {
for (NonCodeMembersContributor enhancer : ourClassSpecifiedContributors.get(superClassName)) {
ProgressManager.checkCanceled();
enhancer.processDynamicElements(qualifierType, aClass, delegatingProcessor, place, state);
if (!delegatingProcessor.wantMore) {
return false;
@@ -98,6 +100,7 @@ public abstract class NonCodeMembersContributor {
}
for (NonCodeMembersContributor contributor : ourAllTypeContributors) {
ProgressManager.checkCanceled();
contributor.processDynamicElements(qualifierType, aClass, delegatingProcessor, place, state);
if (!delegatingProcessor.wantMore) {
return false;
@@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.lang.resolve;
import com.intellij.diagnostic.LogMessageEx;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.Key;
@@ -142,6 +143,7 @@ public class ResolveUtil {
return PsiTreeUtil.treeWalkUp(place, maxScope, new PairProcessor<PsiElement, PsiElement>() {
@Override
public boolean process(PsiElement scope, PsiElement lastParent) {
ProgressManager.checkCanceled();
if (!doProcessDeclarations(originalPlace, lastParent, scope, substituteProcessor(processor, scope), nonCodeProcessor, state)) {
return false;
}
@@ -494,6 +496,7 @@ public class ResolveUtil {
PsiElement lastParent = null;
while (run != null) {
ProgressManager.checkCanceled();
if (run instanceof GrMember) {
inCodeBlock = false;
}