Module Emacs_editor

type undo =
  1. | Inserted of int * int
  2. | Deleted of int * string
  3. | Boundary
type buffer = {
  1. name : string;
  2. text : Gap_buffer.t;
  3. point : int;
  4. mark : int option;
  5. file : string option;
  6. modified : bool;
  7. undo : undo list;
  8. undoing : undo list option;
  9. top : int;
  10. mode : string;
}
type request =
  1. | Call_interactively of Lisp.t
  2. | Isearch of bool
  3. | Universal_argument
type t = {
  1. buffers : buffer list;
  2. disk : (string * string) list;
  3. kill_ring : string list;
  4. message : string;
  5. quit : bool;
  6. request : request option;
}
type lisp = t Lisp_eval.state
val window_height : int
val current : t -> buffer
val set_current : buffer -> t -> t
val make_buffer : ?file:string -> string -> string -> buffer
val create : disk:(string * string) list -> simple:string -> lisp
val insert_at : buffer -> int -> string -> buffer
val delete_range : buffer -> int -> int -> buffer
val boundary : t -> t
val line_of : buffer -> int -> int
val line_start : buffer -> int -> int
val key_description : string -> string