fix(git): keep leading dashes in git grep search patterns (#39404)

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Rafail Giavrimis
2026-09-24 09:46:24 +00:00
committed by GitHub
co-authored by silverwind wxiaoguang
parent 19ae1f842b
commit defc9d5ca3
4 changed files with 35 additions and 5 deletions
+3 -5
View File
@@ -59,16 +59,14 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
cmd.AddOptionValues("--context", strconv.Itoa(opts.ContextLineNumber))
switch opts.GrepMode {
case GrepModeExact:
cmd.AddArguments("--fixed-strings")
cmd.AddOptionValues("-e", strings.TrimLeft(search, "-"))
cmd.AddArguments("--fixed-strings").AddOptionGrepExpr(search)
case GrepModeRegexp:
cmd.AddArguments("--perl-regexp")
cmd.AddOptionValues("-e", strings.TrimLeft(search, "-"))
cmd.AddArguments("--perl-regexp").AddOptionGrepExpr(search)
default: /* words */
words := strings.Fields(search)
cmd.AddArguments("--fixed-strings", "--ignore-case")
for i, word := range words {
cmd.AddOptionValues("-e", strings.TrimLeft(word, "-"))
cmd.AddOptionGrepExpr(word)
if i < len(words)-1 {
cmd.AddOptionValues("--and")
}