@Override
  public boolean intersectsRange(TextRange rangeInFile) {
    int start = findPsiTokenIndex(rangeInFile.getStartOffset());
    if (start < 0) start = -start - 1;
    for (int i = start; i < tokens.size(); i++) {
      TokenInfo token = tokens.get(i);
      if (!(token instanceof PsiToken)) continue;

      TextRange tokenRange = ((PsiToken) token).rangeInFile;
      if (tokenRange.intersectsStrict(rangeInFile)) return true;
      if (tokenRange.getStartOffset() >= rangeInFile.getEndOffset()) break;
    }
    return false;
  }
@Override
  public boolean intersectsRange(TextRange rangeInFile)