diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 8820c1097d..28f82d7fe3 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -364,6 +364,8 @@ impl ProjectDiagnosticsEditor { for group_state in &mut groups_to_add { group_state.blocks = block_ids.by_ref().take(group_state.block_count).collect(); } + + editor.refresh_selections(cx); }); for ix in group_ixs_to_remove.into_iter().rev() { diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 84735c3aa0..a75e139724 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -3267,8 +3267,17 @@ impl Editor { .flat_map(|selection| [&selection.start, &selection.end]), ) }); - - todo!(); + self.selections = self + .selections + .iter() + .cloned() + .zip(anchors.chunks(2)) + .map(|(mut selection, anchors)| { + selection.start = anchors[0].clone(); + selection.end = anchors[1].clone(); + selection + }) + .collect(); } fn set_selections(&mut self, selections: Arc<[Selection]>, cx: &mut ViewContext) {