Module Make.Resolver
type t
= config -> status -> keyseq -> result
and config
=
{
mode : Mew_vi.Mode.Name.t React.signal;
set_mode : ?step:React.step -> Mew_vi.Mode.Name.t -> unit;
keyseq : keyseq React.signal;
set_keyseq : ?step:React.step -> keyseq -> unit;
mutable resolver_insert : t;
mutable resolver_normal : t;
mutable resolver_visual : t;
mutable resolver_command : t;
}
and status
=
{
register : register;
count : count;
}
and result
=
|
Accept of Mew_vi.Edit_action.t * keyseq * Mew_vi.Mode.Name.t
|
Continue of t * status * keyseq
|
Rejected of keyseq
val resolver_dummy : 'a -> 'b -> keyseq -> result
val resolver_insert : 'a -> 'b -> Mew_vi.Key.t list -> result
module Common : sig ... end
module Normal : sig ... end
module Visual : sig ... end
val make_config : ?mode:Mew_vi.Mode.Name.t -> ?keyseq:keyseq -> ?resolver_insert:t -> ?resolver_normal:t -> ?resolver_visual:t -> ?resolver_command:t -> unit -> config
val interpret : ?resolver:t -> ?keyseq:keyseq -> config -> status -> Mew_vi.Modal.Key.t MsgBox.t -> Mew_vi.Edit_action.t MsgBox.t -> unit -> 'a Thread.t