Library
Module
Module type
Parameter
Class
Class type
Unicode ropes
type rope = t
Alias.
Exception raised when trying to access a character which is outside the bounds of a rope.
val empty : unit -> rope
The empty rope.
val make : int -> Zed_char.t -> rope
make length char
creates a rope of length length
containing only char
.
val singleton : Zed_char.t -> rope
singleton ch
creates a rope of length 1 containing only ch
.
val length : rope -> int
Returns the length of the given rope.
val size : rope -> int
Returns the size of the given rope.
val is_empty : rope -> bool
is_empty rope
returns whether str
is the empty rope or not.
val get : rope -> int -> Zed_char.t
get rope idx
returns the glyph at index idx
in rope
.
get_raw rope idx
returns the character at raw index idx
in rope
.
concat sep l
concatenates all strings of l
separating them by sep
.
sub rope ofs len
Returns the sub-rope of rope
starting at ofs
and of length len
.
break rope pos
returns the sub-ropes before and after pos
in rope
. It is more efficient than creating two sub-ropes with sub
.
insert rope pos char
inserts char
in rope
at position pos
. If char
is a combing mark, it's merged to the character at position pos-1
remove rope pos len
removes the len
characters at position pos
in rope
replace rope pos len repl
replaces the len
characters at position pos
in rope
by repl
.
lchop rope
returns rope
without is first character. Returns empty
if rope
is empty.
rchop rope
returns rope
without is last character. Returns empty
if rope
is empty.
val iter : (Zed_char.t -> unit) -> rope -> unit
iter f rope
applies f
on all characters of rope
starting from the left.
val rev_iter : (Zed_char.t -> unit) -> rope -> unit
rev_iter f rope
applies f
an all characters of rope
starting from the right.
val fold : (Zed_char.t -> 'a -> 'a) -> rope -> 'a -> 'a
fold f rope acc
applies f
on all characters of rope
starting from the left, accumulating a value.
val rev_fold : (Zed_char.t -> 'a -> 'a) -> rope -> 'a -> 'a
rev_fold f rope acc
applies f
on all characters of rope
starting from the right, accumulating a value.
val map : (Zed_char.t -> Zed_char.t) -> rope -> rope
map f rope
maps all characters of rope
with f
.
val rev_map : (Zed_char.t -> Zed_char.t) -> rope -> rope
rev_map f str
maps all characters of rope
with f
in reverse order.
Note: for all of the following functions, the leaves must absolutely not be modified.
val iter_leaf : (Zed_string.t -> unit) -> rope -> unit
iter_leaf f rope
applies f
on all leaves of rope
starting from the left.
val rev_iter_leaf : (Zed_string.t -> unit) -> rope -> unit
iter_leaf f rope
applies f
on all leaves of rope
starting from the right.
val fold_leaf : (Zed_string.t -> 'a -> 'a) -> rope -> 'a -> 'a
fold f rope acc
applies f
on all leaves of rope
starting from the left, accumulating a value.
val rev_fold_leaf : (Zed_string.t -> 'a -> 'a) -> rope -> 'a -> 'a
rev_fold f rope acc
applies f
on all leaves of rope
starting from the right, accumulating a value.
module Zip : sig ... end
module Zip_raw : sig ... end
module String_buffer = Buffer
module Buffer : sig ... end
val init : int -> (int -> Zed_char.t) -> rope
val of_string : Zed_string.t -> rope
val to_string : rope -> Zed_string.t