moveCursorByVisualLine function

TextCursorCommandResult moveCursorByVisualLine(
  1. TextDocument document,
  2. EditorState state,
  3. TextView view, {
  4. required int cursorOffset,
  5. int? selectionBaseOffset,
  6. int? selectionExtentOffset,
  7. required int lineDelta,
  8. int desiredDisplayColumn = -1,
  9. bool extendSelection = false,
  10. bool clearSelection = true,
  11. bool preserveCollapsedSelection = false,
})

Implementation

TextCursorCommandResult moveCursorByVisualLine(
  TextDocument document,
  EditorState state,
  TextView view, {
  required int cursorOffset,
  int? selectionBaseOffset,
  int? selectionExtentOffset,
  required int lineDelta,
  int desiredDisplayColumn = -1,
  bool extendSelection = false,
  bool clearSelection = true,
  bool preserveCollapsedSelection = false,
}) {
  final cursor = document.positionForOffset(
    cursorOffset.clamp(0, document.length),
  );
  final targetOffset = view.cursorOffsetForVisualLineMove(
    document,
    state,
    lineDelta: lineDelta,
    desiredDisplayColumn: desiredDisplayColumn,
    cursor: cursor,
  );

  return moveCursorToOffset(
    textLength: document.length,
    cursorOffset: cursorOffset,
    selectionBaseOffset: selectionBaseOffset,
    selectionExtentOffset: selectionExtentOffset,
    targetOffset: targetOffset,
    extendSelection: extendSelection,
    clearSelection: clearSelection,
    preserveCollapsedSelection: preserveCollapsedSelection,
  );
}