sig
  type expand_context = {
    buffer : string;
    mutable pos : int;
    searched_rex : Pcre.regexp;
    searched_pattern : string;
    mutable prev_prop : string * int;
    mutable prev_inserted : string option;
    mutable already_proposed : string list;
  }
  val context : Ed_sourceview_expand.expand_context option Pervasives.ref
  val create_context :
    string ->
    int -> string -> Pcre.regexp -> Ed_sourceview_expand.expand_context
  val search_in_buffer :
    bool ->
    Ed_sourceview.my_buffer ->
    GText.iter -> GText.iter -> Pcre.regexp -> int * string
  val get_next_proposition_in_buffer :
    Ed_sourceview_expand.expand_context -> string -> int * string
  val get_next_buffer_in_history : string -> string option
  val get_next_proposition :
    Ed_sourceview_expand.expand_context -> (bool * string) option
  val get_pattern :
    Ed_sourceview.sourceview -> GText.iter -> string * Pcre.regexp
  val expand : Ed_sourceview.sourceview -> string array -> unit
end