parseKeystroke function

ParsedKeystroke parseKeystroke(
  1. String input
)

Parse a keystroke string like "ctrl+shift+k".

Implementation

ParsedKeystroke parseKeystroke(String input) {
  final parts = input.toLowerCase().split('+').map((s) => s.trim()).toList();

  var ctrl = false;
  var alt = false;
  var shift = false;
  var meta = false;
  var key = '';

  for (final part in parts) {
    switch (part) {
      case 'ctrl' || 'control':
        ctrl = true;
      case 'alt' || 'opt' || 'option':
        alt = true;
      case 'shift':
        shift = true;
      case 'meta' || 'cmd' || 'command' || 'super' || 'win':
        meta = true;
      default:
        key = _normalizeKeyName(part);
    }
  }

  return ParsedKeystroke(
    key: key,
    ctrl: ctrl,
    alt: alt,
    shift: shift,
    meta: meta,
  );
}