textDeleteToLineEnd function
TextCommandResult
textDeleteToLineEnd({
- required TextDocument document,
- required TextOffsetStateSnapshot state,
Implementation
TextCommandResult textDeleteToLineEnd({
required TextDocument document,
required TextOffsetStateSnapshot state,
}) {
final cursor = document.positionForOffset(state.cursorOffset);
final start = state.cursorOffset.clamp(0, document.length);
final end = document.offsetForPosition(
TextPosition(line: cursor.line, column: document.lineLength(cursor.line)),
);
if (start >= end) {
return _unchangedDocumentCommandResult(document, state);
}
final working = document.copy();
final result = edit_ops.removeDocumentRange(
working,
start: start,
end: end,
cursorOffset: start,
);
return _documentCommandResult(
working,
cursorOffset: result.cursorOffset,
documentChange: result.change,
changed: result.changed,
);
}