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

     1  package golinters
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/Abirdcfly/dupword"
     7  	"golang.org/x/tools/go/analysis"
     8  
     9  	"github.com/vanstinator/golangci-lint/pkg/config"
    10  	"github.com/vanstinator/golangci-lint/pkg/golinters/goanalysis"
    11  )
    12  
    13  func NewDupWord(setting *config.DupWordSettings) *goanalysis.Linter {
    14  	a := dupword.NewAnalyzer()
    15  
    16  	cfgMap := map[string]map[string]any{}
    17  	if setting != nil {
    18  		cfgMap[a.Name] = map[string]any{
    19  			"keyword": strings.Join(setting.Keywords, ","),
    20  			"ignore":  strings.Join(setting.Ignore, ","),
    21  		}
    22  	}
    23  
    24  	return goanalysis.NewLinter(
    25  		a.Name,
    26  		"checks for duplicate words in the source code",
    27  		[]*analysis.Analyzer{a},
    28  		cfgMap,
    29  	).WithLoadMode(goanalysis.LoadModeSyntax)
    30  }