revive: improve 'exported' rule output. (#1994)

This commit is contained in:
Ludovic Fernandez 2021-05-20 01:17:02 +02:00 committed by GitHub
parent f900232b9b
commit 62668d41d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -112,21 +112,7 @@ func NewRevive(cfg *config.ReviveSettings) *goanalysis.Linter {
}
for i := range results {
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Severity: string(results[i].Severity),
Text: fmt.Sprintf("%s: %s", results[i].RuleName, results[i].Failure.Failure),
Pos: token.Position{
Filename: results[i].Position.Start.Filename,
Line: results[i].Position.Start.Line,
Offset: results[i].Position.Start.Offset,
Column: results[i].Position.Start.Column,
},
LineRange: &result.Range{
From: results[i].Position.Start.Line,
To: results[i].Position.End.Line,
},
FromLinter: reviveName,
}, pass))
issues = append(issues, reviveToIssue(pass, &results[i]))
}
return nil, nil
@ -136,6 +122,29 @@ func NewRevive(cfg *config.ReviveSettings) *goanalysis.Linter {
}).WithLoadMode(goanalysis.LoadModeSyntax)
}
func reviveToIssue(pass *analysis.Pass, object *jsonObject) goanalysis.Issue {
lineRangeTo := object.Position.End.Line
if object.RuleName == (&rule.ExportedRule{}).Name() {
lineRangeTo = object.Position.Start.Line
}
return goanalysis.NewIssue(&result.Issue{
Severity: string(object.Severity),
Text: fmt.Sprintf("%s: %s", object.RuleName, object.Failure.Failure),
Pos: token.Position{
Filename: object.Position.Start.Filename,
Line: object.Position.Start.Line,
Offset: object.Position.Start.Offset,
Column: object.Position.Start.Column,
},
LineRange: &result.Range{
From: object.Position.Start.Line,
To: lineRangeTo,
},
FromLinter: reviveName,
}, pass)
}
// This function mimics the GetConfig function of revive.
// This allow to get default values and right types.
// https://github.com/golangci/golangci-lint/issues/1745