diff --git a/crates/buffer_diff/src/buffer_diff.rs b/crates/buffer_diff/src/buffer_diff.rs index 772835f9a93f382934b91e016ba4c8c2cb91fef7..fb244abbb7ec70f7daa18ab18969a366d9427840 100644 --- a/crates/buffer_diff/src/buffer_diff.rs +++ b/crates/buffer_diff/src/buffer_diff.rs @@ -587,18 +587,16 @@ impl BufferDiff { range: Range, buffer: &text::BufferSnapshot, cx: &App, - ) -> Option> { + ) -> Range { let start = self .hunks_intersecting_range(range.clone(), &buffer, cx) - .next()? - .buffer_range - .start; + .next() + .map_or(Anchor::MIN, |hunk| hunk.buffer_range.start); let end = self .hunks_intersecting_range_rev(range.clone(), &buffer) - .next()? - .buffer_range - .end; - Some(start..end) + .next() + .map_or(Anchor::MAX, |hunk| hunk.buffer_range.end); + start..end } #[allow(clippy::too_many_arguments)] diff --git a/crates/project/src/buffer_store.rs b/crates/project/src/buffer_store.rs index 0a8721b4b05a4ef22912f1bbee8d91396a3f337b..0955f8e869b59c438270fa0548b49cdabd4df081 100644 --- a/crates/project/src/buffer_store.rs +++ b/crates/project/src/buffer_store.rs @@ -260,15 +260,12 @@ impl BufferDiffState { let changed_range = match (unstaged_changed_range, uncommitted_changed_range) { (None, None) => None, (Some(unstaged_range), None) => { - uncommitted_diff.range_to_hunk_range(unstaged_range, &buffer, cx) + Some(uncommitted_diff.range_to_hunk_range(unstaged_range, &buffer, cx)) } (None, Some(uncommitted_range)) => Some(uncommitted_range), (Some(unstaged_range), Some(uncommitted_range)) => maybe!({ - let expanded_range = uncommitted_diff.range_to_hunk_range( - unstaged_range, - &buffer, - cx, - )?; + let expanded_range = + uncommitted_diff.range_to_hunk_range(unstaged_range, &buffer, cx); let start = expanded_range.start.min(&uncommitted_range.start, &buffer); let end = expanded_range.end.max(&uncommitted_range.end, &buffer); Some(start..end)