#终端 #vte #ansi #解析器 #虚拟终端

无 std vte-graphics

vte 的 Alacritty 图形补丁分支

1 个不稳定版本

0.13.0 2024年6月3日

#1159解析器实现

Download history 194/week @ 2024-06-03 22/week @ 2024-06-10 13/week @ 2024-06-17 14/week @ 2024-06-24

每月 243 次下载

Apache-2.0 OR MIT

130KB
3K SLoC

vte

Build Status Crates.io Version

Rust 中实现虚拟终端模拟器的解析器。

解析器根据 Paul Williams 的 ANSI 解析器状态机 实现。状态机不分配解析数据的意义,因此本身不足以编写终端模拟器。相反,预期将提供一个实现 Perform 特性的实现,该实现可以对解析数据进行有用的操作。解析器负责记录,而 Perform 负责简单地处理动作。

有关更多信息,请参阅 文档


lib.rs:

实现虚拟终端模拟器的解析器

Parser 根据保罗·威廉姆斯的 ANSI 解析器状态机实现。状态机不分配解析数据的意义,因此本身不足以编写终端模拟器。相反,预期将提供一个实现 Perform 的实现,该实现可以对解析数据进行有用的操作。解析器负责记录,而 Perform 负责简单地处理动作。

示例

有关使用 Parser 的示例,请参阅示例文件夹。该示例简单地记录了所有 Perform 执行的动作。要看到它在实际中的效果,可以将 vim 的输出管道导入其中

cargo build --release --example parselog
vim | target/release/examples/parselog

只需键入 :q 退出。

与原始状态机描述的差异

  • 输入的 UTF-8 支持
  • OSC 字符串可以通过 0x07 终止
  • 仅支持7位代码。一些8位代码仍然支持,但它们不再在所有状态下工作。

依赖项

~34–330KB