Skip to content

Commit d286cb9

Browse files
authored
docs: add a section about default exclusions (#3117)
1 parent 2b4c9ab commit d286cb9

File tree

5 files changed

+45
-6
lines changed

5 files changed

+45
-6
lines changed

Diff for: .golangci.reference.yml

+17-2
Original file line numberDiff line numberDiff line change
@@ -2097,7 +2097,7 @@ issues:
20972097
# it can be disabled by `exclude-use-default: false`.
20982098
# To list all excluded by default patterns execute `golangci-lint run --help`
20992099
#
2100-
# Default: []
2100+
# Default: https://golangci-lint.run/usage/false-positives/#default-exclusions
21012101
exclude:
21022102
- abcdef
21032103

@@ -2139,9 +2139,24 @@ issues:
21392139
exclude-case-sensitive: false
21402140

21412141
# The list of ids of default excludes to include or disable.
2142+
# https://golangci-lint.run/usage/false-positives/#default-exclusions
21422143
# Default: []
21432144
include:
2144-
- EXC0002 # disable excluding of issues about comments from golint.
2145+
- EXC0001
2146+
- EXC0002
2147+
- EXC0003
2148+
- EXC0004
2149+
- EXC0005
2150+
- EXC0006
2151+
- EXC0007
2152+
- EXC0008
2153+
- EXC0009
2154+
- EXC0010
2155+
- EXC0011
2156+
- EXC0012
2157+
- EXC0013
2158+
- EXC0014
2159+
- EXC0015
21452160

21462161
# Maximum issues count per one linter.
21472162
# Set to 0 to disable.

Diff for: docs/src/docs/contributing/workflow.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ conduct](https://github.com/golangci/golangci-lint/blob/master/CODE_OF_CONDUCT.m
1414
Prerequisites:
1515

1616
- `make`
17-
- [Go 1.13+](https://golang.org/doc/install)
17+
- [Go](https://golang.org/doc/install)
1818

1919
Fork and clone [golangci-lint](https://github.com/golangci/golangci-lint) repository.
2020

Diff for: docs/src/docs/usage/false-positives.mdx

+7
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,10 @@ func someLegacyFunction() *string {
142142
You can see more examples of using `//nolint` in [our tests](https://github.com/golangci/golangci-lint/tree/master/pkg/result/processors/testdata) for it.
143143

144144
Use `//nolint` instead of `// nolint` because machine-readable comments should have no space by Go convention.
145+
146+
## Default Exclusions
147+
148+
Some exclusions are considered as common, to help golangci-lint users those common exclusions are used as default exclusions.
149+
150+
If you don't want to use it you can set `issues.exclude-use-default` to `false`.
151+
{.DefaultExclusions}

Diff for: pkg/config/issues.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -188,15 +188,16 @@ func GetDefaultExcludePatternsStrings() []string {
188188
return ret
189189
}
190190

191+
// TODO(ldez): this behavior must be changed in v2, because this is confusing.
191192
func GetExcludePatterns(include []string) []ExcludePattern {
192-
includeMap := make(map[string]bool, len(include))
193+
includeMap := make(map[string]struct{}, len(include))
193194
for _, inc := range include {
194-
includeMap[inc] = true
195+
includeMap[inc] = struct{}{}
195196
}
196197

197198
var ret []ExcludePattern
198199
for _, p := range DefaultExcludePatterns {
199-
if !includeMap[p.ID] {
200+
if _, ok := includeMap[p.ID]; !ok {
200201
ret = append(ret, p)
201202
}
202203
}

Diff for: scripts/expand_website_templates/main.go

+16
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,29 @@ func buildTemplateContext() (map[string]string, error) {
212212
"LintersCommandOutputDisabledOnly": string(lintersOutParts[1]),
213213
"EnabledByDefaultLinters": getLintersListMarkdown(true),
214214
"DisabledByDefaultLinters": getLintersListMarkdown(false),
215+
"DefaultExclusions": getDefaultExclusions(),
215216
"ThanksList": getThanksList(),
216217
"RunHelpText": string(shortHelp),
217218
"ChangeLog": string(changeLog),
218219
"LatestVersion": latestVersion,
219220
}, nil
220221
}
221222

223+
func getDefaultExclusions() string {
224+
bufferString := bytes.NewBufferString("")
225+
226+
for _, pattern := range config.DefaultExcludePatterns {
227+
_, _ = fmt.Fprintln(bufferString)
228+
_, _ = fmt.Fprintf(bufferString, "### %s\n", pattern.ID)
229+
_, _ = fmt.Fprintln(bufferString)
230+
_, _ = fmt.Fprintf(bufferString, "- linter: `%s`\n", pattern.Linter)
231+
_, _ = fmt.Fprintf(bufferString, "- pattern: `%s`\n", strings.ReplaceAll(pattern.Pattern, "`", "`"))
232+
_, _ = fmt.Fprintf(bufferString, "- why: %s\n", pattern.Why)
233+
}
234+
235+
return bufferString.String()
236+
}
237+
222238
func getLintersListMarkdown(enabled bool) string {
223239
var neededLcs []*linter.Config
224240
lcs := lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs()

0 commit comments

Comments
 (0)