Module Interpret.Resolver
type t
= config -> status -> keyseq -> result
and config
= Mew_vi__Interpret.Make(Concurrent).Resolver.config
=
{
mode : Mode.Name.t React.signal;
set_mode : ?step:React.step -> 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
= Mew_vi__Interpret.Make(Concurrent).Resolver.status
=
{
register : register;
count : count;
}
and result
= Mew_vi__Interpret.Make(Concurrent).Resolver.result
=
|
Accept of Edit_action.t * keyseq * Mode.Name.t
|
Continue of t * status * keyseq
|
Rejected of keyseq
val resolver_dummy : 'a -> 'b -> keyseq -> result
val resolver_insert : 'a -> 'b -> Key.t list -> result
module Common : sig ... end
module Normal : sig ... end
module Visual : sig ... end
val make_config : ?mode: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 -> Modal.Key.t MsgBox.t -> Edit_action.t MsgBox.t -> unit -> 'a Thread.t