mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-27 12:53:57 +01:00
Merge pull request 'git-grep: refactor defaults' (#4964) from yoctozepto/git-grep-refactor-defaults into forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4964 Reviewed-by: Shiny Nematoda <snematoda@noreply.codeberg.org>
This commit is contained in:
commit
0c70e11df8
1 changed files with 9 additions and 3 deletions
|
@ -36,6 +36,12 @@ type GrepOptions struct {
|
|||
PathSpec []setting.Glob
|
||||
}
|
||||
|
||||
func (opts *GrepOptions) ensureDefaults() {
|
||||
opts.RefName = cmp.Or(opts.RefName, "HEAD")
|
||||
opts.MaxResultLimit = cmp.Or(opts.MaxResultLimit, 50)
|
||||
opts.MatchesPerFile = cmp.Or(opts.MatchesPerFile, 20)
|
||||
}
|
||||
|
||||
func hasPrefixFold(s, t string) bool {
|
||||
if len(s) < len(t) {
|
||||
return false
|
||||
|
@ -53,6 +59,8 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
|
|||
_ = stdoutWriter.Close()
|
||||
}()
|
||||
|
||||
opts.ensureDefaults()
|
||||
|
||||
/*
|
||||
The output is like this ("^@" means \x00; the first number denotes the line,
|
||||
the second number denotes the column of the first match in line):
|
||||
|
@ -69,7 +77,6 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
|
|||
"-I", "--null", "--break", "--heading", "--column",
|
||||
"--fixed-strings", "--line-number", "--ignore-case", "--full-name")
|
||||
cmd.AddOptionValues("--context", fmt.Sprint(opts.ContextLineNumber))
|
||||
opts.MatchesPerFile = cmp.Or(opts.MatchesPerFile, 20)
|
||||
cmd.AddOptionValues("--max-count", fmt.Sprint(opts.MatchesPerFile))
|
||||
words := []string{search}
|
||||
if opts.IsFuzzy {
|
||||
|
@ -90,9 +97,8 @@ func GrepSearch(ctx context.Context, repo *Repository, search string, opts GrepO
|
|||
for _, expr := range setting.Indexer.ExcludePatterns {
|
||||
files = append(files, ":^"+expr.Pattern())
|
||||
}
|
||||
cmd.AddDynamicArguments(cmp.Or(opts.RefName, "HEAD")).AddDashesAndList(files...)
|
||||
cmd.AddDynamicArguments(opts.RefName).AddDashesAndList(files...)
|
||||
|
||||
opts.MaxResultLimit = cmp.Or(opts.MaxResultLimit, 50)
|
||||
stderr := bytes.Buffer{}
|
||||
err = cmd.Run(&RunOpts{
|
||||
Timeout: time.Duration(setting.Git.Timeout.Grep) * time.Second,
|
||||
|
|
Loading…
Reference in a new issue