textDeleteLinesDocument function

TextCommandResult textDeleteLinesDocument({
  1. required TextDocument document,
  2. required TextLineStateSnapshot state,
})

Implementation

TextCommandResult textDeleteLinesDocument({
  required TextDocument document,
  required TextLineStateSnapshot state,
}) {
  final clampedState = _clampLineStateSnapshotToDocument(state, document);
  final span = _selectedLineSpan(clampedState);
  final startLine = span.endLine < document.lineCount - 1
      ? span.startLine
      : math.max(0, span.startLine - 1);
  final endLine = span.endLine < document.lineCount - 1
      ? span.endLine + 2
      : document.lineCount;
  return _documentResultFromWindowedLineCommand(
    document: document,
    state: clampedState,
    startLine: startLine,
    endLine: endLine,
    apply: (lines, localState) =>
        textDeleteLines(lines: lines, state: localState),
  );
}