liner
liner copied to clipboard
A readline-like library in Rust.
liner
A Rust library offering readline-like functionality.
CONTRIBUTING.md
Featues
- [x] Autosuggestions
- [x] Emacs and Vi keybindings
- [x] Multi-line editing
- [x] History
- [x] (Incomplete) basic and filename completions
- [ ] Reverse search
- [ ] Remappable keybindings
Basic Usage
In Cargo.toml
:
[dependencies]
liner = "0.4.3"
...
In src/main.rs
:
extern crate liner;
use liner::Context;
fn main() {
let mut con = Context::new();
loop {
let res = con.read_line("[prompt]$ ", &mut |_| {}).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.