Don't underflow when calling `symbols_containing_offset(0)`

Antonio Scandurra created

Change summary

crates/language/src/buffer.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Detailed changes

crates/language/src/buffer.rs 🔗

@@ -1684,7 +1684,8 @@ impl BufferSnapshot {
         theme: Option<&SyntaxTheme>,
     ) -> Option<Vec<OutlineItem<Anchor>>> {
         let position = position.to_offset(&self);
-        let mut items = self.outline_items_containing(position - 1..position + 1, theme)?;
+        let mut items =
+            self.outline_items_containing(position.saturating_sub(1)..position + 1, theme)?;
         let mut prev_depth = None;
         items.retain(|item| {
             let result = prev_depth.map_or(true, |prev_depth| item.depth > prev_depth);