github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/gosmopolitan.go (about) 1 package golinters 2 3 import ( 4 "strings" 5 6 "github.com/xen0n/gosmopolitan" 7 "golang.org/x/tools/go/analysis" 8 9 "github.com/chenfeining/golangci-lint/pkg/config" 10 "github.com/chenfeining/golangci-lint/pkg/golinters/goanalysis" 11 ) 12 13 func NewGosmopolitan(s *config.GosmopolitanSettings) *goanalysis.Linter { 14 a := gosmopolitan.NewAnalyzer() 15 16 cfgMap := map[string]map[string]any{} 17 if s != nil { 18 cfgMap[a.Name] = map[string]any{ 19 "allowtimelocal": s.AllowTimeLocal, 20 "escapehatches": strings.Join(s.EscapeHatches, ","), 21 "lookattests": !s.IgnoreTests, 22 "watchforscripts": strings.Join(s.WatchForScripts, ","), 23 } 24 } 25 26 return goanalysis.NewLinter( 27 a.Name, 28 a.Doc, 29 []*analysis.Analyzer{a}, 30 cfgMap, 31 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 32 }