call method

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

Translates a TerminalKeyboardEvent into an escape sequence. If the event cannot be translated, null is returned.

Implementation

@override
String? call(TerminalKeyboardEvent event) {
  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;
  }

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