recent_projects: Perform fuzzy search on compacted paths.

Match highlighting for recent projects picker was off, because the path representation was compacted - for a path '/Users/hiro/Projects/zed' we compact it to use a tilde instead of home directory. However, the highlight positions were always calculated for a full path, leading to a mismatch in highlights.
This commit addresses this by running fuzzy search on compacted paths instead of using long paths. This might lead to a slight performance hit, but given that recent projects modal shouldn't have that many items in the first place, it should be okay.

Z-2546
This commit is contained in:
Piotr Osiewicz 2023-07-11 15:23:17 +02:00
parent 6739c31594
commit f164eb5289

View File

@ -134,7 +134,10 @@ impl PickerDelegate for RecentProjectsDelegate {
let combined_string = location
.paths()
.iter()
.map(|path| path.to_string_lossy().to_owned())
.map(|path| {
let compact = util::paths::compact(&path);
compact.to_string_lossy().into_owned()
})
.collect::<Vec<_>>()
.join("");
StringMatchCandidate::new(id, combined_string)