handleInput method
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);
}