golangci-lint/pkg/result/processors/exclude_processor.go

45 lines
884 B
Go

package processors
import (
"regexp"
"github.com/golangci/golangci-lint/pkg/result"
)
type ExcludeProcessor struct {
pattern *regexp.Regexp
}
var _ Processor = ExcludeProcessor{}
func NewExcludeProcessor(pattern string) *ExcludeProcessor {
return &ExcludeProcessor{
pattern: regexp.MustCompile(pattern),
}
}
func (p ExcludeProcessor) Name() string {
return "exclude"
}
func (p ExcludeProcessor) processResult(res result.Result) result.Result {
newRes := res
newRes.Issues = []result.Issue{}
for _, i := range res.Issues {
if !p.pattern.MatchString(i.Text) {
newRes.Issues = append(newRes.Issues, i)
}
}
return newRes
}
func (p ExcludeProcessor) Process(results []result.Result) ([]result.Result, error) {
retResults := []result.Result{}
for _, res := range results {
retResults = append(retResults, p.processResult(res))
}
return retResults, nil
}