public static boolean isAfterClassLikeIdentifierOrDot(final int offset,
                                                        @NotNull final Editor editor,
                                                        @NotNull final IElementType dot,
                                                        @NotNull final IElementType identifier,
                                                        boolean allowAfterDot) {
    HighlighterIterator iterator = editor.getHighlighter().createIterator(offset);
    if (iterator.atEnd()) return false;
    if (offset != iterator.getEnd() && iterator.getStart() > 0) iterator.retreat();
    final IElementType tokenType = iterator.getTokenType();
    if (allowAfterDot && tokenType == dot) return true;
    return isClassLikeIdentifier(offset, editor, iterator, identifier);
  }
public static boolean isAfterClassLikeIdentifierOrDot(final int offset,
                                                        @NotNull final Editor editor,
                                                        @NotNull final IElementType dot,
                                                        @NotNull final IElementType identifier,
                                                        boolean allowAfterDot)