feat: merge wildcard preloader and previewer rules via append_preloaders and append_previewers

This commit is contained in:
sxyazi 2024-02-09 12:37:46 +08:00
parent 20b6f26247
commit ed46456f8c
No known key found for this signature in database
3 changed files with 12 additions and 2 deletions

View file

@ -35,6 +35,9 @@ impl Pattern {
path.file_name().map_or_else(|| path.to_string_lossy(), |n| n.to_string_lossy())
})
}
#[inline]
pub fn is_wildcard(&self) -> bool { self.inner.as_str() == "*" || self.inner.as_str() == "*/" }
}
impl TryFrom<&str> for Pattern {

View file

@ -52,6 +52,13 @@ impl Default for Plugin {
}
let mut shadow = toml::from_str::<Outer>(&MERGED_YAZI).unwrap().plugin;
if shadow.append_preloaders.iter().any(|r| r.name.as_ref().is_some_and(|p| p.is_wildcard())) {
shadow.preloaders.retain(|r| !r.name.as_ref().is_some_and(|p| p.is_wildcard()));
}
if shadow.append_previewers.iter().any(|r| r.name.as_ref().is_some_and(|p| p.is_wildcard())) {
shadow.previewers.retain(|r| !r.name.as_ref().is_some_and(|p| p.is_wildcard()));
}
Preset::mix(&mut shadow.preloaders, shadow.prepend_preloaders, shadow.append_preloaders);
Preset::mix(&mut shadow.previewers, shadow.prepend_previewers, shadow.append_previewers);

View file

@ -9,8 +9,8 @@ impl Tasks {
return;
}
let len = self.scheduler.running.lock().len();
self.cursor = self.cursor.min(len.saturating_sub(1));
self.summaries = self.paginate();
self.arrow(0);
render!();
}
}