mirror of https://github.com/helix-editor/helix
Fix `Selection::push()` to make the pushed range primary.
Apparently I accidentally deleted that behavior in the cleanup.pull/376/head
parent
13b0784009
commit
c400a60377
|
@ -290,11 +290,12 @@ impl Selection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Adds a new range to the selection and makes it the primary range.
|
||||||
pub fn push(mut self, range: Range) -> Self {
|
pub fn push(mut self, range: Range) -> Self {
|
||||||
self.ranges.push(range);
|
self.ranges.push(range);
|
||||||
|
self.set_primary_index(self.ranges().len() - 1);
|
||||||
self.normalize()
|
self.normalize()
|
||||||
}
|
}
|
||||||
// replace_range
|
|
||||||
|
|
||||||
/// Map selections over a set of changes. Useful for adjusting the selection position after
|
/// Map selections over a set of changes. Useful for adjusting the selection position after
|
||||||
/// applying changes to a document.
|
/// applying changes to a document.
|
||||||
|
@ -320,6 +321,11 @@ impl Selection {
|
||||||
self.primary_index
|
self.primary_index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_primary_index(&mut self, idx: usize) {
|
||||||
|
assert!(idx < self.ranges.len());
|
||||||
|
self.primary_index = idx;
|
||||||
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
/// Constructs a selection holding a single range.
|
/// Constructs a selection holding a single range.
|
||||||
pub fn single(anchor: usize, head: usize) -> Self {
|
pub fn single(anchor: usize, head: usize) -> Self {
|
||||||
|
|
Loading…
Reference in New Issue