Skip to content

Commit d19f4ec

Browse files
author
Sergey Vilgelm
committed
Printing out SuggestedFixes
1 parent b77118f commit d19f4ec

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

pkg/golinters/goanalysis/linter.go

+16-4
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,23 @@ func buildIssues(diags []Diagnostic, linterNameBuilder func(diag *Diagnostic) st
228228
text = fmt.Sprintf("%s: %s", diag.Analyzer.Name, diag.Message)
229229
}
230230

231+
var suggestedFixes string
232+
if len(diag.SuggestedFixes) > 0 {
233+
elems := []string{}
234+
for _, fix := range diag.SuggestedFixes {
235+
for _, text := range fix.TextEdits {
236+
elems = append(elems, string(text.NewText))
237+
}
238+
}
239+
suggestedFixes = strings.Join(elems, "\n")
240+
}
241+
231242
issues = append(issues, result.Issue{
232-
FromLinter: linterName,
233-
Text: text,
234-
Pos: diag.Position,
235-
Pkg: diag.Pkg,
243+
FromLinter: linterName,
244+
Text: text,
245+
SuggestedFixes: suggestedFixes,
246+
Pos: diag.Position,
247+
Pkg: diag.Pkg,
236248
})
237249

238250
if len(diag.Related) > 0 {

pkg/printers/text.go

+8
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func (p *Text) Print(ctx context.Context, issues []result.Issue) error {
4747

4848
p.printSourceCode(&issues[i])
4949
p.printUnderLinePointer(&issues[i])
50+
p.printSuggestedFixes(&issues[i])
5051
}
5152

5253
return nil
@@ -64,6 +65,13 @@ func (p Text) printIssue(i *result.Issue) {
6465
fmt.Fprintf(logutils.StdOut, "%s: %s\n", pos, text)
6566
}
6667

68+
func (p Text) printSuggestedFixes(i *result.Issue) {
69+
suggestedFixes := strings.TrimSpace(i.SuggestedFixes)
70+
if suggestedFixes != "" {
71+
fmt.Fprintln(logutils.StdOut, suggestedFixes)
72+
}
73+
}
74+
6775
func (p Text) printSourceCode(i *result.Issue) {
6876
for _, line := range i.SourceLines {
6977
fmt.Fprintln(logutils.StdOut, line)

pkg/result/issue.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ type InlineFix struct {
2525
}
2626

2727
type Issue struct {
28-
FromLinter string
29-
Text string
28+
FromLinter string
29+
Text string
30+
SuggestedFixes string
3031

3132
Severity string
3233

0 commit comments

Comments
 (0)