From 0bd8923469965788c7403a5a3f16636a4ba5add3 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Thu, 13 Feb 2025 13:53:41 -0300 Subject: [PATCH] Prefer keybinding with least modifiers when not in conflict mode --- crates/editor/src/editor.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index bcb22d426766abb1742bd5cbb7a9a11f0851f17f..5679a9bd498502cc9c91aca313eb55dda2ec6cc7 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -1608,6 +1608,7 @@ impl Editor { ) -> AcceptEditPredictionBinding { let key_context = self.key_context_internal(true, window, cx); let in_conflict = self.edit_prediction_in_conflict(); + AcceptEditPredictionBinding( window .bindings_for_action_in_context(&AcceptEditPrediction, key_context) @@ -1620,7 +1621,12 @@ impl Editor { .map_or(false, |keystroke| keystroke.modifiers.modified()) }) .rev() - .next(), + .min_by_key(|binding| { + binding + .keystrokes() + .first() + .map_or(u8::MAX, |k| k.modifiers.number_of_modifiers()) + }), ) }