[−][src]Module rucline::completion
Provides completion methods for prompt
when reading lines.
By default, no completions are performed upon user interaction. However, if a Completer
or a Suggester
are provided, the prompt
will query for completions for the current
state of the line.
This module also includes a convenience wrapper for lists, allowing quick implementation of completions.
Examples
Basic implementation for in-line completion:
use rucline::Buffer; use rucline::completion::Completer; use std::borrow::Cow; struct Basic(Vec<String>); impl Completer for Basic { fn complete_for(&self, buffer: &Buffer) -> Option<Cow<'_, str>> { if buffer.is_empty() { None } else { self.0 .iter() .find(|completion| completion.starts_with(buffer.as_str())) .map(|completion| (&completion[buffer.len()..]).into()) } } }
Basic implementation for drop-down suggestions:
use rucline::Buffer; use rucline::completion::Suggester; use std::borrow::Cow; struct Basic(Vec<String>); impl Suggester for Basic { fn suggest_for(&self, buffer: &Buffer) -> Vec<Cow<'_, str>> { self.0.iter().map(|suggestion| suggestion.into()).collect() } }
Basic implementation for drop-down suggestions with list:
use rucline::completion::Completer; let completions = vec!["abc", "def", "example word", "weird \"˚∆˙\""]; let completer: &dyn Completer = &completions;
See also
Structs
Buffer | A |
Traits
Completer | Completes the buffer in-line. |
Suggester | Generates a list of possible values for the |