pub struct Context {
pub history: History,
pub word_divider_fn: Box<dyn Fn(&Buffer) -> Vec<(usize, usize)>>,
pub key_bindings: KeyBindings,
pub buf: String,
}
Fields§
§history: History
§word_divider_fn: Box<dyn Fn(&Buffer) -> Vec<(usize, usize)>>
§key_bindings: KeyBindings
§buf: String
Implementations§
Source§impl Context
impl Context
pub fn new() -> Self
Sourcepub fn read_line<C: Completer>(
&mut self,
prompt: Prompt,
f: Option<ColorClosure>,
handler: &mut C,
) -> Result<String>
pub fn read_line<C: Completer>( &mut self, prompt: Prompt, f: Option<ColorClosure>, handler: &mut C, ) -> Result<String>
Creates an Editor
and feeds it keypresses from stdin until the line is entered.
The output is stdout.
The returned line has the newline removed.
Before returning, will revert all changes to the history buffers.
Sourcepub fn read_line_with_init_buffer<B: Into<Buffer>, C: Completer>(
&mut self,
prompt: Prompt,
handler: &mut C,
f: Option<ColorClosure>,
buffer: B,
) -> Result<String>
pub fn read_line_with_init_buffer<B: Into<Buffer>, C: Completer>( &mut self, prompt: Prompt, handler: &mut C, f: Option<ColorClosure>, buffer: B, ) -> Result<String>
Same as Context.read_line()
, but passes the provided initial buffer to the editor.
use liner::{Context, Completer, Prompt};
struct EmptyCompleter;
impl Completer for EmptyCompleter {
fn completions(&mut self, _start: &str) -> Vec<String> {
Vec::new()
}
}
let mut context = Context::new();
let line =
context.read_line_with_init_buffer(Prompt::from("[prompt]$ "),
&mut EmptyCompleter,
Some(Box::new(|s| String::from(s))),
"some initial buffer");
pub fn revert_all_history(&mut self)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Context
impl !RefUnwindSafe for Context
impl !Send for Context
impl !Sync for Context
impl Unpin for Context
impl !UnwindSafe for Context
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more