#prompt #input-validation #interactive #ask #questions #cli

oma-inquire

inquire 是一个用于在终端上构建交互式提示的库

2 个版本

0.1.1 2023年8月8日
0.1.0 2023年8月8日

#225 in 值格式化

Download history 73/week @ 2024-03-14 73/week @ 2024-03-21 129/week @ 2024-03-28 29/week @ 2024-04-04 38/week @ 2024-04-18 59/week @ 2024-04-25 216/week @ 2024-05-02 121/week @ 2024-05-09 101/week @ 2024-05-16 134/week @ 2024-05-23 54/week @ 2024-05-30 34/week @ 2024-06-06 73/week @ 2024-06-13 59/week @ 2024-06-20 53/week @ 2024-06-27

221 每月下载量
oma-topics 中使用

MIT 许可证

320KB
5.5K SLoC

Latest Version Build status Supported platforms License



inquire 是一个用于在终端上构建交互式提示的库。

它提供了多种提示,以便通过 CLI 交互式地询问用户信息。使用 inquire,您可以

  • Text 从用户获取文本输入,具有内置的自动完成支持;
  • Editor 通过为用户打开文本编辑器来获取更长的文本输入;
  • DateSelect 通过交互式日历来从用户获取日期输入;
  • Select 询问用户从给定的列表中选择一个选项;
  • MultiSelect 询问用户从给定的列表中选择任意数量的选项;
  • Confirm 用于简单的是/否确认提示;
  • CustomType 用于您希望解析到自定义类型的文本提示,例如数字或 UUID;
  • Password 用于秘密文本提示。

演示

使用此库创建的调查问卷的动画 GIF。您可以使用 asciinema play 命令在终端中重放此记录 - asciinema play ./assets/expense_tracker.cast 源代码

功能

  • 跨平台,支持 UNIX 和 Windows 终端(感谢 crossterm);
  • 多种提示类型以满足您的需求;
  • 标准化的错误处理(感谢 thiserror);
  • 支持对每种提示类型的细粒度配置,允许您自定义
    • 默认值;
    • 输入验证器和格式化器;
    • 帮助信息;
    • Text 提示提供自动完成功能;
    • 为 Select 和 MultiSelect 提示提供自定义列表过滤器;
    • ConfirmCustomType 提示提供自定义解析器;
    • Editor 提示创建的文件提供自定义扩展;
    • 以及许多其他功能!

用法

将此行放入您的 Cargo.toml 中,在 [dependencies] 下。

inquire = "0.6.1"

* 此提示类型受功能标志控制,例如

inquire = { version = "0.6.1", features = ["date", "editor"] }

依赖项

~2–16MB
~153K SLoC