package zed

  1. Overview
  2. Docs
type t

Type of zippers. A zipper allow to naviguate in a rope in a convenient and efficient manner. Note that a zipper points to a position between two characters, not to a character, so in a rope of length len there is len + 1 positions.

val make_f : rope -> int -> t

make_f rope pos creates a new zipper pointing to raw positon pos of rope.

val make_b : rope -> int -> t

make_b rope pos creates a new zipper pointing to raw positon length rope - pos of rope.

val offset : t -> int

Returns the raw position of the zipper in the rope.

val next : t -> Uchar.t * t

next zipper returns the code point at the right of the zipper and a zipper to the next raw position. It raises Out_of_bounds if the zipper points to the end of the rope.

val prev : t -> Uchar.t * t

prev zipper returns the code point at the left of the zipper and a zipper to the previous raw position. It raises Out_of_bounds if the zipper points to the beginning of the rope.

val move : int -> t -> t

move n zip moves the zipper by n characters. If n is negative it is moved to the left and if it is positive it is moved to the right. It raises Out_of_bounds if the result is outside the bounds of the rope.

val at_bos : t -> bool

at_bos zipper returns true if zipper points to the beginning of the rope.

val at_eos : t -> bool

at_eos zipper returns true if zipper points to the end of the rope.

val find_f : (Uchar.t -> bool) -> t -> t

find_f f zip search forward for a character to satisfy f. It returns a zipper pointing to the left of the first character to satisfy f, or a zipper pointing to the end of the rope if no such character exists.

val find_b : (Uchar.t -> bool) -> t -> t

find_b f zip search backward for a character to satisfy f. It returns a zipper pointing to the right of the first character to satisfy f, or a zipper pointing to the beginning of the rope if no such character exists.