Module Ace
val create_editor : Js_of_ocaml.Dom_html.divElement Js_of_ocaml.Js.t -> 'a editorval set_mode : 'a editor -> string -> unitval set_theme : 'a editor -> string -> unitval read_range : Ace__.Ace_types.range Js_of_ocaml.Js.t -> (int * int) * (int * int)val create_range : Ace__.Ace_types.position Js_of_ocaml.Js.t -> Ace__.Ace_types.position Js_of_ocaml.Js.t -> Ace__.Ace_types.range Js_of_ocaml.Js.tval create_position : int -> int -> Ace__.Ace_types.position Js_of_ocaml.Js.tval read_position : Ace__.Ace_types.position Js_of_ocaml.Js.t -> int * intval greater_position : Ace__.Ace_types.position Js_of_ocaml.Js.t -> Ace__.Ace_types.position Js_of_ocaml.Js.t -> boolval get_contents : ?range:Ace__.Ace_types.range Js_of_ocaml.Js.t -> 'a editor -> stringval get_line : 'a editor -> int -> stringval set_contents : 'a editor -> string -> unitval get_selection_range : 'a editor -> Ace__.Ace_types.range Js_of_ocaml.Js.tval get_selection : 'a editor -> string
val set_mark : 'a editor -> ?loc:loc -> ?type_:mark_type -> string -> unitval clear_marks : 'a editor -> unitval record_event_handler : 'a editor -> string -> (unit -> unit) -> unitval set_background_color : 'a editor -> string -> unitval add_class : 'a editor -> string -> unitval remove_class : 'a editor -> string -> unitval focus : 'a editor -> unitval resize : 'a editor -> bool -> unitval require : string -> unitval show_keybindings : 'a editor -> unitval add_keybinding : 'a editor -> ?ro:bool -> ?scrollIntoView:string -> ?multiSelectAction:string -> string -> string -> ('a editor -> unit) -> unitval set_font_size : 'a editor -> int -> unitval set_tab_size : 'a editor -> int -> unitval get_state : 'a editor -> int -> < .. > Js_of_ocaml.Js.tval get_last : 'a editor -> Ace__.Ace_types.position Js_of_ocaml.Js.t
val document : 'a editor -> docval replace : doc -> Ace__.Ace_types.range Js_of_ocaml.Js.t -> string -> unitval delete : doc -> Ace__.Ace_types.range Js_of_ocaml.Js.t -> unitval remove : 'a editor -> unitval get_custom_data : 'a editor -> 'aval set_custom_data : 'a editor -> 'a -> unit
val token : type_:string -> string -> token
type 'state helpers={initial_state : unit -> 'state;get_next_line_indent : 'state -> line:string -> tab:string -> string;get_line_tokens : string -> 'state -> int -> doc -> 'state * token list;check_outdent : ('state -> string -> string -> bool) option;auto_outdent : ('state -> Ace__.Ace_types.document Js_of_ocaml.Js.t -> int -> unit) option;}
val define_mode : string -> 'state helpers -> unit