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