toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  final mods = [if (ctrl) 'Ctrl', if (alt) 'Alt', if (shift) 'Shift'];
  final modStr = mods.isEmpty ? '' : '${mods.join('+')}+';

  if (type == KeyType.runes && runes.isNotEmpty) {
    final char = String.fromCharCodes(runes);
    // Output without quotes for keyMatches compatibility
    return 'Key($modStr$char)';
  }

  // Capitalize key type name
  final typeName = type.name;
  final capitalizedName = typeName[0].toUpperCase() + typeName.substring(1);
  return 'Key($modStr$capitalizedName)';
}