Terminal constructor

Terminal([
  1. TerminalBackend? backend
])

Creates a new terminal using the specified backend.

If no backend is provided, uses the platform-specific default backend.

Implementation

Terminal([TerminalBackend? backend])
  : backend = backend ?? getPlatformBackend() {
  _parser = InputParser(isWindows: this.backend.isWindows);
  this.backend.enableRawMode();
  _stdinSubscription = this.backend.rawInput.listen(
    (List<int> chunk) {
      final parsed = _parser.parse(chunk);
      for (final event in parsed) {
        if (event is CursorPositionReportEvent) {
          if (_cursorCallback != null && !_cursorCallback!.isCompleted) {
            _cursorCallback!.complete(Point<int>(event.x, event.y));
          }
          _cursorCallback = null;
        } else {
          _events.add(event);
        }
      }
    },
    onDone: () {
      _events.close();
    },
  );
}