}
});
}
private static Collection<String> suggestKeywords(PsiElement position) {
final TextRange posRange = position.getTextRange();
final HaxeFile posFile = (HaxeFile)position.getContainingFile();
final List<PsiElement> pathToBlockStatement = UsefulPsiTreeUtil.getPathToParentOfType(position, HaxeBlockStatement.class);
final HaxePsiCompositeElement classInterfaceEnum =
PsiTreeUtil.getParentOfType(position, HaxeClassBody.class, HaxeInterfaceBody.class, HaxeEnumBody.class);
final String text;
final int offset;
if (pathToBlockStatement != null) {
final Pair<String, Integer> pair = HaxeCodeGenerateUtil.wrapStatement(posRange.substring(posFile.getText()));
text = pair.getFirst();
offset = pair.getSecond();
}
else if (classInterfaceEnum != null) {
final Pair<String, Integer> pair = HaxeCodeGenerateUtil.wrapFunction(posRange.substring(posFile.getText()));
text = pair.getFirst();
offset = pair.getSecond();
}
else {
text = posFile.getText().substring(0, posRange.getStartOffset());
offset = 0;
}
final List<String> result = new ArrayList<String>();
if (pathToBlockStatement != null && pathToBlockStatement.size() > 1) {