github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/musttag.go (about) 1 package golinters 2 3 import ( 4 "go.tmz.dev/musttag" 5 "golang.org/x/tools/go/analysis" 6 7 "github.com/chenfeining/golangci-lint/pkg/config" 8 "github.com/chenfeining/golangci-lint/pkg/golinters/goanalysis" 9 ) 10 11 func NewMustTag(setting *config.MustTagSettings) *goanalysis.Linter { 12 var funcs []musttag.Func 13 14 if setting != nil { 15 for _, fn := range setting.Functions { 16 funcs = append(funcs, musttag.Func{ 17 Name: fn.Name, 18 Tag: fn.Tag, 19 ArgPos: fn.ArgPos, 20 }) 21 } 22 } 23 24 a := musttag.New(funcs...) 25 26 return goanalysis. 27 NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil). 28 WithLoadMode(goanalysis.LoadModeTypesInfo) 29 }