Change summary
crates/picker/src/highlighted_match_with_paths.rs | 10 +++++++++-
crates/recent_projects/src/recent_projects.rs | 8 ++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
Detailed changes
@@ -2,6 +2,7 @@ use ui::{HighlightedLabel, prelude::*};
#[derive(Clone)]
pub struct HighlightedMatchWithPaths {
+ pub prefix: Option<SharedString>,
pub match_label: HighlightedMatch,
pub paths: Vec<HighlightedMatch>,
}
@@ -67,7 +68,14 @@ impl HighlightedMatchWithPaths {
impl RenderOnce for HighlightedMatchWithPaths {
fn render(mut self, _window: &mut Window, _: &mut App) -> impl IntoElement {
v_flex()
- .child(self.match_label.clone())
+ .child(
+ h_flex().gap_1().child(self.match_label.clone()).when_some(
+ self.prefix.as_ref(),
+ |this, prefix| {
+ this.child(Label::new(format!("({})", prefix)).color(Color::Muted))
+ },
+ ),
+ )
.when(!self.paths.is_empty(), |this| {
self.render_paths_children(this)
})
@@ -471,7 +471,15 @@ impl PickerDelegate for RecentProjectsDelegate {
})
.unzip();
+ let prefix = match &location {
+ SerializedWorkspaceLocation::Remote(RemoteConnectionOptions::Wsl(wsl)) => {
+ Some(SharedString::from(&wsl.distro_name))
+ }
+ _ => None,
+ };
+
let highlighted_match = HighlightedMatchWithPaths {
+ prefix,
match_label: HighlightedMatch::join(match_labels.into_iter().flatten(), ", "),
paths,
};