aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/commands.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 628fd8fb..c9c8e6a9 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -3770,12 +3770,15 @@ fn expand_selection(cx: &mut Context) {
let text = doc.text().slice(..);
let current_selection = doc.selection(view.id);
+ let selection = object::expand_selection(syntax, text, current_selection.clone());
- // save current selection so it can be restored using shrink_selection
- view.object_selections.push(current_selection.clone());
+ // check if selection is different from the last one
+ if *current_selection != selection {
+ // save current selection so it can be restored using shrink_selection
+ view.object_selections.push(current_selection.clone());
- let selection = object::expand_selection(syntax, text, current_selection.clone());
- doc.set_selection(view.id, selection);
+ doc.set_selection(view.id, selection);
+ }
}
};
motion(cx.editor);