github.com/elek/golangci-lint@v1.42.2-0.20211208090441-c05b7fcb3a9a/pkg/golinters/tagliatelle.go (about)

     1  package golinters
     2  
     3  import (
     4  	"github.com/ldez/tagliatelle"
     5  	"golang.org/x/tools/go/analysis"
     6  
     7  	"github.com/elek/golangci-lint/pkg/config"
     8  	"github.com/elek/golangci-lint/pkg/golinters/goanalysis"
     9  )
    10  
    11  func NewTagliatelle(settings *config.TagliatelleSettings) *goanalysis.Linter {
    12  	cfg := tagliatelle.Config{
    13  		Rules: map[string]string{
    14  			"json": "camel",
    15  			"yaml": "camel",
    16  		},
    17  	}
    18  
    19  	if settings != nil {
    20  		for k, v := range settings.Case.Rules {
    21  			cfg.Rules[k] = v
    22  		}
    23  		cfg.UseFieldName = settings.Case.UseFieldName
    24  	}
    25  
    26  	a := tagliatelle.New(cfg)
    27  
    28  	return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil).
    29  		WithLoadMode(goanalysis.LoadModeSyntax)
    30  }