mirror of
https://github.com/bobwen-dev/hunter
synced 2025-04-12 00:55:41 +02:00
search in reverse direction
This commit is contained in:
parent
1a819f2f28
commit
4d49575096
@ -60,6 +60,7 @@ impl Listable for ListView<Files> {
|
|||||||
},
|
},
|
||||||
Key::Char('S') => { self.search_file().log(); }
|
Key::Char('S') => { self.search_file().log(); }
|
||||||
Key::Alt('s') => { self.search_next().log(); }
|
Key::Alt('s') => { self.search_next().log(); }
|
||||||
|
Key::Alt('S') => { self.search_prev().log(); }
|
||||||
Key::Ctrl('f') => { self.filter().log(); }
|
Key::Ctrl('f') => { self.filter().log(); }
|
||||||
Key::Left => self.goto_grand_parent()?,
|
Key::Left => self.goto_grand_parent()?,
|
||||||
Key::Right => self.goto_selected()?,
|
Key::Right => self.goto_selected()?,
|
||||||
@ -372,6 +373,40 @@ impl ListView<Files>
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn search_prev(&mut self) -> HResult<()> {
|
||||||
|
if self.searching.is_none() {
|
||||||
|
self.show_status("No search pattern set!").log();
|
||||||
|
}
|
||||||
|
let prev_search = self.searching.clone()?;
|
||||||
|
|
||||||
|
|
||||||
|
self.reverse_sort();
|
||||||
|
|
||||||
|
let selection = self.get_selection();
|
||||||
|
|
||||||
|
let file = self.content
|
||||||
|
.files
|
||||||
|
.iter()
|
||||||
|
.skip(selection+1)
|
||||||
|
.find(|file| {
|
||||||
|
if file.name.to_lowercase().contains(&prev_search) {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}).cloned();
|
||||||
|
|
||||||
|
self.reverse_sort();
|
||||||
|
|
||||||
|
if let Some(file) = file {
|
||||||
|
let file = file.clone();
|
||||||
|
self.select_file(&file);
|
||||||
|
} else {
|
||||||
|
self.show_status("Reached last search result!").log();
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn filter(&mut self) -> HResult<()> {
|
fn filter(&mut self) -> HResult<()> {
|
||||||
let filter = self.minibuffer("filter").ok();
|
let filter = self.minibuffer("filter").ok();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user