private static boolean retreatTokenOnBoundary(@NotNull HighlighterIterator tokenIterator, @NotNull CharSequence text, int offset) {
    if (tokenIterator.atEnd()) return false;
    if (isTokenStart(tokenIterator, offset)) {
      final IElementType rightToken = tokenIterator.getTokenType();
      final boolean wasQuotedToken = isQuotedToken(tokenIterator, text);
      tokenIterator.retreat();
      if (wasQuotedToken) return true;
      if (tokenIterator.atEnd()) return false;
      return isQuotedToken(tokenIterator, text) ||
             !isBetweenWhitespaces(text, offset) && isLexemeBoundary(tokenIterator.getTokenType(), rightToken);
    }
    return isQuotedTokenInnardsBoundary(tokenIterator, text, offset);
  }
private static boolean retreatTokenOnBoundary(@NotNull HighlighterIterator tokenIterator, @NotNull CharSequence text, int offset)