1
0
mirror of https://github.com/mgechev/revive.git synced 2025-11-23 22:04:49 +02:00

Add default formatter

This commit is contained in:
mgechev
2018-01-27 17:01:18 -08:00
parent 1870854374
commit deb72d6238
12 changed files with 92 additions and 34 deletions

View File

@@ -92,11 +92,12 @@ func (f *File) isMain() bool {
return false
}
func (f *File) lint(rules []Rule, rulesConfig RulesConfig, failures chan Failure) {
func (f *File) lint(rules []Rule, config Config, failures chan Failure) {
rulesConfig := config.Rules
disabledIntervals := f.disabledIntervals(rules)
for _, currentRule := range rules {
config := rulesConfig[currentRule.Name()]
currentFailures := currentRule.Apply(f, config.Arguments)
ruleConfig := rulesConfig[currentRule.Name()]
currentFailures := currentRule.Apply(f, ruleConfig.Arguments)
for idx, failure := range currentFailures {
if failure.RuleName == "" {
failure.RuleName = currentRule.Name()
@@ -108,7 +109,9 @@ func (f *File) lint(rules []Rule, rulesConfig RulesConfig, failures chan Failure
}
currentFailures = f.filterFailures(currentFailures, disabledIntervals)
for _, failure := range currentFailures {
failures <- failure
if failure.Confidence >= config.Confidence {
failures <- failure
}
}
}
}

View File

@@ -3,7 +3,6 @@ package lint
import (
"bufio"
"bytes"
"fmt"
"go/token"
)
@@ -43,13 +42,11 @@ func isGenerated(src []byte) bool {
// Lint lints a set of files with the specified rule.
func (l *Linter) Lint(filenames []string, ruleSet []Rule, config Config) (<-chan Failure, error) {
rulesConfig := config.Rules
failures := make(chan Failure)
pkg := &Package{
fset: token.NewFileSet(),
files: map[string]*File{},
}
var pkgName string
for _, filename := range filenames {
content, err := l.reader(filename)
if err != nil {
@@ -64,17 +61,11 @@ func (l *Linter) Lint(filenames []string, ruleSet []Rule, config Config) (<-chan
return nil, err
}
if pkgName == "" {
pkgName = file.AST.Name.Name
} else if file.AST.Name.Name != pkgName {
return nil, fmt.Errorf("%s is in package %s, not %s", filename, file.AST.Name.Name, pkgName)
}
pkg.files[filename] = file
}
go (func() {
pkg.lint(ruleSet, rulesConfig, failures)
pkg.lint(ruleSet, config, failures)
})()
return failures, nil

View File

@@ -139,7 +139,7 @@ func receiverType(fn *ast.FuncDecl) string {
return "invalid-type"
}
func (p *Package) lint(rules []Rule, config RulesConfig, failures chan Failure) {
func (p *Package) lint(rules []Rule, config Config, failures chan Failure) {
if len(p.files) == 0 {
close(failures)
return