From e7751ba2b34b41dc3d7dd2e2f02b4bd4ba7af96e Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Wed, 6 Oct 2010 13:47:40 +0400 Subject: [PATCH] no word completion in autopopups in java, properties and generic comments (WI-3437) --- .../com/intellij/lang/java/JavaWordCompletionFilter.java | 7 +++++++ .../src/com/intellij/lang/DefaultWordCompletionFilter.java | 7 +++++++ .../lang/properties/PropertiesWordCompletionFilter.java | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java b/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java index 9369dcb5d9b5..0c752ae2e23b 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaWordCompletionFilter.java @@ -19,6 +19,8 @@ */ package com.intellij.lang.java; +import com.intellij.codeInsight.completion.CompletionProcess; +import com.intellij.codeInsight.completion.CompletionService; import com.intellij.lang.WordCompletionElementFilter; import com.intellij.psi.JavaDocTokenType; import com.intellij.psi.JavaTokenType; @@ -30,6 +32,11 @@ public class JavaWordCompletionFilter implements WordCompletionElementFilter { JavaDocTokenType.DOC_COMMENT_DATA, JavaTokenType.STRING_LITERAL); public boolean isWordCompletionEnabledIn(final IElementType element) { + final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); + if (process != null && process.isAutopopupCompletion()) { + return false; + } + return ENABLED_TOKENS.contains(element); } } \ No newline at end of file diff --git a/platform/lang-api/src/com/intellij/lang/DefaultWordCompletionFilter.java b/platform/lang-api/src/com/intellij/lang/DefaultWordCompletionFilter.java index fb1d183ed19e..813c893c80c2 100644 --- a/platform/lang-api/src/com/intellij/lang/DefaultWordCompletionFilter.java +++ b/platform/lang-api/src/com/intellij/lang/DefaultWordCompletionFilter.java @@ -19,10 +19,17 @@ */ package com.intellij.lang; +import com.intellij.codeInsight.completion.CompletionProcess; +import com.intellij.codeInsight.completion.CompletionService; import com.intellij.psi.tree.IElementType; public class DefaultWordCompletionFilter implements WordCompletionElementFilter { public boolean isWordCompletionEnabledIn(final IElementType element) { + final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); + if (process != null && process.isAutopopupCompletion()) { + return false; + } + final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(element.getLanguage()); return parserDefinition != null && parserDefinition.getCommentTokens().contains(element); } diff --git a/plugins/properties/src/com/intellij/lang/properties/PropertiesWordCompletionFilter.java b/plugins/properties/src/com/intellij/lang/properties/PropertiesWordCompletionFilter.java index ea728f02504d..f9b71b8e5b9f 100644 --- a/plugins/properties/src/com/intellij/lang/properties/PropertiesWordCompletionFilter.java +++ b/plugins/properties/src/com/intellij/lang/properties/PropertiesWordCompletionFilter.java @@ -19,12 +19,19 @@ */ package com.intellij.lang.properties; +import com.intellij.codeInsight.completion.CompletionProcess; +import com.intellij.codeInsight.completion.CompletionService; import com.intellij.lang.DefaultWordCompletionFilter; import com.intellij.lang.properties.parsing.PropertiesElementTypes; import com.intellij.psi.tree.IElementType; public class PropertiesWordCompletionFilter extends DefaultWordCompletionFilter { public boolean isWordCompletionEnabledIn(final IElementType element) { + final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); + if (process != null && process.isAutopopupCompletion()) { + return false; + } + return super.isWordCompletionEnabledIn(element) || element == PropertiesElementTypes.PROPERTY; } } \ No newline at end of file