summaryrefslogtreecommitdiffstats
path: root/src/commands/filter.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/filter.rs')
-rw-r--r--src/commands/filter.rs14
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();