getFragmentIndexForTextIndex method

int getFragmentIndexForTextIndex(
  1. int textIndex
)

Find text fragment index for the specified text index.

If the specified text index is out of range, it returns -1.

Implementation

int getFragmentIndexForTextIndex(int textIndex) {
  final index = fragments.lowerBound(
      _PdfPageTextFragmentForSearch(textIndex), (a, b) => a.index - b.index);
  if (index > fragments.length) {
    return -1; // range error
  }
  if (index == fragments.length) {
    final f = fragments.last;
    if (textIndex >= f.index + f.length) {
      return -1; // range error
    }
    return index - 1;
  }

  final f = fragments[index];
  if (textIndex < f.index) {
    return index - 1;
  }
  return index;
}