3 个版本

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

#23 in 文本编辑器

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

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