3 个版本

0.5.3 2024年7月19日
0.5.2 2023年11月4日
0.5.1 2019年11月29日

#23 in 文本编辑器

Download history 211/week @ 2024-04-24 255/week @ 2024-05-01 162/week @ 2024-05-08 187/week @ 2024-05-15 174/week @ 2024-05-22 149/week @ 2024-05-29 131/week @ 2024-06-05 132/week @ 2024-06-12 143/week @ 2024-06-19 182/week @ 2024-06-26 146/week @ 2024-07-03 134/week @ 2024-07-10 291/week @ 2024-07-17 164/week @ 2024-07-24 117/week @ 2024-07-31 127/week @ 2024-08-07

728 个月下载量
用于 4 个crate(3 直接使用)

MIT 许可证

235KB
6K SLoC

liner

一个提供类似 readline 功能的 Rust 库。

CONTRIBUTING.md

Build Status Docs

特性

  • 自动建议
  • Emacs 和 Vi 快捷键
  • 多行编辑
  • 历史记录
  • (不完整)基本和文件名补全
  • 反向搜索
  • 可重新映射的快捷键

基本用法

Cargo.toml

[dependencies]
redox_liner = "0.5.3"
...

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());
    }
}

更复杂的示例请查看 src/main.rs。

许可证

MIT 许可。请参阅 LICENSE 文件。

依赖关系

~1.5MB
~19K SLoC