ANSI escape-sequence tokenization and composition.
The tokenizer recognizes complete CSI sequences (including SGR colors), OSC sequences terminated by BEL or ST, and two-byte escape sequences. Incomplete or malformed escapes are returned as ordinary text instead of silently consuming the remainder of a log line.
Types
AnsiToken = object kind*: AnsiTokenKind value*: string
- One lossless token from an ANSI-bearing string. Source Edit
AnsiTokenKind = enum atkText, atkCsi, atkOsc, atkEscape
- The kind of a token returned by tokenizeAnsi. Source Edit
Procs
proc composeAnsi(opening, value: string; enabled = true): string {....raises: [], tags: [], forbids: [].}
- Wraps value in an SGR opening sequence. When nested content resets its style, the outer sequence is reapplied. With enabled = false all complete ANSI controls in value are removed. Source Edit
proc tokenizeAnsi(value: string): seq[AnsiToken] {....raises: [], tags: [], forbids: [].}
- Splits value without losing any bytes. Only complete ANSI sequences become control tokens; malformed or unterminated sequences remain text. Source Edit