Module Lwt_read_line.Terminal
module Terminal : sig..end
Rendering to the terminal
type state
State of rendering
val init : state
Initial state
The following functions are the one used by read-line functions of this module.
type box = | Box_none(* No box at all *) | Box_empty(* An empty box *) | Box_words of Lwt_read_line.text_set * int(* BM_words(words, position) is a box with the given list of words. position is the position of the selected word in the list.. *) | Box_message of string(* A box containing only the given message *)
Box for the completion:
val draw :
columns:int ->
?map_text:(Text.t -> Text.t) ->
?box:box ->
render_state:state ->
engine_state:Lwt_read_line.Engine.state ->
prompt:Lwt_read_line.prompt ->
unit -> Lwt_term.styled_text * state
draw ~column ?map_text ?bar ~render_state ~engine_state prompt () returns (text, state) where state is the new rendering state, and text is a text containing escape sequences. When printed, it will update the displayed state.
map_text : is a function used to map user input before printing it, for example to hide passwords.
box : defaults to Box_none.
val last_draw :
columns:int ->
?map_text:(Text.t -> Text.t) ->
render_state:state ->
engine_state:Lwt_read_line.Engine.state ->
prompt:Lwt_read_line.prompt -> unit -> Lwt_term.styled_text
Draw for the last time, i.e. the cursor is left after the text and not at current position.
val erase :
columns:int ->
render_state:state ->
unit -> Lwt_term.styled_text
erase ~columns ~render_state () returns a text which will erase everything (the prompt, user input, completion, ...).
After an erase, the rendering state is init.