43 releases
0.12.0 | Sep 9, 2023 |
---|---|
0.2.1 | Nov 16, 2024 |
0.1.17 | Oct 6, 2024 |
0.1.3 | Jul 27, 2024 |
0.0.28 | Nov 29, 2023 |
#543 in Command-line interface
684 downloads per month
Used in 2 crates
61KB
1.5K
SLoC
Copa
Copa is a fork of Alacritty's VTE intended to extend Paul Williams' ANSI parser state machine with custom instructions.
The state machine doesn't assign meaning to the parsed data and is
thus not itself sufficient for writing a terminal emulator. Instead, it is
expected that an implementation of the Perform
trait which does something useful with the parsed data. The Parser
handles the book keeping, and the Perform
gets to simply handle actions.
See the ansicode.txt for more info.
lib.rs
:
Parser for implementing virtual terminal emulators
Parser
is implemented according to Paul Williams' ANSI parser
state machine. The state machine doesn't assign meaning to the parsed data
and is thus not itself sufficient for writing a terminal emulator. Instead,
it is expected that an implementation of Perform
is provided which does
something useful with the parsed data. The Parser
handles the book
keeping, and the Perform
gets to simply handle actions.
Examples
For an example of using the Parser
please see the examples folder. The example included
there simply logs all the actions Perform
does. One quick thing to see it in action is to
pipe vim
into it
cargo build --release --example parselog
vim | target/release/examples/parselog
Just type :q
to exit.
Differences from original state machine description
- UTF-8 Support for Input
- OSC Strings can be terminated by 0x07
- Only supports 7-bit codes. Some 8-bit codes are still supported, but they no longer work in all states.
Dependencies
~105KB