aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeoi Hung Kin2021-09-24 01:27:16 +0000
committerGitHub2021-09-24 01:27:16 +0000
commit432bec10eddb3f51f3a6e32aedbfd566d74cde75 (patch)
tree9ac9502d21fb8c84adc28df261d00ccf475a0d47
parent9456d5c1a258e71bbb7e391dec8c3efb819e2d7d (diff)
allow smart case in global search (#781)
-rw-r--r--helix-term/src/commands.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 5005962f..ac93b5d0 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -43,7 +43,7 @@ use std::{
use once_cell::sync::Lazy;
use serde::de::{self, Deserialize, Deserializer};
-use grep_regex::RegexMatcher;
+use grep_regex::RegexMatcherBuilder;
use grep_searcher::{sinks, BinaryDetection, SearcherBuilder};
use ignore::{DirEntry, WalkBuilder, WalkState};
use tokio_stream::wrappers::UnboundedReceiverStream;
@@ -1226,6 +1226,7 @@ fn search_selection(cx: &mut Context) {
fn global_search(cx: &mut Context) {
let (all_matches_sx, all_matches_rx) =
tokio::sync::mpsc::unbounded_channel::<(usize, PathBuf)>();
+ let smart_case = cx.editor.config.smart_case;
let prompt = ui::regex_prompt(
cx,
"global search:".into(),
@@ -1234,7 +1235,11 @@ fn global_search(cx: &mut Context) {
if event != PromptEvent::Validate {
return;
}
- if let Ok(matcher) = RegexMatcher::new_line_matcher(regex.as_str()) {
+
+ if let Ok(matcher) = RegexMatcherBuilder::new()
+ .case_smart(smart_case)
+ .build(regex.as_str())
+ {
let searcher = SearcherBuilder::new()
.binary_detection(BinaryDetection::quit(b'\x00'))
.build();