Fix gutter highlights not matching diff hunks near excerpt boundaries (#25600)
Release Notes: - Fixed gutter highlights not matching diff hunks in multibuffers in some cases --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
This commit is contained in:
parent
d68d858a10
commit
198f56c763
4 changed files with 173 additions and 66 deletions
|
@ -6146,6 +6146,16 @@ where
|
|||
|| self.diff_transforms.item().is_none()
|
||||
{
|
||||
self.excerpts.next(&());
|
||||
} else if let Some(DiffTransform::DeletedHunk { hunk_info, .. }) =
|
||||
self.diff_transforms.item()
|
||||
{
|
||||
if self
|
||||
.excerpts
|
||||
.item()
|
||||
.map_or(false, |excerpt| excerpt.id != hunk_info.excerpt_id)
|
||||
{
|
||||
self.excerpts.next(&());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6183,12 +6193,13 @@ where
|
|||
return true;
|
||||
}
|
||||
|
||||
self.diff_transforms.next(&());
|
||||
let next_transform = self.diff_transforms.item();
|
||||
self.diff_transforms.prev(&());
|
||||
|
||||
next_transform.map_or(true, |next_transform| {
|
||||
matches!(next_transform, DiffTransform::BufferContent { .. })
|
||||
let next_transform = self.diff_transforms.next_item();
|
||||
next_transform.map_or(true, |next_transform| match next_transform {
|
||||
DiffTransform::BufferContent { .. } => true,
|
||||
DiffTransform::DeletedHunk { hunk_info, .. } => self
|
||||
.excerpts
|
||||
.item()
|
||||
.map_or(false, |excerpt| excerpt.id != hunk_info.excerpt_id),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue