28 个版本
新增 0.4.0 | 2024年8月12日 |
---|---|
0.3.19 | 2024年7月25日 |
0.3.8 | 2024年3月12日 |
0.3.2 | 2023年12月15日 |
0.2.3 | 2023年7月25日 |
#190 in 命令行界面
1,620 下载/每月
在 3 crates 中使用
37KB
774 代码行,不含注释
tui-prompts
tui-prompts
是一个为 Ratatui crate 提供提示小部件的 Rust crate。它允许通过各种类型的提示轻松创建交互式命令行界面。灵感来源于 https://npmjs.net.cn/package/prompts 以及其他各种提示库。
示例
文本提示
代码
struct App<'a> {
username_state: TextState<'a>,
password_state: TextState<'a>,
invisible_state: TextState<'a>,
}
impl<'a> App<'a> {
fn draw_ui<B: Backend>(&mut self, frame: &mut Frame<B>) {
let (username_area, password_area, invisible_area) = split_layout(frame.size())
TextPrompt::from("Username")
.draw(frame, username_area, &mut self.username_state);
TextPrompt::from("Password")
.with_render_style(TextRenderStyle::Password)
.draw(frame, password_area, &mut self.password_state);
TextPrompt::from("Invisible")
.with_render_style(TextRenderStyle::Invisible)
.draw(frame, invisible_area, &mut self.invisible_state);
}
}
更多详情请见 文本示例。
软换行
文本自动换行以适应渲染区域。
更多详情请见 多行示例。
特性
- 文本提示
- 密码提示
- 隐藏提示
- Readline/emacs 风格的键绑定
- Crossterm 后端
- 软换行单行
- 多行输入
- 滚动
- 更多提示类型
- 数字
- 确认
- 列表
- 切换
- 选择
- 多选
- 自动完成
- 自动完成多选
- 日期
- 括号内粘贴
- 验证
- 默认初始值
- 自定义样式
- 主题
- 自定义格式化
- 后端无关的键盘事件处理 (Termion 和 Termwiz)
- 可定制的键绑定
- 处理更高级的多键绑定,例如
^[b
和^[f
用于行首/行尾 - 提示链
安装
cargo add ratatui tui-prompts crossterm
或者将以下内容添加到您的 Cargo.toml
文件中
键绑定
键 | 动作 |
---|---|
Home, Ctrl+A | 将光标移至行首 |
End, Ctrl+E | 将光标移至行尾 |
Left, Ctrl+B | 将光标向左移动一个字符 |
Right, Ctrl+F | 将光标向右移动一个字符 |
Backspace (Delete on Mac), Ctrl+H | 删除光标前的字符 |
Delete (Fn+Delete on Mac), Ctrl+D | 删除光标处的字符 |
Ctrl+K | 从光标处删除到行尾的所有字符 |
Ctrl+U | 删除整行 |
Enter | 完成提示 |
Escape, Ctrl+C | 中止提示 |
许可协议
版权(c)Josh McKinney
本项目采用以下任一许可协议:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何按照Apache-2.0许可定义,有意提交以包含在作品中的贡献,均应双许可如上所述,不附加任何额外条款或条件。
依赖项
~10–20MB
~284K SLoC