Replace home directory with the tilde substitution

Petros Amoiridis created

Change summary

Cargo.lock                                                   |  1 
crates/recent_projects/Cargo.toml                            |  1 
crates/recent_projects/src/highlighted_workspace_location.rs | 12 +++++-
3 files changed, 12 insertions(+), 2 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -5014,6 +5014,7 @@ dependencies = [
  "settings",
  "smol",
  "text",
+ "util",
  "workspace",
 ]
 

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"}

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,
                 );