findConflicts method

List<ParsedBinding> findConflicts(
  1. String keyString,
  2. KeybindingContext context
)

Find conflicting bindings for a given keystroke in a context.

Implementation

List<ParsedBinding> findConflicts(
  String keyString,
  KeybindingContext context,
) {
  final targetChord = parseChord(keyString);
  final conflicts = <ParsedBinding>[];
  for (final binding in _bindings) {
    if (binding.context != context &&
        binding.context != KeybindingContext.global) {
      continue;
    }
    if (binding.chord.length != targetChord.length) continue;
    var matches = true;
    for (var i = 0; i < targetChord.length; i++) {
      if (!keystrokesEqual(targetChord[i], binding.chord[i])) {
        matches = false;
        break;
      }
    }
    if (matches) conflicts.add(binding);
  }
  return conflicts;
}