call method
Implementation
@override
String? call(TerminalKeyboardEvent event) {
final mode = event.state.kittyKeyboardMode;
final kittySequenceEnabled = mode &
(_disambiguateEscapeCodes |
_reportEventTypes |
_reportAllKeysAsEscapeCodes) !=
0;
if (!kittySequenceEnabled) {
return null;
}
final specialCode = _specialKeyCode(event.key);
if (specialCode != null) {
return _sequence(specialCode, event);
}
final numpadCode = _numpadKeyCode(event.key);
if (numpadCode != null) {
return _sequence(numpadCode, event);
}
final functionalSequence = _functionalSequence(event, mode);
if (functionalSequence != null) {
return functionalSequence;
}
if (_shouldEncodeControlKey(event, mode)) {
final controlCode = _controlKeyCode(event.key);
if (controlCode != null) {
return _sequence(controlCode, event);
}
}
final characterCode = _characterKeyCode(event);
if (characterCode == null) {
return null;
}
if (!_shouldEncodeCharacter(event, mode)) {
return null;
}
var payload = characterCode.toString();
final reportsAlternateKeys = mode & _reportAlternateKeys != 0;
final alternateCode = _alternateCharacterCode(event, characterCode);
if (reportsAlternateKeys && alternateCode != null) {
payload = '$payload:$alternateCode';
}
return _sequence(payload, event);
}