Wire up `refresh_anchors` in `Editor::refresh_selections` and call it

Antonio Scandurra created

Change summary

crates/diagnostics/src/diagnostics.rs |  2 ++
crates/editor/src/editor.rs           | 13 +++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)

Detailed changes

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() {

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<Anchor>]>, cx: &mut ViewContext<Self>) {