package main import ( "fmt" "github.com/mgechev/revive/formatter" "github.com/mgechev/revive/linter" "github.com/mgechev/revive/rule" ) func main() { src := ` package p func Test() { if true { return 42; } else { return 23; } } func foobar(a int, b int, c int, d int) { return a + b + c; } ` revive := linter.New(func(file string) ([]byte, error) { return []byte(src), nil }) var result []linter.Rule result = append(result, &rule.LintElseRule{}, &rule.ArgumentsLimitRule{}) var config = linter.RulesConfig{ "argument-limit": []string{"3"}, } failures, err := revive.Lint([]string{"foo.go", "bar.go", "baz.go"}, result, config) if err != nil { panic(err) } var formatter formatter.JSONFormatter output, err := formatter.Format(failures) if err != nil { panic(err) } fmt.Println(output) }