private int findPsiTokenIndex(int fileOffset) {
    return ObjectUtils.binarySearch(0, tokens.size(), mid -> {
      int psiTokenIndex = mid;
      while (!(tokens.get(psiTokenIndex) instanceof PsiToken)) psiTokenIndex--;
      var tokenRange = ((PsiToken) tokens.get(psiTokenIndex)).rangeInFile;
      if (tokenRange.containsOffset(fileOffset)) return mid == psiTokenIndex ? 0 : 1;
      return tokenRange.getEndOffset() < fileOffset ? -1 : 1;
    });
  }
private int findPsiTokenIndex(int fileOffset)