Fix Buffer::remote_selections_in_range at query range boundaries

This commit is contained in:
Antonio Scandurra 2022-01-05 15:04:50 +01:00
parent 587a908225
commit f8c2620166

View file

@ -1814,14 +1814,22 @@ impl BufferSnapshot {
.iter()
.filter(|(replica_id, _)| **replica_id != self.text.replica_id())
.map(move |(replica_id, selections)| {
let start_ix = match selections
.binary_search_by(|probe| probe.end.cmp(&range.start, self).unwrap())
{
let start_ix = match selections.binary_search_by(|probe| {
probe
.end
.cmp(&range.start, self)
.unwrap()
.then(Ordering::Greater)
}) {
Ok(ix) | Err(ix) => ix,
};
let end_ix = match selections
.binary_search_by(|probe| probe.start.cmp(&range.end, self).unwrap())
{
let end_ix = match selections.binary_search_by(|probe| {
probe
.start
.cmp(&range.end, self)
.unwrap()
.then(Ordering::Less)
}) {
Ok(ix) | Err(ix) => ix,
};