diff --git a/crates/recent_projects/src/recent_projects.rs b/crates/recent_projects/src/recent_projects.rs index 2b3292288ae866036db70e2b832af9fc06d443e0..a0753d9549a292f274a84acb5e08f5ac7ab5c09f 100644 --- a/crates/recent_projects/src/recent_projects.rs +++ b/crates/recent_projects/src/recent_projects.rs @@ -328,7 +328,12 @@ impl PickerDelegate for RecentProjectsDelegate { &Default::default(), cx.background_executor().clone(), )); - self.matches.sort_unstable_by_key(|m| m.candidate_id); + self.matches.sort_unstable_by(|a, b| { + b.score + .partial_cmp(&a.score) // Descending score + .unwrap_or(std::cmp::Ordering::Equal) + .then_with(|| a.candidate_id.cmp(&b.candidate_id)) // Ascending candidate_id for ties + }); if self.reset_selected_match_index { self.selected_match_index = self