From 96512588efb71f4f128b12d41a414e64e410eec4 Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Wed, 17 Nov 2010 18:47:50 +0300 Subject: [PATCH] less read actions --- .../ExpectedTypeBasedCompletionProvider.java | 16 +------ .../JavaClassNameCompletionContributor.java | 2 +- .../JavaDocCompletionContributor.java | 3 +- .../JavaSmartCompletionContributor.java | 2 +- .../filters/getters/ClassLiteralGetter.java | 45 +++++-------------- .../completion/CompletionProvider.java | 15 +------ .../FilePathCompletionContributor.java | 2 +- .../completion/XmlCompletionContributor.java | 2 +- 8 files changed, 21 insertions(+), 66 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/ExpectedTypeBasedCompletionProvider.java b/java/java-impl/src/com/intellij/codeInsight/completion/ExpectedTypeBasedCompletionProvider.java index 86f668f34910..e3d291011b50 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/ExpectedTypeBasedCompletionProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/ExpectedTypeBasedCompletionProvider.java @@ -15,13 +15,11 @@ */ package com.intellij.codeInsight.completion; +import com.google.common.collect.Sets; import com.intellij.codeInsight.ExpectedTypeInfo; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiLiteralExpression; import com.intellij.util.ProcessingContext; -import com.intellij.util.containers.ContainerUtil; -import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -31,21 +29,11 @@ import java.util.Collection; */ public abstract class ExpectedTypeBasedCompletionProvider extends CompletionProvider { - public ExpectedTypeBasedCompletionProvider() { - super(false); - } - public void addCompletions(@NotNull final CompletionParameters params, final ProcessingContext matchingContext, @NotNull final CompletionResultSet result) { final PsiElement position = params.getPosition(); if (position.getParent() instanceof PsiLiteralExpression) return; - final THashSet infos = new THashSet(); - ApplicationManager.getApplication().runReadAction(new Runnable() { - public void run() { - ContainerUtil.addAll(infos, JavaSmartCompletionContributor.getExpectedTypes(params)); - } - }); - addCompletions(params, result, infos); + addCompletions(params, result, Sets.newHashSet(JavaSmartCompletionContributor.getExpectedTypes(params))); } protected abstract void addCompletions(CompletionParameters params, CompletionResultSet result, Collection infos); diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameCompletionContributor.java index cbc9f4264c91..2a487a5ae069 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameCompletionContributor.java @@ -97,7 +97,7 @@ public class JavaClassNameCompletionContributor extends CompletionContributor { }; public JavaClassNameCompletionContributor() { - extend(CompletionType.CLASS_NAME, psiElement(), new CompletionProvider(false) { + extend(CompletionType.CLASS_NAME, psiElement(), new CompletionProvider() { public void addCompletions(@NotNull final CompletionParameters parameters, final ProcessingContext matchingContext, @NotNull final CompletionResultSet result) { if (shouldShowSecondSmartCompletionHint(parameters) && CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.SECOND_CLASS_NAME_COMPLETION)) { diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java index aee7bfbbaa17..83620cd2a2cf 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java @@ -66,8 +66,7 @@ public class JavaDocCompletionContributor extends CompletionContributor { public JavaDocCompletionContributor() { extend(CompletionType.BASIC, PsiJavaPatterns.psiElement(PsiDocToken.DOC_TAG_NAME), new TagChooser()); - extend(CompletionType.BASIC, PsiJavaPatterns.psiElement().inside(PsiDocTagValue.class), new CompletionProvider( - true) { + extend(CompletionType.BASIC, PsiJavaPatterns.psiElement().inside(PsiDocTagValue.class), new CompletionProvider() { protected void addCompletions(@NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result) { final PsiElement position = parameters.getPosition(); boolean isArg = PsiJavaPatterns.psiElement().afterLeaf("(").accepts(position); diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaSmartCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaSmartCompletionContributor.java index e3e7e3b04882..af744f812710 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaSmartCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaSmartCompletionContributor.java @@ -120,7 +120,7 @@ public class JavaSmartCompletionContributor extends CompletionContributor { psiElement(PsiReferenceExpression.class).withParent( psiElement(PsiExpressionList.class).withParent(PsiMethodCallExpression.class))), new SameSignatureCallParametersProvider()); - extend(CompletionType.SMART, psiElement().afterLeaf(PsiKeyword.INSTANCEOF), new CompletionProvider(false) { + extend(CompletionType.SMART, psiElement().afterLeaf(PsiKeyword.INSTANCEOF), new CompletionProvider() { protected void addCompletions(@NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result) { final PsiElement position = parameters.getPosition(); final PsiType[] leftTypes = InstanceOfLeftPartTypeGetter.getLeftTypes(position); diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java index 8378ba3242bc..1ad4c520cbc6 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/ClassLiteralGetter.java @@ -21,9 +21,7 @@ import com.intellij.codeInsight.completion.CompletionResultSet; import com.intellij.codeInsight.completion.JavaSmartCompletionParameters; import com.intellij.codeInsight.completion.PrefixMatcher; import com.intellij.codeInsight.lookup.AutoCompletionPolicy; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; @@ -36,10 +34,6 @@ import org.jetbrains.annotations.Nullable; public class ClassLiteralGetter extends CompletionProvider { private static final Logger LOG = Logger.getInstance("com.intellij.psi.filters.getters.ClassLiteralGetter"); - public ClassLiteralGetter() { - super(false); - } - @Override protected void addCompletions(@NotNull final JavaSmartCompletionParameters parameters, ProcessingContext context, @@ -52,12 +46,7 @@ public class ClassLiteralGetter extends CompletionProvider() { - @Nullable - public PsiType compute() { - return PsiUtil.substituteTypeParameter(parameters.getExpectedType(), CommonClassNames.JAVA_LANG_CLASS, 0, false); - } - }); + PsiType classParameter = PsiUtil.substituteTypeParameter(parameters.getExpectedType(), CommonClassNames.JAVA_LANG_CLASS, 0, false); boolean addInheritors = false; if (classParameter instanceof PsiWildcardType) { @@ -80,11 +69,7 @@ public class ClassLiteralGetter extends CompletionProvider shortNameCondition, final PsiType classParameter, CompletionResultSet result) { - final String canonicalText = ApplicationManager.getApplication().runReadAction(new Computable() { - public String compute() { - return classParameter.getCanonicalText(); - } - }); + final String canonicalText = classParameter.getCanonicalText(); if (CommonClassNames.JAVA_LANG_OBJECT.equals(canonicalText) && StringUtil.isEmpty(result.getPrefixMatcher().getPrefix())) { return; } @@ -95,22 +80,16 @@ public class ClassLiteralGetter extends CompletionProvider { - private final boolean myStartInReadAction; protected CompletionProvider() { - this(true); } + @Deprecated protected CompletionProvider(final boolean startInReadAction) { - myStartInReadAction = startInReadAction; } protected abstract void addCompletions(@NotNull V parameters, final ProcessingContext context, @NotNull CompletionResultSet result); public final void addCompletionVariants(@NotNull final V parameters, final ProcessingContext context, @NotNull final CompletionResultSet result) { - if (myStartInReadAction) { - ApplicationManager.getApplication().runReadAction(new Runnable() { - public void run() { - addCompletions(parameters, context, result); - } - }); - } else { - addCompletions(parameters, context, result); - } + addCompletions(parameters, context, result); } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java index fc38b698fa13..c325c8a8b8d8 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/FilePathCompletionContributor.java @@ -77,7 +77,7 @@ public class FilePathCompletionContributor extends CompletionContributor { } }); - extend(CompletionType.CLASS_NAME, psiElement(), new CompletionProvider(false) { + extend(CompletionType.CLASS_NAME, psiElement(), new CompletionProvider() { @Override protected void addCompletions(@NotNull final CompletionParameters parameters, ProcessingContext context, diff --git a/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java b/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java index b1e4f012b310..023751322050 100644 --- a/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java +++ b/xml/impl/src/com/intellij/codeInsight/completion/XmlCompletionContributor.java @@ -83,7 +83,7 @@ public class XmlCompletionContributor extends CompletionContributor { public XmlCompletionContributor() { extend(CompletionType.BASIC, XmlPatterns.psiElement().inside(XmlPatterns.xmlAttributeValue()), - new CompletionProvider(false) { + new CompletionProvider() { @Override protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context,