diff --git a/crates/bashkit/src/builtins/rg/mod.rs b/crates/bashkit/src/builtins/rg/mod.rs
index bcb10c8f5..002539293 100644
--- a/crates/bashkit/src/builtins/rg/mod.rs
+++ b/crates/bashkit/src/builtins/rg/mod.rs
@@ -79,8 +79,10 @@ struct RgOptions {
type_list: bool,
no_ignore: bool,
no_ignore_dot: bool,
+ no_ignore_files: bool,
no_ignore_vcs: bool,
require_git: bool,
+ ignore_file_case_insensitive: bool,
messages: bool,
context_separator: String,
field_match_separator: String,
@@ -203,8 +205,10 @@ impl RgOptions {
type_list: false,
no_ignore: false,
no_ignore_dot: false,
+ no_ignore_files: false,
no_ignore_vcs: false,
require_git: true,
+ ignore_file_case_insensitive: false,
messages: true,
context_separator: "--".to_string(),
field_match_separator: ":".to_string(),
@@ -425,8 +429,16 @@ impl RgOptions {
opts.no_ignore_vcs = true;
} else if p.flag("--no-ignore-dot") {
opts.no_ignore_dot = true;
+ } else if p.flag("--no-ignore-files") {
+ opts.no_ignore_files = true;
+ } else if p.flag("--ignore-files") {
+ opts.no_ignore_files = false;
} else if p.flag("--no-ignore-vcs") {
opts.no_ignore_vcs = true;
+ } else if p.flag("--ignore-file-case-insensitive") {
+ opts.ignore_file_case_insensitive = true;
+ } else if p.flag("--no-ignore-file-case-insensitive") {
+ opts.ignore_file_case_insensitive = false;
} else if p.flag("--no-require-git") {
opts.require_git = false;
} else if p.flag("--require-git") {
@@ -831,7 +843,7 @@ impl RgOptions {
}
fn uses_ignore_files(&self) -> bool {
- !self.no_ignore || !self.ignore_file_paths.is_empty()
+ !self.no_ignore || (!self.no_ignore_files && !self.ignore_file_paths.is_empty())
}
fn set_glob_case_insensitive(&mut self, case_insensitive: bool) -> Result<()> {
@@ -855,7 +867,7 @@ impl RgOptions {
}
impl RgIgnoreRule {
- fn parse(line: &str, base: &Path) -> Result