mirror of https://github.com/go-gitea/gitea
Improve grep search (#30843)
Reduce the context line number to 1, make "git grep" search respect the include/exclude patter, and fix #30785pull/30812/head^2
parent
9f0ef3621a
commit
0f3e717a1a
@ -0,0 +1,32 @@ |
||||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package setting |
||||
|
||||
import "github.com/gobwas/glob" |
||||
|
||||
type GlobMatcher struct { |
||||
compiledGlob glob.Glob |
||||
patternString string |
||||
} |
||||
|
||||
var _ glob.Glob = (*GlobMatcher)(nil) |
||||
|
||||
func (g *GlobMatcher) Match(s string) bool { |
||||
return g.compiledGlob.Match(s) |
||||
} |
||||
|
||||
func (g *GlobMatcher) PatternString() string { |
||||
return g.patternString |
||||
} |
||||
|
||||
func GlobMatcherCompile(pattern string, separators ...rune) (*GlobMatcher, error) { |
||||
g, err := glob.Compile(pattern, separators...) |
||||
if err != nil { |
||||
return nil, err |
||||
} |
||||
return &GlobMatcher{ |
||||
compiledGlob: g, |
||||
patternString: pattern, |
||||
}, nil |
||||
} |
@ -0,0 +1,19 @@ |
||||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package repo |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
"code.gitea.io/gitea/modules/setting" |
||||
"code.gitea.io/gitea/modules/test" |
||||
|
||||
"github.com/stretchr/testify/assert" |
||||
) |
||||
|
||||
func TestIndexSettingToGitGrepPathspecList(t *testing.T) { |
||||
defer test.MockVariableValue(&setting.Indexer.IncludePatterns, setting.IndexerGlobFromString("a"))() |
||||
defer test.MockVariableValue(&setting.Indexer.ExcludePatterns, setting.IndexerGlobFromString("b"))() |
||||
assert.Equal(t, []string{":(glob)a", ":(glob,exclude)b"}, indexSettingToGitGrepPathspecList()) |
||||
} |
Loading…
Reference in new issue