From 2fa02d1344238b1744ecde5bb364ebcf499aa858 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Mon, 26 Oct 2009 15:59:33 +0300 Subject: [PATCH] Accessing PSI requires read action. --- .../codeInsight/completion/CompletionContributor.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java index 49b203ce2c2c..5a78fb069e72 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java +++ b/platform/lang-api/src/com/intellij/codeInsight/completion/CompletionContributor.java @@ -19,8 +19,10 @@ import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementPresentation; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.ActionManager; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.keymap.KeymapUtil; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.KeyedExtensionCollector; import com.intellij.openapi.util.Pair; import com.intellij.patterns.ElementPattern; @@ -213,8 +215,12 @@ public abstract class CompletionContributor extends AbstractCompletionContributo return KeymapUtil.getFirstKeyboardShortcutText(ActionManager.getInstance().getAction(actionId)); } - public static List forParameters(CompletionParameters parameters) { - return forLanguage(PsiUtilBase.getLanguageAtOffset(parameters.getPosition().getContainingFile(), parameters.getOffset())); + public static List forParameters(final CompletionParameters parameters) { + return ApplicationManager.getApplication().runReadAction(new Computable>() { + public List compute() { + return forLanguage(PsiUtilBase.getLanguageAtOffset(parameters.getPosition().getContainingFile(), parameters.getOffset())); + } + }); } public static List forLanguage(Language language) {