Retain range direction on search

Co-authored-by: CossonLeo <20379044+cossonleo@users.noreply.github.com>
pull/993/head
Blaž Hrastnik 3 years ago
parent 6431b26a6a
commit b81a554424

@ -1223,11 +1223,18 @@ fn search_impl(
// skip empty matches that don't make sense
return;
}
// Determine range direction based on the primary range
let primary = selection.primary();
let range = if primary.head < primary.anchor {
Range::new(end, start)
} else {
Range::new(start, end)
};
let selection = match movement {
Movement::Extend => selection.clone().push(Range::new(start, end)),
Movement::Move => selection
.clone()
.replace(selection.primary_index(), Range::new(start, end)),
Movement::Extend => selection.clone().push(range),
Movement::Move => selection.clone().replace(selection.primary_index(), range),
};
doc.set_selection(view.id, selection);

Loading…
Cancel
Save