UI module

move_caret

procedureextensionexperimentalsince 0.31.0Source

Put the caret at offset (clamped), selecting from the old anchor when extend is set.

Example↗
edit: Text_Edit;
defer free_text_edit(*edit);
set_contents(*edit, "abc");
move_caret(*edit, 100);  // clamped
assert(edit.cursor == 3);
move_caret :: (edit: *Text_Edit, offset: int, extend: bool = false)

Put the caret at offset (clamped), selecting from the old anchor when extend is set.

Parameters

edit: *Text_Edit
the text being edited.
offset: int
the new byte offset.
extend: bool = false
keep the anchor, so the selection grows or shrinks.
Example↗
edit: Text_Edit;
defer free_text_edit(*edit);
set_contents(*edit, "abc");
move_caret(*edit, 100);  // clamped
assert(edit.cursor == 3);

See also