boolean (PsiElement context) { if (GroovyCompletionUtil.asSimpleVariable(context) || GroovyCompletionUtil.asTypedMethod(context) || GroovyCompletionUtil.isNewStatementInScript(context)) { return true; } if (GroovyCompletionUtil.isFirstElementAfterPossibleModifiersInVariableDeclaration(context, false) && !PsiJavaPatterns.psiElement().afterLeaf("def").accepts(context)) { return true; } if (PsiJavaPatterns.psiElement().afterLeaf(MODIFIERS).accepts(context) || PsiJavaPatterns.psiElement().afterLeaf("synchronized").accepts(context)) { return true; } final PsiElement contextParent = context.getParent(); if (contextParent instanceof GrReferenceElement && contextParent.getParent() instanceof GrTypeElement) { PsiElement parent = contextParent.getParent().getParent(); if (parent instanceof GrVariableDeclaration && (parent.getParent() instanceof GrTypeDefinitionBody || parent.getParent() instanceof GroovyFile) || parent instanceof GrMethod) { return true; } } if (contextParent instanceof GrField) { final GrVariable variable = (GrVariable)contextParent; if (variable.getTypeElementGroovy() == null) { return true; } } if (contextParent instanceof GrExpression && contextParent.getParent() instanceof GroovyFile && GroovyCompletionUtil.isNewStatement(context, false)) { return true; } if (context.getTextRange().getStartOffset() == 0 && !(context instanceof OuterLanguageElement)) { return true; } return contextParent instanceof GrExpression && contextParent.getParent() instanceof GrApplicationStatement && contextParent.getParent().getParent() instanceof GroovyFile && GroovyCompletionUtil.isNewStatement(context, false); }