Skip to content

Commit 4068d7f

Browse files
ldezSeigeC
authored andcommitted
docs: add a section about default exclusions (golangci#3117)
1 parent 3ae02e0 commit 4068d7f

File tree

5 files changed

+45
-6
lines changed

5 files changed

+45
-6
lines changed

.golangci.reference.yml

+17-2
Original file line numberDiff line numberDiff line change
@@ -2122,7 +2122,7 @@ issues:
21222122
# it can be disabled by `exclude-use-default: false`.
21232123
# To list all excluded by default patterns execute `golangci-lint run --help`
21242124
#
2125-
# Default: []
2125+
# Default: https://golangci-lint.run/usage/false-positives/#default-exclusions
21262126
exclude:
21272127
- abcdef
21282128

@@ -2164,9 +2164,24 @@ issues:
21642164
exclude-case-sensitive: false
21652165

21662166
# The list of ids of default excludes to include or disable.
2167+
# https://golangci-lint.run/usage/false-positives/#default-exclusions
21672168
# Default: []
21682169
include:
2169-
- EXC0002 # disable excluding of issues about comments from golint.
2170+
- EXC0001
2171+
- EXC0002
2172+
- EXC0003
2173+
- EXC0004
2174+
- EXC0005
2175+
- EXC0006
2176+
- EXC0007
2177+
- EXC0008
2178+
- EXC0009
2179+
- EXC0010
2180+
- EXC0011
2181+
- EXC0012
2182+
- EXC0013
2183+
- EXC0014
2184+
- EXC0015
21702185

21712186
# Maximum issues count per one linter.
21722187
# Set to 0 to disable.

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

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}

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
}

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)