getLineAtOffset method
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);
}