Skip to content

Commit ac76929

Browse files
committed
Restore conversion of raw documentation to plain text and Markdown
This fixes a regression introduced in 8643e6e. Closes: gh-1544
1 parent cc79ad0 commit ac76929

File tree

163 files changed

+186
-189
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+186
-189
lines changed

add-check.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2929
Run: run,
3030
Requires: []*analysis.Analyzer{},
3131
},
32-
Doc: &lint.Documentation{
32+
Doc: &lint.RawDocumentation{
3333
Title: "",
3434
Text: {{.emptyRaw}},
3535
{{- if .quickfix }}

analysis/lint/lint.go

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ type Analyzer struct {
1717
// The analyzer's documentation. Unlike go/analysis.Analyzer.Doc,
1818
// this field is structured, providing access to severity, options
1919
// etc.
20-
Doc *Documentation
20+
Doc *RawDocumentation
2121
Analyzer *analysis.Analyzer
2222
}
2323

2424
func InitializeAnalyzer(a *Analyzer) *Analyzer {
25-
a.Analyzer.Doc = a.Doc.String()
25+
a.Analyzer.Doc = a.Doc.Compile().String()
2626
a.Analyzer.URL = "https://staticcheck.dev/docs/checks/#" + a.Analyzer.Name
2727
a.Analyzer.Requires = append(a.Analyzer.Requires, tokenfile.Analyzer)
2828
return a
@@ -76,26 +76,22 @@ type Documentation struct {
7676
MergeIf MergeStrategy
7777
}
7878

79-
func Markdownify(m map[string]*RawDocumentation) map[string]*Documentation {
80-
out := make(map[string]*Documentation, len(m))
81-
for k, v := range m {
82-
out[k] = &Documentation{
83-
Title: strings.TrimSpace(stripMarkdown(v.Title)),
84-
Text: strings.TrimSpace(stripMarkdown(v.Text)),
85-
86-
TitleMarkdown: strings.TrimSpace(toMarkdown(v.Title)),
87-
TextMarkdown: strings.TrimSpace(toMarkdown(v.Text)),
88-
89-
Before: strings.TrimSpace(v.Before),
90-
After: strings.TrimSpace(v.After),
91-
Since: v.Since,
92-
NonDefault: v.NonDefault,
93-
Options: v.Options,
94-
Severity: v.Severity,
95-
MergeIf: v.MergeIf,
96-
}
79+
func (doc RawDocumentation) Compile() *Documentation {
80+
return &Documentation{
81+
Title: strings.TrimSpace(stripMarkdown(doc.Title)),
82+
Text: strings.TrimSpace(stripMarkdown(doc.Text)),
83+
84+
TitleMarkdown: strings.TrimSpace(toMarkdown(doc.Title)),
85+
TextMarkdown: strings.TrimSpace(toMarkdown(doc.Text)),
86+
87+
Before: strings.TrimSpace(doc.Before),
88+
After: strings.TrimSpace(doc.After),
89+
Since: doc.Since,
90+
NonDefault: doc.NonDefault,
91+
Options: doc.Options,
92+
Severity: doc.Severity,
93+
MergeIf: doc.MergeIf,
9794
}
98-
return out
9995
}
10096

10197
func toMarkdown(s string) string {

lintcmd/cmd.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func (cmd *Command) AddBareAnalyzers(as ...*analysis.Analyzer) {
119119
text = a.Doc[idx+2:]
120120
}
121121

122-
doc := &lint.Documentation{
122+
doc := &lint.RawDocumentation{
123123
Title: title,
124124
Text: text,
125125
Severity: lint.SeverityWarning,
@@ -330,7 +330,7 @@ func (cmd *Command) listChecks() int {
330330
for _, c := range cs {
331331
var title string
332332
if c.Doc != nil {
333-
title = c.Doc.Title
333+
title = c.Doc.Compile().Title
334334
}
335335
fmt.Printf("%s %s\n", c.Analyzer.Name, title)
336336
}
@@ -353,7 +353,7 @@ func (cmd *Command) explain() int {
353353
fmt.Fprintln(os.Stderr, explain, "has no documentation")
354354
return 1
355355
}
356-
fmt.Println(check.Doc)
356+
fmt.Println(check.Doc.Compile())
357357
fmt.Println("Online documentation\n https://staticcheck.dev/docs/checks#" + check.Analyzer.Name)
358358
return 0
359359
}

lintcmd/sarif.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,27 +251,28 @@ func (o *sarifFormatter) Format(checks []*lint.Analyzer, diagnostics []diagnosti
251251
}},
252252
}
253253
for _, c := range checks {
254+
doc := c.Doc.Compile()
254255
run.Tool.Driver.Rules = append(run.Tool.Driver.Rules,
255256
sarif.ReportingDescriptor{
256257
// We don't set Name, as Name and ID mustn't be identical.
257258
ID: c.Analyzer.Name,
258259
ShortDescription: sarif.Message{
259-
Text: c.Doc.Title,
260-
Markdown: c.Doc.TitleMarkdown,
260+
Text: doc.Title,
261+
Markdown: doc.TitleMarkdown,
261262
},
262263
HelpURI: "https://staticcheck.dev/docs/checks#" + c.Analyzer.Name,
263264
// We use our markdown as the plain text version, too. We
264265
// use very little markdown, primarily quotations,
265266
// indented code blocks and backticks. All of these are
266267
// fine as plain text, too.
267268
Help: sarif.Message{
268-
Text: sarifFormatText(c.Doc.Format(false)),
269-
Markdown: sarifFormatText(c.Doc.FormatMarkdown(false)),
269+
Text: sarifFormatText(doc.Format(false)),
270+
Markdown: sarifFormatText(doc.FormatMarkdown(false)),
270271
},
271272
DefaultConfiguration: sarif.ReportingConfiguration{
272273
// TODO(dh): we could figure out which checks were disabled globally
273274
Enabled: true,
274-
Level: sarifLevel(c.Doc.Severity),
275+
Level: sarifLevel(doc.Severity),
275276
},
276277
})
277278
}

quickfix/qf1001/qf1001.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2121
Run: CheckDeMorgan,
2222
Requires: []*analysis.Analyzer{inspect.Analyzer},
2323
},
24-
Doc: &lint.Documentation{
24+
Doc: &lint.RawDocumentation{
2525
Title: "Apply De Morgan's law",
2626
Since: "2021.1",
2727
Severity: lint.SeverityHint,

quickfix/qf1002/qf1002.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2222
Run: run,
2323
Requires: []*analysis.Analyzer{inspect.Analyzer},
2424
},
25-
Doc: &lint.Documentation{
25+
Doc: &lint.RawDocumentation{
2626
Title: "Convert untagged switch to tagged switch",
2727
Text: `
2828
An untagged switch that compares a single variable against a series of

quickfix/qf1003/qf1003.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2222
Run: run,
2323
Requires: []*analysis.Analyzer{inspect.Analyzer},
2424
},
25-
Doc: &lint.Documentation{
25+
Doc: &lint.RawDocumentation{
2626
Title: "Convert if/else-if chain to tagged switch",
2727
Text: `
2828
A series of if/else-if checks comparing the same variable against

quickfix/qf1004/qf1004.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2222
Run: run,
2323
Requires: []*analysis.Analyzer{inspect.Analyzer},
2424
},
25-
Doc: &lint.Documentation{
25+
Doc: &lint.RawDocumentation{
2626
Title: `Use \'strings.ReplaceAll\' instead of \'strings.Replace\' with \'n == -1\'`,
2727
Since: "2021.1",
2828
Severity: lint.SeverityHint,

quickfix/qf1005/qf1005.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2323
Run: run,
2424
Requires: []*analysis.Analyzer{inspect.Analyzer},
2525
},
26-
Doc: &lint.Documentation{
26+
Doc: &lint.RawDocumentation{
2727
Title: `Expand call to \'math.Pow\'`,
2828
Text: `Some uses of \'math.Pow\' can be simplified to basic multiplication.`,
2929
Before: `math.Pow(x, 2)`,

quickfix/qf1006/qf1006.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{
2121
Run: run,
2222
Requires: []*analysis.Analyzer{inspect.Analyzer},
2323
},
24-
Doc: &lint.Documentation{
24+
Doc: &lint.RawDocumentation{
2525
Title: `Lift \'if\'+\'break\' into loop condition`,
2626
Before: `
2727
for {

0 commit comments

Comments
 (0)