pointAtByte method

  1. @override
TreeSitterPoint pointAtByte(
  1. int byteOffset
)
override

Implementation

@override
TreeSitterPoint pointAtByte(int byteOffset) {
  RangeError.checkValueInInterval(byteOffset, 0, _byteLength, 'byteOffset');
  var low = 0;
  var high = _lineStarts.length;
  while (low < high) {
    final middle = low + ((high - low) >> 1);
    if (_lineStarts[middle] <= byteOffset) {
      low = middle + 1;
    } else {
      high = middle;
    }
  }
  final row = low - 1;
  return TreeSitterPoint(row, byteOffset - _lineStarts[row]);
}