Implement auto-fixing for gofmt,goimports,misspell

Also, add more identifier marking patterns.
This commit is contained in:
Denis Isaev 2019-02-16 21:23:57 +03:00 committed by Isaev Denis
parent 1eb712544c
commit d437ac8629
41 changed files with 1251 additions and 184 deletions

View file

@ -1,6 +1,7 @@
package processors
import (
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/result"
)
@ -8,14 +9,26 @@ type linterToCountMap map[string]int
type fileToLinterToCountMap map[string]linterToCountMap
type MaxPerFileFromLinter struct {
flc fileToLinterToCountMap
flc fileToLinterToCountMap
maxPerFileFromLinterConfig map[string]int
}
var _ Processor = &MaxPerFileFromLinter{}
func NewMaxPerFileFromLinter() *MaxPerFileFromLinter {
func NewMaxPerFileFromLinter(cfg *config.Config) *MaxPerFileFromLinter {
maxPerFileFromLinterConfig := map[string]int{
"typecheck": 3,
}
if !cfg.Issues.NeedFix {
// if we don't fix we do this limiting to not annoy user;
// otherwise we need to fix all issues in the file at once
maxPerFileFromLinterConfig["gofmt"] = 1
maxPerFileFromLinterConfig["goimports"] = 1
}
return &MaxPerFileFromLinter{
flc: fileToLinterToCountMap{},
flc: fileToLinterToCountMap{}, //nolint:goimports,gofmt
maxPerFileFromLinterConfig: maxPerFileFromLinterConfig,
}
}
@ -23,15 +36,9 @@ func (p MaxPerFileFromLinter) Name() string {
return "max_per_file_from_linter"
}
var maxPerFileFromLinterConfig = map[string]int{
"gofmt": 1,
"goimports": 1,
"typecheck": 3,
}
func (p *MaxPerFileFromLinter) Process(issues []result.Issue) ([]result.Issue, error) {
return filterIssues(issues, func(i *result.Issue) bool {
limit := maxPerFileFromLinterConfig[i.FromLinter]
limit := p.maxPerFileFromLinterConfig[i.FromLinter]
if limit == 0 {
return true
}