Skip to content

Commit

Permalink
fix(codeclimate-printer): display suggested edit in output
Browse files Browse the repository at this point in the history
  • Loading branch information
ifaisalalam committed Jul 29, 2021
1 parent abc3f26 commit d7c4b11
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions pkg/printers/codeclimate.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"fmt"
"strings"

"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
Expand All @@ -13,6 +14,7 @@ import (
// It is just enough to support GitLab CI Code Quality - https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html
type CodeClimateIssue struct {
Description string `json:"description"`
Content string `json:"content,omitempty"`
Severity string `json:"severity,omitempty"`
Fingerprint string `json:"fingerprint"`
Location struct {
Expand Down Expand Up @@ -40,6 +42,11 @@ func (p CodeClimate) Print(ctx context.Context, issues []result.Issue) error {
codeClimateIssue.Location.Lines.Begin = issue.Pos.Line
codeClimateIssue.Fingerprint = issue.Fingerprint()

content := p.buildContentString(&issues[i])
if content != "" {
codeClimateIssue.Content = content
}

if issue.Severity != "" {
codeClimateIssue.Severity = issue.Severity
}
Expand All @@ -55,3 +62,25 @@ func (p CodeClimate) Print(ctx context.Context, issues []result.Issue) error {
fmt.Fprint(logutils.StdOut, string(outputJSON))
return nil
}

func (p CodeClimate) buildContentString(issue *result.Issue) string {
if len(issue.SuggestedFixes) == 0 {
return ""
}

var text string
for _, fix := range issue.SuggestedFixes {
text += fmt.Sprintf("%s\n", strings.TrimSpace(fix.Message))
var suggestedEdits []string
for _, textEdit := range fix.TextEdits {
suggestedEdits = append(suggestedEdits, strings.TrimSpace(textEdit.NewText))
}
if len(suggestedEdits) > 0 {
text += "```\n"
text += strings.Join(suggestedEdits, "\n") + "\n"
text += "```\n"
}
}

return text
}

0 comments on commit d7c4b11

Please sign in to comment.