validateKeystroke function

KeybindingWarning? validateKeystroke(
  1. String keystroke
)

Validate a single keystroke string.

Implementation

KeybindingWarning? validateKeystroke(String keystroke) {
  final parts = keystroke.toLowerCase().split('+');
  for (final part in parts) {
    if (part.trim().isEmpty) {
      return KeybindingWarning(
        type: KeybindingWarningType.parseError,
        severity: ReservedSeverity.error,
        message: 'Empty key part in "$keystroke"',
        key: keystroke,
        suggestion: 'Remove extra "+" characters',
      );
    }
  }
  final parsed = parseKeystroke(keystroke);
  if (parsed.key.isEmpty &&
      !parsed.ctrl &&
      !parsed.alt &&
      !parsed.shift &&
      !parsed.meta) {
    return KeybindingWarning(
      type: KeybindingWarningType.parseError,
      severity: ReservedSeverity.error,
      message: 'Could not parse keystroke "$keystroke"',
      key: keystroke,
    );
  }
  return null;
}