UI module

move_by

procedureextensionexperimentalsince 0.31.0Source

Move the caret one unit left or right.

Example↗
edit: Text_Edit;
defer free_text_edit(*edit);
set_contents(*edit, "one two");
move_by(*edit, .WORD, 1);
assert(edit.cursor == 3);
move_by(*edit, .DOCUMENT, 1, extend = true);
assert(selected_text(*edit) == " two");
move_by :: (edit: *Text_Edit, unit: Unit, direction: int, extend: bool = false)

Move the caret one unit left or right.

Parameters

edit: *Text_Edit
the text being edited.
unit: Unit
how far to go.
direction: int
-1 for left, 1 for right.
extend: bool = false
keep the anchor, so the selection grows or shrinks.
Example↗
edit: Text_Edit;
defer free_text_edit(*edit);
set_contents(*edit, "one two");
move_by(*edit, .WORD, 1);
assert(edit.cursor == 3);
move_by(*edit, .DOCUMENT, 1, extend = true);
assert(selected_text(*edit) == " two");

See also