github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/pkg/golinters/reassign.go (about) 1 package golinters 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/curioswitch/go-reassign" 8 "golang.org/x/tools/go/analysis" 9 10 "github.com/vanstinator/golangci-lint/pkg/config" 11 "github.com/vanstinator/golangci-lint/pkg/golinters/goanalysis" 12 ) 13 14 func NewReassign(settings *config.ReassignSettings) *goanalysis.Linter { 15 a := reassign.NewAnalyzer() 16 17 var cfg map[string]map[string]any 18 if settings != nil && len(settings.Patterns) > 0 { 19 cfg = map[string]map[string]any{ 20 a.Name: { 21 reassign.FlagPattern: fmt.Sprintf("^(%s)$", strings.Join(settings.Patterns, "|")), 22 }, 23 } 24 } 25 26 return goanalysis.NewLinter( 27 a.Name, 28 a.Doc, 29 []*analysis.Analyzer{a}, 30 cfg, 31 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 32 }