#ansi-term #ansi #tui #console #stakker #terminal

stakker_tui

为 Stakker 提供的 ANSI 终端处理

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 命令行界面

MIT/Apache

86KB
1.5K SLoC

为 Stakker 提供的 ANSI 终端处理

这是一个正在进行中的项目。 目前只支持 UNIX 的基本处理:输出缓冲、输入键解码和窗口大小检测。

文档

请参阅 crate 文档

许可

本项目采用 Apache License 2.0 或 MIT 许可证,由您选择。(请参阅 LICENSE-APACHELICENSE-MIT)。

贡献

除非您明确声明,否则您提交的任何旨在包含在此 crate 中的贡献,根据 Apache-2.0 许可证定义,应双许可,如上所述,没有任何额外条款或条件。


lib.rs:

为 Stakker 提供的 ANSI 终端处理

这是一个正在进行中的项目。 目前仅支持 UNIX 和以下第一级描述。

最终这将提供多个抽象级别,以便应用程序可以与终端接口,从最低到最高

输出缓冲、输入解码、大小调整和功能

这可以用于需要直接生成 ANSI 输出序列的应用程序,例如分页器或简单的编辑器。应用程序拥有最大控制权,可以使用特定的 ANSI 功能来优化其输出(例如滚动区域)。

输入处理解码按键序列并将它们转发到应用程序代码。终端大小调整在发生时立即检测并通知。终端功能(如 256 色支持)在检测到后通知应用程序。

全屏页面缓冲和最小化更新

应用程序代码在内存中保持一个或多个全屏页面,并对其进行本地更新,而终端代码保持自己的页面,代表当前在终端上显示的内容。当应用程序代码希望更新终端时,终端代码比较两个页面并发送最小化更新。

输入处理、大小调整和功能与上述相同。

即时模式 UI

这将在全屏缓冲区之上提供即时模式 UI(字段、小部件)。

依赖项

~1–12MB
~78K SLoC