Struct rustyline::Editor

source ·
pub struct Editor<H: Helper, I: History> { /* private fields */ }
Expand description

Line editor

Implementations§

source§

impl<H: Helper> Editor<H, DefaultHistory>

source

pub fn new() -> Result<Self>

Create an editor with the default configuration

source

pub fn with_config(config: Config) -> Result<Self>

Create an editor with a specific configuration.

source§

impl<H: Helper, I: History> Editor<H, I>

source

pub fn with_history(config: Config, history: I) -> Result<Self>

Create an editor with a custom history impl.

source

pub fn readline(&mut self, prompt: &str) -> Result<String>

This method will read a line from STDIN and will display a prompt.

It uses terminal-style interaction if stdin is connected to a terminal. Otherwise (e.g., if stdin is a pipe or the terminal is not supported), it uses file-style interaction.

source

pub fn readline_with_initial( &mut self, prompt: &str, initial: (&str, &str), ) -> Result<String>

This function behaves in the exact same manner as readline, except that it pre-populates the input area.

The text that resides in the input area is given as a 2-tuple. The string on the left of the tuple is what will appear to the left of the cursor and the string on the right is what will appear to the right of the cursor.

source

pub fn load_history<P: AsRef<Path> + ?Sized>(&mut self, path: &P) -> Result<()>

Load the history from the specified file.

source

pub fn save_history<P: AsRef<Path> + ?Sized>(&mut self, path: &P) -> Result<()>

Save the history in the specified file.

source

pub fn append_history<P: AsRef<Path> + ?Sized>( &mut self, path: &P, ) -> Result<()>

Append new entries in the specified file.

source

pub fn add_history_entry<S: AsRef<str> + Into<String>>( &mut self, line: S, ) -> Result<bool>

Add a new entry in the history.

source

pub fn clear_history(&mut self) -> Result<()>

Clear history.

source

pub fn history_mut(&mut self) -> &mut I

Return a mutable reference to the history object.

source

pub fn history(&self) -> &I

Return an immutable reference to the history object.

source

pub fn set_helper(&mut self, helper: Option<H>)

Register a callback function to be called for tab-completion or to show hints to the user at the right of the prompt.

source

pub fn helper_mut(&mut self) -> Option<&mut H>

Return a mutable reference to the helper.

source

pub fn helper(&self) -> Option<&H>

Return an immutable reference to the helper.

source

pub fn bind_sequence<E: Into<Event>, R: Into<EventHandler>>( &mut self, key_seq: E, handler: R, ) -> Option<EventHandler>

Bind a sequence to a command.

source

pub fn unbind_sequence<E: Into<Event>>( &mut self, key_seq: E, ) -> Option<EventHandler>

Remove a binding for the given sequence.

source

pub fn iter<'a>( &'a mut self, prompt: &'a str, ) -> impl Iterator<Item = Result<String>> + 'a

Returns an iterator over edited lines. Iterator ends at EOF.

let mut rl = rustyline::DefaultEditor::new()?;
for readline in rl.iter("> ") {
    match readline {
        Ok(line) => {
            println!("Line: {}", line);
        }
        Err(err) => {
            println!("Error: {:?}", err);
            break;
        }
    }
}
source

pub fn dimensions(&mut self) -> Option<(usize, usize)>

If output stream is a tty, this function returns its width and height as a number of characters.

source

pub fn clear_screen(&mut self) -> Result<()>

Clear the screen.

source

pub fn create_external_printer( &mut self, ) -> Result<<PosixTerminal as Term>::ExternalPrinter>

Create an external printer

source

pub fn set_cursor_visibility( &mut self, visible: bool, ) -> Result<Option<<PosixTerminal as Term>::CursorGuard>>

Change cursor visibility

Trait Implementations§

source§

impl<H: Helper, I: History> Configurer for Editor<H, I>

source§

fn config_mut(&mut self) -> &mut Config

Config accessor.
source§

fn set_max_history_size(&mut self, max_size: usize) -> Result<()>

Set the maximum length for the history.
source§

fn set_history_ignore_dups(&mut self, yes: bool) -> Result<()>

Tell if lines which match the previous history entry are saved or not in the history list. Read more
source§

fn set_history_ignore_space(&mut self, yes: bool)

Tell if lines which begin with a space character are saved or not in the history list. Read more
source§

fn set_color_mode(&mut self, color_mode: ColorMode)

Forces colorization on or off. Read more
source§

fn set_completion_type(&mut self, completion_type: CompletionType)

Set completion_type.
source§

fn set_completion_prompt_limit(&mut self, completion_prompt_limit: usize)

The number of possible completions that determines when the user is asked whether the list of possibilities should be displayed.
source§

fn set_keyseq_timeout(&mut self, keyseq_timeout_ms: Option<u16>)

Timeout for ambiguous key sequences in milliseconds.
source§

fn set_edit_mode(&mut self, edit_mode: EditMode)

Choose between Emacs or Vi mode.
source§

fn set_auto_add_history(&mut self, yes: bool)

Tell if lines are automatically added to the history. Read more
source§

fn set_bell_style(&mut self, bell_style: BellStyle)

Set bell style: beep, flash or nothing.
source§

fn set_behavior(&mut self, behavior: Behavior)

Whether to use stdio or not Read more
source§

fn set_tab_stop(&mut self, tab_stop: usize)

Horizontal space taken by a tab. Read more
source§

fn set_check_cursor_position(&mut self, yes: bool)

Check if cursor position is at leftmost before displaying prompt. Read more
source§

fn set_indent_size(&mut self, size: usize)

Indentation size for indent/dedent commands Read more
source§

fn enable_bracketed_paste(&mut self, enabled: bool)

Enable or disable bracketed paste on unix platform Read more
source§

fn set_enable_signals(&mut self, enable_signals: bool)

Enable or disable signals in termios Read more
source§

impl<H: Helper, I: History> Debug for Editor<H, I>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<H, I> Freeze for Editor<H, I>
where I: Freeze, H: Freeze,

§

impl<H, I> !RefUnwindSafe for Editor<H, I>

§

impl<H, I> Send for Editor<H, I>
where I: Send, H: Send,

§

impl<H, I> Sync for Editor<H, I>
where I: Sync, H: Sync,

§

impl<H, I> Unpin for Editor<H, I>
where I: Unpin, H: Unpin,

§

impl<H, I> !UnwindSafe for Editor<H, I>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.