github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/pkg/golinters/sloglint.go (about)

     1  package golinters
     2  
     3  import (
     4  	"go-simpler.org/sloglint"
     5  	"golang.org/x/tools/go/analysis"
     6  
     7  	"github.com/vanstinator/golangci-lint/pkg/config"
     8  	"github.com/vanstinator/golangci-lint/pkg/golinters/goanalysis"
     9  )
    10  
    11  func NewSlogLint(settings *config.SlogLintSettings) *goanalysis.Linter {
    12  	var opts *sloglint.Options
    13  	if settings != nil {
    14  		opts = &sloglint.Options{
    15  			NoMixedArgs:    settings.NoMixedArgs,
    16  			KVOnly:         settings.KVOnly,
    17  			AttrOnly:       settings.AttrOnly,
    18  			ContextOnly:    settings.ContextOnly,
    19  			StaticMsg:      settings.StaticMsg,
    20  			NoRawKeys:      settings.NoRawKeys,
    21  			KeyNamingCase:  settings.KeyNamingCase,
    22  			ArgsOnSepLines: settings.ArgsOnSepLines,
    23  		}
    24  	}
    25  
    26  	a := sloglint.New(opts)
    27  
    28  	return goanalysis.
    29  		NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil).
    30  		WithLoadMode(goanalysis.LoadModeTypesInfo)
    31  }