From 92adaa449740efa4a8a0f2383d58b1e9106545f2 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez <ldez@users.noreply.github.com> Date: Sun, 14 Mar 2021 14:15:52 +0100 Subject: [PATCH] docs: improve linters page (#1842) --- pkg/golinters/errorlint.go | 2 +- pkg/lint/lintersdb/manager.go | 4 +- scripts/expand_website_templates/main.go | 51 ++++++++++++++++++++---- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/pkg/golinters/errorlint.go b/pkg/golinters/errorlint.go index 5b656d14..1c9ede20 100644 --- a/pkg/golinters/errorlint.go +++ b/pkg/golinters/errorlint.go @@ -19,7 +19,7 @@ func NewErrorLint(cfg *config.ErrorLintSettings) *goanalysis.Linter { return goanalysis.NewLinter( "errorlint", "go-errorlint is a source code linter for Go software "+ - "that can be used to find code that will cause problems"+ + "that can be used to find code that will cause problems "+ "with the error wrapping scheme introduced in Go 1.13.", []*analysis.Analyzer{a}, cfgMap, diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 6dd28f05..b8a84ac9 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -237,6 +237,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/denis-tingajkin/go-header"), linter.NewConfig(golinters.NewGci()). + WithPresets(linter.PresetFormatting). WithLoadForGoAnalysis(). WithAutoFix(). WithURL("https://github.com/daixiang0/gci"), @@ -254,8 +255,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithAutoFix(). WithURL("https://github.com/client9/misspell"), linter.NewConfig(golinters.NewLLL()). - WithPresets(linter.PresetStyle). - WithURL("https://github.com/walle/lll"), + WithPresets(linter.PresetStyle), linter.NewConfig(golinters.NewUnparam()). WithPresets(linter.PresetUnused). WithLoadForGoAnalysis(). diff --git a/scripts/expand_website_templates/main.go b/scripts/expand_website_templates/main.go index 84057b23..8e6f379a 100644 --- a/scripts/expand_website_templates/main.go +++ b/scripts/expand_website_templates/main.go @@ -225,21 +225,56 @@ func getLintersListMarkdown(enabled bool) string { sort.Slice(neededLcs, func(i, j int) bool { return neededLcs[i].Name() < neededLcs[j].Name() }) - var lines []string + + lines := []string{ + "|Name|Description|Presets|AutoFix|Deprecated|", + "|---|---|---|---|---|", + } + for _, lc := range neededLcs { - var link string - if lc.OriginalURL != "" { - link = fmt.Sprintf("[%s](%s)", lc.Name(), lc.OriginalURL) - } else { - link = lc.Name() - } - line := fmt.Sprintf("- %s - %s", link, lc.Linter.Desc()) + line := fmt.Sprintf("|%s|%s|%s|%v|%s|", + getName(lc), + getDesc(lc), + strings.Join(lc.InPresets, ", "), + check(lc.CanAutoFix, "Auto fix supported"), + check(lc.DeprecatedMessage != "", "Deprecated"), + ) lines = append(lines, line) } return strings.Join(lines, "\n") } +func getName(lc *linter.Config) string { + name := lc.Name() + + if lc.OriginalURL != "" { + name = fmt.Sprintf("[%s](%s)", lc.Name(), lc.OriginalURL) + } + + if lc.DeprecatedMessage != "" { + name += ` <span title="deprecated">⚠</span>` + } + + return name +} + +func getDesc(lc *linter.Config) string { + desc := lc.Linter.Desc() + if lc.DeprecatedMessage != "" { + desc = lc.DeprecatedMessage + } + + return strings.ReplaceAll(desc, "\n", "<br/>") +} + +func check(b bool, title string) string { + if b { + return `<span title="` + title + `">✔</span>` + } + return "" +} + func getThanksList() string { var lines []string addedAuthors := map[string]bool{}