mirror of
https://github.com/redox-os/liner
synced 2026-08-25 07:36:12 +00:00
No description
- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| examples | ||
| src | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .travis.yml | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| hist | ||
| LICENSE | ||
| README.md | ||
liner
A Rust library offering readline-like functionality.
Features
- Autosuggestions
- Emacs and Vi keybindings
- Multi-line editing
- History
- (Incomplete) basic and filename completions
- Reverse search
- Remappable keybindings
Basic Usage
In Cargo.toml:
[dependencies]
redox_liner = "0.5.3"
...
In src/main.rs:
extern crate liner;
use liner::{Context, Completer};
struct EmptyCompleter;
impl<W: std::io::Write> Completer<W> for EmptyCompleter {
fn completions(&mut self, _start: &str) -> Vec<String> {
Vec::new()
}
}
fn main() {
let mut con = Context::new();
loop {
let res = con.read_line("[prompt]$ ", &mut EmptyCompleter).unwrap();
if res.is_empty() {
break;
}
con.history.push(res.into());
}
}
See src/main.rs for a more sophisticated example.
License
MIT licensed. See the LICENSE file.