From 4c8d93e84150010f80244bda5f345b4cc4b63f5f Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 28 Aug 2012 11:38:16 +0200 Subject: [PATCH] allow to type 'for ' in groovy code without unexpected parentheses --- .../codeInsight/completion/JavaCompletionData.java | 2 +- .../groovy/lang/completion/GroovyCompletionData.java | 3 ++- .../plugins/groovy/completion/GroovyCompletionTest.groovy | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java index 8ea7b391b37c..dbaee51bae7a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java @@ -709,7 +709,7 @@ public class JavaCompletionData extends JavaAwareCompletionData { return false; } - protected static class OverrideableSpace extends TailTypeDecorator { + public static class OverrideableSpace extends TailTypeDecorator { private final TailType myTail; public OverrideableSpace(LookupElement keyword, TailType tail) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionData.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionData.java index 04c217cf6515..5b03d15b232f 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionData.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionData.java @@ -21,6 +21,7 @@ import com.intellij.codeInsight.TailType; import com.intellij.codeInsight.TailTypes; import com.intellij.codeInsight.completion.CompletionParameters; import com.intellij.codeInsight.completion.CompletionResultSet; +import com.intellij.codeInsight.completion.JavaCompletionData; import com.intellij.codeInsight.completion.ModifierChooser; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementBuilder; @@ -226,7 +227,7 @@ public class GroovyCompletionData { private static LookupElement keyword(final String keyword, @NotNull TailType tail) { LookupElementBuilder element = LookupElementBuilder.create(keyword).bold(); - return tail != TailType.NONE ? TailTypeDecorator.withTail(element, tail) : element; + return tail != TailType.NONE ? new JavaCompletionData.OverrideableSpace(element, tail) : element; } private static void registerControlCompletion(PsiElement context, CompletionResultSet result) { diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy index 60e26d908003..4aecd0291632 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/completion/GroovyCompletionTest.groovy @@ -1266,6 +1266,13 @@ def foo(Integer a) { ''') } + public void testForSpace() { + configure('f') + myFixture.completeBasic() + myFixture.type 'or ' + myFixture.checkResult "for " + } + void testInferArgumentTypeFromMethod3() { doBasicTest('''\ def bar(String s) {}