Module Lwt_read_line.Control

module Control: sig .. end
Controlling a running read-line instance

type 'a t 
Type of a running read-line instance, returning a value of type 'a

Control

val result : 'a t -> 'a Lwt.t
Threads waiting for the read-line instance to terminates
val send_command : 'a t -> Lwt_read_line.Command.t -> unit
send_command instance command sends the given command to the read-line instance
val accept : 'a t -> unit
accept instance = send_command instance Command.Accept_line
val interrupt : 'a t -> unit
accept instance = send_command instance Command.Break
val hide : 'a t -> unit Lwt.t
Hides everything (prompt, user input, completion box) until Lwt_read_line.Control.show is called.
val show : 'a t -> unit Lwt.t
Un-hide everything

Note: in case the input is not a terminal, read-line instances are not controllable. i.e. Lwt_read_line.Control.accept, refresh, ... have no effect.

Creation of read-line instances

type prompt = Lwt_read_line.Engine.state React.signal -> Lwt_term.styled_text React.signal 
The prompt a signal which may depends on the engine state
type state 
State of an instance
val engine_state : state -> Lwt_read_line.Engine.state
Return the engine state of the given state
val render_state : state -> Lwt_read_line.Terminal.state
Return the rendering state of the given state
val make : ?history:Lwt_read_line.history ->
?complete:Lwt_read_line.completion ->
?clipboard:Lwt_read_line.clipboard ->
?mode:[ `classic | `none | `real_time ] ->
?map_text:(Text.t -> Text.t) ->
?filter:(state ->
Lwt_read_line.Command.t -> Lwt_read_line.Command.t Lwt.t) ->
map_result:(Text.t -> 'a Lwt.t) ->
?prompt:prompt -> unit -> 'a t
Creates a new read-line instance with the given parameters. filter is called to handle commands. You can return Command.Nop to drop a command.

Predefined instances

val read_line : ?history:Lwt_read_line.history ->
?complete:Lwt_read_line.completion ->
?clipboard:Lwt_read_line.clipboard ->
?mode:Lwt_read_line.completion_mode ->
?prompt:prompt ->
unit -> Text.t t Lwt.t
val read_password : ?clipboard:Lwt_read_line.clipboard ->
?style:Lwt_read_line.password_style ->
?prompt:prompt ->
unit -> Text.t t Lwt.t
val read_keyword : ?history:Lwt_read_line.history ->
?case_sensitive:bool ->
?mode:Lwt_read_line.completion_mode ->
?prompt:prompt ->
values:(Text.t * 'value) list -> unit -> 'value t Lwt.t
val read_yes_no : ?history:Lwt_read_line.history ->
?mode:Lwt_read_line.completion_mode ->
?prompt:prompt ->
unit -> bool t Lwt.t