CodeCompletionFilterSettings filterSettings = context.getCodeCompletionFilterSettings();
Map<String, LeafElementType> nextPossibleLeafs = new THashMap<String, LeafElementType>();
DBObject parentObject = null;
if (element.getParent() instanceof QualifiedIdentifierPsiElement) {
QualifiedIdentifierPsiElement qualifiedIdentifier = (QualifiedIdentifierPsiElement) element.getParent();
ElementType separator = qualifiedIdentifier.getElementType().getSeparatorToken();
if (element.getElementType() == separator){
BasePsiElement parentPsiElement = element.getPrevElement();
if (parentPsiElement != null && parentPsiElement instanceof IdentifierPsiElement) {
IdentifierPsiElement identifierPsiElement = (IdentifierPsiElement) parentPsiElement;
parentObject = identifierPsiElement.resolveUnderlyingObject();
if (parentObject != null) {
for (QualifiedIdentifierVariant parseVariant : qualifiedIdentifier.getParseVariants()){
boolean match = parseVariant.matchesPsiElement(qualifiedIdentifier);
if (match) {
int index = qualifiedIdentifier.getIndexOf(identifierPsiElement);
LeafElementType leafElementType = parseVariant.getLeaf(index + 1);
if (leafElementType != null) {
nextPossibleLeafs.put(getLeafUniqueKey(leafElementType), leafElementType);
}
}