1package golinters
2
3import (
4	"github.com/esimonov/ifshort/pkg/analyzer"
5	"golang.org/x/tools/go/analysis"
6
7	"github.com/golangci/golangci-lint/pkg/config"
8	"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
9)
10
11func NewIfshort(settings *config.IfshortSettings) *goanalysis.Linter {
12	var cfg map[string]map[string]interface{}
13	if settings != nil {
14		cfg = map[string]map[string]interface{}{
15			analyzer.Analyzer.Name: {
16				"max-decl-lines": settings.MaxDeclLines,
17				"max-decl-chars": settings.MaxDeclChars,
18			},
19		}
20	}
21
22	return goanalysis.NewLinter(
23		"ifshort",
24		"Checks that your code uses short syntax for if-statements whenever possible",
25		[]*analysis.Analyzer{analyzer.Analyzer},
26		cfg,
27	).WithLoadMode(goanalysis.LoadModeSyntax)
28}
29