mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
feat: filter by full path (prefix + filename) in search view instead of just filename (#2915)
This commit is contained in:
parent
1ed244a0a5
commit
e218f1d8bb
2 changed files with 9 additions and 6 deletions
|
|
@ -186,10 +186,9 @@ impl Files {
|
||||||
}
|
}
|
||||||
|
|
||||||
let (mut hidden, mut items) = if let Some(filter) = &self.filter {
|
let (mut hidden, mut items) = if let Some(filter) = &self.filter {
|
||||||
urns.into_iter().partition(|u| {
|
urns
|
||||||
(!self.show_hidden && u.as_urn().is_hidden())
|
.into_iter()
|
||||||
|| !u.as_urn().name().is_some_and(|s| filter.matches(s))
|
.partition(|u| (!self.show_hidden && u.as_urn().is_hidden()) || !filter.matches(u.as_urn()))
|
||||||
})
|
|
||||||
} else if self.show_hidden {
|
} else if self.show_hidden {
|
||||||
(HashSet::new(), urns)
|
(HashSet::new(), urns)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -267,7 +266,7 @@ impl Files {
|
||||||
let (mut hidden, mut items) = if let Some(filter) = &self.filter {
|
let (mut hidden, mut items) = if let Some(filter) = &self.filter {
|
||||||
files
|
files
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.partition(|(_, f)| (f.is_hidden() && !self.show_hidden) || !filter.matches(f.name()))
|
.partition(|(_, f)| (f.is_hidden() && !self.show_hidden) || !filter.matches(f.urn()))
|
||||||
} else if self.show_hidden {
|
} else if self.show_hidden {
|
||||||
(HashMap::new(), files)
|
(HashMap::new(), files)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -320,7 +319,7 @@ impl Files {
|
||||||
if let Some(filter) = &self.filter {
|
if let Some(filter) = &self.filter {
|
||||||
files
|
files
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.partition(|f| (f.is_hidden() && !self.show_hidden) || !filter.matches(f.name()))
|
.partition(|f| (f.is_hidden() && !self.show_hidden) || !filter.matches(f.urn()))
|
||||||
} else if self.show_hidden {
|
} else if self.show_hidden {
|
||||||
(vec![], files.into_iter().collect())
|
(vec![], files.into_iter().collect())
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,10 @@ impl AsRef<Path> for Urn {
|
||||||
fn as_ref(&self) -> &Path { &self.0 }
|
fn as_ref(&self) -> &Path { &self.0 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl AsRef<OsStr> for Urn {
|
||||||
|
fn as_ref(&self) -> &OsStr { self.0.as_os_str() }
|
||||||
|
}
|
||||||
|
|
||||||
impl ToOwned for Urn {
|
impl ToOwned for Urn {
|
||||||
type Owned = UrnBuf;
|
type Owned = UrnBuf;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue