Fix panic on diagnostic hover (#22693)
In #22620 `diagnostic_group` was modified to return results for multibuffers, but was returning singleton buffer points. `hover_popover` uses it to find the jump target for clicking the popup - which doesn't seem to be working right now but that's a separate issue. Now that `diagnostic_group` is returning values in multibuffers converting these to anchors was crashing. Also resolves a potential bug - if folding in multibuffers was supported then "Go To Diagnostics" would not properly skip diagnostics from folded regions. Release Notes: - N/A
This commit is contained in:
parent
94ee2e1811
commit
570e6c80a8
3 changed files with 22 additions and 22 deletions
|
@ -10336,16 +10336,18 @@ impl Editor {
|
|||
let mut primary_message = None;
|
||||
let mut group_end = Point::zero();
|
||||
let diagnostic_group = buffer
|
||||
.diagnostic_group::<MultiBufferPoint>(group_id)
|
||||
.diagnostic_group(group_id)
|
||||
.filter_map(|entry| {
|
||||
if snapshot.is_line_folded(MultiBufferRow(entry.range.start.row))
|
||||
&& (entry.range.start.row == entry.range.end.row
|
||||
|| snapshot.is_line_folded(MultiBufferRow(entry.range.end.row)))
|
||||
let start = entry.range.start.to_point(&buffer);
|
||||
let end = entry.range.end.to_point(&buffer);
|
||||
if snapshot.is_line_folded(MultiBufferRow(start.row))
|
||||
&& (start.row == end.row
|
||||
|| snapshot.is_line_folded(MultiBufferRow(end.row)))
|
||||
{
|
||||
return None;
|
||||
}
|
||||
if entry.range.end > group_end {
|
||||
group_end = entry.range.end;
|
||||
if end > group_end {
|
||||
group_end = end;
|
||||
}
|
||||
if entry.diagnostic.is_primary {
|
||||
primary_range = Some(entry.range.clone());
|
||||
|
@ -10356,8 +10358,6 @@ impl Editor {
|
|||
.collect::<Vec<_>>();
|
||||
let primary_range = primary_range?;
|
||||
let primary_message = primary_message?;
|
||||
let primary_range =
|
||||
buffer.anchor_after(primary_range.start)..buffer.anchor_before(primary_range.end);
|
||||
|
||||
let blocks = display_map
|
||||
.insert_blocks(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue