SuperAPI AI 工具集

rust-animated-cli

编程与开发

查看项目

更新于 10-15 21:34

技能介绍

用途:在 Rust 中编写交互式终端启动器,用于封装多组件项目的构建、测试与启动操作,使用 crossterm + ratatui 实现动画与键盘交互。

主要能力:正弦波动画 ASCII 横幅与多套颜色主题(默认/成功/警告/错误);键盘菜单支持方向键、j/k、数字快捷键、Enter 确认、Q/Esc 退出;构建过程实时显示流式输出与平滑进度条;按组件归属记录警告并显示严重程度着色的汇总界面;非构建命令输出可在可滚动窗口中查看;支持剪贴板复制。

必要用法:依赖 crossterm 0.27(启用 event-stream)与 ratatui 0.26;CLI 必须是自包含的 [[bin]] 目标,不依赖父 crate 库。若项目 build.rs 含 CxxQt 等重步骤,可用 CARGO_BIN_NAME 判断跳过 CLI 二进制,例如 if std::env::var("CARGO_BIN_NAME").as_deref() != Ok("my-cli") { ... }。终端须用 Drop 守卫在任意退出路径恢复 raw mode、光标与备用屏幕;启动后先排空残留输入事件。Windows 上每个事件循环必须只处理 KeyEventKind::Press,否则按键会触发两次。构建命令不要用 Command::output(),应把 stdout/stderr 分别接入线程并通过 mpsc 通道传递,用 recv_timeout(约40毫秒) 保持约25fps渲染;警告过滤需排除 "no warning"、"0 warning"、"no error" 等误报摘要行。

适用场景:需要为多组件项目(如 Rust + Python + lint)提供原生编译的交互式 CLI;希望在长构建期间有动画反馈;目标平台包含 Windows 终端。

限制:资料未提供具体价格、平台支持范围、性能基准与除上述依赖外的版本要求;进度百分比为按行数估算,300 行等阈值需按实际输出量调整。