Module Zed_cursor
type t
Type of a cursor.
exception Out_of_bounds
Exception raised when trying to move a cursor outside the bounds
of the text it points to.
val create : int -> (int * int * int) React.event -> unit -> Zed_lines.t -> int -> int -> t
create length changes get_lines position wanted_column creates
a new cursor pointing to position position.length is the current length of the text the cursor points
to. It raises Out_of_bounds if position is greater than
length.changes is an event which occurs with values of the form
(start, added, removed) when the text changes, with the same
semantic as Zed_edit.changes.get_lines is used to retreive the current set of line
positions of the text. It is used to compute the line and column
of the cursor.wanted_column is the column on which the cursor want to be, if
there is enough room on the line.
val copy : t -> t
copy cursor creates a copy of the given cursor. The new cursor
initially points to the same location as cursor.
val position : t -> int React.signal
position cursor returns the signal holding the current
position of the given cursor.
val get_position : t -> int
get_position cursor returns the current position of
cursor.
val line : t -> int React.signal
line cursor returns the signal holding the current line on
which the cursor is.
val get_line : t -> int
get_line cursor returns the current line of the cursor.
val column : t -> int React.signal
column cursor returns the signal holding the current column of
the cursor.
val get_column : t -> int
get_column cursor returns the current column of the cursor.
val wanted_column : t -> int React.signal
wanted_column cursor returns the signal holding the column on
which the cursor wants to be.
val get_wanted_column : t -> int
get_wanted_column cursor returns the column on which the
cursor wants to be.
val set_wanted_column : t -> int -> unit
set_wanted_column cursor sets the column on which the cursor
want to be.
val goto : t -> ?set_wanted_column:bool -> int -> unit
goto cursor position moves the given cursor to the given
position. It raises Out_of_bounds if position is outside
the bounds of the text. If set_wanted_column is true (the
default), then the wanted column will be set to the column of
the cursor at given position.
val move : t -> ?set_wanted_column:bool -> int -> unit
move cursor delta moves the given cursor by the given number
of characters. It raises Out_of_bounds if the result is
outside the bounds of the text.