diff options
Diffstat (limited to 'src/commands/filter.rs')
-rw-r--r-- | src/commands/filter.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/commands/filter.rs b/src/commands/filter.rs index 2ea818d..fbf1d30 100644 --- a/src/commands/filter.rs +++ b/src/commands/filter.rs @@ -1,15 +1,23 @@ -use crate::context::AppContext; +use crate::context::{AppContext, MatchContext}; use crate::error::JoshutoResult; use super::reload; -pub fn filter(context: &mut AppContext, arg: &str) -> JoshutoResult { +pub fn filter(context: &mut AppContext, pattern: &str) -> JoshutoResult { + let case_sensitivity = context + .config_ref() + .search_options_ref() + .string_case_sensitivity; + + let filter_context = MatchContext::new_string(pattern, case_sensitivity); + let curr_tab = context.tab_context_mut().curr_tab_mut(); let path = curr_tab.cwd().to_path_buf(); + curr_tab .option_mut() .dirlist_options_mut(&path) - .set_filter_string(arg); + .set_filter_context(filter_context); if let Some(list) = curr_tab.curr_list_mut() { list.depreciate(); |