Add WSL distro labels to open recent (#40375)

Closes #40358 

Release Notes:

- Windows: improved recently open folders in WSL
This commit is contained in:
localcc 2025-10-16 19:07:36 +02:00 committed by GitHub
parent 3da4cddce2
commit c5a67d85ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 1 deletions

View file

@ -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)
})

View file

@ -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,
};