getLineAtOffset method

int getLineAtOffset(
  1. int charOffset
)

Gets the line number (zero-based) for a character offset.

charOffset is the character position in the document. Returns the line index containing that character.

Implementation

int getLineAtOffset(int charOffset) {
  if (_bufferLineIndex != null && _bufferDirty) {
    final bufferStart = _bufferLineRopeStart;
    final bufferEnd = bufferStart + _bufferLineText!.length;
    if (charOffset >= bufferStart && charOffset <= bufferEnd) {
      return _bufferLineIndex!;
    } else if (charOffset > bufferEnd) {
      final delta = _bufferLineText!.length - _bufferLineOriginalLength;
      return _rope.getLineAtOffset(charOffset - delta);
    }
  }
  return _rope.getLineAtOffset(charOffset);
}