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 62ab59914363..448e597b5c3c 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 @@ -37,7 +37,6 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.codeInspection.utils.ControlFlowUtils; -import org.jetbrains.plugins.groovy.lang.groovydoc.lexer.GroovyDocTokenTypes; import org.jetbrains.plugins.groovy.lang.groovydoc.psi.api.GrDocInlinedTag; import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes; import org.jetbrains.plugins.groovy.lang.lexer.TokenSets; @@ -70,7 +69,6 @@ import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil; import static org.jetbrains.plugins.groovy.lang.groovydoc.lexer.GroovyDocTokenTypes.mGDOC_TAG_NAME; import static org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes.*; -import static org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes.kAS; /** * @author ilyas @@ -226,7 +224,7 @@ public class GroovyCompletionData { private static void addTypeDefinitionKeywords(CompletionResultSet result, PsiElement position) { if (suggestClassInterfaceEnum(position)) { - addKeywords(result, true, PsiKeyword.CLASS, PsiKeyword.INTERFACE, PsiKeyword.ENUM); + addKeywords(result, true, PsiKeyword.CLASS, PsiKeyword.INTERFACE, PsiKeyword.ENUM, kTRAIT.toString()); } } @@ -252,8 +250,8 @@ public class GroovyCompletionData { } } - ext &= elem instanceof GrInterfaceDefinition || elem instanceof GrClassDefinition; - impl &= elem instanceof GrEnumTypeDefinition || elem instanceof GrClassDefinition; + ext &= elem instanceof GrInterfaceDefinition || elem instanceof GrClassDefinition || elem instanceof GrTraitTypeDefinition; + impl &= elem instanceof GrEnumTypeDefinition || elem instanceof GrClassDefinition || elem instanceof GrTraitTypeDefinition; if (!ext && !impl) return ArrayUtil.EMPTY_STRING_ARRAY; PsiElement[] children = elem.getChildren(); @@ -454,7 +452,7 @@ public class GroovyCompletionData { private static boolean afterAtInType(PsiElement context) { PsiElement previous = PsiImplUtil.realPrevious(PsiTreeUtil.prevLeaf(context)); if (previous != null && - GroovyTokenTypes.mAT.equals(previous.getNode().getElementType()) && + mAT.equals(previous.getNode().getElementType()) && (context.getParent() != null && context.getParent().getParent() instanceof GroovyFile || context.getParent() instanceof GrCodeReferenceElement && context.getParent().getParent() instanceof GrAnnotation)) { return true; diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnno2.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnno2.test index c1869f2b192c..5dda6a733de1 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnno2.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnno2.test @@ -19,6 +19,7 @@ short static strictfp synchronized +trait transient void volatile diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnnotation.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnnotation.test index 213071dee374..bba383e6778f 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnnotation.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/classAfterAnnotation.test @@ -22,6 +22,7 @@ short static strictfp synchronized +trait transient void volatile \ No newline at end of file diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/defaultInAnnotation.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/defaultInAnnotation.test index 04f58b30aa0f..4ffdb14cf200 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/defaultInAnnotation.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/defaultInAnnotation.test @@ -6,4 +6,5 @@ class default enum -interface \ No newline at end of file +interface +trait diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/fin2.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/fin2.test index f1796f0ff326..8174b2743a74 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/fin2.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/fin2.test @@ -37,6 +37,7 @@ switch synchronized this throw +trait transient true try diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/mod4.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/mod4.test index 4a1a02231a92..fb9f8c1107bc 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/mod4.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/mod4.test @@ -34,6 +34,7 @@ switch synchronized this throw +trait transient true try diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/primitiveTypes.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/primitiveTypes.test index 7b24b36202ad..2e85ca3d2c3f 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/primitiveTypes.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/primitiveTypes.test @@ -26,6 +26,7 @@ static strictfp synchronized throws +trait transient void volatile \ No newline at end of file diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var1.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var1.test index c481d5da2143..c466e427045b 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var1.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var1.test @@ -43,6 +43,7 @@ switch synchronized this throw +trait transient true try diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var13.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var13.test index 72f1e3bece98..dbb6c6ab30a3 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var13.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var13.test @@ -32,6 +32,7 @@ short static strictfp synchronized +trait transient void volatile \ No newline at end of file diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var2.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var2.test index d4ea980fdbf2..9c7d4d22621e 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var2.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var2.test @@ -44,6 +44,7 @@ switch synchronized this throw +trait transient true try diff --git a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var6.test b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var6.test index 923580443c31..bbf20b22da44 100644 --- a/plugins/groovy/testdata/groovy/oldCompletion/keyword/var6.test +++ b/plugins/groovy/testdata/groovy/oldCompletion/keyword/var6.test @@ -31,6 +31,7 @@ short static strictfp synchronized +trait transient void volatile \ No newline at end of file