summaryrefslogtreecommitdiffstats
path: root/src/commands/search_fzf.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/search_fzf.rs')
-rw-r--r--src/commands/search_fzf.rs26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/commands/search_fzf.rs b/src/commands/search_fzf.rs
index f845c60..9d86b7b 100644
--- a/src/commands/search_fzf.rs
+++ b/src/commands/search_fzf.rs
@@ -3,6 +3,7 @@ use std::io::Write;
use std::process::{Command, Stdio};
use crate::commands::cursor_move;
+use crate::config::option::CaseSensitivity;
use crate::context::AppContext;
use crate::error::{JoshutoError, JoshutoErrorKind, JoshutoResult};
use crate::ui::AppBackend;
@@ -31,11 +32,26 @@ pub fn search_fzf(context: &mut AppContext, backend: &mut AppBackend) -> Joshuto
backend.terminal_drop();
- let mut fzf = match Command::new("fzf")
- .stdin(Stdio::piped())
- .stdout(Stdio::piped())
- .spawn()
- {
+ let mut cmd = Command::new("fzf");
+ cmd.stdin(Stdio::piped()).stdout(Stdio::piped());
+
+ let case_sensitivity = context
+ .config_ref()
+ .search_options_ref()
+ .fzf_case_sensitivity;
+
+ match case_sensitivity {
+ CaseSensitivity::Insensitive => {
+ cmd.arg("-i");
+ }
+ CaseSensitivity::Sensitive => {
+ cmd.arg("+i");
+ }
+ // fzf uses smart-case match by default
+ CaseSensitivity::Smart => {}
+ }
+
+ let mut fzf = match cmd.spawn() {
Ok(child) => child,
Err(e) => {
backend.terminal_restore()?;