handleInput method

  1. @override
ResponseInput handleInput(
  1. InputEvent event
)
override

Processes an input event and updates command mode state accordingly.

Returns a ResponseInput indicating if the event was handled and any commands triggered.

Implementation

@override
ResponseInput handleInput(InputEvent event) {
  if (!_shouldHandle(event)) {
    return ResponseInput(commands: ResponseCommands.none, handled: false);
  }

  event = event as KeyEvent;
  if (event.code == KeyCode.character &&
      (event.char == '\r' || event.char == '\n')) {
    return executeCommand();
  } else if (event.code == KeyCode.ctrlC) {
    return ResponseInput(commands: ResponseCommands.exit, handled: true);
  } else if (event.code == KeyCode.backspace) {
    String value = _buffer.toString();
    if (value.isNotEmpty) {
      value = value.substring(0, value.length - 1);
      _buffer.clear();
      _buffer.write(value);
    }
  } else {
    _buffer.write(event.char);
  }

  return ResponseInput(commands: ResponseCommands.none, handled: true);
}