4 个版本
0.0.4 | 2020 年 11 月 11 日 |
---|---|
0.0.3 | 2020 年 11 月 8 日 |
0.0.2 | 2020 年 7 月 29 日 |
0.0.1 | 2020 年 7 月 16 日 |
#989 in 命令行界面
86KB
1.5K SLoC
为 Stakker 提供的 ANSI 终端处理
这是一个正在进行中的项目。 目前只支持 UNIX 的基本处理:输出缓冲、输入键解码和窗口大小检测。
文档
请参阅 crate 文档。
许可
本项目采用 Apache License 2.0 或 MIT 许可证,由您选择。(请参阅 LICENSE-APACHE 和 LICENSE-MIT)。
贡献
除非您明确声明,否则您提交的任何旨在包含在此 crate 中的贡献,根据 Apache-2.0 许可证定义,应双许可,如上所述,没有任何额外条款或条件。
lib.rs
:
为 Stakker 提供的 ANSI 终端处理
这是一个正在进行中的项目。 目前仅支持 UNIX 和以下第一级描述。
最终这将提供多个抽象级别,以便应用程序可以与终端接口,从最低到最高
输出缓冲、输入解码、大小调整和功能
这可以用于需要直接生成 ANSI 输出序列的应用程序,例如分页器或简单的编辑器。应用程序拥有最大控制权,可以使用特定的 ANSI 功能来优化其输出(例如滚动区域)。
输入处理解码按键序列并将它们转发到应用程序代码。终端大小调整在发生时立即检测并通知。终端功能(如 256 色支持)在检测到后通知应用程序。
全屏页面缓冲和最小化更新
应用程序代码在内存中保持一个或多个全屏页面,并对其进行本地更新,而终端代码保持自己的页面,代表当前在终端上显示的内容。当应用程序代码希望更新终端时,终端代码比较两个页面并发送最小化更新。
输入处理、大小调整和功能与上述相同。
即时模式 UI
这将在全屏缓冲区之上提供即时模式 UI(字段、小部件)。
依赖项
~1–12MB
~78K SLoC