import 'package:convert/convert.dart'; import 'package:xterm/terminal/csi.dart'; import 'package:xterm/util/ansi_color.dart'; class DebugHandler { final _buffer = StringBuffer(); var _enabled = false; void enable([bool enabled = true]) { _enabled = enabled; } void _checkBuffer() { if (!_enabled) return; if (_buffer.isNotEmpty) { print(AnsiColor.cyan('┤') + _buffer.toString() + AnsiColor.cyan('├')); _buffer.clear(); } } void onCsi(CSI csi) { if (!_enabled) return; _checkBuffer(); print(AnsiColor.green('')); } void onEsc(int charAfterEsc) { if (!_enabled) return; _checkBuffer(); print(AnsiColor.green('')); } void onOsc(List params) { if (!_enabled) return; _checkBuffer(); print(AnsiColor.yellow('')); } void onSbc(int codePoint) { if (!_enabled) return; _checkBuffer(); print(AnsiColor.magenta('')); } void onChar(int codePoint) { if (!_enabled) return; _buffer.writeCharCode(codePoint); } void onMetrics(String metrics) { if (!_enabled) return; print(AnsiColor.blue('')); } void onError(String error) { if (!_enabled) return; print(AnsiColor.red('')); } void onMsg(Object msg) { if (!_enabled) return; print(AnsiColor.green('')); } }