diff --git a/Cargo.lock b/Cargo.lock index 02b27566e4..e24d7a9e60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5014,6 +5014,7 @@ dependencies = [ "settings", "smol", "text", + "util", "workspace", ] diff --git a/crates/recent_projects/Cargo.toml b/crates/recent_projects/Cargo.toml index e8d851fa08..c056b68852 100644 --- a/crates/recent_projects/Cargo.toml +++ b/crates/recent_projects/Cargo.toml @@ -21,3 +21,4 @@ workspace = { path = "../workspace" } ordered-float = "2.1.1" postage = { workspace = true } smol = "1.2" +util = { path = "../util"} diff --git a/crates/recent_projects/src/highlighted_workspace_location.rs b/crates/recent_projects/src/highlighted_workspace_location.rs index 8e75b291a0..b414b84f4a 100644 --- a/crates/recent_projects/src/highlighted_workspace_location.rs +++ b/crates/recent_projects/src/highlighted_workspace_location.rs @@ -1,4 +1,4 @@ -use std::path::Path; +use std::path::{Path, PathBuf}; use fuzzy::StringMatch; use gpui::{ @@ -61,8 +61,16 @@ impl HighlightedWorkspaceLocation { .paths() .iter() .map(|path| { + let mut full_path = PathBuf::new(); + if path.starts_with(util::paths::HOME.as_path()) { + full_path.push("~"); + full_path.push(path.strip_prefix(util::paths::HOME.as_path()).unwrap()); + } else { + full_path.push(path) + } + let highlighted_text = Self::highlights_for_path( - path.as_ref(), + full_path.as_ref(), &string_match.positions, path_start_offset, );