diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index f7172ccf08d29704b14e197c197e7119a377c39b..5b6eddd5b16bf163138ffe0360bbe4c1d5aeb6e9 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -3790,7 +3790,7 @@ impl MultiBufferSnapshot { } } - // Returns the locators referenced by the given excerpt ids, sorted by locator. + /// Returns the locators referenced by the given excerpt IDs, sorted by locator. fn excerpt_locators_for_ids( &self, ids: impl IntoIterator, @@ -3801,13 +3801,17 @@ impl MultiBufferSnapshot { while sorted_ids.last() == Some(&ExcerptId::max()) { sorted_ids.pop(); - locators.push(Locator::max()); + if let Some(mapping) = self.excerpt_ids.last() { + locators.push(mapping.locator.clone()); + } } let mut sorted_ids = sorted_ids.into_iter().dedup().peekable(); if sorted_ids.peek() == Some(&ExcerptId::min()) { sorted_ids.next(); - locators.push(Locator::min()); + if let Some(mapping) = self.excerpt_ids.first() { + locators.push(mapping.locator.clone()); + } } let mut cursor = self.excerpt_ids.cursor::();