# Module LTerm_read_line

    module LTerm_read_line: sig .. end

Interactive line input

For a complete example of usage of this module, look at the shell example (examples/shell.ml) distributed with Lambda-Term.

    exception Interrupt

Exception raised when the user presses `Ctrl^D` with an empty input.

    type prompt = LTerm_text.t

Type of prompts.

    type history = Zed_utf8.t list

Type of histories. It is a list of entries from the most recent to the oldest.

###### Completion

    val common_prefix : string list -> string

Returns the common prefix of a list of words.

    val lookup : Zed_utf8.t -> Zed_utf8.t list -> Zed_utf8.t list

`lookup word words` lookup for completion of `word` into `words`. It returns all words starting with `word`.

    val lookup_assoc : Zed_utf8.t -> (Zed_utf8.t * 'a) list -> (Zed_utf8.t * 'a) list

`lookup_assoc word words` does the same as `LTerm_read_line.lookup` but works on associative list.

###### Actions

    type action =

`|` | `Edit of `LTerm_edit.action`` | `(*` | An edition action. | `*)`
`|` | `Interrupt_or_delete_next_char` | `(*` | Interrupt if at the beginning of an empty line, or delete the next character. | `*)`
`|` | `Complete` | `(*` | Complete current input. | `*)`
`|` | `Complete_bar_next` | `(*` | Go to the next possible completion in the completion bar. | `*)`
`|` | `Complete_bar_prev` | `(*` | Go to the previous possible completion in the completion bar. | `*)`
`|` | `Complete_bar_first` | `(*` | Goto the beginning of the completion bar. | `*)`
`|` | `Complete_bar_last` | `(*` | Goto the end of the completion bar. | `*)`
`|` | `Complete_bar` | `(*` | Complete current input using the completion bar. | `*)`
`|` | `History_prev` | `(*` | Go to the previous entry of the history. | `*)`
`|` | `History_next` | `(*` | Go to the next entry of the history. | `*)`
`|` | `Accept` | `(*` | Accept the current input. | `*)`
`|` | `Clear_screen` | `(*` | Clear the screen. | `*)`
`|` | `Prev_search` | `(*` | Search backward in the history. | `*)`
`|` | `Cancel_search` | `(*` | Cancel search mode. | `*)`
`|` | `Break` | `(*` | Raise `Sys.Break`. | `*)`
`|` | `Suspend` | `(*` | Suspend the program. | `*)`

Type of actions.

    val bindings : action list Zed_input.Make(LTerm_key).t Pervasives.ref

Bindings.

    val bind : LTerm_key.t list -> action list -> unit

`bind seq actions` associates `actions` to the given sequence.

    val unbind : LTerm_key.t list -> unit

`unbind seq` unbinds `seq`.

    val actions : (action * string) list

List of actions with their names, except `Edit`.

    val doc_of_action : action -> string

`doc_of_action action` returns a short description of the action.

    val action_of_name : string -> action

`action_of_name str` converts the given action name into an action. Action name are the same as variants name but lowercased and with '_' replaced by '-'. It raises `Not_found` if the name does not correspond to an action. It also recognizes edition actions.

    val name_of_action : action -> string

`name_of_action act` returns the name of the given action.

###### The read-line engine

    val macro : action Zed_macro.t

The global macro recorder.

    type mode =

`|` | `Edition` | `(*` | Editing. | `*)`
`|` | `Search` | `(*` | Backward search. | `*)`
`|` | `Set_counter` | `(*` | Setting the macro counter value. | `*)`
`|` | `Add_counter` | `(*` | Adding a value to the macro counter. | `*)`

The current read-line mode.

    class virtual ['a] engine : ?history:history -> ?clipboard:Zed_edit.clipboard -> ?macro:action Zed_macro.t -> unit -> object .. end

The read-line engine.

    class virtual ['a] abstract : object .. end

Abstract version of `LTerm_read_line.engine`.

###### Predefined classes

    class read_line : ?history:history -> unit -> object .. end

Simple read-line engine which returns the result as a string.

    class read_password : unit -> object .. end

Read-line engine for reading a password.

    type 'a read_keyword_result =

`|` | `Rk_value of `'a`` | `(*` | The user typed a correct keyword and this is its associated value. | `*)`
`|` | `Rk_error of `Zed_utf8.t`` | `(*` | The user did not enter a correct keyword and this is what he typed instead. | `*)`

The result of reading a keyword.

    class ['a] read_keyword : ?history:history -> unit -> object .. end

Read a keyword.

###### Running in a terminal

    class virtual ['a] term : LTerm.t -> object .. end

Class for read-line instances running in a terminal.