charInput method

bool charInput(
  1. int charCode, {
  2. bool alt = false,
  3. bool ctrl = false,
})

Similary to keyInput, but takes a character as input instead of a TerminalLibraryFlutterKey.

See also:

Implementation

bool charInput(
  int charCode, {
  bool alt = false,
  bool ctrl = false,
}) {
  if (ctrl) {
    // a(97) ~ z(122)
    if (charCode >= Ascii.a && charCode <= Ascii.z) {
      final output = charCode - Ascii.a + 1;
      onOutput?.call(String.fromCharCode(output));
      return true;
    }

    // [(91) ~ _(95)
    if (charCode >= Ascii.openBracket && charCode <= Ascii.underscore) {
      final output = charCode - Ascii.openBracket + 27;
      onOutput?.call(String.fromCharCode(output));
      return true;
    }
  }

  if (alt && platform != TerminalLibraryFlutterTargetPlatform.macos) {
    if (charCode >= Ascii.a && charCode <= Ascii.z) {
      final code = charCode - Ascii.a + 65;
      final input = [0x1b, code];
      onOutput?.call(String.fromCharCodes(input));
      return true;
    }
  }

  return false;
}