call method

  1. @override
String? call(
  1. TerminalKeyboardEvent event
)
override

Implementation

@override
String? call(TerminalKeyboardEvent event) {
  if (event.type == TerminalKeyEventType.release) {
    return null;
  }
  final keytab = this.keytab ?? Keytab.defaultKeytab;
  final record = keytab.find(
    event.key,
    ctrl: event.ctrl,
    alt: event.alt,
    shift: event.shift,
    newLineMode: event.state.lineFeedMode,
    appCursorKeys: event.state.cursorKeysMode,
    appKeyPad: event.state.appKeypadMode,
    appScreen: event.altBuffer,
    macos: event.platform == TerminalTargetPlatform.macos,
  );
  if (record == null) {
    return null;
  }

  final result = record.action.unescapedValue();
  return insertModifiers(event, result);
}