Full Code of golangci/golangci-lint for AI

main b7ca3baed01b cached
1800 files
8.4 MB
2.3M tokens
4760 symbols
1 requests
Download .txt
Showing preview only (9,218K chars total). Download the full file or copy to clipboard to get everything.
Repository: golangci/golangci-lint
Branch: main
Commit: b7ca3baed01b
Files: 1800
Total size: 8.4 MB

Directory structure:
gitextract_2yvj2yhy/

├── .custom-gcl.reference.yml
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── boring-cyborg.yml
│   ├── dependabot.yml
│   ├── new-linter-checklist.md
│   ├── peril/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rules/
│   │   │   └── invite-collaborator.ts
│   │   ├── settings.json
│   │   ├── tests/
│   │   │   └── invite-collaborator.test.ts
│   │   └── tsconfig.json
│   ├── stale.yml
│   └── workflows/
│       ├── codeql.yml
│       ├── deploy-documentation.yml
│       ├── new-linter-checklist.yml
│       ├── post-release.yml
│       ├── pr-checks.yml
│       ├── pr-documentation.yml
│       ├── pr-tests.yml
│       └── release.yml
├── .gitignore
├── .golangci.next.reference.yml
├── .golangci.reference.yml
├── .golangci.yml
├── .goreleaser.yml
├── .pre-commit-hooks.yaml
├── CHANGELOG-v1.md
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── assets/
│   ├── github-action-config-v1.json
│   ├── github-action-config-v2.json
│   └── github-action-config.json
├── build/
│   ├── buildx-alpine.Dockerfile
│   └── buildx.Dockerfile
├── cmd/
│   └── golangci-lint/
│       ├── main.go
│       └── plugins.go
├── docs/
│   ├── .gitignore
│   ├── Makefile
│   ├── archetypes/
│   │   └── default.md
│   ├── assets/
│   │   └── css/
│   │       └── custom.css
│   ├── content/
│   │   ├── _index.md
│   │   └── docs/
│   │       ├── _index.md
│   │       ├── configuration/
│   │       │   ├── _index.md
│   │       │   ├── cli.md
│   │       │   └── file.md
│   │       ├── contributing/
│   │       │   ├── _index.md
│   │       │   ├── architecture.md
│   │       │   ├── debug.md
│   │       │   ├── faq.md
│   │       │   ├── new-linters.md
│   │       │   ├── website.md
│   │       │   └── workflow.md
│   │       ├── donate/
│   │       │   └── _index.md
│   │       ├── formatters/
│   │       │   ├── _index.md
│   │       │   └── configuration.md
│   │       ├── linters/
│   │       │   ├── _index.md
│   │       │   ├── configuration.md
│   │       │   └── false-positives.md
│   │       ├── plugins/
│   │       │   ├── _index.md
│   │       │   ├── go-plugins.md
│   │       │   └── module-plugins.md
│   │       ├── product/
│   │       │   ├── _index.md
│   │       │   ├── changelog-v1.md
│   │       │   ├── changelog.md
│   │       │   ├── migration-guide.md
│   │       │   ├── roadmap.md
│   │       │   └── thanks.md
│   │       └── welcome/
│   │           ├── _index.md
│   │           ├── faq.md
│   │           ├── install/
│   │           │   ├── _index.md
│   │           │   ├── ci.md
│   │           │   └── local.md
│   │           ├── integrations.md
│   │           └── quick-start.md
│   ├── data/
│   │   ├── cli_help.json
│   │   ├── configuration_file.json
│   │   ├── exclusion_presets.json
│   │   ├── formatters_info.json
│   │   ├── icons.yaml
│   │   ├── linters_info.json
│   │   └── thanks.json
│   ├── go.mod
│   ├── go.sum
│   ├── golangci-lint.tape
│   ├── hugo.yaml
│   ├── i18n/
│   │   └── en.yaml
│   ├── layouts/
│   │   ├── 404.html
│   │   ├── _partials/
│   │   │   ├── custom/
│   │   │   │   └── head-end.html
│   │   │   ├── footer.html
│   │   │   ├── golangci/
│   │   │   │   └── items/
│   │   │   │       ├── compare-versions.html
│   │   │   │       ├── format-description.html
│   │   │   │       └── tag.html
│   │   │   └── shortcodes/
│   │   │       ├── badge.html
│   │   │       └── cards.html
│   │   └── _shortcodes/
│   │       ├── cards.html
│   │       ├── details.html
│   │       └── golangci/
│   │           ├── authors.html
│   │           ├── button.html
│   │           ├── cli-output.html
│   │           ├── configuration-file-snippet.html
│   │           ├── embed.html
│   │           ├── exclusion-preset-tables.html
│   │           ├── exclusion-presets-snippet.html
│   │           ├── image-card.html
│   │           ├── items/
│   │           │   ├── cards.html
│   │           │   ├── filter-badge.html
│   │           │   ├── filter.html
│   │           │   └── settings.html
│   │           ├── latest-version.html
│   │           └── starcharts.html
│   └── static/
│       ├── CNAME
│       └── site.webmanifest
├── go.mod
├── go.sum
├── install.sh
├── internal/
│   ├── cache/
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   └── testdata/
│   │       └── hello.go
│   ├── errorutil/
│   │   └── errors.go
│   ├── go/
│   │   ├── LICENSE
│   │   ├── base/
│   │   │   ├── error_notunix.go
│   │   │   ├── error_unix.go
│   │   │   └── readme.md
│   │   ├── cache/
│   │   │   ├── cache.go
│   │   │   ├── cache_gcil.go
│   │   │   ├── cache_test.go
│   │   │   ├── default.go
│   │   │   ├── default_gcil.go
│   │   │   ├── hash.go
│   │   │   ├── hash_gcil.go
│   │   │   ├── hash_test.go
│   │   │   ├── prog.go
│   │   │   └── readme.md
│   │   ├── cacheprog/
│   │   │   ├── cacheprog.go
│   │   │   └── readme.md
│   │   ├── mmap/
│   │   │   ├── mmap.go
│   │   │   ├── mmap_other.go
│   │   │   ├── mmap_unix.go
│   │   │   ├── mmap_windows.go
│   │   │   └── readme.md
│   │   ├── quoted/
│   │   │   ├── quoted.go
│   │   │   ├── quoted_test.go
│   │   │   └── readme.md
│   │   └── testenv/
│   │       ├── readme.md
│   │       ├── testenv.go
│   │       ├── testenv_notunix.go
│   │       ├── testenv_notwin.go
│   │       ├── testenv_unix.go
│   │       └── testenv_windows.go
│   └── x/
│       ├── LICENSE
│       └── tools/
│           ├── diff/
│           │   ├── diff.go
│           │   ├── lcs/
│           │   │   ├── common.go
│           │   │   ├── common_test.go
│           │   │   ├── doc.go
│           │   │   ├── git.sh
│           │   │   ├── labels.go
│           │   │   ├── old.go
│           │   │   ├── old_test.go
│           │   │   └── sequence.go
│           │   ├── myers/
│           │   │   └── diff.go
│           │   ├── ndiff.go
│           │   ├── readme.md
│           │   └── unified.go
│           └── driverutil/
│               ├── readfile.go
│               ├── readme.md
│               └── url.go
├── jsonschema/
│   ├── custom-gcl.jsonschema.json
│   ├── golangci.jsonschema.json
│   ├── golangci.next.jsonschema.json
│   ├── golangci.v1.57.jsonschema.json
│   ├── golangci.v1.58.jsonschema.json
│   ├── golangci.v1.59.jsonschema.json
│   ├── golangci.v1.60.jsonschema.json
│   ├── golangci.v1.61.jsonschema.json
│   ├── golangci.v1.62.jsonschema.json
│   ├── golangci.v1.63.jsonschema.json
│   ├── golangci.v1.64.jsonschema.json
│   ├── golangci.v1.jsonschema.json
│   ├── golangci.v2.0.jsonschema.json
│   ├── golangci.v2.1.jsonschema.json
│   ├── golangci.v2.10.jsonschema.json
│   ├── golangci.v2.2.jsonschema.json
│   ├── golangci.v2.3.jsonschema.json
│   ├── golangci.v2.4.jsonschema.json
│   ├── golangci.v2.5.jsonschema.json
│   ├── golangci.v2.6.jsonschema.json
│   ├── golangci.v2.7.jsonschema.json
│   ├── golangci.v2.8.jsonschema.json
│   └── golangci.v2.9.jsonschema.json
├── pkg/
│   ├── commands/
│   │   ├── cache.go
│   │   ├── config.go
│   │   ├── config_verify.go
│   │   ├── config_verify_test.go
│   │   ├── custom.go
│   │   ├── flagsets.go
│   │   ├── fmt.go
│   │   ├── formatters.go
│   │   ├── help.go
│   │   ├── help_formatters.go
│   │   ├── help_linters.go
│   │   ├── help_test.go
│   │   ├── internal/
│   │   │   ├── builder.go
│   │   │   ├── builder_test.go
│   │   │   ├── configuration.go
│   │   │   ├── configuration_test.go
│   │   │   ├── dirhash.go
│   │   │   ├── imports.go
│   │   │   ├── imports_test.go
│   │   │   ├── migrate/
│   │   │   │   ├── cloner/
│   │   │   │   │   └── cloner.go
│   │   │   │   ├── fakeloader/
│   │   │   │   │   ├── config.go
│   │   │   │   │   └── fakeloader.go
│   │   │   │   ├── migrate.go
│   │   │   │   ├── migrate_formatters.go
│   │   │   │   ├── migrate_issues.go
│   │   │   │   ├── migrate_linter_names.go
│   │   │   │   ├── migrate_linter_names_test.go
│   │   │   │   ├── migrate_linters.go
│   │   │   │   ├── migrate_linters_exclusions.go
│   │   │   │   ├── migrate_linters_settings.go
│   │   │   │   ├── migrate_output.go
│   │   │   │   ├── migrate_run.go
│   │   │   │   ├── migrate_severity.go
│   │   │   │   ├── migrate_test.go
│   │   │   │   ├── parser/
│   │   │   │   │   └── parser.go
│   │   │   │   ├── ptr/
│   │   │   │   │   └── ptr.go
│   │   │   │   ├── testdata/
│   │   │   │   │   ├── json/
│   │   │   │   │   │   ├── empty.golden.json
│   │   │   │   │   │   └── empty.json
│   │   │   │   │   ├── toml/
│   │   │   │   │   │   ├── empty.golden.toml
│   │   │   │   │   │   ├── empty.toml
│   │   │   │   │   │   ├── linters-settings_goheader.golden.toml
│   │   │   │   │   │   └── linters-settings_goheader.toml
│   │   │   │   │   └── yaml/
│   │   │   │   │       ├── empty.golden.yml
│   │   │   │   │       ├── empty.yml
│   │   │   │   │       ├── issues_01_a.golden.yml
│   │   │   │   │       ├── issues_01_a.yml
│   │   │   │   │       ├── issues_01_b.golden.yml
│   │   │   │   │       ├── issues_01_b.yml
│   │   │   │   │       ├── issues_02_a.golden.yml
│   │   │   │   │       ├── issues_02_a.yml
│   │   │   │   │       ├── issues_02_b.golden.yml
│   │   │   │   │       ├── issues_02_b.yml
│   │   │   │   │       ├── issues_04_a.golden.yml
│   │   │   │   │       ├── issues_04_a.yml
│   │   │   │   │       ├── issues_04_b.golden.yml
│   │   │   │   │       ├── issues_04_b.yml
│   │   │   │   │       ├── issues_04_c.golden.yml
│   │   │   │   │       ├── issues_04_c.yml
│   │   │   │   │       ├── issues_05_a.golden.yml
│   │   │   │   │       ├── issues_05_a.yml
│   │   │   │   │       ├── issues_05_b.golden.yml
│   │   │   │   │       ├── issues_05_b.yml
│   │   │   │   │       ├── issues_05_c.golden.yml
│   │   │   │   │       ├── issues_05_c.yml
│   │   │   │   │       ├── issues_06_a.golden.yml
│   │   │   │   │       ├── issues_06_a.yml
│   │   │   │   │       ├── issues_06_b.golden.yml
│   │   │   │   │       ├── issues_06_b.yml
│   │   │   │   │       ├── issues_06_c.golden.yml
│   │   │   │   │       ├── issues_06_c.yml
│   │   │   │   │       ├── issues_06_d.golden.yml
│   │   │   │   │       ├── issues_06_d.yml
│   │   │   │   │       ├── issues_06_e.golden.yml
│   │   │   │   │       ├── issues_06_e.yml
│   │   │   │   │       ├── issues_06_f.golden.yml
│   │   │   │   │       ├── issues_06_f.yml
│   │   │   │   │       ├── issues_06_g.golden.yml
│   │   │   │   │       ├── issues_06_g.yml
│   │   │   │   │       ├── issues_06_h.golden.yml
│   │   │   │   │       ├── issues_06_h.yml
│   │   │   │   │       ├── issues_07_a.golden.yml
│   │   │   │   │       ├── issues_07_a.yml
│   │   │   │   │       ├── issues_07_b.golden.yml
│   │   │   │   │       ├── issues_07_b.yml
│   │   │   │   │       ├── issues_08_a.golden.yml
│   │   │   │   │       ├── issues_08_a.yml
│   │   │   │   │       ├── issues_08_b.golden.yml
│   │   │   │   │       ├── issues_08_b.yml
│   │   │   │   │       ├── issues_09_a.golden.yml
│   │   │   │   │       ├── issues_09_a.yml
│   │   │   │   │       ├── issues_09_b.golden.yml
│   │   │   │   │       ├── issues_09_b.yml
│   │   │   │   │       ├── issues_10.golden.yml
│   │   │   │   │       ├── issues_10.yml
│   │   │   │   │       ├── linters-settings_asasalint.golden.yml
│   │   │   │   │       ├── linters-settings_asasalint.yml
│   │   │   │   │       ├── linters-settings_bidichk.golden.yml
│   │   │   │   │       ├── linters-settings_bidichk.yml
│   │   │   │   │       ├── linters-settings_copyloopvar.golden.yml
│   │   │   │   │       ├── linters-settings_copyloopvar.yml
│   │   │   │   │       ├── linters-settings_custom.golden.yml
│   │   │   │   │       ├── linters-settings_custom.yml
│   │   │   │   │       ├── linters-settings_cyclop.golden.yml
│   │   │   │   │       ├── linters-settings_cyclop.yml
│   │   │   │   │       ├── linters-settings_decorder.golden.yml
│   │   │   │   │       ├── linters-settings_decorder.yml
│   │   │   │   │       ├── linters-settings_depguard.golden.yml
│   │   │   │   │       ├── linters-settings_depguard.yml
│   │   │   │   │       ├── linters-settings_dogsled.golden.yml
│   │   │   │   │       ├── linters-settings_dogsled.yml
│   │   │   │   │       ├── linters-settings_dupl.golden.yml
│   │   │   │   │       ├── linters-settings_dupl.yml
│   │   │   │   │       ├── linters-settings_dupword.golden.yml
│   │   │   │   │       ├── linters-settings_dupword.yml
│   │   │   │   │       ├── linters-settings_errcheck.golden.yml
│   │   │   │   │       ├── linters-settings_errcheck.yml
│   │   │   │   │       ├── linters-settings_errchkjson.golden.yml
│   │   │   │   │       ├── linters-settings_errchkjson.yml
│   │   │   │   │       ├── linters-settings_errorlint.golden.yml
│   │   │   │   │       ├── linters-settings_errorlint.yml
│   │   │   │   │       ├── linters-settings_exhaustive.golden.yml
│   │   │   │   │       ├── linters-settings_exhaustive.yml
│   │   │   │   │       ├── linters-settings_exhaustruct.golden.yml
│   │   │   │   │       ├── linters-settings_exhaustruct.yml
│   │   │   │   │       ├── linters-settings_fatcontext.golden.yml
│   │   │   │   │       ├── linters-settings_fatcontext.yml
│   │   │   │   │       ├── linters-settings_forbidigo.golden.yml
│   │   │   │   │       ├── linters-settings_forbidigo.yml
│   │   │   │   │       ├── linters-settings_funlen.golden.yml
│   │   │   │   │       ├── linters-settings_funlen.yml
│   │   │   │   │       ├── linters-settings_gci.golden.yml
│   │   │   │   │       ├── linters-settings_gci.yml
│   │   │   │   │       ├── linters-settings_ginkgolinter.golden.yml
│   │   │   │   │       ├── linters-settings_ginkgolinter.yml
│   │   │   │   │       ├── linters-settings_gochecksumtype.golden.yml
│   │   │   │   │       ├── linters-settings_gochecksumtype.yml
│   │   │   │   │       ├── linters-settings_gocognit.golden.yml
│   │   │   │   │       ├── linters-settings_gocognit.yml
│   │   │   │   │       ├── linters-settings_goconst.golden.yml
│   │   │   │   │       ├── linters-settings_goconst.yml
│   │   │   │   │       ├── linters-settings_gocritic.golden.yml
│   │   │   │   │       ├── linters-settings_gocritic.yml
│   │   │   │   │       ├── linters-settings_gocyclo.golden.yml
│   │   │   │   │       ├── linters-settings_gocyclo.yml
│   │   │   │   │       ├── linters-settings_godot.golden.yml
│   │   │   │   │       ├── linters-settings_godot.yml
│   │   │   │   │       ├── linters-settings_godox.golden.yml
│   │   │   │   │       ├── linters-settings_godox.yml
│   │   │   │   │       ├── linters-settings_gofmt.golden.yml
│   │   │   │   │       ├── linters-settings_gofmt.yml
│   │   │   │   │       ├── linters-settings_gofumpt.golden.yml
│   │   │   │   │       ├── linters-settings_gofumpt.yml
│   │   │   │   │       ├── linters-settings_goheader.golden.yml
│   │   │   │   │       ├── linters-settings_goheader.yml
│   │   │   │   │       ├── linters-settings_goimports.golden.yml
│   │   │   │   │       ├── linters-settings_goimports.yml
│   │   │   │   │       ├── linters-settings_gomoddirectives.golden.yml
│   │   │   │   │       ├── linters-settings_gomoddirectives.yml
│   │   │   │   │       ├── linters-settings_gomodguard.golden.yml
│   │   │   │   │       ├── linters-settings_gomodguard.yml
│   │   │   │   │       ├── linters-settings_gosec.golden.yml
│   │   │   │   │       ├── linters-settings_gosec.yml
│   │   │   │   │       ├── linters-settings_gosimple.golden.yml
│   │   │   │   │       ├── linters-settings_gosimple.yml
│   │   │   │   │       ├── linters-settings_gosmopolitan.golden.yml
│   │   │   │   │       ├── linters-settings_gosmopolitan.yml
│   │   │   │   │       ├── linters-settings_govet.golden.yml
│   │   │   │   │       ├── linters-settings_govet.yml
│   │   │   │   │       ├── linters-settings_grouper.golden.yml
│   │   │   │   │       ├── linters-settings_grouper.yml
│   │   │   │   │       ├── linters-settings_iface.golden.yml
│   │   │   │   │       ├── linters-settings_iface.yml
│   │   │   │   │       ├── linters-settings_importas.golden.yml
│   │   │   │   │       ├── linters-settings_importas.yml
│   │   │   │   │       ├── linters-settings_inamedparam.golden.yml
│   │   │   │   │       ├── linters-settings_inamedparam.yml
│   │   │   │   │       ├── linters-settings_interfacebloat.golden.yml
│   │   │   │   │       ├── linters-settings_interfacebloat.yml
│   │   │   │   │       ├── linters-settings_ireturn.golden.yml
│   │   │   │   │       ├── linters-settings_ireturn.yml
│   │   │   │   │       ├── linters-settings_lll.golden.yml
│   │   │   │   │       ├── linters-settings_lll.yml
│   │   │   │   │       ├── linters-settings_loggercheck.golden.yml
│   │   │   │   │       ├── linters-settings_loggercheck.yml
│   │   │   │   │       ├── linters-settings_maintidx.golden.yml
│   │   │   │   │       ├── linters-settings_maintidx.yml
│   │   │   │   │       ├── linters-settings_makezero.golden.yml
│   │   │   │   │       ├── linters-settings_makezero.yml
│   │   │   │   │       ├── linters-settings_misspell.golden.yml
│   │   │   │   │       ├── linters-settings_misspell.yml
│   │   │   │   │       ├── linters-settings_mnd.golden.yml
│   │   │   │   │       ├── linters-settings_mnd.yml
│   │   │   │   │       ├── linters-settings_musttag.golden.yml
│   │   │   │   │       ├── linters-settings_musttag.yml
│   │   │   │   │       ├── linters-settings_nakedret.golden.yml
│   │   │   │   │       ├── linters-settings_nakedret.yml
│   │   │   │   │       ├── linters-settings_nakedret_zero.golden.yml
│   │   │   │   │       ├── linters-settings_nakedret_zero.yml
│   │   │   │   │       ├── linters-settings_nestif.golden.yml
│   │   │   │   │       ├── linters-settings_nestif.yml
│   │   │   │   │       ├── linters-settings_nilnil.golden.yml
│   │   │   │   │       ├── linters-settings_nilnil.yml
│   │   │   │   │       ├── linters-settings_nlreturn.golden.yml
│   │   │   │   │       ├── linters-settings_nlreturn.yml
│   │   │   │   │       ├── linters-settings_nolintlint.golden.yml
│   │   │   │   │       ├── linters-settings_nolintlint.yml
│   │   │   │   │       ├── linters-settings_nonamedreturns.golden.yml
│   │   │   │   │       ├── linters-settings_nonamedreturns.yml
│   │   │   │   │       ├── linters-settings_paralleltest.golden.yml
│   │   │   │   │       ├── linters-settings_paralleltest.yml
│   │   │   │   │       ├── linters-settings_perfsprint.golden.yml
│   │   │   │   │       ├── linters-settings_perfsprint.yml
│   │   │   │   │       ├── linters-settings_prealloc.golden.yml
│   │   │   │   │       ├── linters-settings_prealloc.yml
│   │   │   │   │       ├── linters-settings_predeclared.golden.yml
│   │   │   │   │       ├── linters-settings_predeclared.yml
│   │   │   │   │       ├── linters-settings_promlinter.golden.yml
│   │   │   │   │       ├── linters-settings_promlinter.yml
│   │   │   │   │       ├── linters-settings_protogetter.golden.yml
│   │   │   │   │       ├── linters-settings_protogetter.yml
│   │   │   │   │       ├── linters-settings_reassign.golden.yml
│   │   │   │   │       ├── linters-settings_reassign.yml
│   │   │   │   │       ├── linters-settings_recvcheck.golden.yml
│   │   │   │   │       ├── linters-settings_recvcheck.yml
│   │   │   │   │       ├── linters-settings_revive.golden.yml
│   │   │   │   │       ├── linters-settings_revive.yml
│   │   │   │   │       ├── linters-settings_rowserrcheck.golden.yml
│   │   │   │   │       ├── linters-settings_rowserrcheck.yml
│   │   │   │   │       ├── linters-settings_sloglint.golden.yml
│   │   │   │   │       ├── linters-settings_sloglint.yml
│   │   │   │   │       ├── linters-settings_spancheck.golden.yml
│   │   │   │   │       ├── linters-settings_spancheck.yml
│   │   │   │   │       ├── linters-settings_staticcheck.golden.yml
│   │   │   │   │       ├── linters-settings_staticcheck.yml
│   │   │   │   │       ├── linters-settings_staticcheck_merge.golden.yml
│   │   │   │   │       ├── linters-settings_staticcheck_merge.yml
│   │   │   │   │       ├── linters-settings_stylecheck.golden.yml
│   │   │   │   │       ├── linters-settings_stylecheck.yml
│   │   │   │   │       ├── linters-settings_tagalign.golden.yml
│   │   │   │   │       ├── linters-settings_tagalign.yml
│   │   │   │   │       ├── linters-settings_tagliatelle.golden.yml
│   │   │   │   │       ├── linters-settings_tagliatelle.yml
│   │   │   │   │       ├── linters-settings_testifylint.golden.yml
│   │   │   │   │       ├── linters-settings_testifylint.yml
│   │   │   │   │       ├── linters-settings_testpackage.golden.yml
│   │   │   │   │       ├── linters-settings_testpackage.yml
│   │   │   │   │       ├── linters-settings_thelper.golden.yml
│   │   │   │   │       ├── linters-settings_thelper.yml
│   │   │   │   │       ├── linters-settings_unconvert.golden.yml
│   │   │   │   │       ├── linters-settings_unconvert.yml
│   │   │   │   │       ├── linters-settings_unparam.golden.yml
│   │   │   │   │       ├── linters-settings_unparam.yml
│   │   │   │   │       ├── linters-settings_unused.golden.yml
│   │   │   │   │       ├── linters-settings_unused.yml
│   │   │   │   │       ├── linters-settings_usestdlibvars.golden.yml
│   │   │   │   │       ├── linters-settings_usestdlibvars.yml
│   │   │   │   │       ├── linters-settings_usetesting.golden.yml
│   │   │   │   │       ├── linters-settings_usetesting.yml
│   │   │   │   │       ├── linters-settings_varnamelen.golden.yml
│   │   │   │   │       ├── linters-settings_varnamelen.yml
│   │   │   │   │       ├── linters-settings_whitespace.golden.yml
│   │   │   │   │       ├── linters-settings_whitespace.yml
│   │   │   │   │       ├── linters-settings_wrapcheck.golden.yml
│   │   │   │   │       ├── linters-settings_wrapcheck.yml
│   │   │   │   │       ├── linters-settings_wsl.golden.yml
│   │   │   │   │       ├── linters-settings_wsl.yml
│   │   │   │   │       ├── linters_01.golden.yml
│   │   │   │   │       ├── linters_01.yml
│   │   │   │   │       ├── linters_02.golden.yml
│   │   │   │   │       ├── linters_02.yml
│   │   │   │   │       ├── linters_03.golden.yml
│   │   │   │   │       ├── linters_03.yml
│   │   │   │   │       ├── linters_04.golden.yml
│   │   │   │   │       ├── linters_04.yml
│   │   │   │   │       ├── linters_05.golden.yml
│   │   │   │   │       ├── linters_05.yml
│   │   │   │   │       ├── linters_06.golden.yml
│   │   │   │   │       ├── linters_06.yml
│   │   │   │   │       ├── linters_07.golden.yml
│   │   │   │   │       ├── linters_07.yml
│   │   │   │   │       ├── linters_08.golden.yml
│   │   │   │   │       ├── linters_08.yml
│   │   │   │   │       ├── linters_09.golden.yml
│   │   │   │   │       ├── linters_09.yml
│   │   │   │   │       ├── linters_10.golden.yml
│   │   │   │   │       ├── linters_10.yml
│   │   │   │   │       ├── linters_11.golden.yml
│   │   │   │   │       ├── linters_11.yml
│   │   │   │   │       ├── linters_12.golden.yml
│   │   │   │   │       ├── linters_12.yml
│   │   │   │   │       ├── linters_13_a.golden.yml
│   │   │   │   │       ├── linters_13_a.yml
│   │   │   │   │       ├── linters_13_b.golden.yml
│   │   │   │   │       ├── linters_13_b.yml
│   │   │   │   │       ├── linters_13_c.golden.yml
│   │   │   │   │       ├── linters_13_c.yml
│   │   │   │   │       ├── linters_13_d.golden.yml
│   │   │   │   │       ├── linters_13_d.yml
│   │   │   │   │       ├── output_01_a.golden.yml
│   │   │   │   │       ├── output_01_a.yml
│   │   │   │   │       ├── output_01_b.golden.yml
│   │   │   │   │       ├── output_01_b.yml
│   │   │   │   │       ├── output_01_c.golden.yml
│   │   │   │   │       ├── output_01_c.yml
│   │   │   │   │       ├── output_01_d.golden.yml
│   │   │   │   │       ├── output_01_d.yml
│   │   │   │   │       ├── output_01_f.golden.yml
│   │   │   │   │       ├── output_01_f.yml
│   │   │   │   │       ├── output_01_g.golden.yml
│   │   │   │   │       ├── output_01_g.yml
│   │   │   │   │       ├── output_01_h.golden.yml
│   │   │   │   │       ├── output_01_h.yml
│   │   │   │   │       ├── output_01_i.golden.yml
│   │   │   │   │       ├── output_01_i.yml
│   │   │   │   │       ├── output_01_j.golden.yml
│   │   │   │   │       ├── output_01_j.yml
│   │   │   │   │       ├── output_01_k.golden.yml
│   │   │   │   │       ├── output_01_k.yml
│   │   │   │   │       ├── output_01_l.golden.yml
│   │   │   │   │       ├── output_01_l.yml
│   │   │   │   │       ├── output_01_m.golden.yml
│   │   │   │   │       ├── output_01_m.yml
│   │   │   │   │       ├── output_01_o.golden.yml
│   │   │   │   │       ├── output_01_o.yml
│   │   │   │   │       ├── output_01_p.golden.yml
│   │   │   │   │       ├── output_01_p.yml
│   │   │   │   │       ├── output_02.golden.yml
│   │   │   │   │       ├── output_02.yml
│   │   │   │   │       ├── output_03.golden.yml
│   │   │   │   │       ├── output_03.yml
│   │   │   │   │       ├── output_04.golden.yml
│   │   │   │   │       ├── output_04.yml
│   │   │   │   │       ├── run_01.golden.yml
│   │   │   │   │       ├── run_01.yml
│   │   │   │   │       ├── run_02_a.golden.yml
│   │   │   │   │       ├── run_02_a.yml
│   │   │   │   │       ├── run_02_b.golden.yml
│   │   │   │   │       ├── run_02_b.yml
│   │   │   │   │       ├── run_03_a.golden.yml
│   │   │   │   │       ├── run_03_a.yml
│   │   │   │   │       ├── run_03_b.golden.yml
│   │   │   │   │       ├── run_03_b.yml
│   │   │   │   │       ├── run_04_a.golden.yml
│   │   │   │   │       ├── run_04_a.yml
│   │   │   │   │       ├── run_04_b.golden.yml
│   │   │   │   │       ├── run_04_b.yml
│   │   │   │   │       ├── run_05.golden.yml
│   │   │   │   │       ├── run_05.yml
│   │   │   │   │       ├── run_06.golden.yml
│   │   │   │   │       ├── run_06.yml
│   │   │   │   │       ├── run_07.golden.yml
│   │   │   │   │       ├── run_07.yml
│   │   │   │   │       ├── run_08.golden.yml
│   │   │   │   │       ├── run_08.yml
│   │   │   │   │       ├── run_09_a.golden.yml
│   │   │   │   │       ├── run_09_a.yml
│   │   │   │   │       ├── run_09_b.golden.yml
│   │   │   │   │       ├── run_09_b.yml
│   │   │   │   │       ├── run_10.golden.yml
│   │   │   │   │       ├── run_10.yml
│   │   │   │   │       ├── severity_01.golden.yml
│   │   │   │   │       ├── severity_01.yml
│   │   │   │   │       ├── severity_02.golden.yml
│   │   │   │   │       ├── severity_02.yml
│   │   │   │   │       ├── severity_03.golden.yml
│   │   │   │   │       ├── severity_03.yml
│   │   │   │   │       ├── unknown-fields.golden.yml
│   │   │   │   │       └── unknown-fields.yml
│   │   │   │   ├── versionone/
│   │   │   │   │   ├── base_rule.go
│   │   │   │   │   ├── config.go
│   │   │   │   │   ├── doc.go
│   │   │   │   │   ├── issues.go
│   │   │   │   │   ├── linters.go
│   │   │   │   │   ├── linters_settings.go
│   │   │   │   │   ├── output.go
│   │   │   │   │   ├── run.go
│   │   │   │   │   └── severity.go
│   │   │   │   └── versiontwo/
│   │   │   │       ├── base_rule.go
│   │   │   │       ├── config.go
│   │   │   │       ├── formatters.go
│   │   │   │       ├── formatters_settings.go
│   │   │   │       ├── issues.go
│   │   │   │       ├── linters.go
│   │   │   │       ├── linters_exclusions.go
│   │   │   │       ├── linters_settings.go
│   │   │   │       ├── output.go
│   │   │   │       ├── output_formats.go
│   │   │   │       ├── run.go
│   │   │   │       └── severity.go
│   │   │   ├── testdata/
│   │   │   │   └── imports.go
│   │   │   └── vibra.go
│   │   ├── linters.go
│   │   ├── migrate.go
│   │   ├── root.go
│   │   ├── run.go
│   │   └── version.go
│   ├── config/
│   │   ├── base_loader.go
│   │   ├── base_rule.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── formatters.go
│   │   ├── formatters_settings.go
│   │   ├── issues.go
│   │   ├── linters.go
│   │   ├── linters_exclusions.go
│   │   ├── linters_exclusions_test.go
│   │   ├── linters_settings.go
│   │   ├── linters_settings_test.go
│   │   ├── loader.go
│   │   ├── output.go
│   │   ├── output_formats.go
│   │   ├── output_test.go
│   │   ├── placeholders.go
│   │   ├── run.go
│   │   ├── run_test.go
│   │   ├── severity.go
│   │   └── severity_test.go
│   ├── exitcodes/
│   │   └── exitcodes.go
│   ├── fsutils/
│   │   ├── basepath.go
│   │   ├── filecache.go
│   │   ├── fsutils.go
│   │   ├── fsutils_test.go
│   │   ├── fsutils_unix.go
│   │   ├── fsutils_windows.go
│   │   ├── linecache.go
│   │   ├── path_unix.go
│   │   └── path_windows.go
│   ├── goanalysis/
│   │   ├── issue.go
│   │   ├── linter.go
│   │   ├── load/
│   │   │   └── guard.go
│   │   ├── metalinter.go
│   │   ├── pkgerrors/
│   │   │   ├── errors.go
│   │   │   ├── extract.go
│   │   │   ├── extract_test.go
│   │   │   ├── parse.go
│   │   │   └── parse_test.go
│   │   ├── position.go
│   │   ├── runner.go
│   │   ├── runner_action.go
│   │   ├── runner_action_cache.go
│   │   ├── runner_action_test.go
│   │   ├── runner_checker.go
│   │   ├── runner_loadingpackage.go
│   │   ├── runners.go
│   │   └── runners_cache.go
│   ├── goformat/
│   │   ├── runner.go
│   │   └── runner_test.go
│   ├── goformatters/
│   │   ├── analyzer.go
│   │   ├── formatters.go
│   │   ├── gci/
│   │   │   ├── gci.go
│   │   │   └── internal/
│   │   │       ├── LICENSE
│   │   │       ├── config/
│   │   │       │   └── config.go
│   │   │       ├── readme.md
│   │   │       └── section/
│   │   │           ├── parser.go
│   │   │           ├── section.go
│   │   │           ├── standard.go
│   │   │           └── standard_list.go
│   │   ├── gofmt/
│   │   │   └── gofmt.go
│   │   ├── gofumpt/
│   │   │   └── gofumpt.go
│   │   ├── goimports/
│   │   │   └── goimports.go
│   │   ├── golines/
│   │   │   └── golines.go
│   │   ├── internal/
│   │   │   ├── commons.go
│   │   │   ├── diff.go
│   │   │   ├── diff_test.go
│   │   │   └── testdata/
│   │   │       ├── add_only.diff
│   │   │       ├── add_only_different_lines.diff
│   │   │       ├── add_only_in_all_diff.diff
│   │   │       ├── add_only_multiple_lines.diff
│   │   │       ├── add_only_on_first_line.diff
│   │   │       ├── add_only_on_first_line_with_shared_original_line.diff
│   │   │       ├── delete_last_line.diff
│   │   │       ├── delete_only_first_lines.diff
│   │   │       ├── gofmt_diff.diff
│   │   │       ├── replace_line.diff
│   │   │       └── replace_line_after_first_line_adding.diff
│   │   ├── meta_formatter.go
│   │   └── swaggo/
│   │       └── swaggo.go
│   ├── golinters/
│   │   ├── arangolint/
│   │   │   ├── arangolint.go
│   │   │   ├── arangolint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── arangolint.go
│   │   │       ├── arangolint_cgo.go
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── asasalint/
│   │   │   ├── asasalint.go
│   │   │   ├── asasalint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── asasalint.go
│   │   │       └── asasalint_cgo.go
│   │   ├── asciicheck/
│   │   │   ├── asciicheck.go
│   │   │   ├── asciicheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── asciicheck.go
│   │   │       └── asciicheck_cgo.go
│   │   ├── bidichk/
│   │   │   ├── bidichk.go
│   │   │   ├── bidichk_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── bidichk.go
│   │   │       └── bidichk_cgo.go
│   │   ├── bodyclose/
│   │   │   ├── bodyclose.go
│   │   │   ├── bodyclose_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── bodyclose.go
│   │   │       └── bodyclose_cgo.go
│   │   ├── canonicalheader/
│   │   │   ├── canonicalheader.go
│   │   │   ├── canonicalheader_test.go
│   │   │   └── testdata/
│   │   │       ├── canonicalheader.go
│   │   │       ├── canonicalheader_cgo.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── canonicalheader.go
│   │   │           └── out/
│   │   │               └── canonicalheader.go
│   │   ├── containedctx/
│   │   │   ├── containedctx.go
│   │   │   ├── containedctx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── containedctx.go
│   │   │       └── containedctx_cgo.go
│   │   ├── contextcheck/
│   │   │   ├── contextcheck.go
│   │   │   ├── contextcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── contextcheck.go
│   │   │       └── contextcheck_cgo.go
│   │   ├── copyloopvar/
│   │   │   ├── copyloopvar.go
│   │   │   ├── copyloopvar_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── copyloopvar.go
│   │   │       ├── copyloopvar.yml
│   │   │       ├── copyloopvar_cgo.go
│   │   │       ├── copyloopvar_custom.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── copyloopvar.go
│   │   │           └── out/
│   │   │               └── copyloopvar.go
│   │   ├── cyclop/
│   │   │   ├── cyclop.go
│   │   │   ├── cyclop_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── cyclop.go
│   │   │       ├── cyclop.yml
│   │   │       └── cyclop_cgo.go
│   │   ├── decorder/
│   │   │   ├── decorder.go
│   │   │   ├── decorder_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── decorder.go
│   │   │       ├── decorder_cgo.go
│   │   │       ├── decorder_custom.go
│   │   │       └── decorder_custom.yml
│   │   ├── depguard/
│   │   │   ├── depguard.go
│   │   │   ├── depguard_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── depguard.go
│   │   │       ├── depguard.yml
│   │   │       ├── depguard_additional_guards.go
│   │   │       ├── depguard_additional_guards.yml
│   │   │       ├── depguard_cgo.go
│   │   │       ├── depguard_ignore_file_rules.go
│   │   │       └── depguard_ignore_file_rules.yml
│   │   ├── dogsled/
│   │   │   ├── dogsled.go
│   │   │   ├── dogsled_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dogsled.go
│   │   │       └── dogsled_cgo.go
│   │   ├── dupl/
│   │   │   ├── dupl.go
│   │   │   ├── dupl_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dupl.go
│   │   │       ├── dupl.yml
│   │   │       └── dupl_cgo.go
│   │   ├── dupword/
│   │   │   ├── dupword.go
│   │   │   ├── dupword_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dupword.go
│   │   │       ├── dupword_cgo.go
│   │   │       ├── dupword_comments_only.go
│   │   │       ├── dupword_comments_only.yml
│   │   │       ├── dupword_ignore.go
│   │   │       ├── dupword_ignore.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── dupword.go
│   │   │           └── out/
│   │   │               └── dupword.go
│   │   ├── durationcheck/
│   │   │   ├── durationcheck.go
│   │   │   ├── durationcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── durationcheck.go
│   │   │       └── durationcheck_cgo.go
│   │   ├── embeddedstructfieldcheck/
│   │   │   ├── embeddedstructfieldcheck.go
│   │   │   ├── embeddedstructfieldcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── embeddedstructfieldcheck_comments.go
│   │   │       ├── embeddedstructfieldcheck_mutex.go
│   │   │       ├── embeddedstructfieldcheck_mutex.yml
│   │   │       ├── embeddedstructfieldcheck_simple.go
│   │   │       ├── embeddedstructfieldcheck_special_cases.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   ├── comments.go
│   │   │           │   └── simple.go
│   │   │           └── out/
│   │   │               ├── comments.go
│   │   │               └── simple.go
│   │   ├── err113/
│   │   │   ├── err113.go
│   │   │   ├── err113_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── err113.go
│   │   │       ├── err113_cgo.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── err113.go
│   │   │           └── out/
│   │   │               └── err113.go
│   │   ├── errcheck/
│   │   │   ├── errcheck.go
│   │   │   ├── errcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errcheck.go
│   │   │       ├── errcheck_cgo.go
│   │   │       ├── errcheck_exclude_functions.go
│   │   │       ├── errcheck_exclude_functions.yml
│   │   │       ├── errcheck_ignore_default.go
│   │   │       ├── errcheck_ignore_default.yml
│   │   │       ├── errcheck_type_assertions.go
│   │   │       └── errcheck_type_assertions.yml
│   │   ├── errchkjson/
│   │   │   ├── errchkjson.go
│   │   │   ├── errchkjson_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errchkjson.go
│   │   │       ├── errchkjson.yml
│   │   │       ├── errchkjson_cgo.go
│   │   │       ├── errchkjson_check_error_free_encoding.go
│   │   │       ├── errchkjson_check_error_free_encoding.yml
│   │   │       ├── errchkjson_no_exported.go
│   │   │       └── errchkjson_no_exported.yml
│   │   ├── errname/
│   │   │   ├── errname.go
│   │   │   ├── errname_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errname.go
│   │   │       └── errname_cgo.go
│   │   ├── errorlint/
│   │   │   ├── errorlint.go
│   │   │   ├── errorlint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errorlint.go
│   │   │       ├── errorlint_asserts.go
│   │   │       ├── errorlint_asserts.yml
│   │   │       ├── errorlint_cgo.go
│   │   │       ├── errorlint_comparison.go
│   │   │       ├── errorlint_comparison.yml
│   │   │       ├── errorlint_errorf.go
│   │   │       ├── errorlint_errorf.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── errorlint.go
│   │   │           └── out/
│   │   │               └── errorlint.go
│   │   ├── exhaustive/
│   │   │   ├── exhaustive.go
│   │   │   ├── exhaustive_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exhaustive.go
│   │   │       ├── exhaustive_cgo.go
│   │   │       ├── exhaustive_default.go
│   │   │       ├── exhaustive_default.yml
│   │   │       ├── exhaustive_generated.go
│   │   │       ├── exhaustive_ignore_enum_members.go
│   │   │       └── exhaustive_ignore_enum_members.yml
│   │   ├── exhaustruct/
│   │   │   ├── exhaustruct.go
│   │   │   ├── exhaustruct_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exhaustruct.go
│   │   │       ├── exhaustruct_cgo.go
│   │   │       ├── exhaustruct_custom.go
│   │   │       └── exhaustruct_custom.yml
│   │   ├── exptostd/
│   │   │   ├── exptostd.go
│   │   │   ├── exptostd_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exptostd.go
│   │   │       ├── exptostd_cgo.go
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── exptostd.go
│   │   │       │   └── out/
│   │   │       │       └── exptostd.go
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── fatcontext/
│   │   │   ├── fatcontext.go
│   │   │   ├── fatcontext_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fatcontext.go
│   │   │       ├── fatcontext_cgo.go
│   │   │       ├── fatcontext_structpointer.go
│   │   │       ├── fatcontext_structpointer.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── fatcontext.go
│   │   │           └── out/
│   │   │               └── fatcontext.go
│   │   ├── forbidigo/
│   │   │   ├── forbidigo.go
│   │   │   ├── forbidigo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── forbidigo.yml
│   │   │       ├── forbidigo_cgo.go
│   │   │       ├── forbidigo_example.go
│   │   │       ├── forbidigo_example_test.go
│   │   │       ├── forbidigo_include_godoc_examples.yml
│   │   │       ├── forbidigo_include_godoc_examples_test.go
│   │   │       ├── forbidigo_struct.yml
│   │   │       └── forbidigo_struct_config.go
│   │   ├── forcetypeassert/
│   │   │   ├── forcetypeassert.go
│   │   │   ├── forcetypeassert_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── forcetypeassert.go
│   │   │       └── forcetypeassert_cgo.go
│   │   ├── funcorder/
│   │   │   ├── funcorder.go
│   │   │   ├── funcorder_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── funcorder.go
│   │   │       ├── funcorder_disable_constructor.go
│   │   │       ├── funcorder_disable_constructor.yml
│   │   │       ├── funcorder_struct_method.go
│   │   │       └── funcorder_struct_method.yml
│   │   ├── funlen/
│   │   │   ├── funlen.go
│   │   │   ├── funlen_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── funlen.go
│   │   │       ├── funlen_cgo.go
│   │   │       ├── funlen_custom.go
│   │   │       ├── funlen_custom.yml
│   │   │       ├── funlen_ignore_comments.go
│   │   │       └── funlen_ignore_comments.yml
│   │   ├── gci/
│   │   │   ├── gci.go
│   │   │   ├── gci_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── gci.go
│   │   │       │   └── out/
│   │   │       │       └── gci.go
│   │   │       ├── gci.go
│   │   │       ├── gci.yml
│   │   │       ├── gci_cgo.go
│   │   │       ├── gci_go124.go
│   │   │       └── gci_go124.yml
│   │   ├── ginkgolinter/
│   │   │   ├── ginkgolinter.go
│   │   │   ├── ginkgolinter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ginkgolinter.go
│   │   │       ├── ginkgolinter_allow_havelen0.yml
│   │   │       ├── ginkgolinter_cgo.go
│   │   │       ├── ginkgolinter_default.yml
│   │   │       ├── ginkgolinter_havelen0.go
│   │   │       ├── ginkgolinter_suppress_async.go
│   │   │       ├── ginkgolinter_suppress_async.yml
│   │   │       ├── ginkgolinter_suppress_compare.go
│   │   │       ├── ginkgolinter_suppress_compare.yml
│   │   │       ├── ginkgolinter_suppress_err.go
│   │   │       ├── ginkgolinter_suppress_err.yml
│   │   │       ├── ginkgolinter_suppress_focused_containers.go
│   │   │       ├── ginkgolinter_suppress_focused_containers.yml
│   │   │       ├── ginkgolinter_suppress_len.go
│   │   │       ├── ginkgolinter_suppress_len.yml
│   │   │       ├── ginkgolinter_suppress_nil.go
│   │   │       ├── ginkgolinter_suppress_nil.yml
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── gocheckcompilerdirectives/
│   │   │   ├── gocheckcompilerdirectives.go
│   │   │   ├── gocheckcompilerdirectives_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocheckcompilerdirectives.go
│   │   │       └── gocheckcompilerdirectives_cgo.go
│   │   ├── gochecknoglobals/
│   │   │   ├── gochecknoglobals.go
│   │   │   ├── gochecknoglobals_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecknoglobals.go
│   │   │       └── gochecknoglobals_cgo.go
│   │   ├── gochecknoinits/
│   │   │   ├── gochecknoinits.go
│   │   │   ├── gochecknoinits_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecknoinits.go
│   │   │       └── gochecknoinits_cgo.go
│   │   ├── gochecksumtype/
│   │   │   ├── gochecksumtype.go
│   │   │   ├── gochecksumtype_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecksumtype.go
│   │   │       ├── gochecksumtype_cgo.go
│   │   │       ├── gochecksumtype_custom.go
│   │   │       └── gochecksumtype_custom.yml
│   │   ├── gocognit/
│   │   │   ├── gocognit.go
│   │   │   ├── gocognit_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocognit.go
│   │   │       ├── gocognit.yml
│   │   │       └── gocognit_cgo.go
│   │   ├── goconst/
│   │   │   ├── goconst.go
│   │   │   ├── goconst_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── goconst.go
│   │   │       ├── goconst_calls_enabled.go
│   │   │       ├── goconst_calls_enabled.yml
│   │   │       ├── goconst_cgo.go
│   │   │       ├── goconst_dont_ignore_test.go
│   │   │       ├── goconst_eval_and_find_duplicates.go
│   │   │       ├── goconst_eval_and_find_duplicates.yml
│   │   │       ├── goconst_eval_const_expressions.go
│   │   │       ├── goconst_eval_const_expressions.yml
│   │   │       ├── goconst_find_duplicates.go
│   │   │       └── goconst_find_duplicates.yml
│   │   ├── gocritic/
│   │   │   ├── gocritic.go
│   │   │   ├── gocritic_integration_test.go
│   │   │   ├── gocritic_settings.go
│   │   │   ├── gocritic_settings_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── gocritic.go
│   │   │       │   └── out/
│   │   │       │       └── gocritic.go
│   │   │       ├── gocritic-fix.yml
│   │   │       ├── gocritic.go
│   │   │       ├── gocritic.yml
│   │   │       ├── gocritic_cgo.go
│   │   │       ├── gocritic_importShadow.go
│   │   │       ├── gocritic_inportShadow.yml
│   │   │       └── ruleguard/
│   │   │           ├── README.md
│   │   │           ├── preferWriteString.go
│   │   │           ├── rangeExprCopy.go
│   │   │           └── stringsSimplify.go
│   │   ├── gocyclo/
│   │   │   ├── gocyclo.go
│   │   │   ├── gocyclo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocyclo.go
│   │   │       ├── gocyclo.yml
│   │   │       └── gocyclo_cgo.go
│   │   ├── godoclint/
│   │   │   ├── godoclint.go
│   │   │   ├── godoclint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── godoclint.yml
│   │   │       ├── godoclint_default_fail.go
│   │   │       ├── godoclint_default_pass.go
│   │   │       ├── godoclint_full_fail.go
│   │   │       ├── godoclint_full_pass.go
│   │   │       └── godoclint_full_pass_test.go
│   │   ├── godot/
│   │   │   ├── godot.go
│   │   │   ├── godot_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── godot.go
│   │   │       │   └── out/
│   │   │       │       └── godot.go
│   │   │       ├── godot.go
│   │   │       └── godot_cgo.go
│   │   ├── godox/
│   │   │   ├── godox.go
│   │   │   ├── godox_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── godox.go
│   │   │       ├── godox.yml
│   │   │       └── godox_cgo.go
│   │   ├── gofmt/
│   │   │   ├── gofmt.go
│   │   │   ├── gofmt_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gofmt.go
│   │   │       │   │   └── gofmt_rewrite_rules.go
│   │   │       │   └── out/
│   │   │       │       ├── gofmt.go
│   │   │       │       └── gofmt_rewrite_rules.go
│   │   │       ├── gofmt.go
│   │   │       ├── gofmt.yml
│   │   │       ├── gofmt_cgo.go
│   │   │       ├── gofmt_no_simplify.go
│   │   │       ├── gofmt_no_simplify.yml
│   │   │       ├── gofmt_rewrite_rules.go
│   │   │       ├── gofmt_rewrite_rules.yml
│   │   │       └── gofmt_too_many_empty_lines.go
│   │   ├── gofumpt/
│   │   │   ├── gofumpt.go
│   │   │   ├── gofumpt_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gofumpt.go
│   │   │       │   │   └── gofumpt_cgo.go
│   │   │       │   └── out/
│   │   │       │       ├── gofumpt.go
│   │   │       │       └── gofumpt_cgo.go
│   │   │       ├── gofumpt-fix.yml
│   │   │       ├── gofumpt.go
│   │   │       ├── gofumpt.yml
│   │   │       ├── gofumpt_cgo.go
│   │   │       ├── gofumpt_too_many_empty_lines.go
│   │   │       ├── gofumpt_with_extra.go
│   │   │       └── gofumpt_with_extra.yml
│   │   ├── goheader/
│   │   │   ├── goheader.go
│   │   │   ├── goheader_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── goheader_1.go
│   │   │       │   │   ├── goheader_2.go
│   │   │       │   │   ├── goheader_3.go
│   │   │       │   │   └── goheader_4.go
│   │   │       │   └── out/
│   │   │       │       ├── goheader_1.go
│   │   │       │       ├── goheader_2.go
│   │   │       │       ├── goheader_3.go
│   │   │       │       └── goheader_4.go
│   │   │       ├── goheader-fix.yml
│   │   │       ├── goheader.yml
│   │   │       ├── goheader_bad.go
│   │   │       ├── goheader_cgo.go
│   │   │       └── goheader_good.go
│   │   ├── goimports/
│   │   │   ├── goimports.go
│   │   │   ├── goimports_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── goimports.go
│   │   │       │   │   └── goimports_cgo.go
│   │   │       │   └── out/
│   │   │       │       ├── goimports.go
│   │   │       │       └── goimports_cgo.go
│   │   │       ├── goimports.go
│   │   │       ├── goimports.yml
│   │   │       ├── goimports_cgo.go
│   │   │       ├── goimports_local.go
│   │   │       └── goimports_local.yml
│   │   ├── golines/
│   │   │   ├── golines.go
│   │   │   ├── golines_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── golines-custom.go
│   │   │       │   │   └── golines.go
│   │   │       │   └── out/
│   │   │       │       ├── golines-custom.go
│   │   │       │       └── golines.go
│   │   │       ├── golines-custom.yml
│   │   │       ├── golines.go
│   │   │       └── golines.yml
│   │   ├── gomoddirectives/
│   │   │   └── gomoddirectives.go
│   │   ├── gomodguard/
│   │   │   ├── gomodguard.go
│   │   │   ├── gomodguard_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── gomodguard.go
│   │   │       ├── gomodguard.yml
│   │   │       └── gomodguard_cgo.go
│   │   ├── goprintffuncname/
│   │   │   ├── goprintffuncname.go
│   │   │   ├── goprintffuncname_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── goprintffuncname.go
│   │   │       └── goprintffuncname_cgo.go
│   │   ├── gosec/
│   │   │   ├── gosec.go
│   │   │   ├── gosec_integration_test.go
│   │   │   ├── gosec_test.go
│   │   │   └── testdata/
│   │   │       ├── gosec.go
│   │   │       ├── gosec.yml
│   │   │       ├── gosec_cgo.go
│   │   │       ├── gosec_global_option.go
│   │   │       ├── gosec_global_option.yml
│   │   │       ├── gosec_nosec.go
│   │   │       ├── gosec_nosec.yml
│   │   │       ├── gosec_rules_config.go
│   │   │       ├── gosec_severity_confidence.go
│   │   │       └── gosec_severity_confidence.yml
│   │   ├── gosmopolitan/
│   │   │   ├── gosmopolitan.go
│   │   │   ├── gosmopolitan_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gosmopolitan.go
│   │   │       ├── gosmopolitan_allow_time_local.go
│   │   │       ├── gosmopolitan_allow_time_local.yml
│   │   │       ├── gosmopolitan_cgo.go
│   │   │       ├── gosmopolitan_dont_ignore_test.go
│   │   │       ├── gosmopolitan_escape_hatches.go
│   │   │       ├── gosmopolitan_escape_hatches.yml
│   │   │       ├── gosmopolitan_scripts.go
│   │   │       └── gosmopolitan_scripts.yml
│   │   ├── govet/
│   │   │   ├── govet.go
│   │   │   ├── govet_integration_test.go
│   │   │   ├── govet_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── govet.go
│   │   │       │   └── out/
│   │   │       │       └── govet.go
│   │   │       ├── govet.go
│   │   │       ├── govet.yml
│   │   │       ├── govet_cgo.go
│   │   │       ├── govet_custom_formatter.go
│   │   │       ├── govet_fieldalignment.go
│   │   │       ├── govet_fieldalignment.yml
│   │   │       ├── govet_fix.yml
│   │   │       ├── govet_ifaceassert.go
│   │   │       └── govet_ifaceassert.yml
│   │   ├── grouper/
│   │   │   ├── grouper.go
│   │   │   ├── grouper_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── grouper.go
│   │   │       ├── grouper.yml
│   │   │       └── grouper_cgo.go
│   │   ├── iface/
│   │   │   ├── iface.go
│   │   │   ├── iface_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── iface.go
│   │   │       │   └── out/
│   │   │       │       └── iface.go
│   │   │       ├── iface_all.go
│   │   │       ├── iface_all.yml
│   │   │       ├── iface_cgo.go
│   │   │       ├── iface_default.go
│   │   │       ├── iface_fix.yml
│   │   │       ├── iface_identical.go
│   │   │       ├── iface_identical.yml
│   │   │       ├── iface_opaque.go
│   │   │       ├── iface_opaque.yml
│   │   │       ├── iface_unexported.go
│   │   │       ├── iface_unexported.yml
│   │   │       ├── iface_unused.go
│   │   │       └── iface_unused.yml
│   │   ├── importas/
│   │   │   ├── importas.go
│   │   │   ├── importas_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── importas.go
│   │   │       │   └── out/
│   │   │       │       └── importas.go
│   │   │       ├── importas.go
│   │   │       ├── importas.yml
│   │   │       ├── importas_cgo.go
│   │   │       ├── importas_several_empty_aliases.go
│   │   │       ├── importas_several_empty_aliases.yml
│   │   │       ├── importas_strict.go
│   │   │       └── importas_strict.yml
│   │   ├── inamedparam/
│   │   │   ├── inamedparam.go
│   │   │   ├── inamedparam_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── inamedparam.go
│   │   │       ├── inamedparam_cgo.go
│   │   │       ├── inamedparam_skip_single_param.go
│   │   │       └── inamedparam_skip_single_param.yml
│   │   ├── ineffassign/
│   │   │   ├── ineffassign.go
│   │   │   ├── ineffassign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ineffassign.go
│   │   │       └── ineffassign_cgo.go
│   │   ├── interfacebloat/
│   │   │   ├── interfacebloat.go
│   │   │   ├── interfacebloat_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── interfacebloat.go
│   │   │       └── interfacebloat_cgo.go
│   │   ├── internal/
│   │   │   ├── commons.go
│   │   │   └── util.go
│   │   ├── intrange/
│   │   │   ├── intrange.go
│   │   │   ├── intrange_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── intrange.go
│   │   │       │   └── out/
│   │   │       │       └── intrange.go
│   │   │       ├── intrange.go
│   │   │       └── intrange_cgo.go
│   │   ├── iotamixing/
│   │   │   ├── iotamixing.go
│   │   │   ├── iotamixing_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── iotamixing.go
│   │   │       ├── iotamixing_report-individual.go
│   │   │       └── iotamixing_report-individual.yml
│   │   ├── ireturn/
│   │   │   ├── ireturn.go
│   │   │   ├── ireturn_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ireturn.go
│   │   │       ├── ireturn_allow.go
│   │   │       ├── ireturn_allow.yml
│   │   │       ├── ireturn_cgo.go
│   │   │       ├── ireturn_reject_generics.go
│   │   │       ├── ireturn_reject_generics.yml
│   │   │       ├── ireturn_reject_stdlib.go
│   │   │       └── ireturn_reject_stdlib.yml
│   │   ├── lll/
│   │   │   ├── lll.go
│   │   │   ├── lll_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── lll.go
│   │   │       ├── lll.yml
│   │   │       ├── lll_cgo.go
│   │   │       ├── lll_import.yml
│   │   │       ├── lll_import_multi.go
│   │   │       ├── lll_import_single.go
│   │   │       ├── lll_max_scan_token_size.go
│   │   │       └── lll_max_scan_token_size_cgo.go
│   │   ├── loggercheck/
│   │   │   ├── loggercheck.go
│   │   │   ├── loggercheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── loggercheck_cgo.go
│   │   │       ├── loggercheck_custom.go
│   │   │       ├── loggercheck_custom.yml
│   │   │       ├── loggercheck_default.go
│   │   │       ├── loggercheck_kitlogonly.go
│   │   │       ├── loggercheck_kitlogonly.yml
│   │   │       ├── loggercheck_logronly.go
│   │   │       ├── loggercheck_logronly.yml
│   │   │       ├── loggercheck_noprintflike.go
│   │   │       ├── loggercheck_noprintflike.yml
│   │   │       ├── loggercheck_requirestringkey.go
│   │   │       ├── loggercheck_requirestringkey.yml
│   │   │       ├── loggercheck_slogonly.go
│   │   │       ├── loggercheck_slogonly.yml
│   │   │       ├── loggercheck_zaponly.go
│   │   │       └── loggercheck_zaponly.yml
│   │   ├── maintidx/
│   │   │   ├── maintidx.go
│   │   │   ├── maintidx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── maintidx.go
│   │   │       ├── maintidx_cgo.go
│   │   │       ├── maintidx_under_100.go
│   │   │       └── maintidx_under_100.yml
│   │   ├── makezero/
│   │   │   ├── makezero.go
│   │   │   ├── makezero_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── makezero.go
│   │   │       ├── makezero_always.go
│   │   │       ├── makezero_always.yml
│   │   │       └── makezero_cgo.go
│   │   ├── mirror/
│   │   │   ├── mirror.go
│   │   │   ├── mirror_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── mirror.go
│   │   │       │   └── out/
│   │   │       │       └── mirror.go
│   │   │       ├── mirror.go
│   │   │       └── mirror_cgo.go
│   │   ├── misspell/
│   │   │   ├── misspell.go
│   │   │   ├── misspell_integration_test.go
│   │   │   ├── misspell_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── misspell.go
│   │   │       │   └── out/
│   │   │       │       └── misspell.go
│   │   │       ├── misspell.go
│   │   │       ├── misspell.yml
│   │   │       ├── misspell_cgo.go
│   │   │       ├── misspell_custom.go
│   │   │       └── misspell_custom.yml
│   │   ├── mnd/
│   │   │   ├── mnd.go
│   │   │   ├── mnd_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── mnd.go
│   │   │       ├── mnd_cgo.go
│   │   │       ├── mnd_custom.go
│   │   │       └── mnd_custom.yml
│   │   ├── modernize/
│   │   │   ├── modernize.go
│   │   │   ├── modernize_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── any.go
│   │   │       │   │   ├── fieldsseq.go
│   │   │       │   │   ├── fmtappendf.go
│   │   │       │   │   ├── forvar.go
│   │   │       │   │   ├── mapsloop.go
│   │   │       │   │   ├── mapsloop_dot.go
│   │   │       │   │   ├── minmax.go
│   │   │       │   │   ├── rangeint.go
│   │   │       │   │   ├── reflecttypefor.go
│   │   │       │   │   ├── slicescontains.go
│   │   │       │   │   ├── slicessort.go
│   │   │       │   │   ├── splitseq.go
│   │   │       │   │   ├── stditerators.go
│   │   │       │   │   ├── stringsbuilder.go
│   │   │       │   │   ├── stringscutprefix.go
│   │   │       │   │   ├── testingcontext_test.go
│   │   │       │   │   └── waitgroup.go
│   │   │       │   └── out/
│   │   │       │       ├── any.go
│   │   │       │       ├── fieldsseq.go
│   │   │       │       ├── fmtappendf.go
│   │   │       │       ├── forvar.go
│   │   │       │       ├── mapsloop.go
│   │   │       │       ├── mapsloop_dot.go
│   │   │       │       ├── minmax.go
│   │   │       │       ├── rangeint.go
│   │   │       │       ├── reflecttypefor.go
│   │   │       │       ├── slicescontains.go
│   │   │       │       ├── slicessort.go
│   │   │       │       ├── splitseq.go
│   │   │       │       ├── stditerators.go
│   │   │       │       ├── stringsbuilder.go
│   │   │       │       ├── stringscutprefix.go
│   │   │       │       ├── testingcontext_test.go
│   │   │       │       └── waitgroup.go
│   │   │       ├── modernize_any.go
│   │   │       ├── modernize_custom.go
│   │   │       └── modernize_custom.yml
│   │   ├── musttag/
│   │   │   ├── musttag.go
│   │   │   ├── musttag_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── musttag.go
│   │   │       ├── musttag.yml
│   │   │       ├── musttag_cgo.go
│   │   │       └── musttag_custom.go
│   │   ├── nakedret/
│   │   │   ├── nakedret.go
│   │   │   ├── nakedret_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nakedret.go
│   │   │       │   └── out/
│   │   │       │       └── nakedret.go
│   │   │       ├── nakedret.go
│   │   │       └── nakedret_cgo.go
│   │   ├── nestif/
│   │   │   ├── nestif.go
│   │   │   ├── nestif_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nestif.go
│   │   │       ├── nestif.yml
│   │   │       └── nestif_cgo.go
│   │   ├── nilerr/
│   │   │   ├── nilerr.go
│   │   │   ├── nilerr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilerr.go
│   │   │       └── nilerr_cgo.go
│   │   ├── nilnesserr/
│   │   │   ├── nilnesserr.go
│   │   │   ├── nilnesserr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilnesserr.go
│   │   │       └── nilnesserr_cgo.go
│   │   ├── nilnil/
│   │   │   ├── nilnil.go
│   │   │   ├── nilnil_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilnil.go
│   │   │       ├── nilnil_cgo.go
│   │   │       ├── nilnil_detect_opposite.go
│   │   │       ├── nilnil_detect_opposite.yml
│   │   │       ├── nilnil_multiple_nils.go
│   │   │       ├── nilnil_multiple_nils.yml
│   │   │       ├── nilnil_pointers_only.go
│   │   │       └── nilnil_pointers_only.yml
│   │   ├── nlreturn/
│   │   │   ├── nlreturn.go
│   │   │   ├── nlreturn_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nlreturn.go
│   │   │       │   └── out/
│   │   │       │       └── nlreturn.go
│   │   │       ├── nlreturn-block-size.go
│   │   │       ├── nlreturn-block-size.yml
│   │   │       ├── nlreturn.go
│   │   │       └── nlreturn_cgo.go
│   │   ├── noctx/
│   │   │   ├── noctx.go
│   │   │   ├── noctx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── noctx.go
│   │   │       └── noctx_cgo.go
│   │   ├── noinlineerr/
│   │   │   ├── noinlineerr.go
│   │   │   ├── noinlineerr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── noinlineerr.go
│   │   │       │   └── out/
│   │   │       │       └── noinlineerr.go
│   │   │       └── noinlineerr.go
│   │   ├── nolintlint/
│   │   │   ├── internal/
│   │   │   │   ├── README.md
│   │   │   │   ├── issues.go
│   │   │   │   ├── nolintlint.go
│   │   │   │   └── nolintlint_test.go
│   │   │   ├── nolintlint.go
│   │   │   ├── nolintlint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nolintlint.go
│   │   │       │   └── out/
│   │   │       │       └── nolintlint.go
│   │   │       ├── nolintlint.go
│   │   │       ├── nolintlint.yml
│   │   │       ├── nolintlint_cgo.go
│   │   │       ├── nolintlint_unused.go
│   │   │       └── nolintlint_unused.yml
│   │   ├── nonamedreturns/
│   │   │   ├── nonamedreturns.go
│   │   │   ├── nonamedreturns_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nonamedreturns.go
│   │   │       ├── nonamedreturns_cgo.go
│   │   │       ├── nonamedreturns_custom.go
│   │   │       └── nonamedreturns_custom.yml
│   │   ├── nosprintfhostport/
│   │   │   ├── nosprintfhostport.go
│   │   │   ├── nosprintfhostport_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nosprintfhostport.go
│   │   │       └── nosprintfhostport_cgo.go
│   │   ├── paralleltest/
│   │   │   ├── paralleltest.go
│   │   │   ├── paralleltest_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── paralleltest_custom_test.go
│   │   │       ├── paralleltest_custom_test.yml
│   │   │       └── paralleltest_test.go
│   │   ├── perfsprint/
│   │   │   ├── perfsprint.go
│   │   │   ├── perfsprint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── perfsprint.go
│   │   │       │   └── out/
│   │   │       │       └── perfsprint.go
│   │   │       ├── perfsprint.go
│   │   │       ├── perfsprint_cgo.go
│   │   │       ├── perfsprint_custom.go
│   │   │       └── perfsprint_custom.yml
│   │   ├── prealloc/
│   │   │   ├── prealloc.go
│   │   │   ├── prealloc_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── prealloc.go
│   │   │       └── prealloc_cgo.go
│   │   ├── predeclared/
│   │   │   ├── predeclared.go
│   │   │   ├── predeclared_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── predeclared.go
│   │   │       ├── predeclared_cgo.go
│   │   │       ├── predeclared_custom.go
│   │   │       └── predeclared_custom.yml
│   │   ├── promlinter/
│   │   │   ├── promlinter.go
│   │   │   ├── promlinter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── promlinter.go
│   │   │       └── promlinter_cgo.go
│   │   ├── protogetter/
│   │   │   ├── protogetter.go
│   │   │   ├── protogetter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── proto/
│   │   │       │   ├── test.go
│   │   │       │   ├── test.pb.go
│   │   │       │   ├── test.proto
│   │   │       │   └── test_grpc.pb.go
│   │   │       ├── protogetter.go
│   │   │       └── protogetter_cgo.go
│   │   ├── reassign/
│   │   │   ├── reassign.go
│   │   │   ├── reassign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── reassign.go
│   │   │       ├── reassign_cgo.go
│   │   │       ├── reassign_patterns.go
│   │   │       └── reassign_patterns.yml
│   │   ├── recvcheck/
│   │   │   ├── recvcheck.go
│   │   │   ├── recvcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── recvcheck.go
│   │   │       └── recvcheck_cgo.go
│   │   ├── revive/
│   │   │   ├── revive.go
│   │   │   ├── revive_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── revive.go
│   │   │       │   └── out/
│   │   │       │       └── revive.go
│   │   │       ├── revive-fix.yml
│   │   │       ├── revive.go
│   │   │       ├── revive.yml
│   │   │       ├── revive_cgo.go
│   │   │       └── revive_default.go
│   │   ├── rowserrcheck/
│   │   │   ├── rowserrcheck.go
│   │   │   ├── rowserrcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── rowserrcheck.go
│   │   │       └── rowserrcheck_cgo.go
│   │   ├── sloglint/
│   │   │   ├── sloglint.go
│   │   │   ├── sloglint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── sloglint.go
│   │   │       ├── sloglint_args_on_sep_lines.go
│   │   │       ├── sloglint_args_on_sep_lines.yml
│   │   │       ├── sloglint_attr_only.go
│   │   │       ├── sloglint_attr_only.yml
│   │   │       ├── sloglint_cgo.go
│   │   │       ├── sloglint_context_only.go
│   │   │       ├── sloglint_context_only.yml
│   │   │       ├── sloglint_forbidden_keys.go
│   │   │       ├── sloglint_forbidden_keys.yml
│   │   │       ├── sloglint_key_naming_case.go
│   │   │       ├── sloglint_key_naming_case.yml
│   │   │       ├── sloglint_kv_only.go
│   │   │       ├── sloglint_kv_only.yml
│   │   │       ├── sloglint_no_raw_keys.go
│   │   │       ├── sloglint_no_raw_keys.yml
│   │   │       ├── sloglint_static_msg.go
│   │   │       └── sloglint_static_msg.yml
│   │   ├── spancheck/
│   │   │   ├── spancheck.go
│   │   │   ├── spancheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── spancheck.go
│   │   │       ├── spancheck_cgo.go
│   │   │       ├── spancheck_enable_all.go
│   │   │       ├── spancheck_enable_all.yml
│   │   │       ├── spancheck_keep_default.go
│   │   │       └── spancheck_keep_default.yml
│   │   ├── sqlclosecheck/
│   │   │   ├── sqlclosecheck.go
│   │   │   ├── sqlclosecheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── sqlclosecheck.go
│   │   │       └── sqlclosecheck_cgo.go
│   │   ├── staticcheck/
│   │   │   ├── staticcheck.go
│   │   │   ├── staticcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gosimple.go
│   │   │       │   │   ├── staticcheck.go
│   │   │       │   │   └── stylecheck.go
│   │   │       │   └── out/
│   │   │       │       ├── gosimple.go
│   │   │       │       ├── staticcheck.go
│   │   │       │       └── stylecheck.go
│   │   │       ├── gosimple.go
│   │   │       ├── gosimple.yml
│   │   │       ├── gosimple_cgo.go
│   │   │       ├── staticcheck.go
│   │   │       ├── staticcheck.yml
│   │   │       ├── staticcheck_cgo.go
│   │   │       ├── stylecheck.go
│   │   │       ├── stylecheck.yml
│   │   │       ├── stylecheck_cgo.go
│   │   │       ├── stylecheck_empty.go
│   │   │       ├── stylecheck_empty.yml
│   │   │       ├── stylecheck_nil.go
│   │   │       └── stylecheck_nil.yml
│   │   ├── swaggo/
│   │   │   ├── swaggo.go
│   │   │   ├── swaggo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── swaggo.go
│   │   │       │   └── out/
│   │   │       │       └── swaggo.go
│   │   │       ├── swaggo.go
│   │   │       └── swaggo.yml
│   │   ├── tagalign/
│   │   │   ├── tagalign.go
│   │   │   ├── tagalign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── tagalign.go
│   │   │       │   └── out/
│   │   │       │       └── tagalign.go
│   │   │       ├── tagalign.go
│   │   │       ├── tagalign_align_only.go
│   │   │       ├── tagalign_align_only.yml
│   │   │       ├── tagalign_cgo.go
│   │   │       ├── tagalign_order_only.go
│   │   │       ├── tagalign_order_only.yml
│   │   │       ├── tagalign_sort_only.go
│   │   │       ├── tagalign_sort_only.yml
│   │   │       ├── tagalign_strict.go
│   │   │       └── tagalign_strict.yml
│   │   ├── tagliatelle/
│   │   │   ├── tagliatelle.go
│   │   │   ├── tagliatelle_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── tagliatelle.go
│   │   │       ├── tagliatelle_cgo.go
│   │   │       ├── tagliatelle_ignored_fields.go
│   │   │       ├── tagliatelle_ignored_fields.yml
│   │   │       ├── tagliatelle_initialism_overrides.go
│   │   │       └── tagliatelle_initialism_overrides.yml
│   │   ├── testableexamples/
│   │   │   ├── testableexamples.go
│   │   │   ├── testableexamples_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── testableexamples_test.go
│   │   │       └── testableexamples_test_cgo.go
│   │   ├── testifylint/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── testifylint.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── testifylint.go
│   │   │   │   ├── testifylint.go
│   │   │   │   ├── testifylint_bool_compare_only.go
│   │   │   │   ├── testifylint_bool_compare_only.yml
│   │   │   │   ├── testifylint_cgo.go
│   │   │   │   ├── testifylint_formatter_dont_require_string_msg.go
│   │   │   │   ├── testifylint_formatter_dont_require_string_msg.yml
│   │   │   │   ├── testifylint_formatter_only.go
│   │   │   │   ├── testifylint_formatter_only.yml
│   │   │   │   ├── testifylint_require_error_only.go
│   │   │   │   └── testifylint_require_error_only.yml
│   │   │   ├── testifylint.go
│   │   │   └── testifylint_integration_test.go
│   │   ├── testpackage/
│   │   │   ├── testdata/
│   │   │   │   └── testpackage_test.go
│   │   │   ├── testpackage.go
│   │   │   └── testpackage_integration_test.go
│   │   ├── thelper/
│   │   │   ├── testdata/
│   │   │   │   ├── thelper.go
│   │   │   │   ├── thelper.yml
│   │   │   │   ├── thelper_cgo.go
│   │   │   │   ├── thelper_fuzz.go
│   │   │   │   └── thelper_with_options.go
│   │   │   ├── thelper.go
│   │   │   └── thelper_integration_test.go
│   │   ├── tparallel/
│   │   │   ├── testdata/
│   │   │   │   ├── tparallel_cgo.go
│   │   │   │   ├── tparallel_happy_path_test.go
│   │   │   │   ├── tparallel_missing_subtest_test.go
│   │   │   │   └── tparallel_missing_toplevel_test.go
│   │   │   ├── tparallel.go
│   │   │   └── tparallel_integration_test.go
│   │   ├── typecheck.go
│   │   ├── unconvert/
│   │   │   ├── testdata/
│   │   │   │   ├── unconvert.go
│   │   │   │   └── unconvert_cgo.go
│   │   │   ├── unconvert.go
│   │   │   └── unconvert_integration_test.go
│   │   ├── unparam/
│   │   │   ├── testdata/
│   │   │   │   ├── unparam.go
│   │   │   │   └── unparam_cgo.go
│   │   │   ├── unparam.go
│   │   │   └── unparam_integration_test.go
│   │   ├── unqueryvet/
│   │   │   ├── testdata/
│   │   │   │   ├── unqueryvet.go
│   │   │   │   ├── unqueryvet_custom.go
│   │   │   │   └── unqueryvet_custom.yml
│   │   │   ├── unqueryvet.go
│   │   │   └── unqueryvet_integration_test.go
│   │   ├── unused/
│   │   │   ├── testdata/
│   │   │   │   ├── unused.go
│   │   │   │   └── unused_cgo.go
│   │   │   ├── unused.go
│   │   │   └── unused_integration_test.go
│   │   ├── usestdlibvars/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── usestdlibvars.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── usestdlibvars.go
│   │   │   │   ├── usestdlibvars.go
│   │   │   │   ├── usestdlibvars_cgo.go
│   │   │   │   ├── usestdlibvars_non_default.go
│   │   │   │   └── usestdlibvars_non_default.yml
│   │   │   ├── usestdlibvars.go
│   │   │   └── usestdlibvars_integration_test.go
│   │   ├── usetesting/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── usetesting.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── usetesting.go
│   │   │   │   ├── usetesting.go
│   │   │   │   ├── usetesting_cgo.go
│   │   │   │   ├── usetesting_configuration.go
│   │   │   │   └── usetesting_configuration.yml
│   │   │   ├── usetesting.go
│   │   │   └── usetesting_integration_test.go
│   │   ├── varnamelen/
│   │   │   ├── testdata/
│   │   │   │   ├── varnamelen.go
│   │   │   │   ├── varnamelen_cgo.go
│   │   │   │   ├── varnamelen_configuration.go
│   │   │   │   └── varnamelen_configuration.yml
│   │   │   ├── varnamelen.go
│   │   │   └── varnamelen_integration_test.go
│   │   ├── wastedassign/
│   │   │   ├── testdata/
│   │   │   │   ├── wastedassign.go
│   │   │   │   └── wastedassign_cgo.go
│   │   │   ├── wastedassign.go
│   │   │   └── wastedassign_integration_test.go
│   │   ├── whitespace/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── whitespace.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── whitespace.go
│   │   │   │   ├── whitespace-fix.yml
│   │   │   │   ├── whitespace.go
│   │   │   │   ├── whitespace.yml
│   │   │   │   └── whitespace_cgo.go
│   │   │   ├── whitespace.go
│   │   │   └── whitespace_integration_test.go
│   │   ├── wrapcheck/
│   │   │   ├── testdata/
│   │   │   │   ├── wrapcheck.go
│   │   │   │   └── wrapcheck_cgo.go
│   │   │   ├── wrapcheck.go
│   │   │   └── wrapcheck_integration_test.go
│   │   ├── wsl/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   ├── wsl_v4.go
│   │   │   │   │   │   └── wsl_v5.go
│   │   │   │   │   └── out/
│   │   │   │   │       ├── wsl_v4.go
│   │   │   │   │       └── wsl_v5.go
│   │   │   │   ├── ws_v4_cgo.go
│   │   │   │   ├── wsl_v4.go
│   │   │   │   ├── wsl_v4.yml
│   │   │   │   ├── wsl_v5.go
│   │   │   │   ├── wsl_v5_config.go
│   │   │   │   └── wsl_v5_config.yml
│   │   │   ├── wsl.go
│   │   │   ├── wsl_integration_test.go
│   │   │   └── wsl_v5.go
│   │   └── zerologlint/
│   │       ├── testdata/
│   │       │   ├── go.mod
│   │       │   ├── go.sum
│   │       │   ├── zerologlint.go
│   │       │   └── zerologlint_cgo.go
│   │       ├── zerologlint.go
│   │       └── zerologlint_integration_test.go
│   ├── goutil/
│   │   ├── env.go
│   │   ├── version.go
│   │   └── version_test.go
│   ├── lint/
│   │   ├── context.go
│   │   ├── linter/
│   │   │   ├── config.go
│   │   │   ├── context.go
│   │   │   └── linter.go
│   │   ├── lintersdb/
│   │   │   ├── builder_linter.go
│   │   │   ├── builder_plugin_go.go
│   │   │   ├── builder_plugin_module.go
│   │   │   ├── manager.go
│   │   │   ├── manager_test.go
│   │   │   ├── validator.go
│   │   │   └── validator_test.go
│   │   ├── package.go
│   │   ├── package_test.go
│   │   └── runner.go
│   ├── logutils/
│   │   ├── log.go
│   │   ├── logutils.go
│   │   ├── mock.go
│   │   ├── out.go
│   │   └── stderr_log.go
│   ├── printers/
│   │   ├── checkstyle.go
│   │   ├── checkstyle_test.go
│   │   ├── codeclimate.go
│   │   ├── codeclimate_test.go
│   │   ├── html.go
│   │   ├── html_test.go
│   │   ├── json.go
│   │   ├── json_test.go
│   │   ├── junitxml.go
│   │   ├── junitxml_test.go
│   │   ├── printer.go
│   │   ├── printer_test.go
│   │   ├── sarif.go
│   │   ├── sarif_test.go
│   │   ├── tab.go
│   │   ├── tab_test.go
│   │   ├── teamcity.go
│   │   ├── teamcity_test.go
│   │   ├── testdata/
│   │   │   ├── golden-json.json
│   │   │   ├── golden-line-number.txt
│   │   │   ├── golden-teamcity.txt
│   │   │   ├── in-issues.json
│   │   │   └── in-report-data.json
│   │   ├── text.go
│   │   └── text_test.go
│   ├── report/
│   │   ├── data.go
│   │   └── log.go
│   ├── result/
│   │   ├── issue.go
│   │   └── processors/
│   │       ├── base_rule.go
│   │       ├── cgo.go
│   │       ├── diff.go
│   │       ├── exclusion_generated_file_filter.go
│   │       ├── exclusion_generated_file_filter_test.go
│   │       ├── exclusion_generated_file_matcher.go
│   │       ├── exclusion_generated_file_matcher_test.go
│   │       ├── exclusion_paths.go
│   │       ├── exclusion_paths_test.go
│   │       ├── exclusion_presets.go
│   │       ├── exclusion_rules.go
│   │       ├── exclusion_rules_test.go
│   │       ├── filename_unadjuster.go
│   │       ├── fixer.go
│   │       ├── invalid_issue.go
│   │       ├── invalid_issue_test.go
│   │       ├── issues.go
│   │       ├── max_from_linter.go
│   │       ├── max_from_linter_test.go
│   │       ├── max_per_file_from_linter.go
│   │       ├── max_per_file_from_linter_test.go
│   │       ├── max_same_issues.go
│   │       ├── max_same_issues_test.go
│   │       ├── nolint_filter.go
│   │       ├── nolint_filter_test.go
│   │       ├── path_absoluter.go
│   │       ├── path_prettifier.go
│   │       ├── path_prettifier_test.go
│   │       ├── path_relativity.go
│   │       ├── path_shortener.go
│   │       ├── processor.go
│   │       ├── processor_test.go
│   │       ├── severity.go
│   │       ├── severity_test.go
│   │       ├── sort_results.go
│   │       ├── sort_results_test.go
│   │       ├── source_code.go
│   │       ├── testdata/
│   │       │   ├── exclusion_generated_file_filter/
│   │       │   │   ├── exclude.go
│   │       │   │   ├── exclude_block_comment.go
│   │       │   │   ├── exclude_doc.go
│   │       │   │   ├── exclude_long_line.go
│   │       │   │   ├── go_strict.go
│   │       │   │   └── go_strict_invalid.go
│   │       │   ├── exclusion_rules/
│   │       │   │   ├── case_sensitive.go
│   │       │   │   └── exclusion_rules.go
│   │       │   ├── nolint_filter/
│   │       │   │   ├── apply_to_unknown.go
│   │       │   │   ├── bad_names.go
│   │       │   │   ├── nolint.go
│   │       │   │   ├── nolint2.go
│   │       │   │   ├── unused.go
│   │       │   │   └── whole_file.go
│   │       │   └── severity/
│   │       │       ├── exclude_rules.go
│   │       │       └── severity_rules.go
│   │       ├── uniq_by_line.go
│   │       └── uniq_by_line_test.go
│   └── timeutils/
│       └── stopwatch.go
├── scripts/
│   ├── bench/
│   │   ├── bench_local.sh
│   │   ├── bench_version.sh
│   │   └── readme.md
│   ├── gen_github_action_config/
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── main_test.go
│   │   ├── testdata/
│   │   │   ├── all-releases-v2.json
│   │   │   ├── all-releases.json
│   │   │   ├── github-action-config-v1.json
│   │   │   ├── github-action-config-v2.json
│   │   │   └── github-action-config.json
│   │   └── types.go
│   ├── print_ast/
│   │   └── main.go
│   └── website/
│       ├── copy_jsonschema/
│       │   └── main.go
│       ├── dump_info/
│       │   ├── cmd_help.go
│       │   ├── default_exclusions.go
│       │   ├── formatters.go
│       │   ├── linters.go
│       │   ├── main.go
│       │   ├── thanks.go
│       │   └── thanks_test.go
│       ├── expand_templates/
│       │   ├── .gitignore
│       │   ├── changelog.go
│       │   ├── configuration.go
│       │   ├── configuration_test.go
│       │   ├── main.go
│       │   └── plugins.go
│       ├── github/
│       │   └── github.go
│       └── types/
│           └── types.go
├── test/
│   ├── bench/
│   │   └── bench_test.go
│   ├── configuration_file_test.go
│   ├── enabled_linters_test.go
│   ├── fix_test.go
│   ├── linters_test.go
│   ├── output_test.go
│   ├── run_test.go
│   ├── testdata/
│   │   ├── autogenerated/
│   │   │   ├── autogenerated.go
│   │   │   ├── do_not_edit.go
│   │   │   ├── go_bindata.go
│   │   │   ├── mockgen.go
│   │   │   └── protoc_gen_foo.go
│   │   ├── cgo/
│   │   │   └── main.go
│   │   ├── cgo_with_issues/
│   │   │   └── main.go
│   │   ├── configs/
│   │   │   ├── custom_linter_goplugin.yml
│   │   │   ├── custom_linter_module.yml
│   │   │   ├── custom_linter_notype.yml
│   │   │   ├── default_exclude.yml
│   │   │   ├── multiple-issues-fix.yml
│   │   │   ├── output.yml
│   │   │   └── path-except.yml
│   │   ├── default_exclude.go
│   │   ├── fix/
│   │   │   ├── in/
│   │   │   │   └── multiple-issues-fix.go
│   │   │   └── out/
│   │   │       └── multiple-issues-fix.go
│   │   ├── linedirective/
│   │   │   ├── dupl.yml
│   │   │   ├── gomodguard.yml
│   │   │   ├── hello.go
│   │   │   ├── hello.tmpl
│   │   │   └── lll.yml
│   │   ├── minimalpkg/
│   │   │   └── minimalpkg.go
│   │   ├── nogofiles/
│   │   │   └── test.txt
│   │   ├── notcompiles/
│   │   │   ├── typecheck.go
│   │   │   └── typecheck_many_issues.go
│   │   ├── output.go
│   │   ├── path_except.go
│   │   ├── path_except_test.go
│   │   ├── quicktemplate/
│   │   │   ├── hello.qtpl
│   │   │   └── hello.qtpl.go
│   │   ├── sort_results/
│   │   │   └── main.go
│   │   ├── symlink_loop/
│   │   │   └── realpkg/
│   │   │       └── p.go
│   │   ├── unsafe/
│   │   │   └── pkg.go
│   │   ├── used_only_in_tests/
│   │   │   ├── a.go
│   │   │   └── a_test.go
│   │   ├── withconfig/
│   │   │   ├── .golangci.yml
│   │   │   └── pkg/
│   │   │       └── pkg.go
│   │   ├── withtests/
│   │   │   ├── p.go
│   │   │   └── p_test.go
│   │   └── withxtest/
│   │       ├── p.go
│   │       └── p_test.go
│   ├── testdata_etc/
│   │   ├── abspath/
│   │   │   └── with_issue.go
│   │   └── unused_exported/
│   │       ├── golangci.yml
│   │       ├── lib/
│   │       │   ├── bar_test.go
│   │       │   └── foo.go
│   │       └── main.go
│   └── testshared/
│       ├── analysis.go
│       ├── analysis_test.go
│       ├── directives.go
│       ├── directives_test.go
│       ├── install.go
│       ├── integration/
│       │   ├── fix.go
│       │   └── run.go
│       ├── runner.go
│       ├── runner_test.go
│       ├── runner_unix.go
│       ├── runner_windows.go
│       └── testdata/
│           └── all.go
└── third_party/
    ├── dogsled/
    │   └── LICENSE
    ├── gochecknoglobals/
    │   └── LICENSE
    ├── gochecknoinits/
    │   └── LICENSE
    ├── gometalinter/
    │   └── LICENSE
    ├── lll/
    │   └── LICENSE
    ├── nakedret/
    │   └── LICENSE
    └── x_tools/
        └── LICENSE

================================================
FILE CONTENTS
================================================

================================================
FILE: .custom-gcl.reference.yml
================================================
# The golangci-lint version used to build the custom binary.
# Required.
version: v2.0.0

# The name of the custom binary.
# Optional.
# Default: custom-gcl
name: custom-golangci-lint

# The directory path used to store the custom binary.
# Optional.
# Default: .
destination: ./my/path/

# The list of the plugins to integrate inside the custom binary.
plugins:
  # a plugin from a Go proxy
  - module: 'github.com/example/plugin3'
    version: v1.2.3

  # a plugin from a Go proxy (with a specific import path)
  - module: 'github.com/example/plugin4'
    import: 'github.com/example/plugin4/foo'
    version: v1.0.0

  # a plugin from local source (with absolute path)
  - module: 'github.com/example/plugin2'
    path: /my/local/path/plugin2

  # a plugin from local source (with relative path)
  - module: 'github.com/example/plugin1'
    path: ./my/local/path/plugin1

  # a plugin from local source (with absolute path and a specific import path)
  - module: 'github.com/example/plugin2'
    import: 'github.com/example/plugin4/foo'
    path: /my/local/path/plugin2


================================================
FILE: .gitattributes
================================================
go.sum linguist-generated
assets/* linguist-generated
*       text=auto eol=lf
*.ps1   text eol=crlf


================================================
FILE: .github/CONTRIBUTING.md
================================================
See [contributing quick start](https://golangci-lint.run/docs/contributing/) on our website.


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐞 Bug Report
description: "Create a report to help us improve."
labels: [bug]
body:
  - type: checkboxes
    id: terms
    attributes:
      label: Welcome
      options:
        - label: Yes, I'm using a binary release within 2 latest [releases](https://github.com/golangci/golangci-lint/releases). Only such installations are supported.
          required: true
        - label: Yes, I've searched similar [issues on GitHub](https://github.com/golangci/golangci-lint/issues) and didn't find any.
          required: true
        - label: Yes, I've read the `typecheck` section of the [FAQ](https://golangci-lint.run/docs/welcome/faq/#why-do-you-have-typecheck-errors).
          required: true
        - label: Yes, I've tried with the standalone [linter](https://golangci-lint.run/docs/linters/) if available (e.g., gocritic, go vet, etc.).
          required: true
        - label: I agree to follow this project's [Code of Conduct](https://github.com/golangci/golangci-lint?tab=coc-ov-file)
          required: true

  - type: dropdown
    id: install
    attributes:
      label: How did you install golangci-lint?
      options:
        - I don't know
        - Official GitHub Action
        - Official binary
        - Brew
        - MacPorts
        - Chocolatey
        - Scoop
        - Docker
        - go install
        - Tools pattern
        - go tool
        - AUR
        - Nix
        - Deb
        - RPM
        - Other Linux package manager
        - Via editor/IDE
        - asdf/mise-en-place
        - Other
    validations:
      required: true

  - type: textarea
    id: problem
    attributes:
      label: Description of the problem
      placeholder: Your problem description
    validations:
      required: true

  - type: textarea
    id: version
    attributes:
      label: Version of golangci-lint
      value: |-
        <details>

        ```console
        $ golangci-lint --version
        # Paste output here
        ```

        </details>
    validations:
      required: true

  - type: textarea
    id: config
    attributes:
      label: Configuration
      value: |-
        <details>

        ```console
        # paste configuration file or CLI flags here
        ```

        </details>
    validations:
      required: true

  - type: textarea
    id: go-env
    attributes:
      label: Go environment
      value: |-
        <details>

        ```console
        $ go version && go env
        # paste output here
        ```

        </details>
    validations:
      required: true

  - type: textarea
    id: verbose-output
    attributes:
      label: Verbose output of running
      value: |-
        <details>

        ```console
        $ golangci-lint cache clean
        $ golangci-lint run -v
        # paste output here
        ```

        </details>
    validations:
      required: true

  - type: textarea
    id: code-example
    attributes:
      label: A minimal reproducible example or link to a public repository
      description: if your problem is related to a private repository, a minimal reproducible example is required.
      value: |-
        <details>

        ```go
        // add your code here
        ```

        </details>
    validations:
      required: true

  - type: checkboxes
    id: validation
    attributes:
      label: Validation
      options:
        - label: Yes, I've included all information above (version, config, etc.).
          required: true

  - type: checkboxes
    id: supporter
    attributes:
      label: Supporter
      options:
        - label: I am a [sponsor/backer](https://donate.golangci.org) of this project.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: 📖 Documentation
    url: https://golangci-lint.run
    about: Please take a look to our documentation.
  - name: ❓ Questions
    url: https://github.com/golangci/golangci-lint/discussions
    about: If you have a question, or are looking for advice, please post on our Discussions forum!
  - name: 💬 Chat on Slack
    url: https://gophers.slack.com/archives/CS0TBRKPC
    about: Maybe chatting with the community can help


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: 💡 Feature request
description: "Suggest an idea for this project."
labels: [enhancement]
body:

  - type: checkboxes
    id: terms
    attributes:
      label: Welcome
      options:
        - label: Yes, I've searched similar [issues on GitHub](https://github.com/golangci/golangci-lint/issues) and didn't find any.
          required: true
        - label: I agree to follow this project's [Code of Conduct](https://github.com/golangci/golangci-lint?tab=coc-ov-file)
          required: true

  - type: dropdown
    id: install
    attributes:
      label: How did you install golangci-lint?
      options:
        - I don't know
        - Official GitHub Action
        - Official binary
        - Brew
        - MacPorts
        - Chocolatey
        - Scoop
        - Docker
        - go install
        - Tools pattern
        - go tool
        - AUR
        - Nix
        - Deb
        - RPM
        - Other Linux package manager
        - Via editor/IDE
        - asdf/mise-en-place
        - Other
    validations:
      required: true

  - type: textarea
    id: problem
    attributes:
      label: Your feature request related to a problem? Please describe
      placeholder: "A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]"
    validations:
      required: true

  - type: textarea
    id: solution
    attributes:
      label: Describe the solution you'd like
      placeholder: "A clear and concise description of what you want to happen."
    validations:
      required: true

  - type: textarea
    id: alternatives
    attributes:
      label: Describe alternatives you've considered
      placeholder: "A clear and concise description of any alternative solutions or features you've considered."
    validations:
      required: true

  - type: textarea
    id: additional
    attributes:
      label: Additional context
      placeholder: "Add any other context or screenshots about the feature request here."
    validations:
      required: false

  - type: checkboxes
    id: supporter
    attributes:
      label: Supporter
      options:
        - label: I am a [sponsor/backer](https://donate.golangci.org) of this project.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--

WARNING:

We use Dependabot to update dependencies (linters included).
The updates happen at least automatically once a week (Sunday 11am UTC).

Non-versioned dependencies are managed by the golangci-lint maintainers.

No pull requests to update a linter will be accepted unless:
you are the original author of the linter, AND there are important changes required (like a major version bump).

-->

<!--

WARNING:

Pull requests from a fork inside a GitHub organization are not allowed.
Only pull requests from personal forks are allowed. 

-->


================================================
FILE: .github/boring-cyborg.yml
================================================
firstPRWelcomeComment: Hey, thank you for opening your first Pull Request !

# Comment to be posted to on first time issues
firstIssueWelcomeComment: >
  Hey, thank you for opening your first Issue ! 🙂
  If you would like to contribute we have a [guide for contributors](https://golangci-lint.run/docs/contributing/).


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: gomod
    directory: "/"
    schedule:
      interval: weekly
      day: "sunday"
      time: "11:00" # 11am UTC
    ignore:
      # Ignore forked linters because of their versioning issues.
      - dependency-name: "github.com/golangci/dupl"
      - dependency-name: "github.com/golangci/gofmt"
      - dependency-name: "github.com/golangci/swaggoswag"
      - dependency-name: "github.com/golangci/unconvert"
  - package-ecosystem: github-actions
    directory: "/"
    schedule:
      interval: weekly
    groups:
      github-actions:
        patterns:
          - "*"  # Group all updates into a single larger pull request.
  - package-ecosystem: docker
    directory: "/build"
    schedule:
      interval: weekly
    groups:
      docker:
        patterns:
          - "*"  # Group all updates into a single larger pull request.
  - package-ecosystem: gomod
    directory: "/scripts/gen_github_action_config"
    schedule:
      interval: weekly
    groups:
      scripts:
        patterns:
          - "*"  # Group all updates into a single larger pull request.
  - package-ecosystem: gomod
    directories:
      - pkg/golinters/arangolint/testdata/
      - pkg/golinters/ginkgolinter/testdata/
      - pkg/golinters/loggercheck/testdata/
      - pkg/golinters/protogetter/testdata/
      - pkg/golinters/spancheck/testdata/
      - pkg/golinters/zerologlint/testdata/
    groups:
      linter-testdata:
        patterns:
          - "*"  # Group all updates into a single larger pull request.
    schedule:
      interval: monthly
      day: "wednesday"
      time: "11:00" # 11am UTC


================================================
FILE: .github/new-linter-checklist.md
================================================
In order for a pull request adding a linter to be reviewed, the linter and the PR must follow some requirements.

- [ ] The CLA must be signed

### Pull Request Description

- [ ] It must have a link to the linter repository.
- [ ] It must provide a short description of the linter.

### Linter

- [ ] It must not be a duplicate of another linter or a rule of a linter (the team will help to verify that).
- [ ] It must have a valid license (AGPL is not allowed), and the file must contain the required information by the license, ex: author, year, etc.
- [ ] It must use Go version <= 1.22.0
- [ ] The linter repository must have a CI and tests.
- [ ] It must use [`go/analysis`](https://golangci-lint.run/docs/contributing/new-linters/).
- [ ] It must have a valid tag, ex: `v1.0.0`, `v0.1.0`.
- [ ] It must not contain `init()`.
- [ ] It must not contain `panic()`.
- [ ] It must not contain `log.Fatal()`, `os.Exit()`, or similar.
- [ ] It must not modify the AST.
- [ ] It must not have false positives/negatives (the team will help to verify that).
- [ ] It must have tests inside golangci-lint.

### The Linter Tests Inside Golangci-lint

- [ ] They must have at least one std lib import.
- [ ] They must have integration tests without configuration (default).
- [ ] They must have integration tests with configuration (if the linter has a configuration).

### `.golangci.next.reference.yml`

- [ ] The file `.golangci.next.reference.yml` must be updated.
- [ ] The file `.golangci.reference.yml` must NOT be edited.
- [ ] The linter must be added to the lists of available linters (alphabetical case-insensitive order).
    - `enable` and `disable` options
- [ ] If the linter has a configuration, the exhaustive configuration of the linter must be added (alphabetical case-insensitive order)
    - The values must be different from the default ones.
    - The default values must be defined in a comment.
    - The option must have a short description.

### Others Requirements

- [ ] The files (tests and linter) inside golangci-lint must have the same name as the linter.
- [ ] The `.golangci.yml` of golangci-lint itself must not be edited and the linter must not be added to this file.
- [ ] The linters must be sorted in the alphabetical order (case-insensitive) in the `lintersdb/builder_linter.go` and `.golangci.next.reference.yml`.
- [ ] The load mode (`WithLoadMode(...)`):
    - if the linter uses `goanalysis.LoadModeSyntax` -> no `WithLoadForGoAnalysis()` in `lintersdb/builder_linter.go`
    - if the linter uses `goanalysis.LoadModeTypesInfo`, it requires `WithLoadForGoAnalysis()` in `lintersdb/builder_linter.go`
- [ ] The version in `WithSince(...)` must be the next minor version (`v1.X.0`) of golangci-lint.
- [ ] `WithURL()` must contain the URL of the repository.

### Recommendations

- [ ] The file `jsonschema/golangci.next.jsonschema.json` should be updated.
- [ ] The file `jsonschema/golangci.jsonschema.json` must NOT be edited.
- [ ] The linter repository should have a readme and linting.
- [ ] The linter should be published as a binary (useful to diagnose bug origins).
- [ ] The linter repository should have a `.gitignore` (IDE files, binaries, OS files, etc. should not be committed)
- [ ] A tag should never be recreated.
- [ ] Use `main` as the default branch name.

---

The golangci-lint team will edit this comment to check the boxes before and during the review.

The code review will start after the completion of those checkboxes (except for the specific items that the team will help to verify).

The reviews should be addressed as commits (no squash).

If the author of the PR is a member of the golangci-lint team, he should not edit this message.

**This checklist does not imply that we will accept the linter.**


================================================
FILE: .github/peril/.gitignore
================================================
node_modules/


================================================
FILE: .github/peril/README.md
================================================
Based on https://github.com/gatsbyjs/gatsby/tree/HEAD/peril.

## Update a code

```bash
heroku ps:restart web --app golangci-peril
heroku logs --app golangci-peril -t
```


================================================
FILE: .github/peril/package.json
================================================
{
  "dependencies": {
    "jest": "^29.0.3"
  },
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "rootDir": "../",
    "roots": [
      "<rootDir>/peril"
    ],
    "transform": {
      "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "moduleFileExtensions": [
      "js",
      "jsx",
      "ts",
      "tsx",
      "json"
    ]
  }
}


================================================
FILE: .github/peril/rules/invite-collaborator.ts
================================================
import { danger } from "danger";

const comment = (username: string) => `
Hey, @${username} — we just merged your PR to \`golangci-lint\`! 🔥🚀

\`golangci-lint\` is built by awesome people like you. Let us say “thanks”: **we just invited you to join the [GolangCI](https://github.com/golangci) organization on GitHub.**
This will add you to our team of maintainers. Accept the invite by visiting [this link](https://github.com/orgs/golangci/invitation).

By joining the team, you’ll be able to label issues, review pull requests, and merge approved pull requests.
More information about contributing is [here](https://golangci-lint.run/docs/contributing/).

Thanks again!
`;

const teamId = `3840765`;

export const inviteCollaborator = async () => {
  const gh = danger.github;
  const api = gh.api;

  // Details about the repo.
  const owner = gh.thisPR.owner;
  const repo = gh.thisPR.repo;
  const number = gh.thisPR.number;

  // Details about the collaborator.
  const username = gh.pr.user.login;

  // Check whether or not we’ve already invited this contributor.
  try {
    const inviteCheck = (await api.teams.getMembership({
      team_id: teamId,
      username,
    } as any)) as any;
    const isInvited = inviteCheck.headers.status !== "404";

    // If we’ve already invited them, don’t spam them with more messages.
    if (isInvited) {
      console.log(
        `@${username} has already been invited to this org. Doing nothing.`
      );
      return;
    }
  } catch (err) {
    console.info(
      `Error checking membership of ${username} in team ${teamId}: ${err.stack}`
    );
    // If the user hasn’t been invited, the invite check throws an error.
  }

  try {
    const invite = await api.teams.addOrUpdateMembership({
      team_id: teamId,
      username,
    } as any);

    if (invite.data.state === "active") {
      console.log(
        `@${username} is already a ${invite.data.role} for this team.`
      );
    } else {
      console.log(`We’ve invited @${username} to join this team.`);
    }
  } catch (err) {
    console.log("Something went wrong.");
    console.log(err);
    return;
  }

  // For new contributors, roll out the welcome wagon!
  await api.issues.createComment({
    owner,
    repo,
    number,
    body: comment(username),
  });
};

export default async () => {
  await inviteCollaborator();
};


================================================
FILE: .github/peril/settings.json
================================================
{
  "$schema": "https://raw.githubusercontent.com/danger/peril/HEAD/peril-settings-json.schema",
  "settings": {
    "ignored_repos": [],
    "env_vars": ["SLACK_WEBHOOK_URL", "GITHUB_ACCESS_TOKEN"]
  },
  "repos": {
    "golangci/golangci-lint": {
      "pull_request.closed (pull_request.merged == true)": [
        ".github/peril/rules/invite-collaborator.ts"
      ]
    }
  }
}


================================================
FILE: .github/peril/tests/invite-collaborator.test.ts
================================================
jest.mock("danger", () => jest.fn());
import * as danger from "danger";

const dm = danger as any;

import { inviteCollaborator } from "../rules/invite-collaborator";

beforeEach(() => {
  dm.danger = {
    github: {
      thisPR: {
        owner: "gatsbyjs",
        repo: "peril-gatsbyjs",
        number: 1,
      },
      pr: {
        user: {
          login: "someUser",
        },
      },
      api: {
        teams: {
          getMembership: () => Promise.resolve({ meta: { status: "404" } }),
          addOrUpdateMembership: jest.fn(() =>
            Promise.resolve({ data: { state: "pending" } })
          ),
        },
        issues: {
          createComment: jest.fn(),
        },
      },
    },
  };
});

describe("a closed pull request", () => {
  it("was merged and authored by a first-time contributor", async () => {
    dm.danger.github.pr.merged = true;

    await inviteCollaborator();

    expect(dm.danger.github.api.issues.createComment).toBeCalled();
    expect(dm.danger.github.api.orgs.addTeamMembership).toBeCalled();
  });

  it("was merged and authored by an existing collaborator", async () => {
    dm.danger.github.pr.merged = true;
    dm.danger.github.api.orgs.getTeamMembership = () =>
      Promise.resolve({ headers: { status: "204 No Content" } });

    await inviteCollaborator();

    expect(dm.danger.github.api.issues.createComment).not.toBeCalled();
  });

  it("does not comment if invitation failed", async () => {
    dm.danger.github.pr.merged = true;
    dm.danger.github.api.orgs.addTeamMembership = () =>
      Promise.reject({ headers: { status: "422 Unprocessable Entity" } });

    await inviteCollaborator();

    expect(dm.danger.github.api.issues.createComment).not.toBeCalled();
  });
});


================================================
FILE: .github/peril/tsconfig.json
================================================
{
  "compilerOptions": {
    "esModuleInterop": false,
    "target": "es5",
    "module": "commonjs",
    "lib": ["es2017"],
    "strict": true
  }
}


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 366

# Number of days of inactivity before a stale issue is closed
daysUntilClose: 30

# Issues with these labels will never be considered stale
exemptLabels:
  - pinned
  - security
  - blocked
  - protected
  - triaged

# Label to use when marking an issue as stale
staleLabel: stale

# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.

# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false


================================================
FILE: .github/workflows/codeql.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"

on:
  push:
    branches:
      - main
  pull_request:
    # The branches below must be a subset of the branches above
    branches:
      - main
  schedule:
    - cron: '0 17 * * 5'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest

    permissions:
      # required for all workflows
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        # Override automatic language detection by changing the below list
        # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
        # TODO: Enable for javascript later
        language: [ 'go']

    steps:
      - name: Checkout repository
        uses: actions/checkout@v6

      # Initializes the CodeQL tools for scanning.
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v4
        with:
          languages: ${{ matrix.language }}
          # If you wish to specify custom queries, you can do so here or in a config file.
          # By default, queries listed here will override any specified in a config file.
          # Prefix the list here with "+" to use these queries and those in the config file.
          # queries: ./path/to/local/query, your-org/your-repo/queries@main

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v4


================================================
FILE: .github/workflows/deploy-documentation.yml
================================================
name: Deploy Documentation

on:
  push:
    branches:
      - main

jobs:

  doc:
    name: Build and deploy documentation
    runs-on: ubuntu-latest
    env:
      # https://github.com/actions/setup-go#supported-version-syntax
      # ex:
      # - 1.18beta1 -> 1.18.0-beta.1
      # - 1.18rc1 -> 1.18.0-rc.1
      GO_VERSION: '1.26'
      HUGO_VERSION: 0.148.1
      CGO_ENABLED: 0
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}

      - run: go mod download

      - name: Setup Hugo
        run: |
          wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
          && sudo dpkg -i ${{ runner.temp }}/hugo.deb

      - name: Build Documentation
        run: make docs_build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          publish_dir: docs/public
          force_orphan: true
          github_token: ${{ secrets.GOLANGCI_LINT_TOKEN }}


================================================
FILE: .github/workflows/new-linter-checklist.yml
================================================
name: Add new linter checklist

on:
  workflow_dispatch:
    inputs:
      pr:
        description: PR number
        required: true
        type: number

permissions:
  pull-requests: write

jobs:
  add-comment:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Add checklist
        run: |
          # Avoid adding multiple comments for the same PR.
          comment_exist=$(gh pr view "$NUMBER" \
            --json comments \
            --jq '.comments[].author | select(.login=="github-actions") | .login' \
            | wc -l)
          [ "$comment_exist" -gt 0 ] && edit_last="--edit-last"

          gh pr comment "$NUMBER" --body "$(cat .github/new-linter-checklist.md)" $edit_last
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GH_REPO: ${{ github.repository }}
          NUMBER: ${{ inputs.pr }}


================================================
FILE: .github/workflows/post-release.yml
================================================
name: "Post release"
on:
  release:
    types:
      - published

env:
  # https://github.com/actions/setup-go#supported-version-syntax
  # ex:
  # - 1.18beta1 -> 1.18.0-beta.1
  # - 1.18rc1 -> 1.18.0-rc.1
  GO_VERSION: '1.26'

jobs:
  update-gha-assets:
    name: "Update GitHub Action assets"
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Update GitHub Action config
        run: make assets/github-action-config.json

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v8
        with:
          base: main
          token: ${{ secrets.GOLANGCI_LINT_TOKEN }}
          branch-suffix: timestamp
          title: "docs: update GitHub Action assets"
          delete-branch: true

  update-assets:
    name: "Update documentation assets"
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Update reference files
        run: cp .golangci.next.reference.yml .golangci.reference.yml

      - name: Update JSON schema files
        run: cp jsonschema/golangci.next.jsonschema.json jsonschema/golangci.jsonschema.json

      - name: Update information
        run: make website_dump_info

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v8
        with:
          base: main
          token: ${{ secrets.GOLANGCI_LINT_TOKEN }}
          branch-suffix: timestamp
          title: "docs: update documentation assets"
          delete-branch: true
          body: |
            - [ ] update changelog
            - [ ] add previous version JSON Schema

  check-install-script:
    name: Installation script (remote)
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - run: curl -sSfL https://golangci-lint.run/install.sh | sh -s -- -b "./install-golangci-lint"


================================================
FILE: .github/workflows/pr-checks.yml
================================================
name: Checks
on:
  push:
    branches:
      - main
  pull_request:

env:
  # https://github.com/actions/setup-go#supported-version-syntax
  # ex:
  # - 1.18beta1 -> 1.18.0-beta.1
  # - 1.18rc1 -> 1.18.0-rc.1
  GO_VERSION: '1.26'

jobs:
  # Check if there is any dirty change for go mod tidy
  go-mod:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}
      - name: Check go mod
        run: |
          go mod tidy
          git diff --exit-code go.mod
          git diff --exit-code go.sum

  # This check is disabled because of GitHub API instability: 504 Gateway Timeout.
  # Checks: GitHub action assets
#  check-generated:
#    runs-on: ubuntu-latest
#    steps:
#      - uses: actions/checkout@v6
#        with:
#          fetch-depth: 0
#      - uses: actions/setup-go@v6
#        with:
#          go-version: ${{ env.GO_VERSION }}
#      - name: Check generated files are up-to-date
#        run: make fast_check_generated
#        env:
#          # needed for github-action-config.json generation
#          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  check-local-install-script:
    name: Installation script (local)
    strategy:
      matrix:
        os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - name: Check installation script
        run: cat ./install.sh | sh -s -- -d -b "./install-golangci-lint"

  # Note: the command `run` is tested by the other workflows (`make test`).
  check-commands:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}
      - name: Build golangci-lint
        run: make build

      - run: ./golangci-lint

      - run: ./golangci-lint fmt
      - run: ./golangci-lint fmt --diff
      - run: cat cmd/golangci-lint/main.go | ./golangci-lint fmt --stdin

      - run: ./golangci-lint cache
      - run: ./golangci-lint cache status
      - run: ./golangci-lint cache clean

      - run: ./golangci-lint completion
      - run: ./golangci-lint completion bash
      - run: ./golangci-lint completion bash --no-descriptions
      - run: ./golangci-lint completion zsh
      - run: ./golangci-lint completion zsh --no-descriptions
      - run: ./golangci-lint completion fish
      - run: ./golangci-lint completion fish --no-descriptions
      - run: ./golangci-lint completion powershell
      - run: ./golangci-lint completion powershell --no-descriptions

      - run: ./golangci-lint config
      - run: ./golangci-lint config path
      - run: ./golangci-lint config path --json
      - run: ./golangci-lint config verify --schema jsonschema/golangci.next.jsonschema.json

      - run: ./golangci-lint help
      - run: ./golangci-lint help linters
      - run: ./golangci-lint help linters --json
      - run: ./golangci-lint help formatters
      - run: ./golangci-lint help formatters --json
      - run: ./golangci-lint linters
      - run: ./golangci-lint linters --json
      - run: ./golangci-lint formatters
      - run: ./golangci-lint formatters --json
      - run: ./golangci-lint version
      - run: ./golangci-lint version --short
      - run: ./golangci-lint version --debug
      - run: ./golangci-lint version --json
      - run: ./golangci-lint version --json --debug


================================================
FILE: .github/workflows/pr-documentation.yml
================================================
name: Check Documentation

on:
  pull_request:

jobs:

  doc:
    name: Build documentation
    runs-on: ubuntu-latest
    env:
      # https://github.com/actions/setup-go#supported-version-syntax
      # ex:
      # - 1.18beta1 -> 1.18.0-beta.1
      # - 1.18rc1 -> 1.18.0-rc.1
      GO_VERSION: '1.26'
      HUGO_VERSION: 0.148.1
      CGO_ENABLED: 0

    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}

      - run: go mod download

      - name: Setup Hugo
        run: |
          wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
          && sudo dpkg -i ${{ runner.temp }}/hugo.deb

      - name: Build Documentation
        run: make docs_build


================================================
FILE: .github/workflows/pr-tests.yml
================================================
name: Tests
on:
  push:
    branches:
      - main
  pull_request:

env:
  # https://github.com/actions/setup-go#supported-version-syntax
  # ex:
  # - 1.18beta1 -> 1.18.0-beta.1
  # - 1.18rc1 -> 1.18.0-rc.1
  GO_VERSION: '1.26'

jobs:
  # Check if there is any dirty change for go mod tidy
  go-mod:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}
      - name: Check go mod
        run: |
          go mod tidy
          git diff --exit-code go.mod
          git diff --exit-code go.sum

  # We already run the current golangci-lint in tests, but here we test
  # our GitHub action with the latest stable golangci-lint.
  golangci-lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          # https://github.com/actions/setup-go#supported-version-syntax
          # ex:
          # - 1.18beta1 -> 1.18.0-beta.1
          # - 1.18rc1 -> 1.18.0-rc.1
          # TODO(ldez) must be changed after the first release of golangci-lint with go1.25
          # go-version: ${{ env.GO_VERSION }}
          go-version: '1.25'
      - name: lint
        uses: golangci/golangci-lint-action@v9.2.0
        with:
          version: latest

  tests-on-windows:
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI
      - name: Run tests
        run: make.exe test

  tests-on-macos:
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI
      - name: Run tests
        run: make test

  tests-on-unix:
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - ubuntu-24.04-arm
        golang:
          - '1.25'
          - '1.26'
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ matrix.golang }}
      - name: Run tests
        run: make test


================================================
FILE: .github/workflows/release.yml
================================================
name: "Release a tag"
on:
  push:
    tags:
      - v*

permissions:
  # Allow the workflow to write attestations.
  id-token: write
  attestations: write

jobs:
  release:
    runs-on: ubuntu-latest
    env:
      # https://github.com/actions/setup-go#supported-version-syntax
      # ex:
      # - 1.18beta1 -> 1.18.0-beta.1
      # - 1.18rc1 -> 1.18.0-rc.1
      GO_VERSION: '1.26'
      CHOCOLATEY_VERSION: 2.2.0
    steps:
      # temporary workaround for an error in free disk space action
      # https://github.com/jlumbroso/free-disk-space/issues/14
      - name: Update Package List and Remove Dotnet
        run: |
          sudo apt-get update
          sudo apt-get remove -y '^dotnet-.*'

      # https://github.com/marketplace/actions/free-disk-space-ubuntu
      - name: Free Disk Space
        uses: jlumbroso/free-disk-space@main
        with:
          # this might remove tools that are actually needed
          tool-cache: false

          # all of these default to true
          android: true
          dotnet: true
          haskell: true
          large-packages: true
          docker-images: true
          swap-storage: false

      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GO_VERSION }}

#      - name: Install chocolatey
#        run: |
#          mono --version
#          mkdir -p /opt/chocolatey
#          wget -q -O - "https://github.com/chocolatey/choco/releases/download/${CHOCOLATEY_VERSION}/chocolatey.v${CHOCOLATEY_VERSION}.tar.gz" | tar -xz -C "/opt/chocolatey"
#          echo '#!/bin/bash' >> /usr/local/bin/choco
#          echo 'mono /opt/chocolatey/choco.exe $@' >> /usr/local/bin/choco
#          chmod +x /usr/local/bin/choco
#          choco --version

      - name: Install snapcraft
        run: sudo snap install snapcraft --classic

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Login do docker.io
        run: docker login -u golangci -p ${{ secrets.GOLANGCI_LINT_DOCKER_TOKEN }}

      - name: Create release
        id: goreleaser
        uses: goreleaser/goreleaser-action@v7
        with:
          version: latest
          args: release --clean --timeout=90m
        env:
          AUR_KEY: ${{ secrets.AUR_KEY }}
          CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
          SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
          GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}

      - uses: actions/attest@v4
        with:
          subject-checksums: ./dist/golangci-lint-${{ fromJSON(steps.goreleaser.outputs.metadata).version }}-checksums.txt
          github-token: ${{ secrets.GOLANGCI_LINT_TOKEN }}
      - uses: actions/attest@v4
        with:
          subject-checksums: ./dist/digests.txt
          github-token: ${{ secrets.GOLANGCI_LINT_TOKEN }}


================================================
FILE: .gitignore
================================================
*.test
.DS_Store
/*.pdf
/*.pprof
/*.txt
/test.lock
/.idea/
/.vscode/
/dist/
/golangci-lint
/golangci-lint.exe
/test/path
/tools/Dracula.itermcolors
/tools/dist/
/tools/godownloader
/tools/goreleaser
/tools/node_modules
/tools/svg-term
/vendor/
coverage.out
coverage.xml
/custom-golangci-lint
/custom-gcl
.custom-gcl.yml
.custom-gcl.yaml
**/testdata/fix.tmp/


================================================
FILE: .golangci.next.reference.yml
================================================
# This file contains all available configuration options
# with their default values (in comments).
#
# This file is not a configuration example,
# it contains the exhaustive configuration with explanations of the options.

# Defines the configuration version.
# The only possible value is "2".
version: "2"

linters:
  # Default set of linters.
  # The value can be:
  # - `standard`: https://golangci-lint.run/docs/linters/#enabled-by-default
  # - `all`: enables all linters by default.
  # - `none`: disables all linters by default.
  # - `fast`: enables only linters considered as "fast" (`golangci-lint help linters --json | jq '[ .[] | select(.fast==true) ] | map(.name)'`).
  # Default: standard
  default: all

  # Enable specific linter.
  enable:
    - arangolint
    - asasalint
    - asciicheck
    - bidichk
    - bodyclose
    - canonicalheader
    - containedctx
    - contextcheck
    - copyloopvar
    - cyclop
    - decorder
    - depguard
    - dogsled
    - dupl
    - dupword
    - durationcheck
    - embeddedstructfieldcheck
    - err113
    - errcheck
    - errchkjson
    - errname
    - errorlint
    - exhaustive
    - exhaustruct
    - exptostd
    - fatcontext
    - forbidigo
    - forcetypeassert
    - funcorder
    - funlen
    - ginkgolinter
    - gocheckcompilerdirectives
    - gochecknoglobals
    - gochecknoinits
    - gochecksumtype
    - gocognit
    - goconst
    - gocritic
    - gocyclo
    - godoclint
    - godot
    - godox
    - goheader
    - gomoddirectives
    - gomodguard
    - goprintffuncname
    - gosec
    - gosmopolitan
    - govet
    - grouper
    - iface
    - importas
    - inamedparam
    - ineffassign
    - interfacebloat
    - intrange
    - iotamixing
    - ireturn
    - lll
    - loggercheck
    - maintidx
    - makezero
    - mirror
    - misspell
    - mnd
    - modernize
    - musttag
    - nakedret
    - nestif
    - nilerr
    - nilnesserr
    - nilnil
    - nlreturn
    - noctx
    - noinlineerr
    - nolintlint
    - nonamedreturns
    - nosprintfhostport
    - paralleltest
    - perfsprint
    - prealloc
    - predeclared
    - promlinter
    - protogetter
    - reassign
    - recvcheck
    - revive
    - rowserrcheck
    - sloglint
    - spancheck
    - sqlclosecheck
    - staticcheck
    - tagalign
    - tagliatelle
    - testableexamples
    - testifylint
    - testpackage
    - thelper
    - tparallel
    - unconvert
    - unparam
    - unqueryvet
    - unused
    - usestdlibvars
    - usetesting
    - varnamelen
    - wastedassign
    - whitespace
    - wrapcheck
    - wsl
    - wsl_v5
    - zerologlint

  # Disable specific linters.
  disable:
    - arangolint
    - asasalint
    - asciicheck
    - bidichk
    - bodyclose
    - canonicalheader
    - containedctx
    - contextcheck
    - copyloopvar
    - cyclop
    - decorder
    - depguard
    - dogsled
    - dupl
    - dupword
    - durationcheck
    - embeddedstructfieldcheck
    - err113
    - errcheck
    - errchkjson
    - errname
    - errorlint
    - exhaustive
    - exhaustruct
    - exptostd
    - fatcontext
    - forbidigo
    - forcetypeassert
    - funcorder
    - funlen
    - ginkgolinter
    - gocheckcompilerdirectives
    - gochecknoglobals
    - gochecknoinits
    - gochecksumtype
    - gocognit
    - goconst
    - gocritic
    - gocyclo
    - godoclint
    - godot
    - godox
    - goheader
    - gomoddirectives
    - gomodguard
    - goprintffuncname
    - gosec
    - gosmopolitan
    - govet
    - grouper
    - iface
    - importas
    - inamedparam
    - ineffassign
    - interfacebloat
    - intrange
    - iotamixing
    - ireturn
    - lll
    - loggercheck
    - maintidx
    - makezero
    - mirror
    - misspell
    - mnd
    - modernize
    - musttag
    - nakedret
    - nestif
    - nilerr
    - nilnesserr
    - nilnil
    - nlreturn
    - noctx
    - noinlineerr
    - nolintlint
    - nonamedreturns
    - nosprintfhostport
    - paralleltest
    - perfsprint
    - prealloc
    - predeclared
    - promlinter
    - protogetter
    - reassign
    - recvcheck
    - revive
    - rowserrcheck
    - sloglint
    - spancheck
    - sqlclosecheck
    - staticcheck
    - tagalign
    - tagliatelle
    - testableexamples
    - testifylint
    - testpackage
    - thelper
    - tparallel
    - unconvert
    - unparam
    - unqueryvet
    - unused
    - usestdlibvars
    - usetesting
    - varnamelen
    - wastedassign
    - whitespace
    - wrapcheck
    - wsl
    - wsl_v5
    - zerologlint

  # All available settings of specific linters.
  settings:
    asasalint:
      # To specify a set of function names to exclude.
      # The values are merged with the builtin exclusions.
      # The builtin exclusions can be disabled by setting `use-builtin-exclusions` to `false`.
      # Default: ["^(fmt|log|logger|t|)\.(Print|Fprint|Sprint|Fatal|Panic|Error|Warn|Warning|Info|Debug|Log)(|f|ln)$"]
      exclude:
        - Append
        - \.Wrapf
      # To enable/disable the asasalint builtin exclusions of function names.
      # See the default value of `exclude` to get the builtin exclusions.
      # Default: true
      use-builtin-exclusions: false

    bidichk:
      # The following configurations check for all mentioned invisible Unicode runes.
      # All runes are enabled by default.
      left-to-right-embedding: false
      right-to-left-embedding: false
      pop-directional-formatting: false
      left-to-right-override: false
      right-to-left-override: false
      left-to-right-isolate: false
      right-to-left-isolate: false
      first-strong-isolate: false
      pop-directional-isolate: false

    copyloopvar:
      # Check all assigning the loop variable to another variable.
      # Default: false
      check-alias: true

    cyclop:
      # The maximal code complexity to report.
      # Default: 10
      max-complexity: 10
      # The maximal average package complexity.
      # If it's higher than 0.0 (float) the check is enabled.
      # Default: 0.0
      package-average: 0.5

    decorder:
      # Required order of `type`, `const`, `var` and `func` declarations inside a file.
      # Default: types before constants before variables before functions.
      dec-order:
        - type
        - const
        - var
        - func

      # If true, underscore vars (vars with "_" as the name) will be ignored at all checks.
      # Default: false (underscore vars are not ignored)
      ignore-underscore-vars: false

      # If true, order of declarations is not checked at all.
      # Default: true (disabled)
      disable-dec-order-check: false

      # If true, `init` func can be anywhere in file (does not have to be declared before all other functions).
      # Default: true (disabled)
      disable-init-func-first-check: false

      # If true, multiple global `type`, `const` and `var` declarations are allowed.
      # Default: true (disabled)
      disable-dec-num-check: false

      # If true, type declarations will be ignored for dec num check.
      # Default: false (type statements are not ignored)
      disable-type-dec-num-check: false

      # If true, const declarations will be ignored for dec num check.
      # Default: false (const statements are not ignored)
      disable-const-dec-num-check: false

      # If true, var declarations will be ignored for dec num check.
      # Default: false (var statements are not ignored)
      disable-var-dec-num-check: false

    depguard:
      # Rules to apply.
      #
      # Variables:
      # - File Variables
      #   Use an exclamation mark `!` to negate a variable.
      #   Example: `!$test` matches any file that is not a go test file.
      #
      #   `$all` - matches all go files
      #   `$test` - matches all go test files
      #
      # - Package Variables
      #
      #   `$gostd` - matches all of go's standard library (Pulled from `GOROOT`)
      #
      # Default (applies if no custom rules are defined): Only allow $gostd in all files.
      rules:
        # Name of a rule.
        main:
          # Defines package matching behavior. Available modes:
          # - `original`: allowed if it doesn't match the deny list and either matches the allow list or the allow list is empty.
          # - `strict`: allowed only if it matches the allow list and either doesn't match the deny list or the allow rule is more specific (longer) than the deny rule.
          # - `lax`: allowed if it doesn't match the deny list or the allow rule is more specific (longer) than the deny rule.
          # Default: "original"
          list-mode: lax
          # List of file globs that will match this list of settings to compare against.
          # By default, if a path is relative, it is relative to the directory where the golangci-lint command is executed.
          # The placeholder '${base-path}' is substituted with a path relative to the mode defined with `run.relative-path-mode`.
          # The placeholder '${config-path}' is substituted with a path relative to the configuration file.
          # Default: $all
          files:
            - "!**/*_a _file.go"
          # List of allowed packages.
          # Entries can be a variable (starting with $), a string prefix, or an exact match (if ending with $).
          # Default: []
          allow:
            - $gostd
            - github.com/OpenPeeDeeP
          # List of packages that are not allowed.
          # Entries can be a variable (starting with $), a string prefix, or an exact match (if ending with $).
          # Default: []
          deny:
            - pkg: "math/rand$"
              desc: use math/rand/v2
            - pkg: "github.com/sirupsen/logrus"
              desc: not allowed
            - pkg: "github.com/pkg/errors"
              desc: Should be replaced by standard lib errors package

    dogsled:
      # Checks assignments with too many blank identifiers.
      # Default: 2
      max-blank-identifiers: 3

    dupl:
      # Tokens count to trigger issue.
      # Default: 150
      threshold: 100

    dupword:
      # Keywords for detecting duplicate words.
      # If this list is not empty, only the words defined in this list will be detected.
      # Default: []
      keywords:
        - "the"
        - "and"
        - "a"
      # Keywords used to ignore detection.
      # Default: []
      ignore:
        - "0C0C"
      # Checks only comments, skip strings.
      # Default: false
      comments-only: true

    embeddedstructfieldcheck:
      # Checks that there is an empty space between the embedded fields and regular fields.
      # Default: true
      empty-line: false
      # Checks that sync.Mutex and sync.RWMutex are not used as embedded fields.
      # Default: false
      forbid-mutex: true

    errcheck:
      # Report about not checking of errors in type assertions: `a := b.(MyStruct)`.
      # Such cases aren't reported by default.
      # Default: false
      check-type-assertions: true

      # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`.
      # Such cases aren't reported by default.
      # Default: false
      check-blank: true

      # To disable the errcheck built-in exclude list.
      # See `-excludeonly` option in https://github.com/kisielk/errcheck#excluding-functions for details.
      # Default: false
      disable-default-exclusions: true

      # List of functions to exclude from checking, where each entry is a single function to exclude.
      # See https://github.com/kisielk/errcheck#excluding-functions for details.
      exclude-functions:
        - io/ioutil.ReadFile
        - io.Copy(*bytes.Buffer)
        - io.Copy(os.Stdout)

      # Display function signature instead of selector.
      # Default: false
      verbose: true

    errchkjson:
      # With check-error-free-encoding set to true, errchkjson does warn about errors
      # from json encoding functions that are safe to be ignored,
      # because they are not possible to happen.
      #
      # if check-error-free-encoding is set to true and errcheck linter is enabled,
      # it is recommended to add the following exceptions to prevent from false positives:
      #
      #     linters:
      #       settings:
      #         errcheck:
      #           exclude-functions:
      #             - encoding/json.Marshal
      #             - encoding/json.MarshalIndent
      #
      # Default: false
      check-error-free-encoding: true

      # Issue on struct encoding that doesn't have exported fields.
      # Default: false
      report-no-exported: false

    errorlint:
      # Check whether fmt.Errorf uses the %w verb for formatting errors.
      # See the https://github.com/polyfloyd/go-errorlint for caveats.
      # Default: true
      errorf: false
      # Permit more than 1 %w verb, valid per Go 1.20 (requires `errorf: true`).
      # Default: true
      errorf-multi: false
      # Check for plain type assertions and type switches.
      # Default: true
      asserts: false
      # Check for plain error comparisons.
      # Default: true
      comparison: false
      # Allowed errors.
      # Default: []
      allowed-errors:
        - err: "io.EOF"
          fun: "example.com/pkg.Read"
      # Allowed error "wildcards".
      # Default: []
      allowed-errors-wildcard:
        - err: "example.com/pkg.ErrMagic"
          fun: "example.com/pkg.Magic"

    exhaustive:
      # Program elements to check for exhaustiveness.
      # Default: [ switch ]
      check:
        - switch
        - map
      # Presence of "default" case in switch statements satisfies exhaustiveness,
      # even if all enum members are not listed.
      # Default: false
      default-signifies-exhaustive: true
      # Enum members matching the supplied regex do not have to be listed in
      # switch statements to satisfy exhaustiveness.
      # Default: ""
      ignore-enum-members: "Example.+"
      # Enum types matching the supplied regex do not have to be listed in
      # switch statements to satisfy exhaustiveness.
      # Default: ""
      ignore-enum-types: "Example.+"
      # Consider enums only in package scopes, not in inner scopes.
      # Default: false
      package-scope-only: true
      # Only run exhaustive check on switches with "//exhaustive:enforce" comment.
      # Default: false
      explicit-exhaustive-switch: true
      # Only run exhaustive check on map literals with "//exhaustive:enforce" comment.
      # Default: false
      explicit-exhaustive-map: true
      # Switch statement requires default case even if exhaustive.
      # Default: false
      default-case-required: true

    exhaustruct:
      # List of regular expressions to match type names that should be processed.
      # Anonymous structs can be matched by '<anonymous>' alias.
      #
      # Each regular expression must match the full type name, including package path.
      # For example, to match type `net/http.Cookie` regular expression should be `.*/http\.Cookie`,
      # but not `http\.Cookie`.
      # Default: []
      include:
        - '.+\.Test'
        - 'example\.com/package\.ExampleStruct[\d]{1,2}'
      # List of regular expressions to match type names that should be excluded from processing.
      # Anonymous structs can be matched by '<anonymous>' alias.
      # Has precedence over `include`.
      # Each regular expression must match the full type name, including package path.
      # For example, to match type `net/http.Cookie` regular expression should be `.*/http\.Cookie`,
      # but not `http\.Cookie`.
      # Default: []
      exclude:
        - '.+/cobra\.Command$'
      # Allows empty structures, effectively excluding them from the check.
      # Default: false
      allow-empty: true
      # List of regular expressions to match type names that should be allowed to be empty.
      # Anonymous structs can be matched by '<anonymous>' alias.
      # Each regular expression must match the full type name, including package path.
      # For example, to match type `net/http.Cookie` regular expression should be `.*/http\.Cookie`,
      # but not `http\.Cookie`.
      # Default: []
      allow-empty-rx:
        - '.*/http\.Cookie'
      # Allows empty structures in return statements.
      # Default: false
      allow-empty-returns: true
      # Allows empty structures in variable declarations.
      # Default: false
      allow-empty-declarations: true

    fatcontext:
      # Check for potential fat contexts in struct pointers.
      # May generate false positives.
      # Default: false
      check-struct-pointers: true

    forbidigo:
      # Forbid the following identifiers (list of regexp).
      # Default: ["^(fmt\\.Print(|f|ln)|print|println)$"]
      forbid:
        # Built-in bootstrapping functions.
        - pattern: ^print(ln)?$
        # Optional message that gets included in error reports.
        - pattern: ^fmt\.Print.*$
          msg: Do not commit print statements.
        # Alternatively, put messages at the end of the regex, surrounded by `(# )?`.
        # Escape any special characters. Those messages get included in error reports.
        - pattern: 'fmt\.Print.*(# Do not commit print statements\.)?'
        # Forbid spew Dump, whether it is called as function or method.
        # Depends on analyze-types below.
        - pattern: ^spew\.(ConfigState\.)?Dump$
        # The package name might be ambiguous.
        # The full import path can be used as additional criteria.
        # Depends on analyze-types below.
        - pattern: ^v1.Dump$
          pkg: ^example.com/pkg/api/v1$
      # Exclude godoc examples from forbidigo checks.
      # Default: true
      exclude-godoc-examples: false
      # Instead of matching the literal source code,
      # use type information to replace expressions with strings that contain the package name
      # and (for methods and fields) the type name.
      # This makes it possible to handle import renaming and forbid struct fields and methods.
      # Default: false
      analyze-types: true

    funcorder:
      # Checks that constructors are placed after the structure declaration.
      # Default: true
      constructor: false
      # Checks if the exported methods of a structure are placed before the non-exported ones.
      # Default: true
      struct-method: false
      # Checks if the constructors and/or structure methods are sorted alphabetically.
      # Default: false
      alphabetical: true

    funlen:
      # Checks the number of lines in a function.
      # If lower than 0, disable the check.
      # Default: 60
      lines: -1
      # Checks the number of statements in a function.
      # If lower than 0, disable the check.
      # Default: 40
      statements: -1
      # Ignore comments when counting lines.
      # Default: true
      ignore-comments: false

    ginkgolinter:
      # Suppress the wrong length assertion warning.
      # Default: false
      suppress-len-assertion: true

      # Suppress the wrong nil assertion warning.
      # Default: false
      suppress-nil-assertion: true

      # Suppress the wrong error assertion warning.
      # Default: false
      suppress-err-assertion: true

      # Suppress the wrong comparison assertion warning.
      # Default: false
      suppress-compare-assertion: true

      # Suppress the function all in async assertion warning.
      # Default: false
      suppress-async-assertion: true

      # Suppress warning for comparing values from different types, like `int32` and `uint32`.
      # Default: false
      suppress-type-compare-assertion: true

      # Trigger warning for ginkgo focus containers like `FDescribe`, `FContext`, `FWhen` or `FIt`.
      # Default: false
      forbid-focus-container: true

      # Don't trigger warnings for HaveLen(0)
      # Default: false
      allow-havelen-zero: true

      # Force using `Expect` with `To`, `ToNot` or `NotTo`.
      # Reject using `Expect` with `Should` or `ShouldNot`.
      # Default: false
      force-expect-to: true

      # Best effort validation of async intervals (timeout and polling).
      # Ignored the `suppress-async-assertion` is true.
      # Default: false
      validate-async-intervals: true

      # Trigger a warning for variable assignments in ginkgo containers like `Describe`, `Context` and `When`, instead of in `BeforeEach()`.
      # Default: false
      forbid-spec-pollution: true

      # Force using the Succeed matcher for error functions, and the HaveOccurred matcher for non-function error values.
      # Default: false
      force-succeed: true

      # Force adding assertion descriptions to gomega matchers.
      # Default: false
      force-assertion-description: true

      # Force using `ToNot`, `ShouldNot` instead of `To(Not())`.
      # Default: false
      force-tonot: true

    gochecksumtype:
      # Presence of `default` case in switch statements satisfies exhaustiveness, if all members are not listed.
      # Default: true
      default-signifies-exhaustive: false
      # Include shared interfaces in the exhaustiveness check.
      # Default: false
      include-shared-interfaces: true

    gocognit:
      # Minimal code complexity to report.
      # Default: 30 (but we recommend 10-20)
      min-complexity: 10

    goconst:
      # Minimal length of string constant.
      # Default: 3
      min-len: 2
      # Minimum occurrences of constant string count to trigger issue.
      # Default: 3
      min-occurrences: 2
      # Look for existing constants matching the values.
      # Default: true
      match-constant: false
      # Search also for duplicated numbers.
      # Default: false
      numbers: true
      # Minimum value, only works with `goconst.numbers`.
      # Default: 3
      min: 2
      # Maximum value, only works with `goconst.numbers`.
      # Default: 3
      max: 2
      # Ignore when constant is not used as function argument.
      # Default: true
      ignore-calls: false
      # Exclude strings matching the given regular expression.
      # Default: ""
      ignore-string-values:
        - 'foo.+'
      # Detects constants with identical values.
      # Default: false
      find-duplicates: true
      # Evaluates of constant expressions like Prefix + "suffix".
      # Default: false
      eval-const-expressions: true

    gocritic:
      # Disable all checks.
      # Default: false
      disable-all: true
      # Which checks should be enabled in addition to default checks; can't be combined with 'disabled-checks'.
      # By default, list of stable checks is used (https://go-critic.com/overview#checks-overview):
      #   appendAssign, argOrder, assignOp, badCall, badCond, captLocal, caseOrder, codegenComment, commentFormatting,
      #   defaultCaseOrder, deprecatedComment, dupArg, dupBranchBody, dupCase, dupSubExpr, elseif, exitAfterDefer,
      #   flagDeref, flagName, ifElseChain, mapKey, newDeref, offBy1, regexpMust, singleCaseSwitch, sloppyLen,
      #   sloppyTypeAssert, switchTrue, typeSwitchVar, underef, unlambda, unslice, valSwap, wrapperFunc
      # To see which checks are enabled run `GL_DEBUG=gocritic golangci-lint run --enable=gocritic`.
      enabled-checks:
        # Detects suspicious append result assignments.
        # https://go-critic.com/overview.html#appendassign
        - appendAssign
        # Detects `append` chains to the same slice that can be done in a single `append` call.
        # https://go-critic.com/overview.html#appendcombine
        - appendCombine
        # Detects suspicious arguments order.
        # https://go-critic.com/overview.html#argorder
        - argOrder
        # Detects assignments that can be simplified by using assignment operators.
        # https://go-critic.com/overview.html#assignop
        - assignOp
        # Detects suspicious function calls.
        # https://go-critic.com/overview.html#badcall
        - badCall
        # Detects suspicious condition expressions.
        # https://go-critic.com/overview.html#badcond
        - badCond
        # Detects suspicious mutex lock/unlock operations.
        # https://go-critic.com/overview.html#badlock
        - badLock
        # Detects suspicious regexp patterns.
        # https://go-critic.com/overview.html#badregexp
        - badRegexp
        # Detects bad usage of sort package.
        # https://go-critic.com/overview.html#badsorting
        - badSorting
        # Detects bad usage of sync.OnceFunc.
        # https://go-critic.com/overview.html#badsynconcefunc
        - badSyncOnceFunc
        # Detects bool expressions that can be simplified.
        # https://go-critic.com/overview.html#boolexprsimplify
        - boolExprSimplify
        # Detects when predeclared identifiers are shadowed in assignments.
        # https://go-critic.com/overview.html#builtinshadow
        - builtinShadow
        # Detects top-level declarations that shadow the predeclared identifiers.
        # https://go-critic.com/overview.html#builtinshadowdecl
        - builtinShadowDecl
        # Detects capitalized names for local variables.
        # https://go-critic.com/overview.html#captlocal
        - captLocal
        # Detects erroneous case order inside switch statements.
        # https://go-critic.com/overview.html#caseorder
        - caseOrder
        # Detects malformed 'code generated' file comments.
        # https://go-critic.com/overview.html#codegencomment
        - codegenComment
        # Detects comments with non-idiomatic formatting.
        # https://go-critic.com/overview.html#commentformatting
        - commentFormatting
        # Detects commented-out code inside function bodies.
        # https://go-critic.com/overview.html#commentedoutcode
        - commentedOutCode
        # Detects commented-out imports.
        # https://go-critic.com/overview.html#commentedoutimport
        - commentedOutImport
        # Detects when default case in switch isn't on 1st or last position.
        # https://go-critic.com/overview.html#defaultcaseorder
        - defaultCaseOrder
        # Detects loops inside functions that use defer.
        # https://go-critic.com/overview.html#deferinloop
        - deferInLoop
        # Detects deferred function literals that can be simplified.
        # https://go-critic.com/overview.html#deferunlambda
        - deferUnlambda
        # Detects malformed 'deprecated' doc-comments.
        # https://go-critic.com/overview.html#deprecatedcomment
        - deprecatedComment
        # Detects comments that silence go lint complaints about doc-comment.
        # https://go-critic.com/overview.html#docstub
        - docStub
        # Detects suspicious duplicated arguments.
        # https://go-critic.com/overview.html#duparg
        - dupArg
        # Detects duplicated branch bodies inside conditional statements.
        # https://go-critic.com/overview.html#dupbranchbody
        - dupBranchBody
        # Detects duplicated case clauses inside switch or select statements.
        # https://go-critic.com/overview.html#dupcase
        - dupCase
        # Detects multiple imports of the same package under different aliases.
        # https://go-critic.com/overview.html#dupimport
        - dupImport
        # Detects duplicated option function arguments in variadic function calls.
        # https://go-critic.com/overview.html#dupoption
        - dupOption
        # Detects suspicious duplicated sub-expressions.
        # https://go-critic.com/overview.html#dupsubexpr
        - dupSubExpr
        # Detects suspicious formatting strings usage.
        # https://go-critic.com/overview.html#dynamicfmtstring
        - dynamicFmtString
        # Detects else with nested if statement that can be replaced with else-if.
        # https://go-critic.com/overview.html#elseif
        - elseif
        # Detects suspicious empty declarations blocks.
        # https://go-critic.com/overview.html#emptydecl
        - emptyDecl
        # Detects fallthrough that can be avoided by using multi case values.
        # https://go-critic.com/overview.html#emptyfallthrough
        - emptyFallthrough
        # Detects empty string checks that can be written more idiomatically.
        # https://go-critic.com/overview.html#emptystringtest
        - emptyStringTest
        # Detects unoptimal strings/bytes case-insensitive comparison.
        # https://go-critic.com/overview.html#equalfold
        - equalFold
        # Detects unwanted dependencies on the evaluation order.
        # https://go-critic.com/overview.html#evalorder
        - evalOrder
        # Detects calls to exit/fatal inside functions that use defer.
        # https://go-critic.com/overview.html#exitafterdefer
        - exitAfterDefer
        # Detects exposed methods from sync.Mutex and sync.RWMutex.
        # https://go-critic.com/overview.html#exposedsyncmutex
        - exposedSyncMutex
        # Detects suspicious reassignment of error from another package.
        # https://go-critic.com/overview.html#externalerrorreassign
        - externalErrorReassign
        # Detects problems in filepath.Join() function calls.
        # https://go-critic.com/overview.html#filepathjoin
        - filepathJoin
        # Detects immediate dereferencing of `flag` package pointers.
        # https://go-critic.com/overview.html#flagderef
        - flagDeref
        # Detects suspicious flag names.
        # https://go-critic.com/overview.html#flagname
        - flagName
        # Detects hex literals that have mixed case letter digits.
        # https://go-critic.com/overview.html#hexliteral
        - hexLiteral
        # Detects nil usages in http.NewRequest calls, suggesting http.NoBody as an alternative.
        # https://go-critic.com/overview.html#httpnobody
        - httpNoBody
        # Detects params that incur excessive amount of copying.
        # https://go-critic.com/overview.html#hugeparam
        - hugeParam
        # Detects repeated if-else statements and suggests to replace them with switch statement.
        # https://go-critic.com/overview.html#ifelsechain
        - ifElseChain
        # Detects when imported package names shadowed in the assignments.
        # https://go-critic.com/overview.html#importshadow
        - importShadow
        # Detects strings.Index calls that may cause unwanted allocs.
        # https://go-critic.com/overview.html#indexalloc
        - indexAlloc
        # Detects non-assignment statements inside if/switch init clause.
        # https://go-critic.com/overview.html#initclause
        - initClause
        # Detects suspicious map literal keys.
        # https://go-critic.com/overview.html#mapkey
        - mapKey
        # Detects method expression call that can be replaced with a method call.
        # https://go-critic.com/overview.html#methodexprcall
        - methodExprCall
        # Finds where nesting level could be reduced.
        # https://go-critic.com/overview.html#nestingreduce
        - nestingReduce
        # Detects immediate dereferencing of `new` expressions.
        # https://go-critic.com/overview.html#newderef
        - newDeref
        # Detects return statements those results evaluate to nil.
        # https://go-critic.com/overview.html#nilvalreturn
        - nilValReturn
        # Detects old-style octal literals.
        # https://go-critic.com/overview.html#octalliteral
        - octalLiteral
        # Detects various off-by-one kind of errors.
        # https://go-critic.com/overview.html#offby1
        - offBy1
        # Detects if function parameters could be combined by type and suggest the way to do it.
        # https://go-critic.com/overview.html#paramtypecombine
        - paramTypeCombine
        # Detects expressions like []rune(s)[0] that may cause unwanted rune slice allocation.
        # https://go-critic.com/overview.html#preferdecoderune
        - preferDecodeRune
        # Detects concatenation with os.PathSeparator which can be replaced with filepath.Join.
        # https://go-critic.com/overview.html#preferfilepathjoin
        - preferFilepathJoin
        # Detects fmt.Sprint(f/ln) calls which can be replaced with fmt.Fprint(f/ln).
        # https://go-critic.com/overview.html#preferfprint
        - preferFprint
        # Detects w.Write or io.WriteString calls which can be replaced with w.WriteString.
        # https://go-critic.com/overview.html#preferstringwriter
        - preferStringWriter
        # Detects WriteRune calls with rune literal argument that is single byte and reports to use WriteByte instead.
        # https://go-critic.com/overview.html#preferwritebyte
        - preferWriteByte
        # Detects input and output parameters that have a type of pointer to referential type.
        # https://go-critic.com/overview.html#ptrtorefparam
        - ptrToRefParam
        # Detects append all its data while range it.
        # https://go-critic.com/overview.html#rangeappendall
        - rangeAppendAll
        # Detects expensive copies of `for` loop range expressions.
        # https://go-critic.com/overview.html#rangeexprcopy
        - rangeExprCopy
        # Detects loops that copy big objects during each iteration.
        # https://go-critic.com/overview.html#rangevalcopy
        - rangeValCopy
        # Detects redundant fmt.Sprint calls.
        # https://go-critic.com/overview.html#redundantsprint
        - redundantSprint
        # Detects `regexp.Compile*` that can be replaced with `regexp.MustCompile*`.
        # https://go-critic.com/overview.html#regexpmust
        - regexpMust
        # Detects suspicious regexp patterns.
        # https://go-critic.com/overview.html#regexppattern
        - regexpPattern
        # Detects regexp patterns that can be simplified.
        # https://go-critic.com/overview.html#regexpsimplify
        - regexpSimplify
        # Detects suspicious http.Error call without following return.
        # https://go-critic.com/overview.html#returnafterhttperror
        - returnAfterHttpError
        # Runs user-defined rules using ruleguard linter.
        # https://go-critic.com/overview.html#ruleguard
        - ruleguard
        # Detects switch statements that could be better written as if statement.
        # https://go-critic.com/overview.html#singlecaseswitch
        - singleCaseSwitch
        # Detects slice clear loops, suggests an idiom that is recognized by the Go compiler.
        # https://go-critic.com/overview.html#sliceclear
        - sliceClear
        # Detects usage of `len` when result is obvious or doesn't make sense.
        # https://go-critic.com/overview.html#sloppylen
        - sloppyLen
        # Detects suspicious/confusing re-assignments.
        # https://go-critic.com/overview.html#sloppyreassign
        - sloppyReassign
        # Detects redundant type assertions.
        # https://go-critic.com/overview.html#sloppytypeassert
        - sloppyTypeAssert
        # Detects suspicious sort.Slice calls.
        # https://go-critic.com/overview.html#sortslice
        - sortSlice
        # Detects "%s" formatting directives that can be replaced with %q.
        # https://go-critic.com/overview.html#sprintfquotedstring
        - sprintfQuotedString
        # Detects issue in Query() and Exec() calls.
        # https://go-critic.com/overview.html#sqlquery
        - sqlQuery
        # Detects string concat operations that can be simplified.
        # https://go-critic.com/overview.html#stringconcatsimplify
        - stringConcatSimplify
        # Detects redundant conversions between string and []byte.
        # https://go-critic.com/overview.html#stringxbytes
        - stringXbytes
        # Detects strings.Compare usage.
        # https://go-critic.com/overview.html#stringscompare
        - stringsCompare
        # Detects switch-over-bool statements that use explicit `true` tag value.
        # https://go-critic.com/overview.html#switchtrue
        - switchTrue
        # Detects sync.Map load+delete operations that can be replaced with LoadAndDelete.
        # https://go-critic.com/overview.html#syncmaploadanddelete
        - syncMapLoadAndDelete
        # Detects manual conversion to milli- or microseconds.
        # https://go-critic.com/overview.html#timeexprsimplify
        - timeExprSimplify
        # Detects TODO comments without detail/assignee.
        # https://go-critic.com/overview.html#todocommentwithoutdetail
        - todoCommentWithoutDetail
        # Detects function with too many results.
        # https://go-critic.com/overview.html#toomanyresultschecker
        - tooManyResultsChecker
        # Detects potential truncation issues when comparing ints of different sizes.
        # https://go-critic.com/overview.html#truncatecmp
        - truncateCmp
        # Detects repeated type assertions and suggests to replace them with type switch statement.
        # https://go-critic.com/overview.html#typeassertchain
        - typeAssertChain
        # Detects method declarations preceding the type definition itself.
        # https://go-critic.com/overview.html#typedeffirst
        - typeDefFirst
        # Detects type switches that can benefit from type guard clause with variable.
        # https://go-critic.com/overview.html#typeswitchvar
        - typeSwitchVar
        # Detects unneeded parenthesis inside type expressions and suggests to remove them.
        # https://go-critic.com/overview.html#typeunparen
        - typeUnparen
        # Detects unchecked errors in if statements.
        # https://go-critic.com/overview.html#uncheckedinlineerr
        - uncheckedInlineErr
        # Detects dereference expressions that can be omitted.
        # https://go-critic.com/overview.html#underef
        - underef
        # Detects redundant statement labels.
        # https://go-critic.com/overview.html#unlabelstmt
        - unlabelStmt
        # Detects function literals that can be simplified.
        # https://go-critic.com/overview.html#unlambda
        - unlambda
        # Detects unnamed results that may benefit from names.
        # https://go-critic.com/overview.html#unnamedresult
        - unnamedResult
        # Detects unnecessary braced statement blocks.
        # https://go-critic.com/overview.html#unnecessaryblock
        - unnecessaryBlock
        # Detects redundantly deferred calls.
        # https://go-critic.com/overview.html#unnecessarydefer
        - unnecessaryDefer
        # Detects slice expressions that can be simplified to sliced expression itself.
        # https://go-critic.com/overview.html#unslice
        - unslice
        # Detects value swapping code that are not using parallel assignment.
        # https://go-critic.com/overview.html#valswap
        - valSwap
        # Detects conditions that are unsafe due to not being exhaustive.
        # https://go-critic.com/overview.html#weakcond
        - weakCond
        # Ensures that `//nolint` comments include an explanation.
        # https://go-critic.com/overview.html#whynolint
        - whyNoLint
        # Detects function calls that can be replaced with convenience wrappers.
        # https://go-critic.com/overview.html#wrapperfunc
        - wrapperFunc
        # Detects Yoda style expressions and suggests to replace them.
        # https://go-critic.com/overview.html#yodastyleexpr
        - yodaStyleExpr
        # Detects bytes.Repeat with 0 value.
        # https://go-critic.com/overview.html#zerobyterepeat
        - zeroByteRepeat

      # Enable all checks.
      # Default: false
      enable-all: true
      # Which checks should be disabled; can't be combined with 'enabled-checks'.
      # Default: []
      disabled-checks:
        - appendAssign
        - appendCombine
        - argOrder
        - assignOp
        - badCall
        - badCond
        - badLock
        - badRegexp
        - badSorting
        - badSyncOnceFunc
        - boolExprSimplify
        - builtinShadow
        - builtinShadowDecl
        - captLocal
        - caseOrder
        - codegenComment
        - commentFormatting
        - commentedOutCode
        - commentedOutImport
        - defaultCaseOrder
        - deferInLoop
        - deferUnlambda
        - deprecatedComment
        - docStub
        - dupArg
        - dupBranchBody
        - dupCase
        - dupImport
        - dupSubExpr
        - dynamicFmtString
        - elseif
        - emptyDecl
        - emptyFallthrough
        - emptyStringTest
        - equalFold
        - evalOrder
        - exitAfterDefer
        - exposedSyncMutex
        - externalErrorReassign
        - filepathJoin
        - flagDeref
        - flagName
        - hexLiteral
        - httpNoBody
        - hugeParam
        - ifElseChain
        - importShadow
        - indexAlloc
        - initClause
        - mapKey
        - methodExprCall
        - nestingReduce
        - newDeref
        - nilValReturn
        - octalLiteral
        - offBy1
        - paramTypeCombine
        - preferDecodeRune
        - preferFilepathJoin
        - preferFprint
        - preferStringWriter
        - preferWriteByte
        - ptrToRefParam
        - rangeAppendAll
        - rangeExprCopy
        - rangeValCopy
        - redundantSprint
        - regexpMust
        - regexpPattern
        - regexpSimplify
        - returnAfterHttpError
        - ruleguard
        - singleCaseSwitch
        - sliceClear
        - sloppyLen
        - sloppyReassign
        - sloppyTypeAssert
        - sortSlice
        - sprintfQuotedString
        - sqlQuery
        - stringConcatSimplify
        - stringXbytes
        - stringsCompare
        - switchTrue
        - syncMapLoadAndDelete
        - timeExprSimplify
        - todoCommentWithoutDetail
        - tooManyResultsChecker
        - truncateCmp
        - typeAssertChain
        - typeDefFirst
        - typeSwitchVar
        - typeUnparen
        - uncheckedInlineErr
        - underef
        - unlabelStmt
        - unlambda
        - unnamedResult
        - unnecessaryBlock
        - unnecessaryDefer
        - unslice
        - valSwap
        - weakCond
        - whyNoLint
        - wrapperFunc
        - yodaStyleExpr

      # Enable multiple checks by tags in addition to default checks.
      # Run `GL_DEBUG=gocritic golangci-lint run --enable=gocritic` to see all tags and checks.
      # See https://github.com/go-critic/go-critic#usage -> section "Tags".
      # Default: []
      enabled-tags:
        - diagnostic
        - style
        - performance
        - experimental
        - opinionated
      disabled-tags:
        - diagnostic
        - style
        - performance
        - experimental
        - opinionated

      # Settings passed to gocritic.
      # The settings key is the name of a supported gocritic checker.
      # The list of supported checkers can be found at https://go-critic.com/overview.
      settings:
        # Must be valid enabled check name.
        captLocal:
          # Whether to restrict checker to params only.
          # Default: true
          paramsOnly: false
        commentedOutCode:
          # Min length of the comment that triggers a warning.
          # Default: 15
          minLength: 50
        elseif:
          # Whether to skip balanced if-else pairs.
          # Default: true
          skipBalanced: false
        hugeParam:
          # Size in bytes that makes the warning trigger.
          # Default: 80
          sizeThreshold: 70
        ifElseChain:
          # Min number of if-else blocks that makes the warning trigger.
          # Default: 2
          minThreshold: 4
        nestingReduce:
          # Min number of statements inside a branch to trigger a warning.
          # Default: 5
          bodyWidth: 4
        rangeExprCopy:
          # Size in bytes that makes the warning trigger.
          # Default: 512
          sizeThreshold: 516
          # Whether to check test functions
          # Default: true
          skipTestFuncs: false
        rangeValCopy:
          # Size in bytes that makes the warning trigger.
          # Default: 128
          sizeThreshold: 32
          # Whether to check test functions.
          # Default: true
          skipTestFuncs: false
        ruleguard:
          # Enable debug to identify which 'Where' condition was rejected.
          # The value of the parameter is the name of a function in a ruleguard file.
          #
          # When a rule is evaluated:
          # If:
          #   The Match() clause is accepted; and
          #   One of the conditions in the Where() clause is rejected,
          # Then:
          #   ruleguard prints the specific Where() condition that was rejected.
          #
          # The option is passed to the ruleguard 'debug-group' argument.
          # Default: ""
          debug: 'emptyDecl'
          # Determines the behavior when an error occurs while parsing ruleguard files.
          # If flag is not set, log error and skip rule files that contain an error.
          # If flag is set, the value must be a comma-separated list of error conditions.
          # - 'all':    fail on all errors.
          # - 'import': ruleguard rule imports a package that cannot be found.
          # - 'dsl':    gorule file does not comply with the ruleguard DSL.
          # Default: ""
          failOn: dsl,import
          # Comma-separated list of file paths containing ruleguard rules.
          # By default, if a path is relative, it is relative to the directory where the golangci-lint command is executed.
          # The placeholder '${base-path}' is substituted with a path relative to the mode defined with `run.relative-path-mode`.
          # The placeholder '${config-path}' is substituted with a path relative to the configuration file.
          # Glob patterns such as 'rules-*.go' may be specified.
          # Default: ""
          rules: '${base-path}/ruleguard/rules-*.go,${base-path}/myrule1.go'
          # Comma-separated list of enabled groups or skip empty to enable everything.
          # Tags can be defined with # character prefix.
          # Default: "<all>"
          enable: "myGroupName,#myTagName"
          # Comma-separated list of disabled groups or skip empty to enable everything.
          # Tags can be defined with # character prefix.
          # Default: ""
          disable: "myGroupName,#myTagName"
        tooManyResultsChecker:
          # Maximum number of results.
          # Default: 5
          maxResults: 10
        truncateCmp:
          # Whether to skip int/uint/uintptr types.
          # Default: true
          skipArchDependent: false
        underef:
          # Whether to skip (*x).method() calls where x is a pointer receiver.
          # Default: true
          skipRecvDeref: false
        unnamedResult:
          # Whether to check exported functions.
          # Default: false
          checkExported: true

    gocyclo:
      # Minimal code complexity to report.
      # Default: 30 (but we recommend 10-20)
      min-complexity: 10

    godoclint:
      # Default set of rules to enable.
      # Possible values are: `basic`, `all` or `none`.
      # Default: `basic` (enables `pkg-doc`, `single-pkg-doc`, `start-with-name`, and `deprecated`)
      default: all

      # List of rules to enable in addition to the default set.
      # Default: empty
      enable:
        # Check proper package-level godoc, if any.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#pkg-doc
        - pkg-doc
        # Assert at most one godoc per package.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#single-pkg-doc
        - single-pkg-doc
        # Require all packages to have a godoc.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#require-pkg-doc
        - require-pkg-doc
        # Assert symbol godocs start with the symbol name.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#start-with-name
        - start-with-name
        # Require godoc for all public symbols.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#require-doc
        - require-doc
        # Assert correct formatting of deprecation notes.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#deprecated
        - deprecated
        # Assert maximum line length for godocs.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#max-len
        - max-len
        # Assert no unused link in godocs.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#no-unused-link
        - no-unused-link
        # Require proper doc links to standard library declarations where applicable.
        # https://github.com/godoc-lint/godoc-lint?tab=readme-ov-file#require-stdlib-doclink
        - require-stdlib-doclink

      # List of rules to disable.
      # Default: empty
      disable:
        - pkg-doc
        - single-pkg-doc
        - require-pkg-doc
        - start-with-name
        - require-doc
        - deprecated
        - max-len
        - no-unused-link
        - require-stdlib-doclink

      # A map for fine-tuning individual rules.
      # All subkeys are optional.
      options:
        max-len:
          # Maximum line length for godocs, not including the `//`, `/*` or `*/` tokens.
          # Default: 77
          length: 127

        require-doc:
          # Ignore exported (public) symbols when applying the `require-doc` rule.
          # Default: false
          ignore-exported: true

          # Ignore unexported (private) symbols when applying the `require-doc` rule.
          # Default: true
          ignore-unexported: false

        start-with-name:
          # Include unexported symbols when applying the `start-with-name` rule.
          # Default: false
          include-unexported: true

    godot:
      # Comments to be checked: `declarations`, `toplevel`, `noinline` or `all`.
      # Default: declarations
      scope: toplevel
      # List of regexps for excluding particular comment lines from check.
      # Default: []
      exclude:
        # Exclude todo and fixme comments.
        - "^fixme:"
        - "^todo:"
      # Check that each sentence ends with a period.
      # Default: true
      period: false
      # Check that each sentence starts with a capital letter.
      # Default: false
      capital: true

    godox:
      # Report any comments starting with keywords, this is useful for TODO or FIXME comments that
      # might be left in the code accidentally and should be resolved before merging.
      # Default: ["TODO", "BUG", "FIXME"]
      keywords:
        - NOTE
        - OPTIMIZE # marks code that should be optimized before merging
        - HACK # marks hack-around that should be removed before merging

    goheader:
      # Supports two types 'const` and `regexp`.
      # Values can be used recursively.
      # Default: {}
      values:
        const:
          # Define here const type values in format k:v.
          # For example:
          COMPANY: MY COMPANY
        regexp:
          # Define here regexp type values.
          # for example:
          AUTHOR: .*@mycompany\.com
      # The template used for checking.
      # Put here copyright header template for source code files.
      # Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time.
      # Default: ""
      template: |-
        {{ AUTHOR }} {{ COMPANY }} {{ YEAR }}
        SPDX-License-Identifier: Apache-2.0

        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at:

          http://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
      # As alternative of directive 'template', you may put the path to file with the template source.
      # Useful if you need to load the template from a specific file.
      # By default, if a path is relative, it is relative to the directory where the golangci-lint command is executed.
      # The placeholder '${base-path}' is substituted with a path relative to the mode defined with `run.relative-path-mode`.
      # The placeholder '${config-path}' is substituted with a path relative to the configuration file.
      # Default: ""
      template-path: /path/to/my/template.tmpl

    gomoddirectives:
      # Allow local `replace` directives.
      # Default: false
      replace-local: true
      # List of allowed `replace` directives.
      # Default: []
      replace-allow-list:
        - launchpad.net/gocheck
      # Allow to not explain why the version has been retracted in the `retract` directives.
      # Default: false
      retract-allow-no-explanation: true
      # Forbid the use of the `exclude` directives.
      # Default: false
      exclude-forbidden: true
      # Forbid the use of the `ignore` directives (>= go1.25).
      # Default: false
      ignore-forbidden: true
      # Forbid the use of the `toolchain` directive.
      # Default: false
      toolchain-forbidden: true
      # Defines a pattern to validate `toolchain` directive.
      # Default: '' (no match)
      toolchain-pattern: 'go1\.23\.\d+$'
      # Forbid the use of the `tool` directives.
      # Default: false
      tool-forbidden: true
      # Forbid the use of the `godebug` directive.
      # Default: false
      go-debug-forbidden: true
      # Defines a pattern to validate `go` minimum version directive.
      # Default: '' (no match)
      go-version-pattern: '\d\.\d+(\.0)?'
      # Check the validity of the module path.
      # Default: false
      check-module-path: true

    gomodguard:
      allowed:
        # List of allowed modules.
        # Default: []
        modules:
          - gopkg.in/yaml.v2
        # List of allowed module domains.
        # Default: []
        domains:
          - golang.org
      blocked:
        # List of blocked modules.
        # Default: []
        modules:
          # Blocked module.
          - github.com/uudashr/go-module:
              # Recommended modules that should be used instead. (Optional)
              recommendations:
                - golang.org/x/mod
              # Reason why the recommended module should be used. (Optional)
              reason: "`mod` is the official go.mod parser library."
        # List of blocked module version constraints.
        # Default: []
        versions:
          # Blocked module with version constraint.
          - github.com/mitchellh/go-homedir:
              # Version constraint, see https://github.com/Masterminds/semver#basic-comparisons.
              version: "< 1.1.0"
              # Reason why the version constraint exists. (Optional)
              reason: "testing if blocked version constraint works."
        # Set to true to raise lint issues for packages that are loaded from a local path via replace directive.
        # Default: false
        local-replace-directives: false

    gosec:
      # To select a subset of rules to run.
      # Available rules: https://github.com/securego/gosec#available-rules
      # Default: [] - means include all rules
      includes:
        - G101 # Look for hardcoded credentials
        - G102 # Bind to all interfaces
        - G103 # Audit the use of unsafe block
        - G104 # Audit errors not checked
        - G106 # Audit the use of ssh.InsecureIgnoreHostKey function
        - G107 # Url provided to HTTP request as taint input
        - G108 # Profiling endpoint is automatically exposed
        - G109 # Converting strconv.Atoi result to int32/int16
        - G110 # Detect io.Copy instead of io.CopyN when decompression
        - G111 # Detect http.Dir('/') as a potential risk
        - G112 # Detect ReadHeaderTimeout not configured as a potential risk
        - G113 # HTTP request smuggling via conflicting headers or bare LF in body parsing
        - G114 # Use of net/http serve function that has no support for setting timeouts
        - G115 # Type conversion which leads to integer overflow
        - G116 # Detect Trojan Source attacks using bidirectional Unicode characters
        - G117 # Potential exposure of secrets via JSON/YAML/XML/TOML marshaling
        - G118 # Context propagation failure leading to goroutine/resource leaks
        - G119 # Unsafe redirect policy may propagate sensitive headers
        - G120 # Unbounded form parsing in HTTP handlers can cause memory exhaustion
        - G121 # Unsafe CrossOriginProtection bypass patterns
        - G122 # Filesystem TOCTOU race risk in filepath.Walk/WalkDir callbacks
        - G123 # TLS resumption may bypass VerifyPeerCertificate when VerifyConnection is unset
        - G201 # SQL query construction using format string
        - G202 # SQL query construction using string concatenation
        - G203 # Use of unescaped data in HTML templates
        - G204 # Audit use of command execution
        - G301 # Poor file permissions used when creating a directory
        - G302 # Poor file permissions used when creation file or using chmod
        - G303 # Creating tempfile using a predictable path
        - G304 # File path provided as taint input
        - G305 # File path traversal when extracting zip archive
        - G306 # Poor file permissions used when writing to a file
        - G307 # Poor file permissions used when creating a file with os.Create
        - G401 # Detect the usage of MD5 or SHA1
        - G402 # Look for bad TLS connection settings
        - G403 # Ensure minimum RSA key length of 2048 bits
        - G404 # Insecure random number source (rand)
        - G405 # Detect the usage of DES or RC4
        - G406 # Detect the usage of deprecated MD4 or RIPEMD160
        - G408 # Stateful misuse of ssh.PublicKeyCallback leading to auth bypass
        - G501 # Import blocklist: crypto/md5
        - G502 # Import blocklist: crypto/des
        - G503 # Import blocklist: crypto/rc4
        - G504 # Import blocklist: net/http/cgi
        - G505 # Import blocklist: crypto/sha1
        - G506 # Import blocklist: golang.org/x/crypto/md4
        - G507 # Import blocklist: golang.org/x/crypto/ripemd160
        - G601 # Implicit memory aliasing in RangeStmt
        - G602 # Possible slice bounds out of range
        - G701 # SQL injection via taint analysis
        - G702 # Command injection via taint analysis
        - G703 # Path traversal via taint analysis
        - G704 # SSRF via taint analysis
        - G705 # XSS via taint analysis
        - G706 # Log injection via taint analysis
        - G707 # SMTP command/header injection via taint analysis

      # To specify a set of rules to explicitly exclude.
      # Available rules: https://github.com/securego/gosec#available-rules
      # Default: []
      excludes:
        - G101 # Look for hardcoded credentials
        - G102 # Bind to all interfaces
        - G103 # Audit the use of unsafe block
        - G104 # Audit errors not checked
        - G106 # Audit the use of ssh.InsecureIgnoreHostKey function
        - G107 # Url provided to HTTP request as taint input
        - G108 # Profiling endpoint is automatically exposed
        - G109 # Converting strconv.Atoi result to int32/int16
        - G110 # Detect io.Copy instead of io.CopyN when decompression
        - G111 # Detect http.Dir('/') as a potential risk
        - G112 # Detect ReadHeaderTimeout not configured as a potential risk
        - G114 # Use of net/http serve function that has no support for setting timeouts
        - G115 # Type conversion which leads to integer overflow
        - G116 # Detect Trojan Source attacks using bidirectional Unicode characters
        - G201 # SQL query construction using format string
        - G202 # SQL query construction using string concatenation
        - G203 # Use of unescaped data in HTML templates
        - G204 # Audit use of command execution
        - G301 # Poor file permissions used when creating a directory
        - G302 # Poor file permissions used when creation file or using chmod
        - G303 # Creating tempfile using a predictable path
        - G304 # File path provided as taint input
        - G305 # File path traversal when extracting zip archive
        - G306 # Poor file permissions used when writing to a file
        - G307 # Poor file permissions used when creating a file with os.Create
        - G401 # Detect the usage of MD5 or SHA1
        - G402 # Look for bad TLS connection settings
        - G403 # Ensure minimum RSA key length of 2048 bits
        - G404 # Insecure random number source (rand)
        - G405 # Detect the usage of DES or RC4
        - G406 # Detect the usage of deprecated MD4 or RIPEMD160
        - G501 # Import blocklist: crypto/md5
        - G502 # Import blocklist: crypto/des
        - G503 # Import blocklist: crypto/rc4
        - G504 # Import blocklist: net/http/cgi
        - G505 # Import blocklist: crypto/sha1
        - G506 # Import blocklist: golang.org/x/crypto/md4
        - G507 # Import blocklist: golang.org/x/crypto/ripemd160
        - G601 # Implicit memory aliasing in RangeStmt
        - G602 # Possible slice bounds out of range

      # Filter out the issues with a lower severity than the given value.
      # Valid options are: low, medium, high.
      # Default: low
      severity: medium

      # Filter out the issues with a lower confidence than the given value.
      # Valid options are: low, medium, high.
      # Default: low
      confidence: medium

      # Concurrency value.
      # Default: the number of logical CPUs usable by the current process.
      concurrency: 12

      # To specify the configuration of rules.
      config:
        # Globals are applicable to all rules.
        global:
          # If true, ignore #nosec in comments (and an alternative as well).
          # Default: false
          nosec: true
          # Add an alternative comment prefix to #nosec (both will work at the same time).
          # Default: ""
          "#nosec": "#my-custom-nosec"
          # Define whether nosec issues are counted as finding or not.
          # Default: false
          show-ignored: true
          # Audit mode enables addition checks that for normal code analysis might be too nosy.
          # Default: false
          audit: true
        G101:
          # Regexp pattern for variables and constants to find.
          # Default: "(?i)passwd|pass|password|pwd|secret|token|pw|apiKey|bearer|cred"
          pattern: "(?i)example"
          # If true, complain about all cases (even with low entropy).
          # Default: false
          ignore_entropy: false
          # Maximum allowed entropy of the string.
          # Default: "80.0"
          entropy_threshold: "80.0"
          # Maximum allowed value of entropy/string length.
          # Is taken into account if entropy >= entropy_threshold/2.
          # Default: "3.0"
          per_char_threshold: "3.0"
          # Calculate entropy for first N chars of the string.
          # Default: "16"
          truncate: "32"
        # Additional functions to ignore while checking unhandled errors.
        # Following functions always ignored:
        #   bytes.Buffer:
        #     - Write
        #     - WriteByte
        #     - WriteRune
        #     - WriteString
        #   fmt:
        #     - Print
        #     - Printf
        #     - Println
        #     - Fprint
        #     - Fprintf
        #     - Fprintln
        #   strings.Builder:
        #     - Write
        #     - WriteByte
        #     - WriteRune
        #     - WriteString
        #   io.PipeWriter:
        #     - CloseWithError
        #   hash.Hash:
        #     - Write
        #   os:
        #     - Unsetenv
        # Default: {}
        G104:
          fmt:
            - Fscanf
        G111:
          # Regexp pattern to find potential directory traversal.
          # Default: "http\\.Dir\\(\"\\/\"\\)|http\\.Dir\\('\\/'\\)"
          pattern: "custom\\.Dir\\(\\)"
        # Maximum allowed permissions mode for os.Mkdir and os.MkdirAll.
        # Default: "0750"
        G301: "0750"
        # Maximum allowed permissions mode for os.OpenFile and os.Chmod.
        # Default: "0600"
        G302: "0600"
        # Maximum allowed permissions mode for os.WriteFile and ioutil.WriteFile.
        # Default: "0600"
        G306: "0600"

    gosmopolitan:
      # Allow and ignore `time.Local` usages.
      #
      # Default: false
      allow-time-local: true
      # List of fully qualified names in the `full/pkg/path.name` form, to act as "i18n escape hatches".
      # String literals inside call-like expressions to, or struct literals of those names,
      # are exempt from the writing system check.
      #
      # Default: []
      escape-hatches:
        - 'github.com/nicksnyder/go-i18n/v2/i18n.Message'
        - 'example.com/your/project/i18n/markers.Raw'
        - 'example.com/your/project/i18n/markers.OK'
        - 'example.com/your/project/i18n/markers.TODO'
        - 'command-line-arguments.Simple'
      # List of Unicode scripts to watch for any usage in string literals.
      # https://pkg.go.dev/unicode#pkg-variables
      #
      # Default: ["Han"]
      watch-for-scripts:
        - Devanagari
        - Han
        - Hangul
        - Hiragana
        - Katakana

    govet:
      # Disable all analyzers.
      # Default: false
      disable-all: true
      # Enable analyzers by name.
      # (In addition to default:
      #   appends, asmdecl, assign, atomic, bools, buildtag, cgocall, composites, copylocks, defers, directive, errorsas,
      #   framepointer, httpresponse, ifaceassert, loopclosure, lostcancel, nilfunc, printf, shift, sigchanyzer, slog,
      #   stdmethods, stringintconv, structtag, testinggoroutine, tests, timeformat, unmarshal, unreachable, unsafeptr,
      #   unusedresult
      # ).
      # Run `GL_DEBUG=govet golangci-lint run --enable=govet` to see default, all available analyzers, and enabled analyzers.
      # Default: []
      enable:
        # Check for missing values after append.
        - appends
        # Report mismatches between assembly files and Go declarations.
        - asmdecl
        # Check for useless assignments.
        - assign
        # Check for common mistakes using the sync/atomic package.
        - atomic
        # Check for non-64-bits-aligned arguments to sync/atomic functions.
        - atomicalign
        # Check for common mistakes involving boolean operators.
        - bools
        # Check //go:build and // +build directives.
        - buildtag
        # Detect some violations of the cgo pointer passing rules.
        - cgocall
        # Check for unkeyed composite literals.
        - composites
        # Check for locks erroneously passed by value.
        - copylocks
        # Check for calls of reflect.DeepEqual on error values.
        - deepequalerrors
        # Report common mistakes in defer statements.
        - defers
        # Check Go toolchain directives such as //go:debug.
        - directive
        # Report passing non-pointer or non-error values to errors.As.
        - errorsas
        # Find structs that would use less memory if their fields were sorted.
        - fieldalignment
        # Find calls to a particular function.
        - findcall
        # Report assembly that clobbers the frame pointer before saving it.
        - framepointer
        # Check format of addresses passed to net.Dial.
        - hostport
        # Report using Go 1.22 enhanced ServeMux patterns in older Go versions.
        - httpmux
        # Check for mistakes using HTTP responses.
        - httpresponse
        # Detect impossible interface-to-interface type assertions.
        - ifaceassert
        # Check references to loop variables from within nested functions.
        - loopclosure
        # Check cancel func returned by context.WithCancel is called.
        - lostcancel
        # Check for useless comparisons between functions and nil.
        - nilfunc
        # Check for redundant or impossible nil comparisons.
        - nilness
        # Check consistency of Printf format strings and arguments.
        - printf
        # Check for comparing reflect.Value values with == or reflect.DeepEqual.
        - reflectvaluecompare
        # Check for possible unintended shadowing of variables.
        - shadow
        # Check for shifts that equal or exceed the width of the integer.
        - shift
        # Check for unbuffered channel of os.Signal.
        - sigchanyzer
        # Check for invalid structured logging calls.
        - slog
        # Check the argument type of sort.Slice.
        - sortslice
        # Check signature of methods of well-known interfaces.
        - stdmethods
        # Report uses of too-new standard library symbols.
        - stdversion
        # Check for string(int) conversions.
        - stringintconv
        # Check that struct field tags conform to reflect.StructTag.Get.
        - structtag
        # Report calls to (*testing.T).Fatal from goroutines started by a test.
        - testinggoroutine
        # Check for common mistaken usages of tests and examples.
        - tests
        # Check for calls of (time.Time).Format or time.Parse with 2006-02-01.
        - timeformat
        # Report passing non-pointer or non-interface values to unmarshal.
        - unmarshal
        # Check for unreachable code.
        - unreachable
        # Check for invalid conversions of uintptr to unsafe.Pointer.
        - unsafeptr
        # Check for unused results of calls to some functions.
        - unusedresult
        # Checks for unused writes.
        - unusedwrite
        # Check for misuses of sync.WaitGroup.
        - waitgroup

      # Enable all analyzers.
      # Default: false
      enable-all: true
      # Disable analyzers by name.
      # (In addition to default
      #   atomicalign, deepequalerrors, fieldalignment, findcall, nilness, reflectvaluecompare, shadow, sortslice,
      #   timeformat, unusedwrite
      # ).
      # Run `GL_DEBUG=govet golangci-lint run --enable=govet` to see default, all available analyzers, and enabled analyzers.
      # Default: []
      disable:
        - appends
        - asmdecl
        - assign
        - atomic
        - atomicalign
        - bools
        - buildtag
        - cgocall
        - composites
        - copylocks
        - deepequalerrors
        - defers
        - directive
        - errorsas
        - fieldalignment
        - findcall
        - framepointer
        - hostport
        - httpmux
        - httpresponse
        - ifaceassert
        - loopclosure
        - lostcancel
        - nilfunc
        - nilness
        - printf
        - reflectvaluecompare
        - shadow
        - shift
        - sigchanyzer
        - slog
        - sortslice
        - stdmethods
        - stdversion
        - stringintconv
        - structtag
        - testinggoroutine
        - tests
        - timeformat
        - unmarshal
        - unreachable
        - unsafeptr
        - unusedresult
        - unusedwrite
        - waitgroup

      # Settings per analyzer.
      settings:
        # Analyzer name, run `go tool vet help` to see all analyzers.
        printf:
          # Comma-separated list of print function names to check (in addition to default, see `go tool vet help printf`).
          # Default: []
          funcs:
            - (github.com/golangci/golangci-lint/v2/pkg/logutils.Log).Infof
            - (github.com/golangci/golangci-lint/v2/pkg/logutils.Log).Warnf
            - (github.com/golangci/golangci-lint/v2/pkg/logutils.Log).Errorf
            - (github.com/golangci/golangci-lint/v2/pkg/logutils.Log).Fatalf
        shadow:
          # Whether to be strict about shadowing; can be noisy.
          # Default: false
          strict: true
        unusedresult:
          # Comma-separated list of functions whose results must be used.
          # (In addition to default:
          #   context.WithCancel, context.WithDeadline, context.WithTimeout, context.WithValue, errors.New, fmt.Errorf,
          #   fmt.Sprint, fmt.Sprintf, sort.Reverse
          # ).
          # Default: []
          funcs:
            - pkg.MyFunc
          # Comma-separated list of names of methods of type func() string whose results must be used.
          # (In addition to default Error,String).
          # Default: []
          stringmethods:
            - MyMethod

    grouper:
      # Require the use of a single global 'const' declaration only.
      # Default: false
      const-require-single-const: true
      # Require the use of grouped global 'const' declarations.
      # Default: false
      const-require-grouping: true

      # Require the use of a single 'import' declaration only.
      # Default: false
      import-require-single-import: true
      # Require the use of grouped 'import' declarations.
      # Default: false
      import-require-grouping: true

      # Require the use of a single global 'type' declaration only.
      # Default: false
      type-require-single-type: true
      # Require the use of grouped global 'type' declarations.
      # Default: false
      type-require-grouping: true

      # Require the use of a single global 'var' declaration only.
      # Default: false
      var-require-single-var: true
      # Require the use of grouped global 'var' declarations.
      # Default: false
      var-require-grouping: true

    iface:
      # List of analyzers.
      # Default: ["identical"]
      enable:
        - identical # Identifies interfaces in the same package that have identical method sets.
        - unused # Identifies interfaces that are not used anywhere in the same package where the interface is defined.
        - opaque # Identifies functions that return interfaces, but the actual returned value is always a single concrete implementation.
        - unexported # Identifies interfaces that are not exported but are used in exported functions or methods.
      settings:
        unused:
          # List of packages path to exclude from the check.
          # Default: []
          exclude:
            - github.com/example/log

    importas:
      # Do not allow unaliased imports of aliased packages.
      # Default: false
      no-unaliased: true
      # Do not allow non-required aliases.
      # Default: false
      no-extra-aliases: true
      # List of aliases
      # Default: []
      alias:
        # Using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package.
        - pkg: knative.dev/serving/pkg/apis/serving/v1
          alias: servingv1
        # Using `autoscalingv1alpha1` alias for `knative.dev/serving/pkg/apis/autoscaling/v1alpha1` package.
        - pkg: knative.dev/serving/pkg/apis/autoscaling/v1alpha1
          alias: autoscalingv1alpha1
        # You can specify the package path by regular expression,
        # and alias by regular expression expansion syntax like below.
        # See https://github.com/julz/importas#use-regular-expression for details.
        - pkg: knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+)
          alias: $1$2
        # An explicit empty alias can be used to ensure no aliases are used for a package.
        # This can be useful if `no-extra-aliases: true` doesn't fit your need.
        # Multiple packages can use an empty alias.
        - pkg: errors
          alias: ""

    inamedparam:
      # Skips check for interface methods with only a single parameter.
      # Default: false
      skip-single-param: true

    ineffassign:
      # Check escaping variables of type error, may cause false positives.
      # Default: false
      check-escaping-errors: true

    interfacebloat:
      # The maximum number of methods allowed for an interface.
      # Default: 10
      max: 5

    iotamixing:
      # Whether to report individual consts rather than just the const block.
      # Default: false
      report-individual: true

    ireturn:
      # List of interfaces to allow.
      # Lists of the keywords and regular expressions matched to interface or package names can be used.
      # `allow` and `reject` settings cannot be used at the same time.
      #
      # Keywords:
      # - `empty` for `interface{}`
      # - `error` for errors
      # - `stdlib` for standard library
      # - `anon` for anonymous interfaces
      # - `generic` for generic interfaces added in go 1.18
      #
      # Default: [anon, error, empty, stdlib]
      allow:
        - anon
        # You can specify idiomatic endings for interface
        - (or|er)$

      # List of interfaces to reject.
      # Lists of the keywords and regular expressions matched to interface or package names can be used.
      # `allow` and `reject` settings cannot be used at the same time.
      #
      # Keywords:
      # - `empty` for `interface{}`
      # - `error` for errors
      # - `stdlib` for standard library
      # - `anon` for anonymous interfaces
      # - `generic` for generic interfaces added in go 1.18
      #
      # Default: []
      reject:
        - github.com\/user\/package\/v4\.Type

    lll:
      # Max line length, lines longer will be reported.
      # '\t' is counted as 1 character by default, and can be changed with the tab-width option.
      # Default: 120.
      line-length: 120
      # Tab width in spaces.
      # Default: 1
      tab-width: 1

    loggercheck:
      # Allow check for the github.com/go-kit/log library.
      # Default: true
      kitlog: false
      # Allow check for the k8s.io/klog/v2 library.
      # Default: true
      klog: false
      # Allow check for the github.com/go-logr/logr library.
      # Default: true
      logr: false
      # Allow check for the log/slog library.
      # Default: true
      slog: false
      # Allow check for the "sugar logger" from go.uber.org/zap library.
      # Default: true
      zap: false
      # Require all logging keys to be inlined constant strings.
      # Default: false
      require-string-key: true
      # Require printf-like format specifier (%s, %d for example) not present.
      # Default: false
      no-printf-like: true
      # List of custom rules to check against, where each rule is a single logger pattern, useful for wrapped loggers.
      # For example: https://github.com/timonwong/loggercheck/blob/7395ab86595781e33f7afba27ad7b55e6956ebcd/testdata/custom-rules.txt
      # Default: empty
      rules:
        - k8s.io/klog/v2.InfoS   # package level exported functions
        - (github.com/go-logr/logr.Logger).Error  # "Methods"
        - (*go.uber.org/zap.SugaredLogger).With  # Also "Methods", but with a pointer receiver

    maintidx:
      # Show functions with maintainability index lower than N.
      # A high index indicates better maintainability (it's kind of the opposite of complexity).
      # Default: 20
      under: 100

    makezero:
      # Allow only slices initialized with a length of zero.
      # Default: false
      always: true

    misspell:
      # Correct spellings using locale preferences for US or UK.
      # Setting locale to US will correct the British spelling of 'colour' to 'color'.
      # Default is to use a neutral variety of English.
      locale: US
      # Typos to ignore.
      # Should be in lower case.
      # Default: []
      ignore-rules:
        - someword
      # Extra word corrections.
      # `typo` and `correction` should only contain letters.
      # The words are case-insensitive.
      # Default: []
      extra-words:
        - typo: "iff"
          correction: "if"
        - typo: "cancelation"
          correction: "cancellation"
      # Mode of the analysis:
      # - default: checks all the file content.
      # - restricted: checks only comments.
      # Default: ""
      mode: restricted

    mnd:
      # List of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description.
      # Default: ["argument", "case", "condition", "operation", "return", "assign"]
      checks:
        - argument
        - case
        - condition
        - operation
        - return
        - assign
      # List of numbers to exclude from analysis.
      # The numbers should be written as string.
      # Values always ignored: "1", "1.0", "0" and "0.0".
      # Default: []
      ignored-numbers:
        - '0666'
        - '0755'
        - '42'
      # List of file patterns to exclude from analysis.
      # Values always ignored: `.+_test.go`.
      # Default: []
      ignored-files:
        - 'magic1_.+\.go$'
      # List of function patterns to exclude from analysis.
      # Following functions are always ignored: `time.Date`,
      # `strconv.FormatInt`, `strconv.FormatUint`, `strconv.FormatFloat`,
      # `strconv.ParseInt`, `strconv.ParseUint`, `strconv.ParseFloat`.
      # Default: []
      ignored-functions:
        - '^math\.'
        - '^http\.StatusText$'

    modernize:
      # List of analyzers to disable.
      # By default, all analyzers are enabled.
      disable:
        # Replace interface{} with any.
        - any
        # Replace []byte(fmt.Sprintf) with fmt.Appendf.
        - fmtappendf
        # Remove redundant re-declaration of loop variables.
        - forvar
        # Replace explicit loops over maps with calls to maps package.
        - mapsloop
        # Replace if/else statements with calls to min or max.
        - minmax
        # Simplify code by using go1.26's new(expr).
        - newexpr
        # Suggest replacing omitempty with omitzero for struct fields.
        - omitzero
        # Remove obsolete //+build comments.
        - plusbuild
        # Replace 3-clause for loops with for-range over integers.
        - rangeint
        # Replace reflect.TypeOf(x) with TypeFor[T]().
        - reflecttypefor
        # Replace loops with slices.Contains or slices.ContainsFunc.
        - slicescontains
        # Replace sort.Slice with slices.Sort for basic types.
        - slicessort
        # Use iterators instead of Len/At-style APIs.
        - stditerators
        # Replace strings.Index etc. with strings.Cut.
        - stringscut
        # Replace HasPrefix/TrimPrefix with CutPrefix.
        - stringscutprefix
        # Replace ranging over Split/Fields with SplitSeq/FieldsSeq.
        - stringsseq
        # Replace += with strings.Builder.
        - stringsbuilder
        # Replace context.WithCancel with t.Context in tests.
        - testingcontext
        # Replace unsafe pointer arithmetic with function calls.
        - unsafefuncs
        # Replace wg.Add(1)/go/wg.Done() with wg.Go.
        - waitgroup

    musttag:
      # A set of custom functions to check in addition to the builtin ones.
      # Default: json, xml, gopkg.in/yaml.v3, BurntSushi/toml, mitchellh/mapstructure, jmoiron/sqlx
      functions:
        # The full name of the function, including the package.
        - name: github.com/hashicorp/hcl/v2/hclsimple.DecodeFile
          # The struct tag whose presence should be ensured.
          tag: hcl
          # The position of the argument to check.
          arg-pos: 2

    nakedret:
      # Make an issue if func has more lines of code than this setting, and it has naked returns.
      # Default: 30
      max-func-lines: 31

    nestif:
      # Minimal complexity of if statements to report.
      # Default: 5
      min-complexity: 4

    nilnil:
      # To check functions with only two return values (`return nil, nil`).
      # If disabled then returns like `return nil, nil, ..., nil` are supported.
      # Default: true
      only-two: false
      # In addition, detect opposite situation (simultaneous return of non-nil error and valid value).
      # E.g, `return clone, fh.indexer.Update(clone)` will be considered as invalid.
      # Default: false
      detect-opposite: true
      # List of return types to check.
      # Default: ["chan", "func", "iface", "map", "ptr", "uintptr", "unsafeptr"]
      checked-types:
        - chan
        - func
        - iface
        - map
        - ptr
        - uintptr
        - unsafeptr

    nlreturn:
      # Size of the block (including return statement that is still "OK"),
      # so no return split required.
      # Default: 1
      block-size: 2

    nolintlint:
      # Disable to ensure that all nolint directives actually have an effect.
      # Default: false
      allow-unused: true
      # Exclude following linters from requiring an explanation.
      # Default: []
      allow-no-explanation: [ ]
      # Enable to require an explanation of nonzero length after each nolint directive.
      # Default: false
      require-explanation: true
      # Enable to require nolint directives to mention the specific linter being suppressed.
      # Default: false
      require-specific: true

    nonamedreturns:
      # Report named error if it is assigned inside defer.
      # Default: false
      report-error-in-defer: true

    paralleltest:
      # Ignore missing calls to `t.Parallel()` and only report incorrect uses of it.
      # Default: false
      ignore-missing: true
      # Ignore missing calls to `t.Parallel()` in subtests. Top-level tests are
      # still required to have `t.Parallel`, but subtests are allowed to skip it.
      # Default: false
      ignore-missing-subtests: true

    perfsprint:
      # Enable/disable optimization of integer formatting.
      # Default: true
      integer-format: false
      # Optimizes even if it requires an int or uint type cast.
      # Default: true
      int-conversion: false
      # Enable/disable optimization of error formatting.
      # Default: true
      error-format: false
      # Optimizes into `err.Error()` even if it is only equivalent for non-nil errors.
      # Default: false
      err-error: true
      # Optimizes `fmt.Errorf`.
      # Default: true
      errorf: false
      # Enable/disable optimization of string formatting.
      # Default: true
      string-format: false
      # Optimizes `fmt.Sprintf` with only one argument.
      # Default: true
      sprintf1: false
      # Optimizes into strings concatenation.
      # Default: true
      strconcat: false
      # Enable/disable optimization of bool formatting.
      # Default: true
      bool-format: false
      # Enable/disable optimization of hex formatting.
      # Default: true
      hex-format: false
      # Enable/disable optimization of concat loop.
      # Default: true
      concat-loop: false
      # Optimization of `concat-loop` even with other operations.
      # Default: false
      loop-other-ops: true

    prealloc:
      # IMPORTANT: we don't recommend using this linter before doing performance profiling.
      # For most programs usage of prealloc will be a premature optimization.

      # Report pre-allocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
      # Default: true
      simple: false
      # Report pre-allocation suggestions on range loops.
      # Default: true
      range-loops: false
      # Report pre-allocation suggestions on for loops.
      # Default: false
      for-loops: true

    predeclared:
      # List of predeclared identifiers to not report on.
      # Default: []
      ignore:
        - new
        - int
      # Include method names and field names in checks.
      # Default: false
      qualified-name: true

    promlinter:
      # Promlinter cannot infer all metrics name in static analysis.
      # Enable strict mode will also include the errors caused by failing to parse the args.
      # Default: false
      strict: true
      # Please refer to https://github.com/yeya24/promlinter#usage for detailed usage.
      # Default: []
      disabled-linters:
        # Help detects issues related to the help text for a metric.
        - Help
        # MetricUnits detects issues with metric unit names.
        - MetricUnits
        # Counter detects issues specific to counters, as well as patterns that should only be used with counters.
        - Counter
        # HistogramSummaryReserved detects when other types of metrics use names or labels reserved for use by histograms and/or summaries.
        - HistogramSummaryReserved
        # MetricTypeInName detects when metric types are included in the metric name.
        - MetricTypeInName
        # ReservedChars detects colons in metric names.
        - ReservedChars
        # CamelCase detects metric names and label names written in camelCase.
        - CamelCase
        # UnitAbbreviations detects abbreviated units in the metric name.
        - UnitAbbreviations

    protogetter:
      # Skip files generated by specified generators from the checking.
      # Checks only the file's initial comment, which must follow the format: "// Code generated by <generator-name>".
      # Files generated by protoc-gen-go, protoc-gen-go-grpc, and protoc-gen-grpc-gateway are always excluded automatically.
      # Default: []
      skip-generated-by: ["protoc-gen-go-my-own-generator"]
      # Skip files matching the specified glob pattern from the checking.
      # Default: []
      skip-files:
        - "*.pb.go"
        - "*/vendor/*"
        - "/full/path/to/file.go"
      # Skip any generated files from the checking.
      # Default: false
      skip-any-generated: true
      # Skip first argument of append function.
      # Default: false
      replace-first-arg-in-append: true

    reassign:
      # Patterns for global variable names that are checked for reassignment.
      # See https://github.com/curioswitch/go-reassign#usage
      # Default: ["EOF", "Err.*"]
      patterns:
        - ".*"

    recvcheck:
      # Disables the built-in method exclusions:
      # - `MarshalText`
      # - `MarshalJSON`
      # - `MarshalYAML`
      # - `MarshalXML`
      # - `MarshalBinary`
      # - `GobEncode`
      # Default: false
      disable-builtin: true
      # User-defined method exclusions.
      # The format is `struct_name.method_name` (ex: `Foo.MethodName`).
      # A wildcard `*` can use as a struct name (ex: `*.MethodName`).
      # Default: []
      exclusions:
        - "*.Value"

    revive:
      # Maximum number of open files at the same time.
      # See https://github.com/mgechev/revive#command-line-flags
      # Defaults to unlimited.
      max-open-files: 2048

      # Sets the default severity.
      # See https://github.com/mgechev/revive#configuration
      # Default: warning
      severity: error

      # Enable all available rules.
      # Default: false
      enable-all-rules: true

      # By default, the default rules are enabled,
      # but if you explicitly define or configure a rule, the default rules will be disabled.
      # This option, when set to `true`, allows you to avoid explicitly redefining default rules when adding a rule.
      # Default: false
      enable-default-rules: true

      # Enable validation of comment directives.
      # See https://github.com/mgechev/revive#comment-directives
      directives:
        - name: specify-disable-reason
          severity: error

      # Sets the default failure confidence.
      # This means that linting errors with less than 0.8 confidence will be ignored.
      # Default: 0.8
      confidence: 0.1
      # Revive handles the default rules in a way that can be unexpected:
      # - If there are no explicit rules, the default rules are used.
      # - If there is at least one explicit rule, the default rules are not used, unless `enable-default-rules` is `true`.
      # Run `GL_DEBUG=revive golangci-lint run --enable-only=revive` to see default, all available rules, and enabled rules.
      rules:
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#add-constant
        - name: add-constant
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - max-lit-count: "3"
              allow-strs: '""'
              allow-ints: "0,1,2"
              allow-floats: "0.0,0.,1.0,1.,2.0,2."
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#argument-limit
        - name: argument-limit
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 4 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#atomic
        - name: atomic
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#banned-characters
        - name: banned-characters
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ "Ω","Σ","σ", "7" ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#bare-return
        - name: bare-return
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#blank-imports
        - name: blank-imports
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#bool-literal-in-expr
        - name: bool-literal-in-expr
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#call-to-gc
        - name: call-to-gc
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#cognitive-complexity
        - name: cognitive-complexity
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 7 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#comment-spacings
        - name: comment-spacings
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - mypragma
            - otherpragma
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#comments-density
        - name: comments-density
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 15 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#confusing-naming
        - name: confusing-naming
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#confusing-results
        - name: confusing-results
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#constant-logical-expr
        - name: constant-logical-expr
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#context-as-argument
        - name: context-as-argument
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - allow-types-before: "*testing.T,*github.com/user/repo/testing.Harness"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#context-keys-type
        - name: context-keys-type
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#cyclomatic
        - name: cyclomatic
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 3 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#datarace
        - name: datarace
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#deep-exit
        - name: deep-exit
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#defer
        - name: defer
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "call-chain"
            - "loop"
            - "method-call"
            - "recover"
            - "immediate-recover"
            - "return"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#dot-imports
        - name: dot-imports
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - allowed-packages: ["github.com/onsi/ginkgo/v2", "github.com/onsi/gomega"]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#duplicated-imports
        - name: duplicated-imports
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#early-return
        - name: early-return
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "preserve-scope"
            - "allow-jump"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#empty-block
        - name: empty-block
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#empty-lines
        - name: empty-lines
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#enforce-map-style
        - name: enforce-map-style
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "make"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#enforce-repeated-arg-type-style
        - name: enforce-repeated-arg-type-style
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "short"
            # Or this parameter:
            - func-arg-style: "full"
              func-ret-val-style: "short"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#enforce-slice-style
        - name: enforce-slice-style
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "make"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#enforce-switch-style
        - name: enforce-switch-style
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ "allowNoDefault" ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#epoch-naming
        - name: epoch-naming
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#error-naming
        - name: error-naming
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#error-return
        - name: error-return
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#error-strings
        - name: error-strings
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "xerrors.New"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#errorf
        - name: errorf
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#exported
        - name: exported
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "check-private-receivers"
            - "disable-stuttering-check"
            - "say-repetitive-instead-of-stutters"
            - "check-public-interface"
            - "disable-checks-on-constants"
            - "disable-checks-on-functions"
            - "disable-checks-on-methods"
            - "disable-checks-on-types"
            - "disable-checks-on-variables"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#file-header
        - name: file-header
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - This is the text that must appear at the top of source files.
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#file-length-limit
        - name: file-length-limit
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - max: 100
              skip-comments: true
              skip-blank-lines: true
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#filename-format
        - name: filename-format
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "^[_a-z][_a-z0-9]*\\.go$"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#flag-parameter
        - name: flag-parameter
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#forbidden-call-in-wg-go
        - name: forbidden-call-in-wg-go
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#function-length
        - name: function-length
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 10, 0 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#function-result-limit
        - name: function-result-limit
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 3 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#get-return
        - name: get-return
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#identical-branches
        - name: identical-branches
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#identical-ifelseif-branches
        - name: identical-ifelseif-branches
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#identical-ifelseif-conditions
        - name: identical-ifelseif-conditions
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#identical-switch-branches
        - name: identical-switch-branches
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#identical-switch-conditions
        - name: identical-switch-conditions
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#if-return
        - name: if-return
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#import-alias-naming
        - name: import-alias-naming
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "^[a-z][a-z0-9]{0,}$"
            # Or this parameter:
            - allow-regex: "^[a-z][a-z0-9]{0,}$"
              deny-regex: '^v\d+$'
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#import-shadowing
        - name: import-shadowing
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#imports-blocklist
        - name: imports-blocklist
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "crypto/md5"
            - "crypto/sha1"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#increment-decrement
        - name: increment-decrement
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#indent-error-flow
        - name: indent-error-flow
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "preserve-scope"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#inefficient-map-lookup
        - name: inefficient-map-lookup
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#line-length-limit
        - name: line-length-limit
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 80 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#max-control-nesting
        - name: max-control-nesting
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 3 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#max-public-structs
        - name: max-public-structs
          severity: warning
          disabled: false
          exclude: [""]
          arguments: [ 3 ]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#modifies-parameter
        - name: modifies-parameter
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#modifies-value-receiver
        - name: modifies-value-receiver
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#nested-structs
        - name: nested-structs
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#optimize-operands-order
        - name: optimize-operands-order
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#package-comments
        - name: package-comments
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#package-directory-mismatch
        - name: package-directory-mismatch
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - ignore-directories: ["testcases", "testinfo"]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#package-naming
        - name: package-naming
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - skip-convention-name-check: true
              convention-name-check-regex: "^[a-z][a-zA-Z0-9]*$"
              skip-top-level-check: true
              skip-default-bad-name-check: true
              check-extra-bad-name: true
              user-defined-bad-names:
                - foo
                - bar
              skip-collision-with-common-std: true
              check-collision-with-all-std: true
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#range
        - name: range
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#range-val-address
        - name: range-val-address
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#range-val-in-closure
        - name: range-val-in-closure
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#receiver-naming
        - name: receiver-naming
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - max-length: 2
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#redefines-builtin-id
        - name: redefines-builtin-id
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#redundant-build-tag
        - name: redundant-build-tag
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#redundant-import-alias
        - name: redundant-import-alias
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#redundant-test-main-exit
        - name: redundant-test-main-exit
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#string-format
        - name: string-format
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - - 'core.WriteError[1].Message'
              - '/^([^A-Z]|$)/'
              - must not start with a capital letter
            - - 'fmt.Errorf[0]'
              - '/(^|[^\.!?])$/'
              - must not end in punctuation
            - - panic
              - '/^[^\n]*$/'
              - must not contain line breaks
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#string-of-int
        - name: string-of-int
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#struct-tag
        - name: struct-tag
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "!validate"
            - "json,inline"
            - "bson,outline,gnu"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#superfluous-else
        - name: superfluous-else
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "preserve-scope"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#time-date
        - name: time-date
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#time-equal
        - name: time-equal
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#time-naming
        - name: time-naming
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unchecked-type-assertion
        - name: unchecked-type-assertion
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - accept-ignored-assertion-result: true
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unconditional-recursion
        - name: unconditional-recursion
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unexported-naming
        - name: unexported-naming
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unexported-return
        - name: unexported-return
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unhandled-error
        - name: unhandled-error
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - "^fmt.Printf"
            - "myFunction"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unnecessary-format
        - name: unnecessary-format
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unnecessary-if
        - name: unnecessary-if
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unnecessary-stmt
        - name: unnecessary-stmt
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unreachable-code
        - name: unreachable-code
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-slices-sort
        - name: use-slices-sort
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unsecure-url-scheme
        - name: unsecure-url-scheme
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unused-parameter
        - name: unused-parameter
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - allow-regex: "^_"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#unused-receiver
        - name: unused-receiver
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - allow-regex: "^_"
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-any
        - name: use-any
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-errors-new
        - name: use-errors-new
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-fmt-print
        - name: use-fmt-print
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-slices-sort
        - name: use-slices-sort
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#use-waitgroup-go
        - name: use-waitgroup-go
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#useless-break
        - name: useless-break
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#useless-fallthrough
        - name: useless-fallthrough
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#var-declaration
        - name: var-declaration
          severity: warning
          disabled: false
          exclude: [""]
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#var-naming
        - name: var-naming
          severity: warning
          disabled: false
          exclude: [""]
          arguments:
            - [ "ID" ] # AllowList
            - [ "VM" ] # DenyList
            - - skip-initialism-name-checks: true
                upper-case-const: true
        # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#waitgroup-by-value
        - name: waitgroup-by-value
          severity: warning
          disabled: false
          exclude: [""]

    rowserrcheck:
      # database/sql is always checked.
      # Default: []
      packages:
        - github.com/jmoiron/sqlx

    sloglint:
      # Enforce not mixing key-value pairs and attributes.
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-mixed-arguments
      # Default: true
      no-mixed-args: false
      # Enforce using key-value pairs only (overrides no-mixed-args, incompatible with attr-only).
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#key-value-pairs-only
      # Default: false
      kv-only: true
      # Enforce using attributes only (overrides no-mixed-args, incompatible with kv-only).
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#attributes-only
      # Default: false
      attr-only: true
      # Enforce not using global loggers.
      # Values:
      # - "": disabled
      # - "all": report all global loggers
      # - "default": report only the default slog logger
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-global
      # Default: ""
      no-global: "all"
      # Enforce using methods that accept a context.
      # Values:
      # - "": disabled
      # - "all": report all contextless calls
      # - "scope": report only if a context exists in the scope of the outermost function
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#context-only
      # Default: ""
      context: "all"
      # Enforce using static values for log messages.
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#static-messages
      # Default: false
      static-msg: true
      # Enforce message style.
      # Values: lowercased, capitalized
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#message-style
      # Default: ""
      msg-style: capitalized
      # Enforce using constants instead of raw keys.
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-raw-keys
      # Default: false
      no-raw-keys: true
      # Enforce key naming convention.
      # Values: snake, kebab, camel, pascal
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#key-naming-convention
      # Default: ""
      key-naming-case: snake
      # Enforce not using specific keys.
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#forbidden-keys
      # Default: []
      forbidden-keys:
        - time
        - level
        - msg
        - source
        - foo
      # Enforce putting arguments on separate lines.
      # https://github.com/go-simpler/sloglint?tab=readme-ov-file#arguments-on-separate-lines
      # Default: false
      args-on-sep-lines: true

    spancheck:
      # Checks to enable.
      # Options include:
      # - `end`: check that `span.End()` is called
      # - `record-error`: check that `span.RecordError(err)` is called when an error is returned
      # - `set-status`: check that `span.SetStatus(codes.Error, msg)` is called when an error is returned
      # Default: ["end"]
      checks:
        - end
        - record-error
        - set-status
      # A list of regexes for function signatures that silence `record-error` and `set-status` reports
      # if found in the call path to a returned error.
      # https://github.com/jjti/go-spancheck#ignore-check-signatures
      # Default: []
      ignore-check-signatures:
        - "telemetry.RecordError"
      # A list of regexes for additional function signatures that create spans.
      # This is useful if you have a utility method to create spans.
      # Each entry should be of the form `<regex>:<telemetry-type>`, where `telemetry-type` can be `opentelemetry` or `opencensus`.
      # https://github.com/jjti/go-spancheck#extra-start-span-signatures
      # Default: []
      extra-start-span-signatures:
        - "github.com/user/repo/telemetry/trace.Start:opentelemetry"

    staticcheck:
      # https://staticcheck.dev/docs/configuration/options/#dot_import_whitelist
      # Default: ["github.com/mmcloughlin/avo/build", "github.com/mmcloughlin/avo/operand", "github.com/mmcloughlin/avo/reg"]
      dot-import-whitelist:
        - fmt
      # https://staticcheck.dev/docs/configuration/options/#initialisms
      # Default: ["ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS"]
      initialisms: [ "ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS" ]
      # https://staticcheck.dev/docs/configuration/options/#http_status_code_whitelist
      # Default: ["200", "400", "404", "500"]
      http-status-code-whitelist: [ "200", "400", "404", "500" ]
      # SAxxxx checks in https://staticcheck.dev/docs/configuration/options/#checks
      # Example (to disable some checks): [ "all", "-SA1000", "-SA1001"]
      # Run `GL_DEBUG=staticcheck golangci-lint run --enable=staticcheck` to see all available checks and enabled by config checks.
      # Default: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
      checks:
        # Invalid regular expression.
        # https://staticcheck.dev/docs/checks/#SA1000
        - SA1000
        # Invalid template.
        # https://staticcheck.dev/docs/checks/#SA1001
        - SA1001
        # Invalid format in 'time.Parse'.
        # https://staticcheck.dev/docs/checks/#SA1002
        - SA1002
        # Unsupported argument to functions in 'encoding/binary'.
        # https://staticcheck.dev/docs/checks/#SA1003
        - SA1003
        # Suspiciously small untyped constant in 'time.Sleep'.
        # https://staticcheck.dev/docs/checks/#SA1004
        - SA1004
        # Invalid first argument to 'exec.Command'.
        # https://staticcheck.dev/docs/checks/#SA1005
        - SA1005
        # 'Printf' with dynamic first argument and no further arguments.
        # https://staticcheck.dev/docs/checks/#SA1006
        - SA1006
        # Invalid URL in 'net/url.Parse'.
        # https://staticcheck.dev/docs/checks/#SA1007
        - SA1007
        # Non-canonical key in 'http.Header' map.
        # https://staticcheck.dev/docs/checks/#SA1008
        - SA1008
        # '(*regexp.Regexp).FindAll' called with 'n == 0', which will always return zero results.
        # https://staticcheck.dev/docs/checks/#SA1010
        - SA1010
        # Various methods in the "strings" package expect valid UTF-8, but invalid input is provided.
        # https://staticcheck.dev/docs/checks/#SA1011
        - SA1011
        # A nil 'context.Context' is being passed to a function, consider using 'context.TODO' instead.
        # https://staticcheck.dev/docs/checks/#SA1012
        - SA1012
        # 'io.Seeker.Seek' is being called with the whence constant as the first argument, but it should be the second.
        # https://staticcheck.dev/docs/checks/#SA1013
        - SA1013
        # Non-pointer value passed to 'Unmarshal' or 'Decode'.
        # https://staticcheck.dev/docs/checks/#SA1014
        - SA1014
        # Using 'time.Tick' in a way that will leak. Consider using 'time.NewTicker', and only use 'time.Tick' in tests, commands and endless functions.
        # https://staticcheck.dev/docs/checks/#SA1015
        - SA1015
        # Trapping a signal that cannot be trapped.
        # https://staticcheck.dev/docs/checks/#SA1016
        - SA1016
        # Channels used with 'os/signal.Notify' should be buffered.
        # https://staticcheck.dev/docs/checks/#SA1017
        - SA1017
        # 'strings.Replace' called with 'n == 0', which does nothing.
        # https://staticcheck.dev/docs/checks/#SA1018
        - SA1018
        # Using a deprecated function, variable, constant or field.
        # https://staticcheck.dev/docs/checks/#SA1019
        - SA1019
        # Using an invalid host:port pair with a 'net.Listen'-related function.
        # https://staticcheck.dev/docs/checks/#SA1020
        - SA1020
        # Using 'bytes.Equal' to compare two 'net.IP'.
        # https://staticcheck.dev/docs/checks/#SA1021
        - SA1021
        # Modifying the buffer in an 'io.Writer' implementation.
        # https://staticcheck.dev/docs/checks/#SA1023
        - SA1023
        # A string cutset contains duplicate characters.
        # https://staticcheck.dev/docs/checks/#SA1024
        - SA1024
        # It is not possible to use '(*time.Timer).Reset''s return value correctly.
        # https://staticcheck.dev/docs/checks/#SA1025
        - SA1025
        # Cannot marshal channels or functions.
        # https://staticcheck.dev/docs/checks/#SA1026
        - SA1026
        # Atomic access to 64-bit variable must be 64-bit aligned.
        # https://staticcheck.dev/docs/checks/#SA1027
        - SA1027
        # 'sort.Slice' can only be used on slices.
        # https://staticcheck.dev/docs/checks/#SA1028
        - SA1028
        # Inappropriate key in call to 'context.WithValue'.
        # https://staticcheck.dev/docs/checks/#SA1029
        - SA1029
        # Invalid argument in call to a 'strconv' function.
        # https://staticcheck.dev/docs/checks/#SA1030
        - SA1030
        # Overlapping byte slices passed to an encoder.
        # https://staticcheck.dev/docs/checks/#SA1031
        - SA1031
        # Wrong order of arguments to 'errors.Is'.
        # https://staticcheck.dev/docs/checks/#SA1032
        - SA1032
        # 'sync.WaitGroup.Add' called inside the goroutine, leading to a race condition.
        # https://staticcheck.dev/docs/checks/#SA2000
        - SA2000
        # Empty critical section, did you mean to defer the unlock?.
        # https://staticcheck.dev/docs/checks/#SA2001
        - SA2001
        # Called 'testing.T.FailNow' or 'SkipNow' in a goroutine, which isn't allowed.
        # https://staticcheck.dev/docs/checks/#SA2002
        - SA2002
        # Deferred 'Lock' right after locking, likely meant to defer 'Unlock' instead.
        # https://staticcheck.dev/docs/checks/#SA2003
        - SA2003
        # 'TestMain' doesn't call 'os.Exit', hiding test failures.
        # https://staticcheck.dev/docs/checks/#SA3000
        - SA3000
        # Assigning to 'b.N' in benchmarks distorts the results.
        # https://staticcheck.dev/docs/checks/#SA3001
        - SA3001
        # Binary operator has identical expressions on both sides.
        # https://staticcheck.dev/docs/checks/#SA4000
        - SA4000
        # '&*x' gets simplified to 'x', it does not copy 'x'.
        # https://staticcheck.dev/docs/checks/#SA4001
        - SA4001
        # Comparing unsigned values against negative values is pointless.
        # https://staticcheck.dev/docs/checks/#SA4003
        - SA4003
        # The loop exits unconditionally after one iteration.
        # https://staticcheck.dev/docs/checks/#SA4004
        - SA4004
        # Field assignment that will never be observed. Did you mean to use a pointer receiver?.
        # https://staticcheck.dev/docs/checks/#SA4005
        - SA4005
        # A value assigned to a variable is never read before being overwritten. Forgotten error check or dead code?.
        # https://staticcheck.dev/docs/checks/#SA4006
        - SA4006
        # The variable in the loop condition never changes, are you incrementing the wrong variable?.
        # https://staticcheck.dev/docs/checks/#SA4008
        - SA4008
        # A function argument is overwritten before its first use.
        # https://staticcheck.dev/docs/checks/#SA4009
        - SA4009
        # The result of 'append' will never be observed anywhere.
        # https://staticcheck.dev/docs/checks/#SA4010
        - SA4010
        # Break statement with no effect. Did you mean to break out of an outer loop?.
        # https://staticcheck.dev/docs/checks/#SA4011
        - SA4011
        # Comparing a value against NaN even though no value is equal to NaN.
        # https://staticcheck.dev/docs/checks/#SA4012
        - SA4012
        # Negating a boolean twice ('!!b') is the same as writing 'b'. This is either redundant, or a typo.
        # https://staticcheck.dev/docs/checks/#SA4013
        - SA4013
        # An if/else if chain has repeated conditions and no side-effects; if the condition didn't match the first time, it won't match the second time, either.
        # https://staticcheck.dev/docs/checks/#SA4014
        - SA4014
        # Calling functions like 'math.Ceil' on floats converted from integers doesn't do anything useful.
        # https://staticcheck.dev/docs/checks/#SA4015
        - SA4015
        # Certain bitwise operations, such as 'x ^ 0', do not do anything useful.
        # https://staticcheck.dev/docs/checks/#SA4016
        - SA4016
        # Discarding the return values of a function without side effects, making the call pointless.
        # https://staticcheck.dev/docs/checks/#SA4017
        - SA4017
        # Self-assignment of variables.
        # https://staticcheck.dev/docs/checks/#SA4018
        - SA4018
        # Multiple, identical build constraints in the same file.
        # https://staticcheck.dev/docs/checks/#SA4019
        - SA4019
        # Unreachable case clause in a type switch.
        # https://staticcheck.dev/docs/checks/#SA4020
        - SA4020
        # "x = append(y)" is equivalent to "x = y".
        # https://staticcheck.dev/docs/checks/#SA4021
        - SA4021
        # Comparing the address of a variable against nil.
        # https://staticcheck.dev/docs/checks/#SA4022
        - SA4022
        # Impossible comparison of interface value with untyped nil.
        # https://staticcheck.dev/docs/checks/#SA4023
        - SA4023
        # Checking for impossible return value from a builtin function.
        # https://staticcheck.dev/docs/checks/#SA4024
        - SA4024
        # Integer division of literals that results in zero.
        # https://staticcheck.dev/docs/checks/#SA4025
        - SA4025
        # Go constants cannot express negative zero.
        # https://staticcheck.dev/docs/checks/#SA4026
        - SA4026
        # '(*net/url.URL).Query' returns a copy, modifying it doesn't change the URL.
        # https://staticcheck.dev/docs/checks/#SA4027
        - SA4027
        # 'x % 1' is always zero.
        # https://staticcheck.dev/docs/checks/#SA4028
        - SA4028
        # Ineffective attempt at sorting slice.
        # https://staticcheck.dev/docs/checks/#SA4029
        - SA4029
        # Ineffective attempt at generating random number.
        # https://staticcheck.dev/docs/checks/#SA4030
        - SA4030
        # Checking never-nil value against nil.
        # https://staticcheck.dev/docs/checks/#SA4031
        - SA4031
        # Comparing 'runtime.GOOS' or 'runtime.GOARCH' against impossible value.
        # https://staticcheck.dev/docs/checks/#SA4032
        - SA4032
        # Assignment to nil map.
        # https://staticcheck.dev/docs/checks/#SA5000
        - SA5000
        # Deferring 'Close' before checking for a possible error.
        # https://staticcheck.dev/docs/checks/#SA5001
        - SA5001
        # The empty for loop ("for {}") spins and can block the scheduler.
        # https://staticcheck.dev/docs/checks/#SA5002
        - SA5002
        # Defers in infinite loops will never execute.
        # https://staticcheck.dev/docs/checks/#SA5003
        - SA5003
        # "for { select { ..." with an empty default branch spins.
        # https://staticcheck.dev/docs/checks/#SA5004
        - SA5004
        # The finalizer references the finalized object, preventing garbage collection.
        # https://staticcheck.dev/docs/checks/#SA5005
        - SA5005
        # Infinite recursive call.
        # https://staticcheck.dev/docs/checks/#SA5007
        - SA5007
        # Invalid struct tag.
        # https://staticcheck.dev/docs/checks/#SA5008
        - SA5008
        # Invalid Printf call.
        # https://staticcheck.dev/docs/checks/#SA5009
        - SA5009
        # Impossible type assertion.
        # https://staticcheck.dev/docs/checks/#SA5010
        - SA5010
        # Possible nil pointer dereference.
        # https://staticcheck.dev/docs/checks/#SA5011
        - SA5011
        # Passing odd-sized slice to function expecting even size.
        # https://staticcheck.dev/docs/checks/#SA5012
        - SA5012
        # Using 'regexp.Match' or related in a loop, should use 'regexp.Compile'.
        # https://staticcheck.dev/docs/checks/#SA6000
        - SA6000
        # Missing an optimization opportunity when indexing maps by byte slices.
        # https://staticcheck.dev/docs/checks/#SA6001
        - SA6001
        # Storing non-pointer values in 'sync.Pool' allocates memory.
        # https://staticcheck.dev/docs/checks/#SA6002
        - SA6002
        # Converting a string to a slice of runes before ranging over it.
        # https://staticcheck.dev/docs/checks/#SA6003
        - SA6003
        # Inefficient string comparison with 'strings.ToLower' or 'strings.ToUpper'.
        # https://staticcheck.dev/docs/checks/#SA6005
        - SA6005
        # Using io.WriteString to write '[]byte'.
        # https://staticcheck.dev/docs/checks/#SA6006
        - SA6006
        # Defers in range loops may not run when you expect them to.
        # https://staticcheck.dev/docs/checks/#SA9001
        - SA9001
        # Using a non-octal 'os.FileMode' that looks like it was meant to be in octal.
        # https://staticcheck.dev/docs/checks/#SA9002
        - SA9002
        # Empty body in an if or else branch.
        # https://staticcheck.dev/docs/checks/#SA9003
        - SA9003
        # Only the first constant has an explicit type.
        # https://staticcheck.dev/docs/checks/#SA9004
        - SA9004
        # Trying to marshal a struct with no public fields nor custom marshaling.
        # https://staticcheck.dev/docs/checks/#SA9005
        - SA9005
        # Dubious bit shifting of a fixed size integer value.
        # https://staticcheck.dev/docs/checks/#SA9006
        - SA9006
        # Deleting a directory that shouldn't be deleted.
        # https://staticcheck.dev/docs/checks/#SA9007
        - SA9007
        # 'else' branch of a type assertion is probably not reading the right value.
        # https://staticcheck.dev/docs/checks/#SA9008
        - SA9008
        # Ineffectual Go compiler directive.
        # https://staticcheck.dev/docs/checks/#SA9009
        - SA9009
        # Incorrect or missing package comment.
        # https://staticcheck.dev/docs/checks/#ST1000
        - ST1000
        # Dot imports are discouraged.
        # https://staticcheck.dev/docs/checks/#ST1001
        - ST1001
        # Poorly chosen identifier.
        # https://staticcheck.dev/docs/checks/#ST1003
        - ST1003
        # Incorrectly formatted error string.
        # https://staticcheck.dev/docs/checks/#ST1005
        - ST1005
        # Poorly chosen receiver name.
        # https://staticcheck.dev/docs/checks/#ST1006
        - ST1006
        # A function's error value should be its last return value.
        # https://staticcheck.dev/docs/checks/#ST1008
        - ST1008
        # Poorly chosen name for variable of type 'time.Duration'.
        # https://staticcheck.dev/docs/checks/#ST1011
        - ST1011
        # Poorly chosen name for error variable.
        # https://staticcheck.dev/docs/checks/#ST1012
        - ST1012
        # Should use constants for HTTP error codes, not magic numbers.
        # https://staticcheck.dev/docs/checks/#ST1013
        - ST1013
        # A switch's default case should be the first or last case.
        # https://staticcheck.dev/docs/checks/#ST1015
        - ST1015
        # Use consistent method receiver names.
        # https://staticcheck.dev/docs/checks/#ST1016
        - ST1016
        # Don't use Yoda conditions.
        # https://staticcheck.dev/docs/checks/#ST1017
        - ST1017
        # Avoid zero-width and control characters in string literals.
        # https://staticcheck.dev/docs/checks/#ST1018
        - ST1018
        # Importing the same package multiple times.
        # https://staticcheck.dev/docs/checks/#ST1019
        - ST1019
        # The documentation of an exported function should start with the function's name.
        # https://staticcheck.dev/docs/checks/#ST1020
        - ST1020
        # The documentation of an exported type should start with type's name.
        # https://staticcheck.dev/docs/checks/#ST1021
        - ST1021
        # The documentation of an exported variable or constant should start with variable's name.
        # https://staticcheck.dev/docs/checks/#ST1022
        - ST1022
        # Redundant type in variable declaration.
        # https://staticcheck.dev/docs/checks/#ST1023
        - ST1023
        # Use plain channel send or receive instead of single-case select.
        # https://staticcheck.dev/docs/checks/#S1000
        - S1000
        # Replace for loop with call to copy.
        # https://staticcheck.dev/docs/checks/#S1001
        - S1001
        # Omit comparison with boolean constant.
        # https://staticcheck.dev/docs/checks/#S1002
        - S1002
        # Replace call to 'strings.Index' with 'strings.Contains'.
        # https://staticcheck.dev/docs/checks/#S1003
        - S1003
        # Replace call to 'bytes.Compare' with 'bytes.Equal'.
        # https://staticcheck.dev/docs/checks/#S1004
        - S1004
        # Drop unnecessary use of the blank identifier.
        # https://staticcheck.dev/docs/checks/#S1005
        - S1005
        # Use "for { ... }" for infinite loops.
        # https://staticcheck.dev/docs/checks/#S1006
        - S1006
        # Simplify regular expression by using raw string literal.
        # https://staticcheck.dev/docs/checks/#S1007
        - S1007
        # Simplify returning boolean expression.
        # https://staticcheck.dev/docs/checks/#S1008
        - S1008
        # Omit redundant nil check on slices, maps, and channels.
        # https://staticcheck.dev/docs/checks/#S1009
        - S1009
        # Omit default slice index.
        # https://staticcheck.dev/docs/checks/#S1010
        - S1010
        # Use a single 'append' to concatenate two slices.
        # https://staticcheck.dev/docs/checks/#S1011
        - S1011
        # Replace 'time.Now().Sub(x)' with 'time.Since(x)'.
        # https://staticcheck.dev/docs/checks/#S1012
        - S1012
        # Use a type conversion instead of manually copying struct fields.
        # https://staticcheck.dev/docs/checks/#S1016
        - S1016
        # Replace manual trimming with 'strings.TrimPrefix'.
        # https://staticcheck.dev/docs/checks/#S1017
        - S1017
        # Use "copy" for sliding elements.
        # https://staticcheck.dev/docs/checks/#S1018
        - S1018
        # Simplify "make" call by omitting redundant arguments.
        # https://staticcheck.dev/docs/checks/#S1019
        - S1019
        # Omit redundant nil check in type assertion.
        # https://staticcheck.dev/docs/checks/#S1020
        - S1020
        # Merge variable declaration and assignment.
        # https://staticcheck.dev/docs/checks/#S1021
        - S1021
        # Omit redundant control flow.
        # https://staticcheck.dev/docs/checks/#S1023
        - S1023
        # Replace 'x.Sub(time.Now())' with 'time.Until(x)'.
        # https://staticcheck.dev/docs/checks/#S1024
        - S1024
        # Don't use 'fmt.Sprintf("%s", x)' unnecessarily.
        # https://staticcheck.dev/docs/checks/#S1025
        - S1025
        # Simplify error construction with 'fmt.Errorf'.
        # https://staticcheck.dev/docs/checks/#S1028
        - S1028
        # Range over the string directly.
        # https://staticcheck.dev/docs/checks/#S1029
        - S1029
        # Use 'bytes.Buffer.String' or 'bytes.Buffer.Bytes'.
        # https://staticcheck.dev/docs/checks/#S1030
        - S1030
        # Omit redundant nil check around loop.
        # https://staticcheck.dev/docs/checks/#S1031
        - S1031
        # Use 'sort.Ints(x)', 'sort.Float64s(x)', and 'sort.Strings(x)'.
        # https://staticcheck.dev/docs/checks/#S1032
        - S1032
        # Unnecessary guard around call to "delete".
        # https://staticcheck.dev/docs/checks/#S1033
        - S1033
        # Use result of type assertion to simplify cases.
        # https://staticcheck.dev/docs/checks/#S1034
        - S1034
        # Redundant call to 'net/http.CanonicalHeaderKey' in method call on 'net/http.Header'.
        # https://staticcheck.dev/docs/checks/#S1035
        - S1035
        # Unnecessary guard around map access.
        # https://staticcheck.dev/docs/checks/#S1036
        - S1036
        # Elaborate way of sleeping.
        # https://staticcheck.dev/docs/checks/#S1037
        - S1037
        # Unnecessarily complex way of printing formatted string.
        # https://staticcheck.dev/docs/checks/#S1038
        - S1038
        # Unnecessary use of 'fmt.Sprint'.
        # https://staticcheck.dev/docs/checks/#S1039
        - S1039
        # Type assertion to current type.
        # https://staticcheck.dev/docs/checks/#S1040
        - S1040
        # Apply De Morgan's law.
        # https://staticcheck.dev/docs/checks/#QF1001
        - QF1001
        # Convert untagged switch to tagged switch.
        # https://staticcheck.dev/docs/checks/#QF1002
        - QF1002
        # Convert if/else-if chain to tagged switch.
        # https://staticcheck.dev/docs/checks/#QF1003
        - QF1003
        # Use 'strings.ReplaceAll' instead of 'strings.Replace' with 'n == -1'.
        # https://staticcheck.dev/docs/checks/#QF1004
        - QF1004
        # Expand call to 'math.Pow'.
        # https://staticcheck.dev/docs/checks/#QF1005
        - QF1005
        # Lift 'if'+'break' into loop condition.
        # https://staticcheck.dev/docs/checks/#QF1006
        - QF1006
        # Merge conditional assignment into variable declaration.
        # https://staticcheck.dev/docs/checks/#QF1007
        - QF1007
        # Omit embedded fields from selector expression.
        # https://staticcheck.dev/docs/checks/#QF1008
        - QF1008
        # Use 'time.Time.Equal' instead of '==' operator.
        # https://staticcheck.dev/docs/checks/#QF1009
        - QF1009
        # Convert slice of bytes to string when printing it.
        # https://staticcheck.dev/docs/checks/#QF1010
        - QF1010
        # Omit redundant type from variable declaration.
        # https://staticcheck.dev/docs/checks/#QF1011
        - QF1011
        # Use 'fmt.Fprintf(x, ...)' instead of 'x.Write(fmt.Sprintf(...))'.
        # https://staticcheck.dev/docs/checks/#QF1012
        - QF1012

    tagalign:
      # Align and sort can be used together or separately.
      #
      # Whether enable align. If true, the struct tags will be aligned.
      # E.g.:
      # type FooBar struct {
      #     Bar    string `json:"bar" validate:"required"`
      #     FooFoo int8   `json:"foo_foo" validate:"required"`
      # }
      # will be formatted to:
      # type FooBar struct {
      #     Bar    string `json:"bar"     validate:"required"`
      #     FooFoo int8   `json:"foo_foo" validate:"required"`
      # }
      # Default: true.
      align: false
      # Whether enable tags sort.
      # If true, the tags will be sorted by name in ascending order.
      # E.g.: `xml:"bar" json:"bar" validate:"required"` -> `json:"bar" validate:"required" xml:"bar"`.
      # Default: true
      sort: false
      # Specify the order of tags, the other tags will be sorted by name.
      # This option will be ignored if `sort` is false.
      # Default: []
      order:
        - json
        - yaml
        - yml
        - toml
        - mapstructure
        - binding
        - validate
      # Whether enable strict style.
      # In this style, the tags will be sorted and aligned in the dictionary order,
      # and the tags with the same name will be aligned together.
      # Note: This option will be ignored if 'align' or 'sort' is false.
      # Default: false
      strict: true

    tagliatelle:
      # Checks the struct tag name case.
      case:
        # Defines the association between tag name and case.
        # Any struct tag name can be used.
        # Supported string cases:
        # - `camel`
        # - `pascal`
        # - `kebab`
        # - `snake`
        # - `upperSnake`
        # - `goCamel`
        # - `goPascal`
        # - `goKebab`
        # - `goSnake`
        # - `upper`
        # - `lower`
        # - `header`
        rules:
          json: camel
          yaml: camel
          xml: camel
          toml: camel
          bson: camel
          avro: snake
          mapstructure: kebab
          env: upperSnake
          envconfig: upperSnake
          whatever: snake
        # Defines the association between tag name and case.
        # Important: the `extended-rules` overrides `rules`.
        # Default: empty
        extended-rules:
          json:
            # Supported string cases:
            # - `camel`
            # - `pascal`
            # - `kebab`
            # - `snake`
            # - `upperSnake`
            # - `goCamel`
            # - `goPascal`
            # - `goKebab`
            # - `goSnake`
            # - `header`
            # - `lower`
            # - `header`
            #
            # Required
            case: camel
            # Adds 'AMQP', 'DB', 'GID', 'RTP', 'SIP', 'TS' to initialisms,
            # and removes 'LHS', 'RHS' from initialisms.
            # Default: false
            extra-initialisms: true
            # Defines initialism additions and overrides.
            # Default: empty
            initialism-overrides:
              DB: true # add a new initialism
              LHS: false # disable a default initialism.
              # ...
        # Uses the struct field name to check the name of the struct tag.
        # Default: false
        use-field-name: true
        # The field names to ignore.
        # Default: []
        ignored-fields:
          - Bar
          - Foo
        # Overrides the default/root configuration.
        # Default: []
        overrides:
          -
            # The package path (uses `/` only as a separator).
            # Required
            pkg: foo/bar
            # Default: empty or the same as the default/root configuration.
            rules:
              json: snake
              xml: pascal
            # Default: empty or the same as the default/root configuration.
            extended-rules:
            # Same options as the base `extended-rules`.
            # Default: false (WARNING: it doesn't follow the default/root configuration)
            use-field-name: true
            # The field names to ignore.
            # Default: [] or the same as the default/root configuration.
            ignored-fields:
              - Bar
              - Foo
            # Ignore the package (takes precedence over all other configurations).
            # Default: false
            ignore: true

    testifylint:
      # Enable all checkers (https://github.com/Antonboom/testifylint#checkers).
      # Default: false
      enable-all: true
      # Disable checkers by name
      # (in addition to default
      #   suite-thelper
      # ).
      disable:
        - blank-import
        - bool-compare
        - compares
        - contains
        - empty
        - encoded-compare
        - equal-values
        - error-is-as
        - error-nil
        - expected-actual
        - float-compare
        - formatter
        - go-require
        - len
        - negative-positive
        - nil-compare
        - regexp
        - require-error
        - suite-broken-parallel
        - suite-dont-use-pkg
        - suite-extra-assert-call
        - suite-method-signature
        - suite-subtest-run
        - suite-thelper
        - useless-assert

      # Disable all checkers (https://github.com/Antonboom/testifylint#checkers).
      # Default: false
      disable-all: true
      # Enable checkers by name
      # (in addition to default
      #   blank-import, bool-compare, compares, contains, empty, encoded-compare, equal-values, error-is-as, error-nil,
      #   expected-actual, go-require, float-compare, formatter, len, negative-positive, nil-compare, regexp, require-error,
      #   suite-broken-parallel, suite-dont-use-pkg, suite-extra-assert-call, suite-subtest-run, suite-method-signature,
      #   useless-assert
      # ).
      enable:
        - blank-import
        - bool-compare
        - compares
        - contains
        - empty
        - encoded-compare
        - equal-values
        - error-is-as
        - error-nil
        - expected-actual
        - float-compare
        - formatter
        - go-require
        - len
        - negative-positive
        - nil-compare
        - regexp
        - require-error
        - suite-broken-parallel
        - suite-dont-use-pkg
        - suite-extra-assert-call
        - suite-method-signature
        - suite-subtest-run
        - suite-thelper
        - useless-assert

      bool-compare:
        # To ignore user defined types (over builtin bool).
        # Default: false
        ignore-custom-types: true
      expected-actual:
        # Regexp for expected variable name.
        # Default: (^(exp(ected)?|want(ed)?)([A-Z]\w*)?$)|(^(\w*[a-z])?(Exp(ected)?|Want(ed)?)$)
        pattern: ^expected
      formatter:
        # To enable go vet's printf checks.
        # Default: true
        check-format-string: false
        # To require f-assertions (e.g. `assert.Equalf`) if format string is used, even if there are no variable-length
        # variables, i.e. it requires `require.NoErrorf` for both these cases:
        # - require.NoErrorf(t, err, "unexpected error")
        # - require.NoErrorf(t, err, "unexpected error for sid: %v", sid)
        # To understand this behavior, please read the
        # https://github.com/Antonboom/testifylint?tab=readme-ov-file#historical-reference-of-formatter.
        # Default: false
        require-f-funcs: true
        # To require that the first element of msgAndArgs (msg) has a string type.
        # For example, in such case assertion like `assert.True(t, b, tt.case)` will be considered as invalid.
        # Default: true
        require-string-msg: false
      go-require:
        # To ignore HTTP handlers (like http.HandlerFunc).
        # Default: false
        ignore-http-handlers: true
      require-error:
        # Regexp for assertions to analyze. If defined, then only matched error assertions will be reported.
        # Default: ""
        fn-pattern: ^(Errorf?|NoErrorf?)$
      suite-extra-assert-call:
        # To require or remove extra Assert() call?
        # Default: remove
        mode: require

    testpackage:
      # Regexp pattern to skip files.
      # Default: "(export|internal)_test\\.go"
      skip-regexp: (export|internal)_test\.go
      # List of packages that don't end with _test that tests are allowed to be in.
      # Default: "main"
      allow-packages:
        - example
        - main

    thelper:
      test:
        # Check *testing.T is first param (or after context.Context) of helper function.
        # Default: true
        first: false
        # Check *testing.T param has name t.
        # Default: true
        name: false
        # Check t.Helper() begins helper function.
        # Default: true
        begin: false
      benchmark:
        # Check *testing.B is first param (or after context.Context) of helper function.
        # Default: true
        first: false
        # Check *testing.B param has name b.
        # Default: true
        name: false
        # Check b.Helper() begins helper function.
        # Default: true
        begin: false
      tb:
        # Check *testing.TB is first param (or after context.Context) of helper function.
        # Default: true
        first: false
        # Check *testing.TB param has name tb.
        # Default: true
        name: false
        # Check tb.Helper() begins helper function.
        # Default: true
        begin: false
      fuzz:
        # Check *testing.F is first param (or after context.Context) of helper function.
        # Default: true
        first: false
        # Check *testing.F param has name f.
        # Default: true
        name: false
        # Check f.Helper() begins helper function.
        # Default: true
        begin: false

    usestdlibvars:
      # Suggest the use of http.MethodXX.
      # Default: true
      http-method: false
      # Suggest the use of http.StatusXX.
      # Default: true
      http-status-code: false
      # Suggest the use of time.Month in time.Date.
      # Default: false
      time-date-month: true
      # Suggest the use of time.Weekday.String().
      # Default: true
      time-weekday: true
      # Suggest the use of time.Month.String().
      # Default: false
      time-month: true
      # Suggest the use of time.Layout.
      # Default: false
      time-layout: true
      # Suggest the use of crypto.Hash.String().
      # Default: false
      crypto-hash: true
      # Suggest the use of rpc.DefaultXXPath.
      # Default: false
      default-rpc-path: true
      # Suggest the use of sql.LevelXX.String().
      # Default: false
      sql-isolation-level: true
      # Suggest the use of tls.SignatureScheme.String().
      # Default: false
      tls-signature-scheme: true
      # Suggest the use of constant.Kind.String().
      # Default: false
      constant-kind: true

    usetesting:
      # Enable/disable `os.CreateTemp("", ...)` detections.
      # Default: true
      os-create-temp: false

      # Enable/disable `os.MkdirTemp()` detections.
      # Default: true
      os-mkdir-temp: false

      # Enable/disable `os.Setenv()` detections.
      # Default: true
      os-setenv: false

      # Enable/disable `os.TempDir()` detections.
      # Default: false
      os-temp-dir: true

      # Enable/disable `os.Chdir()` detections.
      # Disabled if Go < 1.24.
      # Default: true
      os-chdir: false

      # Enable/disable `context.Background()` detections.
      # Disabled if Go < 1.24.
      # Default: false
      context-background: true

      # Enable/disable `context.TODO()` detections.
      # Disabled if Go < 1.24.
      # Default: false
      context-todo: true

    unconvert:
      # Remove conversions that force intermediate rounding.
      # Default: false
      fast-math: true
      # Be more conservative (experimental).
      # Default: false
      safe: true

    unparam:
      # Inspect exported functions.
      # Set to true if no external program/library imports your code.
      #
      # IMPORTANT: If you enable this setting, unparam reports many false positives in text editors:
      # when run on a subdirectory it cannot find external interfaces.
      # Most editor integrations invoke golangci-lint on the directory containing the changed file.
      #
      # Default: false
      check-exported: true

    unqueryvet:
      # Enable SQL builder checking.
      # Default: true
      check-sql-builders: false
      # Enable aliased wildcard detection like `SELECT t.*`.
      # Default: true
      check-aliased-wildcard: false
      # Enable string concatenation analysis.
      # Default: true
      check-string-concat: false
      # Enable format string analysis like `fmt.Sprintf`.
      # Default: true
      check-format-strings: false
      # Enable strings.Builder analysis.
      # Default: true
      check-string-builder: false
      # Enable subquery analysis.
      # Default: true
      check-subqueries: false
      # Detects N+1 Query.
      # Default: false
      check-n1: true
      # Detects SQL injection.
      # Default: false
      check-sql-injection: true
      # Detects transaction leaks.
      # Default: false
      check-tx-leaks: true
      # Regex patterns for acceptable `SELECT *` usage.
      # Default:
      # - "SELECT \\* FROM information_schema\\..*"
      # - "SELECT \\* FROM pg_catalog\\..*"
      # - "SELECT COUNT\\(\\*\\)"
      # - "SELECT MAX\\(\\*\\)"
      # - "SELECT MIN\\(\\*\\)"
      allowed-patterns:
        - "SELECT \\* FROM temp_.*"
        - "SELECT \\* FROM.*-- migration"
      # Allow is a list of SQL patterns to allow (whitelist).
      # Default: []
      allow:
        - foo
      # Functions to ignore (regex patterns)
      # Default: []
      ignored-functions:
        - "debug\\..*"
        - "test.*"
      # SQL builder libraries to check.
      # Default: all true.
      sql-builders:
        squirrel: false
        gorm: false
        sqlx: false
        ent: false
        pgx: false
        bun: false
        sqlboiler: false
        jet: false
      # List of user-defined DSL rules.
      # https://github.com/MirrexOne/unqueryvet?tab=readme-ov-file#custom-rules-dsl
      # Default: []
      custom-rules:
        - id: allow-temp-tables
          pattern: "SELECT * FROM $TABLE"
          when: "isTempTable(table)"
          action: allow
        - id: dangerous-delete
          pattern: "DELETE FROM $TABLE"
          when: "!has_where"
          message: "DELETE without WHERE clause"

    unused:
      # Mark all struct fields that have been written to as used.
      # Default: true
      field-writes-are-uses: false
      # Treat IncDec statement (e.g. `i++` or `i--`) as both read and write operation instead of just write.
      # Default: false
      post-statements-are-reads: true
      # Mark all exported fields as used.
      # default: true
      exported-fields-are-used: false
      # Mark all function parameters as used.
      # default: true
      parameters-are-used: false
      # Mark all local variables as used.
      # default: true
      local-variables-are-used: false
      # Mark all identifiers inside generated files as used.
      # Default: true
      generated-is-used: false

    varnamelen:
      # The longest distance, in source lines, that is being considered a "small scope".
      # Variables used in at most this many lines will be ignored.
      # Default: 5
      max-distance: 6
      # The minimum length of a variable's name that is considered "long".
      # Variable names that are at least this long will be ignored.
      # Default: 3
      min-name-length: 2
      # Check method receivers.
      # Default: false
      check-receiver: true
      # Check named return values.
      # Default: false
      check-return: true
      # Check type parameters.
      # Default: false
      check-type-param: true
      # Ignore "ok" variables that hold the bool return value of a type assertion.
      # Default: false
      ignore-type-assert-ok: true
      # Ignore "ok" variables that hold the bool return value of a map index.
      # Default: false
      ignore-map-index-ok: true
      # Ignore "ok" variables that hold the bool return value of a channel receive.
      # Default: false
      ignore-chan-recv-ok: true
      # Optional list of variable names that should be ignored completely.
      # Default: []
      ignore-names:
        - err
      # Optional list of variable declarations that should be ignored completely.
      # Entries must be in one of the following forms (see below for examples):
      # - for variables, parameters, named return values, method receivers, or
Download .txt
gitextract_2yvj2yhy/

├── .custom-gcl.reference.yml
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── boring-cyborg.yml
│   ├── dependabot.yml
│   ├── new-linter-checklist.md
│   ├── peril/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── rules/
│   │   │   └── invite-collaborator.ts
│   │   ├── settings.json
│   │   ├── tests/
│   │   │   └── invite-collaborator.test.ts
│   │   └── tsconfig.json
│   ├── stale.yml
│   └── workflows/
│       ├── codeql.yml
│       ├── deploy-documentation.yml
│       ├── new-linter-checklist.yml
│       ├── post-release.yml
│       ├── pr-checks.yml
│       ├── pr-documentation.yml
│       ├── pr-tests.yml
│       └── release.yml
├── .gitignore
├── .golangci.next.reference.yml
├── .golangci.reference.yml
├── .golangci.yml
├── .goreleaser.yml
├── .pre-commit-hooks.yaml
├── CHANGELOG-v1.md
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── assets/
│   ├── github-action-config-v1.json
│   ├── github-action-config-v2.json
│   └── github-action-config.json
├── build/
│   ├── buildx-alpine.Dockerfile
│   └── buildx.Dockerfile
├── cmd/
│   └── golangci-lint/
│       ├── main.go
│       └── plugins.go
├── docs/
│   ├── .gitignore
│   ├── Makefile
│   ├── archetypes/
│   │   └── default.md
│   ├── assets/
│   │   └── css/
│   │       └── custom.css
│   ├── content/
│   │   ├── _index.md
│   │   └── docs/
│   │       ├── _index.md
│   │       ├── configuration/
│   │       │   ├── _index.md
│   │       │   ├── cli.md
│   │       │   └── file.md
│   │       ├── contributing/
│   │       │   ├── _index.md
│   │       │   ├── architecture.md
│   │       │   ├── debug.md
│   │       │   ├── faq.md
│   │       │   ├── new-linters.md
│   │       │   ├── website.md
│   │       │   └── workflow.md
│   │       ├── donate/
│   │       │   └── _index.md
│   │       ├── formatters/
│   │       │   ├── _index.md
│   │       │   └── configuration.md
│   │       ├── linters/
│   │       │   ├── _index.md
│   │       │   ├── configuration.md
│   │       │   └── false-positives.md
│   │       ├── plugins/
│   │       │   ├── _index.md
│   │       │   ├── go-plugins.md
│   │       │   └── module-plugins.md
│   │       ├── product/
│   │       │   ├── _index.md
│   │       │   ├── changelog-v1.md
│   │       │   ├── changelog.md
│   │       │   ├── migration-guide.md
│   │       │   ├── roadmap.md
│   │       │   └── thanks.md
│   │       └── welcome/
│   │           ├── _index.md
│   │           ├── faq.md
│   │           ├── install/
│   │           │   ├── _index.md
│   │           │   ├── ci.md
│   │           │   └── local.md
│   │           ├── integrations.md
│   │           └── quick-start.md
│   ├── data/
│   │   ├── cli_help.json
│   │   ├── configuration_file.json
│   │   ├── exclusion_presets.json
│   │   ├── formatters_info.json
│   │   ├── icons.yaml
│   │   ├── linters_info.json
│   │   └── thanks.json
│   ├── go.mod
│   ├── go.sum
│   ├── golangci-lint.tape
│   ├── hugo.yaml
│   ├── i18n/
│   │   └── en.yaml
│   ├── layouts/
│   │   ├── 404.html
│   │   ├── _partials/
│   │   │   ├── custom/
│   │   │   │   └── head-end.html
│   │   │   ├── footer.html
│   │   │   ├── golangci/
│   │   │   │   └── items/
│   │   │   │       ├── compare-versions.html
│   │   │   │       ├── format-description.html
│   │   │   │       └── tag.html
│   │   │   └── shortcodes/
│   │   │       ├── badge.html
│   │   │       └── cards.html
│   │   └── _shortcodes/
│   │       ├── cards.html
│   │       ├── details.html
│   │       └── golangci/
│   │           ├── authors.html
│   │           ├── button.html
│   │           ├── cli-output.html
│   │           ├── configuration-file-snippet.html
│   │           ├── embed.html
│   │           ├── exclusion-preset-tables.html
│   │           ├── exclusion-presets-snippet.html
│   │           ├── image-card.html
│   │           ├── items/
│   │           │   ├── cards.html
│   │           │   ├── filter-badge.html
│   │           │   ├── filter.html
│   │           │   └── settings.html
│   │           ├── latest-version.html
│   │           └── starcharts.html
│   └── static/
│       ├── CNAME
│       └── site.webmanifest
├── go.mod
├── go.sum
├── install.sh
├── internal/
│   ├── cache/
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   └── testdata/
│   │       └── hello.go
│   ├── errorutil/
│   │   └── errors.go
│   ├── go/
│   │   ├── LICENSE
│   │   ├── base/
│   │   │   ├── error_notunix.go
│   │   │   ├── error_unix.go
│   │   │   └── readme.md
│   │   ├── cache/
│   │   │   ├── cache.go
│   │   │   ├── cache_gcil.go
│   │   │   ├── cache_test.go
│   │   │   ├── default.go
│   │   │   ├── default_gcil.go
│   │   │   ├── hash.go
│   │   │   ├── hash_gcil.go
│   │   │   ├── hash_test.go
│   │   │   ├── prog.go
│   │   │   └── readme.md
│   │   ├── cacheprog/
│   │   │   ├── cacheprog.go
│   │   │   └── readme.md
│   │   ├── mmap/
│   │   │   ├── mmap.go
│   │   │   ├── mmap_other.go
│   │   │   ├── mmap_unix.go
│   │   │   ├── mmap_windows.go
│   │   │   └── readme.md
│   │   ├── quoted/
│   │   │   ├── quoted.go
│   │   │   ├── quoted_test.go
│   │   │   └── readme.md
│   │   └── testenv/
│   │       ├── readme.md
│   │       ├── testenv.go
│   │       ├── testenv_notunix.go
│   │       ├── testenv_notwin.go
│   │       ├── testenv_unix.go
│   │       └── testenv_windows.go
│   └── x/
│       ├── LICENSE
│       └── tools/
│           ├── diff/
│           │   ├── diff.go
│           │   ├── lcs/
│           │   │   ├── common.go
│           │   │   ├── common_test.go
│           │   │   ├── doc.go
│           │   │   ├── git.sh
│           │   │   ├── labels.go
│           │   │   ├── old.go
│           │   │   ├── old_test.go
│           │   │   └── sequence.go
│           │   ├── myers/
│           │   │   └── diff.go
│           │   ├── ndiff.go
│           │   ├── readme.md
│           │   └── unified.go
│           └── driverutil/
│               ├── readfile.go
│               ├── readme.md
│               └── url.go
├── jsonschema/
│   ├── custom-gcl.jsonschema.json
│   ├── golangci.jsonschema.json
│   ├── golangci.next.jsonschema.json
│   ├── golangci.v1.57.jsonschema.json
│   ├── golangci.v1.58.jsonschema.json
│   ├── golangci.v1.59.jsonschema.json
│   ├── golangci.v1.60.jsonschema.json
│   ├── golangci.v1.61.jsonschema.json
│   ├── golangci.v1.62.jsonschema.json
│   ├── golangci.v1.63.jsonschema.json
│   ├── golangci.v1.64.jsonschema.json
│   ├── golangci.v1.jsonschema.json
│   ├── golangci.v2.0.jsonschema.json
│   ├── golangci.v2.1.jsonschema.json
│   ├── golangci.v2.10.jsonschema.json
│   ├── golangci.v2.2.jsonschema.json
│   ├── golangci.v2.3.jsonschema.json
│   ├── golangci.v2.4.jsonschema.json
│   ├── golangci.v2.5.jsonschema.json
│   ├── golangci.v2.6.jsonschema.json
│   ├── golangci.v2.7.jsonschema.json
│   ├── golangci.v2.8.jsonschema.json
│   └── golangci.v2.9.jsonschema.json
├── pkg/
│   ├── commands/
│   │   ├── cache.go
│   │   ├── config.go
│   │   ├── config_verify.go
│   │   ├── config_verify_test.go
│   │   ├── custom.go
│   │   ├── flagsets.go
│   │   ├── fmt.go
│   │   ├── formatters.go
│   │   ├── help.go
│   │   ├── help_formatters.go
│   │   ├── help_linters.go
│   │   ├── help_test.go
│   │   ├── internal/
│   │   │   ├── builder.go
│   │   │   ├── builder_test.go
│   │   │   ├── configuration.go
│   │   │   ├── configuration_test.go
│   │   │   ├── dirhash.go
│   │   │   ├── imports.go
│   │   │   ├── imports_test.go
│   │   │   ├── migrate/
│   │   │   │   ├── cloner/
│   │   │   │   │   └── cloner.go
│   │   │   │   ├── fakeloader/
│   │   │   │   │   ├── config.go
│   │   │   │   │   └── fakeloader.go
│   │   │   │   ├── migrate.go
│   │   │   │   ├── migrate_formatters.go
│   │   │   │   ├── migrate_issues.go
│   │   │   │   ├── migrate_linter_names.go
│   │   │   │   ├── migrate_linter_names_test.go
│   │   │   │   ├── migrate_linters.go
│   │   │   │   ├── migrate_linters_exclusions.go
│   │   │   │   ├── migrate_linters_settings.go
│   │   │   │   ├── migrate_output.go
│   │   │   │   ├── migrate_run.go
│   │   │   │   ├── migrate_severity.go
│   │   │   │   ├── migrate_test.go
│   │   │   │   ├── parser/
│   │   │   │   │   └── parser.go
│   │   │   │   ├── ptr/
│   │   │   │   │   └── ptr.go
│   │   │   │   ├── testdata/
│   │   │   │   │   ├── json/
│   │   │   │   │   │   ├── empty.golden.json
│   │   │   │   │   │   └── empty.json
│   │   │   │   │   ├── toml/
│   │   │   │   │   │   ├── empty.golden.toml
│   │   │   │   │   │   ├── empty.toml
│   │   │   │   │   │   ├── linters-settings_goheader.golden.toml
│   │   │   │   │   │   └── linters-settings_goheader.toml
│   │   │   │   │   └── yaml/
│   │   │   │   │       ├── empty.golden.yml
│   │   │   │   │       ├── empty.yml
│   │   │   │   │       ├── issues_01_a.golden.yml
│   │   │   │   │       ├── issues_01_a.yml
│   │   │   │   │       ├── issues_01_b.golden.yml
│   │   │   │   │       ├── issues_01_b.yml
│   │   │   │   │       ├── issues_02_a.golden.yml
│   │   │   │   │       ├── issues_02_a.yml
│   │   │   │   │       ├── issues_02_b.golden.yml
│   │   │   │   │       ├── issues_02_b.yml
│   │   │   │   │       ├── issues_04_a.golden.yml
│   │   │   │   │       ├── issues_04_a.yml
│   │   │   │   │       ├── issues_04_b.golden.yml
│   │   │   │   │       ├── issues_04_b.yml
│   │   │   │   │       ├── issues_04_c.golden.yml
│   │   │   │   │       ├── issues_04_c.yml
│   │   │   │   │       ├── issues_05_a.golden.yml
│   │   │   │   │       ├── issues_05_a.yml
│   │   │   │   │       ├── issues_05_b.golden.yml
│   │   │   │   │       ├── issues_05_b.yml
│   │   │   │   │       ├── issues_05_c.golden.yml
│   │   │   │   │       ├── issues_05_c.yml
│   │   │   │   │       ├── issues_06_a.golden.yml
│   │   │   │   │       ├── issues_06_a.yml
│   │   │   │   │       ├── issues_06_b.golden.yml
│   │   │   │   │       ├── issues_06_b.yml
│   │   │   │   │       ├── issues_06_c.golden.yml
│   │   │   │   │       ├── issues_06_c.yml
│   │   │   │   │       ├── issues_06_d.golden.yml
│   │   │   │   │       ├── issues_06_d.yml
│   │   │   │   │       ├── issues_06_e.golden.yml
│   │   │   │   │       ├── issues_06_e.yml
│   │   │   │   │       ├── issues_06_f.golden.yml
│   │   │   │   │       ├── issues_06_f.yml
│   │   │   │   │       ├── issues_06_g.golden.yml
│   │   │   │   │       ├── issues_06_g.yml
│   │   │   │   │       ├── issues_06_h.golden.yml
│   │   │   │   │       ├── issues_06_h.yml
│   │   │   │   │       ├── issues_07_a.golden.yml
│   │   │   │   │       ├── issues_07_a.yml
│   │   │   │   │       ├── issues_07_b.golden.yml
│   │   │   │   │       ├── issues_07_b.yml
│   │   │   │   │       ├── issues_08_a.golden.yml
│   │   │   │   │       ├── issues_08_a.yml
│   │   │   │   │       ├── issues_08_b.golden.yml
│   │   │   │   │       ├── issues_08_b.yml
│   │   │   │   │       ├── issues_09_a.golden.yml
│   │   │   │   │       ├── issues_09_a.yml
│   │   │   │   │       ├── issues_09_b.golden.yml
│   │   │   │   │       ├── issues_09_b.yml
│   │   │   │   │       ├── issues_10.golden.yml
│   │   │   │   │       ├── issues_10.yml
│   │   │   │   │       ├── linters-settings_asasalint.golden.yml
│   │   │   │   │       ├── linters-settings_asasalint.yml
│   │   │   │   │       ├── linters-settings_bidichk.golden.yml
│   │   │   │   │       ├── linters-settings_bidichk.yml
│   │   │   │   │       ├── linters-settings_copyloopvar.golden.yml
│   │   │   │   │       ├── linters-settings_copyloopvar.yml
│   │   │   │   │       ├── linters-settings_custom.golden.yml
│   │   │   │   │       ├── linters-settings_custom.yml
│   │   │   │   │       ├── linters-settings_cyclop.golden.yml
│   │   │   │   │       ├── linters-settings_cyclop.yml
│   │   │   │   │       ├── linters-settings_decorder.golden.yml
│   │   │   │   │       ├── linters-settings_decorder.yml
│   │   │   │   │       ├── linters-settings_depguard.golden.yml
│   │   │   │   │       ├── linters-settings_depguard.yml
│   │   │   │   │       ├── linters-settings_dogsled.golden.yml
│   │   │   │   │       ├── linters-settings_dogsled.yml
│   │   │   │   │       ├── linters-settings_dupl.golden.yml
│   │   │   │   │       ├── linters-settings_dupl.yml
│   │   │   │   │       ├── linters-settings_dupword.golden.yml
│   │   │   │   │       ├── linters-settings_dupword.yml
│   │   │   │   │       ├── linters-settings_errcheck.golden.yml
│   │   │   │   │       ├── linters-settings_errcheck.yml
│   │   │   │   │       ├── linters-settings_errchkjson.golden.yml
│   │   │   │   │       ├── linters-settings_errchkjson.yml
│   │   │   │   │       ├── linters-settings_errorlint.golden.yml
│   │   │   │   │       ├── linters-settings_errorlint.yml
│   │   │   │   │       ├── linters-settings_exhaustive.golden.yml
│   │   │   │   │       ├── linters-settings_exhaustive.yml
│   │   │   │   │       ├── linters-settings_exhaustruct.golden.yml
│   │   │   │   │       ├── linters-settings_exhaustruct.yml
│   │   │   │   │       ├── linters-settings_fatcontext.golden.yml
│   │   │   │   │       ├── linters-settings_fatcontext.yml
│   │   │   │   │       ├── linters-settings_forbidigo.golden.yml
│   │   │   │   │       ├── linters-settings_forbidigo.yml
│   │   │   │   │       ├── linters-settings_funlen.golden.yml
│   │   │   │   │       ├── linters-settings_funlen.yml
│   │   │   │   │       ├── linters-settings_gci.golden.yml
│   │   │   │   │       ├── linters-settings_gci.yml
│   │   │   │   │       ├── linters-settings_ginkgolinter.golden.yml
│   │   │   │   │       ├── linters-settings_ginkgolinter.yml
│   │   │   │   │       ├── linters-settings_gochecksumtype.golden.yml
│   │   │   │   │       ├── linters-settings_gochecksumtype.yml
│   │   │   │   │       ├── linters-settings_gocognit.golden.yml
│   │   │   │   │       ├── linters-settings_gocognit.yml
│   │   │   │   │       ├── linters-settings_goconst.golden.yml
│   │   │   │   │       ├── linters-settings_goconst.yml
│   │   │   │   │       ├── linters-settings_gocritic.golden.yml
│   │   │   │   │       ├── linters-settings_gocritic.yml
│   │   │   │   │       ├── linters-settings_gocyclo.golden.yml
│   │   │   │   │       ├── linters-settings_gocyclo.yml
│   │   │   │   │       ├── linters-settings_godot.golden.yml
│   │   │   │   │       ├── linters-settings_godot.yml
│   │   │   │   │       ├── linters-settings_godox.golden.yml
│   │   │   │   │       ├── linters-settings_godox.yml
│   │   │   │   │       ├── linters-settings_gofmt.golden.yml
│   │   │   │   │       ├── linters-settings_gofmt.yml
│   │   │   │   │       ├── linters-settings_gofumpt.golden.yml
│   │   │   │   │       ├── linters-settings_gofumpt.yml
│   │   │   │   │       ├── linters-settings_goheader.golden.yml
│   │   │   │   │       ├── linters-settings_goheader.yml
│   │   │   │   │       ├── linters-settings_goimports.golden.yml
│   │   │   │   │       ├── linters-settings_goimports.yml
│   │   │   │   │       ├── linters-settings_gomoddirectives.golden.yml
│   │   │   │   │       ├── linters-settings_gomoddirectives.yml
│   │   │   │   │       ├── linters-settings_gomodguard.golden.yml
│   │   │   │   │       ├── linters-settings_gomodguard.yml
│   │   │   │   │       ├── linters-settings_gosec.golden.yml
│   │   │   │   │       ├── linters-settings_gosec.yml
│   │   │   │   │       ├── linters-settings_gosimple.golden.yml
│   │   │   │   │       ├── linters-settings_gosimple.yml
│   │   │   │   │       ├── linters-settings_gosmopolitan.golden.yml
│   │   │   │   │       ├── linters-settings_gosmopolitan.yml
│   │   │   │   │       ├── linters-settings_govet.golden.yml
│   │   │   │   │       ├── linters-settings_govet.yml
│   │   │   │   │       ├── linters-settings_grouper.golden.yml
│   │   │   │   │       ├── linters-settings_grouper.yml
│   │   │   │   │       ├── linters-settings_iface.golden.yml
│   │   │   │   │       ├── linters-settings_iface.yml
│   │   │   │   │       ├── linters-settings_importas.golden.yml
│   │   │   │   │       ├── linters-settings_importas.yml
│   │   │   │   │       ├── linters-settings_inamedparam.golden.yml
│   │   │   │   │       ├── linters-settings_inamedparam.yml
│   │   │   │   │       ├── linters-settings_interfacebloat.golden.yml
│   │   │   │   │       ├── linters-settings_interfacebloat.yml
│   │   │   │   │       ├── linters-settings_ireturn.golden.yml
│   │   │   │   │       ├── linters-settings_ireturn.yml
│   │   │   │   │       ├── linters-settings_lll.golden.yml
│   │   │   │   │       ├── linters-settings_lll.yml
│   │   │   │   │       ├── linters-settings_loggercheck.golden.yml
│   │   │   │   │       ├── linters-settings_loggercheck.yml
│   │   │   │   │       ├── linters-settings_maintidx.golden.yml
│   │   │   │   │       ├── linters-settings_maintidx.yml
│   │   │   │   │       ├── linters-settings_makezero.golden.yml
│   │   │   │   │       ├── linters-settings_makezero.yml
│   │   │   │   │       ├── linters-settings_misspell.golden.yml
│   │   │   │   │       ├── linters-settings_misspell.yml
│   │   │   │   │       ├── linters-settings_mnd.golden.yml
│   │   │   │   │       ├── linters-settings_mnd.yml
│   │   │   │   │       ├── linters-settings_musttag.golden.yml
│   │   │   │   │       ├── linters-settings_musttag.yml
│   │   │   │   │       ├── linters-settings_nakedret.golden.yml
│   │   │   │   │       ├── linters-settings_nakedret.yml
│   │   │   │   │       ├── linters-settings_nakedret_zero.golden.yml
│   │   │   │   │       ├── linters-settings_nakedret_zero.yml
│   │   │   │   │       ├── linters-settings_nestif.golden.yml
│   │   │   │   │       ├── linters-settings_nestif.yml
│   │   │   │   │       ├── linters-settings_nilnil.golden.yml
│   │   │   │   │       ├── linters-settings_nilnil.yml
│   │   │   │   │       ├── linters-settings_nlreturn.golden.yml
│   │   │   │   │       ├── linters-settings_nlreturn.yml
│   │   │   │   │       ├── linters-settings_nolintlint.golden.yml
│   │   │   │   │       ├── linters-settings_nolintlint.yml
│   │   │   │   │       ├── linters-settings_nonamedreturns.golden.yml
│   │   │   │   │       ├── linters-settings_nonamedreturns.yml
│   │   │   │   │       ├── linters-settings_paralleltest.golden.yml
│   │   │   │   │       ├── linters-settings_paralleltest.yml
│   │   │   │   │       ├── linters-settings_perfsprint.golden.yml
│   │   │   │   │       ├── linters-settings_perfsprint.yml
│   │   │   │   │       ├── linters-settings_prealloc.golden.yml
│   │   │   │   │       ├── linters-settings_prealloc.yml
│   │   │   │   │       ├── linters-settings_predeclared.golden.yml
│   │   │   │   │       ├── linters-settings_predeclared.yml
│   │   │   │   │       ├── linters-settings_promlinter.golden.yml
│   │   │   │   │       ├── linters-settings_promlinter.yml
│   │   │   │   │       ├── linters-settings_protogetter.golden.yml
│   │   │   │   │       ├── linters-settings_protogetter.yml
│   │   │   │   │       ├── linters-settings_reassign.golden.yml
│   │   │   │   │       ├── linters-settings_reassign.yml
│   │   │   │   │       ├── linters-settings_recvcheck.golden.yml
│   │   │   │   │       ├── linters-settings_recvcheck.yml
│   │   │   │   │       ├── linters-settings_revive.golden.yml
│   │   │   │   │       ├── linters-settings_revive.yml
│   │   │   │   │       ├── linters-settings_rowserrcheck.golden.yml
│   │   │   │   │       ├── linters-settings_rowserrcheck.yml
│   │   │   │   │       ├── linters-settings_sloglint.golden.yml
│   │   │   │   │       ├── linters-settings_sloglint.yml
│   │   │   │   │       ├── linters-settings_spancheck.golden.yml
│   │   │   │   │       ├── linters-settings_spancheck.yml
│   │   │   │   │       ├── linters-settings_staticcheck.golden.yml
│   │   │   │   │       ├── linters-settings_staticcheck.yml
│   │   │   │   │       ├── linters-settings_staticcheck_merge.golden.yml
│   │   │   │   │       ├── linters-settings_staticcheck_merge.yml
│   │   │   │   │       ├── linters-settings_stylecheck.golden.yml
│   │   │   │   │       ├── linters-settings_stylecheck.yml
│   │   │   │   │       ├── linters-settings_tagalign.golden.yml
│   │   │   │   │       ├── linters-settings_tagalign.yml
│   │   │   │   │       ├── linters-settings_tagliatelle.golden.yml
│   │   │   │   │       ├── linters-settings_tagliatelle.yml
│   │   │   │   │       ├── linters-settings_testifylint.golden.yml
│   │   │   │   │       ├── linters-settings_testifylint.yml
│   │   │   │   │       ├── linters-settings_testpackage.golden.yml
│   │   │   │   │       ├── linters-settings_testpackage.yml
│   │   │   │   │       ├── linters-settings_thelper.golden.yml
│   │   │   │   │       ├── linters-settings_thelper.yml
│   │   │   │   │       ├── linters-settings_unconvert.golden.yml
│   │   │   │   │       ├── linters-settings_unconvert.yml
│   │   │   │   │       ├── linters-settings_unparam.golden.yml
│   │   │   │   │       ├── linters-settings_unparam.yml
│   │   │   │   │       ├── linters-settings_unused.golden.yml
│   │   │   │   │       ├── linters-settings_unused.yml
│   │   │   │   │       ├── linters-settings_usestdlibvars.golden.yml
│   │   │   │   │       ├── linters-settings_usestdlibvars.yml
│   │   │   │   │       ├── linters-settings_usetesting.golden.yml
│   │   │   │   │       ├── linters-settings_usetesting.yml
│   │   │   │   │       ├── linters-settings_varnamelen.golden.yml
│   │   │   │   │       ├── linters-settings_varnamelen.yml
│   │   │   │   │       ├── linters-settings_whitespace.golden.yml
│   │   │   │   │       ├── linters-settings_whitespace.yml
│   │   │   │   │       ├── linters-settings_wrapcheck.golden.yml
│   │   │   │   │       ├── linters-settings_wrapcheck.yml
│   │   │   │   │       ├── linters-settings_wsl.golden.yml
│   │   │   │   │       ├── linters-settings_wsl.yml
│   │   │   │   │       ├── linters_01.golden.yml
│   │   │   │   │       ├── linters_01.yml
│   │   │   │   │       ├── linters_02.golden.yml
│   │   │   │   │       ├── linters_02.yml
│   │   │   │   │       ├── linters_03.golden.yml
│   │   │   │   │       ├── linters_03.yml
│   │   │   │   │       ├── linters_04.golden.yml
│   │   │   │   │       ├── linters_04.yml
│   │   │   │   │       ├── linters_05.golden.yml
│   │   │   │   │       ├── linters_05.yml
│   │   │   │   │       ├── linters_06.golden.yml
│   │   │   │   │       ├── linters_06.yml
│   │   │   │   │       ├── linters_07.golden.yml
│   │   │   │   │       ├── linters_07.yml
│   │   │   │   │       ├── linters_08.golden.yml
│   │   │   │   │       ├── linters_08.yml
│   │   │   │   │       ├── linters_09.golden.yml
│   │   │   │   │       ├── linters_09.yml
│   │   │   │   │       ├── linters_10.golden.yml
│   │   │   │   │       ├── linters_10.yml
│   │   │   │   │       ├── linters_11.golden.yml
│   │   │   │   │       ├── linters_11.yml
│   │   │   │   │       ├── linters_12.golden.yml
│   │   │   │   │       ├── linters_12.yml
│   │   │   │   │       ├── linters_13_a.golden.yml
│   │   │   │   │       ├── linters_13_a.yml
│   │   │   │   │       ├── linters_13_b.golden.yml
│   │   │   │   │       ├── linters_13_b.yml
│   │   │   │   │       ├── linters_13_c.golden.yml
│   │   │   │   │       ├── linters_13_c.yml
│   │   │   │   │       ├── linters_13_d.golden.yml
│   │   │   │   │       ├── linters_13_d.yml
│   │   │   │   │       ├── output_01_a.golden.yml
│   │   │   │   │       ├── output_01_a.yml
│   │   │   │   │       ├── output_01_b.golden.yml
│   │   │   │   │       ├── output_01_b.yml
│   │   │   │   │       ├── output_01_c.golden.yml
│   │   │   │   │       ├── output_01_c.yml
│   │   │   │   │       ├── output_01_d.golden.yml
│   │   │   │   │       ├── output_01_d.yml
│   │   │   │   │       ├── output_01_f.golden.yml
│   │   │   │   │       ├── output_01_f.yml
│   │   │   │   │       ├── output_01_g.golden.yml
│   │   │   │   │       ├── output_01_g.yml
│   │   │   │   │       ├── output_01_h.golden.yml
│   │   │   │   │       ├── output_01_h.yml
│   │   │   │   │       ├── output_01_i.golden.yml
│   │   │   │   │       ├── output_01_i.yml
│   │   │   │   │       ├── output_01_j.golden.yml
│   │   │   │   │       ├── output_01_j.yml
│   │   │   │   │       ├── output_01_k.golden.yml
│   │   │   │   │       ├── output_01_k.yml
│   │   │   │   │       ├── output_01_l.golden.yml
│   │   │   │   │       ├── output_01_l.yml
│   │   │   │   │       ├── output_01_m.golden.yml
│   │   │   │   │       ├── output_01_m.yml
│   │   │   │   │       ├── output_01_o.golden.yml
│   │   │   │   │       ├── output_01_o.yml
│   │   │   │   │       ├── output_01_p.golden.yml
│   │   │   │   │       ├── output_01_p.yml
│   │   │   │   │       ├── output_02.golden.yml
│   │   │   │   │       ├── output_02.yml
│   │   │   │   │       ├── output_03.golden.yml
│   │   │   │   │       ├── output_03.yml
│   │   │   │   │       ├── output_04.golden.yml
│   │   │   │   │       ├── output_04.yml
│   │   │   │   │       ├── run_01.golden.yml
│   │   │   │   │       ├── run_01.yml
│   │   │   │   │       ├── run_02_a.golden.yml
│   │   │   │   │       ├── run_02_a.yml
│   │   │   │   │       ├── run_02_b.golden.yml
│   │   │   │   │       ├── run_02_b.yml
│   │   │   │   │       ├── run_03_a.golden.yml
│   │   │   │   │       ├── run_03_a.yml
│   │   │   │   │       ├── run_03_b.golden.yml
│   │   │   │   │       ├── run_03_b.yml
│   │   │   │   │       ├── run_04_a.golden.yml
│   │   │   │   │       ├── run_04_a.yml
│   │   │   │   │       ├── run_04_b.golden.yml
│   │   │   │   │       ├── run_04_b.yml
│   │   │   │   │       ├── run_05.golden.yml
│   │   │   │   │       ├── run_05.yml
│   │   │   │   │       ├── run_06.golden.yml
│   │   │   │   │       ├── run_06.yml
│   │   │   │   │       ├── run_07.golden.yml
│   │   │   │   │       ├── run_07.yml
│   │   │   │   │       ├── run_08.golden.yml
│   │   │   │   │       ├── run_08.yml
│   │   │   │   │       ├── run_09_a.golden.yml
│   │   │   │   │       ├── run_09_a.yml
│   │   │   │   │       ├── run_09_b.golden.yml
│   │   │   │   │       ├── run_09_b.yml
│   │   │   │   │       ├── run_10.golden.yml
│   │   │   │   │       ├── run_10.yml
│   │   │   │   │       ├── severity_01.golden.yml
│   │   │   │   │       ├── severity_01.yml
│   │   │   │   │       ├── severity_02.golden.yml
│   │   │   │   │       ├── severity_02.yml
│   │   │   │   │       ├── severity_03.golden.yml
│   │   │   │   │       ├── severity_03.yml
│   │   │   │   │       ├── unknown-fields.golden.yml
│   │   │   │   │       └── unknown-fields.yml
│   │   │   │   ├── versionone/
│   │   │   │   │   ├── base_rule.go
│   │   │   │   │   ├── config.go
│   │   │   │   │   ├── doc.go
│   │   │   │   │   ├── issues.go
│   │   │   │   │   ├── linters.go
│   │   │   │   │   ├── linters_settings.go
│   │   │   │   │   ├── output.go
│   │   │   │   │   ├── run.go
│   │   │   │   │   └── severity.go
│   │   │   │   └── versiontwo/
│   │   │   │       ├── base_rule.go
│   │   │   │       ├── config.go
│   │   │   │       ├── formatters.go
│   │   │   │       ├── formatters_settings.go
│   │   │   │       ├── issues.go
│   │   │   │       ├── linters.go
│   │   │   │       ├── linters_exclusions.go
│   │   │   │       ├── linters_settings.go
│   │   │   │       ├── output.go
│   │   │   │       ├── output_formats.go
│   │   │   │       ├── run.go
│   │   │   │       └── severity.go
│   │   │   ├── testdata/
│   │   │   │   └── imports.go
│   │   │   └── vibra.go
│   │   ├── linters.go
│   │   ├── migrate.go
│   │   ├── root.go
│   │   ├── run.go
│   │   └── version.go
│   ├── config/
│   │   ├── base_loader.go
│   │   ├── base_rule.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── formatters.go
│   │   ├── formatters_settings.go
│   │   ├── issues.go
│   │   ├── linters.go
│   │   ├── linters_exclusions.go
│   │   ├── linters_exclusions_test.go
│   │   ├── linters_settings.go
│   │   ├── linters_settings_test.go
│   │   ├── loader.go
│   │   ├── output.go
│   │   ├── output_formats.go
│   │   ├── output_test.go
│   │   ├── placeholders.go
│   │   ├── run.go
│   │   ├── run_test.go
│   │   ├── severity.go
│   │   └── severity_test.go
│   ├── exitcodes/
│   │   └── exitcodes.go
│   ├── fsutils/
│   │   ├── basepath.go
│   │   ├── filecache.go
│   │   ├── fsutils.go
│   │   ├── fsutils_test.go
│   │   ├── fsutils_unix.go
│   │   ├── fsutils_windows.go
│   │   ├── linecache.go
│   │   ├── path_unix.go
│   │   └── path_windows.go
│   ├── goanalysis/
│   │   ├── issue.go
│   │   ├── linter.go
│   │   ├── load/
│   │   │   └── guard.go
│   │   ├── metalinter.go
│   │   ├── pkgerrors/
│   │   │   ├── errors.go
│   │   │   ├── extract.go
│   │   │   ├── extract_test.go
│   │   │   ├── parse.go
│   │   │   └── parse_test.go
│   │   ├── position.go
│   │   ├── runner.go
│   │   ├── runner_action.go
│   │   ├── runner_action_cache.go
│   │   ├── runner_action_test.go
│   │   ├── runner_checker.go
│   │   ├── runner_loadingpackage.go
│   │   ├── runners.go
│   │   └── runners_cache.go
│   ├── goformat/
│   │   ├── runner.go
│   │   └── runner_test.go
│   ├── goformatters/
│   │   ├── analyzer.go
│   │   ├── formatters.go
│   │   ├── gci/
│   │   │   ├── gci.go
│   │   │   └── internal/
│   │   │       ├── LICENSE
│   │   │       ├── config/
│   │   │       │   └── config.go
│   │   │       ├── readme.md
│   │   │       └── section/
│   │   │           ├── parser.go
│   │   │           ├── section.go
│   │   │           ├── standard.go
│   │   │           └── standard_list.go
│   │   ├── gofmt/
│   │   │   └── gofmt.go
│   │   ├── gofumpt/
│   │   │   └── gofumpt.go
│   │   ├── goimports/
│   │   │   └── goimports.go
│   │   ├── golines/
│   │   │   └── golines.go
│   │   ├── internal/
│   │   │   ├── commons.go
│   │   │   ├── diff.go
│   │   │   ├── diff_test.go
│   │   │   └── testdata/
│   │   │       ├── add_only.diff
│   │   │       ├── add_only_different_lines.diff
│   │   │       ├── add_only_in_all_diff.diff
│   │   │       ├── add_only_multiple_lines.diff
│   │   │       ├── add_only_on_first_line.diff
│   │   │       ├── add_only_on_first_line_with_shared_original_line.diff
│   │   │       ├── delete_last_line.diff
│   │   │       ├── delete_only_first_lines.diff
│   │   │       ├── gofmt_diff.diff
│   │   │       ├── replace_line.diff
│   │   │       └── replace_line_after_first_line_adding.diff
│   │   ├── meta_formatter.go
│   │   └── swaggo/
│   │       └── swaggo.go
│   ├── golinters/
│   │   ├── arangolint/
│   │   │   ├── arangolint.go
│   │   │   ├── arangolint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── arangolint.go
│   │   │       ├── arangolint_cgo.go
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── asasalint/
│   │   │   ├── asasalint.go
│   │   │   ├── asasalint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── asasalint.go
│   │   │       └── asasalint_cgo.go
│   │   ├── asciicheck/
│   │   │   ├── asciicheck.go
│   │   │   ├── asciicheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── asciicheck.go
│   │   │       └── asciicheck_cgo.go
│   │   ├── bidichk/
│   │   │   ├── bidichk.go
│   │   │   ├── bidichk_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── bidichk.go
│   │   │       └── bidichk_cgo.go
│   │   ├── bodyclose/
│   │   │   ├── bodyclose.go
│   │   │   ├── bodyclose_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── bodyclose.go
│   │   │       └── bodyclose_cgo.go
│   │   ├── canonicalheader/
│   │   │   ├── canonicalheader.go
│   │   │   ├── canonicalheader_test.go
│   │   │   └── testdata/
│   │   │       ├── canonicalheader.go
│   │   │       ├── canonicalheader_cgo.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── canonicalheader.go
│   │   │           └── out/
│   │   │               └── canonicalheader.go
│   │   ├── containedctx/
│   │   │   ├── containedctx.go
│   │   │   ├── containedctx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── containedctx.go
│   │   │       └── containedctx_cgo.go
│   │   ├── contextcheck/
│   │   │   ├── contextcheck.go
│   │   │   ├── contextcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── contextcheck.go
│   │   │       └── contextcheck_cgo.go
│   │   ├── copyloopvar/
│   │   │   ├── copyloopvar.go
│   │   │   ├── copyloopvar_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── copyloopvar.go
│   │   │       ├── copyloopvar.yml
│   │   │       ├── copyloopvar_cgo.go
│   │   │       ├── copyloopvar_custom.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── copyloopvar.go
│   │   │           └── out/
│   │   │               └── copyloopvar.go
│   │   ├── cyclop/
│   │   │   ├── cyclop.go
│   │   │   ├── cyclop_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── cyclop.go
│   │   │       ├── cyclop.yml
│   │   │       └── cyclop_cgo.go
│   │   ├── decorder/
│   │   │   ├── decorder.go
│   │   │   ├── decorder_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── decorder.go
│   │   │       ├── decorder_cgo.go
│   │   │       ├── decorder_custom.go
│   │   │       └── decorder_custom.yml
│   │   ├── depguard/
│   │   │   ├── depguard.go
│   │   │   ├── depguard_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── depguard.go
│   │   │       ├── depguard.yml
│   │   │       ├── depguard_additional_guards.go
│   │   │       ├── depguard_additional_guards.yml
│   │   │       ├── depguard_cgo.go
│   │   │       ├── depguard_ignore_file_rules.go
│   │   │       └── depguard_ignore_file_rules.yml
│   │   ├── dogsled/
│   │   │   ├── dogsled.go
│   │   │   ├── dogsled_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dogsled.go
│   │   │       └── dogsled_cgo.go
│   │   ├── dupl/
│   │   │   ├── dupl.go
│   │   │   ├── dupl_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dupl.go
│   │   │       ├── dupl.yml
│   │   │       └── dupl_cgo.go
│   │   ├── dupword/
│   │   │   ├── dupword.go
│   │   │   ├── dupword_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── dupword.go
│   │   │       ├── dupword_cgo.go
│   │   │       ├── dupword_comments_only.go
│   │   │       ├── dupword_comments_only.yml
│   │   │       ├── dupword_ignore.go
│   │   │       ├── dupword_ignore.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── dupword.go
│   │   │           └── out/
│   │   │               └── dupword.go
│   │   ├── durationcheck/
│   │   │   ├── durationcheck.go
│   │   │   ├── durationcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── durationcheck.go
│   │   │       └── durationcheck_cgo.go
│   │   ├── embeddedstructfieldcheck/
│   │   │   ├── embeddedstructfieldcheck.go
│   │   │   ├── embeddedstructfieldcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── embeddedstructfieldcheck_comments.go
│   │   │       ├── embeddedstructfieldcheck_mutex.go
│   │   │       ├── embeddedstructfieldcheck_mutex.yml
│   │   │       ├── embeddedstructfieldcheck_simple.go
│   │   │       ├── embeddedstructfieldcheck_special_cases.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   ├── comments.go
│   │   │           │   └── simple.go
│   │   │           └── out/
│   │   │               ├── comments.go
│   │   │               └── simple.go
│   │   ├── err113/
│   │   │   ├── err113.go
│   │   │   ├── err113_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── err113.go
│   │   │       ├── err113_cgo.go
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── err113.go
│   │   │           └── out/
│   │   │               └── err113.go
│   │   ├── errcheck/
│   │   │   ├── errcheck.go
│   │   │   ├── errcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errcheck.go
│   │   │       ├── errcheck_cgo.go
│   │   │       ├── errcheck_exclude_functions.go
│   │   │       ├── errcheck_exclude_functions.yml
│   │   │       ├── errcheck_ignore_default.go
│   │   │       ├── errcheck_ignore_default.yml
│   │   │       ├── errcheck_type_assertions.go
│   │   │       └── errcheck_type_assertions.yml
│   │   ├── errchkjson/
│   │   │   ├── errchkjson.go
│   │   │   ├── errchkjson_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errchkjson.go
│   │   │       ├── errchkjson.yml
│   │   │       ├── errchkjson_cgo.go
│   │   │       ├── errchkjson_check_error_free_encoding.go
│   │   │       ├── errchkjson_check_error_free_encoding.yml
│   │   │       ├── errchkjson_no_exported.go
│   │   │       └── errchkjson_no_exported.yml
│   │   ├── errname/
│   │   │   ├── errname.go
│   │   │   ├── errname_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errname.go
│   │   │       └── errname_cgo.go
│   │   ├── errorlint/
│   │   │   ├── errorlint.go
│   │   │   ├── errorlint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── errorlint.go
│   │   │       ├── errorlint_asserts.go
│   │   │       ├── errorlint_asserts.yml
│   │   │       ├── errorlint_cgo.go
│   │   │       ├── errorlint_comparison.go
│   │   │       ├── errorlint_comparison.yml
│   │   │       ├── errorlint_errorf.go
│   │   │       ├── errorlint_errorf.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── errorlint.go
│   │   │           └── out/
│   │   │               └── errorlint.go
│   │   ├── exhaustive/
│   │   │   ├── exhaustive.go
│   │   │   ├── exhaustive_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exhaustive.go
│   │   │       ├── exhaustive_cgo.go
│   │   │       ├── exhaustive_default.go
│   │   │       ├── exhaustive_default.yml
│   │   │       ├── exhaustive_generated.go
│   │   │       ├── exhaustive_ignore_enum_members.go
│   │   │       └── exhaustive_ignore_enum_members.yml
│   │   ├── exhaustruct/
│   │   │   ├── exhaustruct.go
│   │   │   ├── exhaustruct_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exhaustruct.go
│   │   │       ├── exhaustruct_cgo.go
│   │   │       ├── exhaustruct_custom.go
│   │   │       └── exhaustruct_custom.yml
│   │   ├── exptostd/
│   │   │   ├── exptostd.go
│   │   │   ├── exptostd_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── exptostd.go
│   │   │       ├── exptostd_cgo.go
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── exptostd.go
│   │   │       │   └── out/
│   │   │       │       └── exptostd.go
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── fatcontext/
│   │   │   ├── fatcontext.go
│   │   │   ├── fatcontext_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fatcontext.go
│   │   │       ├── fatcontext_cgo.go
│   │   │       ├── fatcontext_structpointer.go
│   │   │       ├── fatcontext_structpointer.yml
│   │   │       └── fix/
│   │   │           ├── in/
│   │   │           │   └── fatcontext.go
│   │   │           └── out/
│   │   │               └── fatcontext.go
│   │   ├── forbidigo/
│   │   │   ├── forbidigo.go
│   │   │   ├── forbidigo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── forbidigo.yml
│   │   │       ├── forbidigo_cgo.go
│   │   │       ├── forbidigo_example.go
│   │   │       ├── forbidigo_example_test.go
│   │   │       ├── forbidigo_include_godoc_examples.yml
│   │   │       ├── forbidigo_include_godoc_examples_test.go
│   │   │       ├── forbidigo_struct.yml
│   │   │       └── forbidigo_struct_config.go
│   │   ├── forcetypeassert/
│   │   │   ├── forcetypeassert.go
│   │   │   ├── forcetypeassert_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── forcetypeassert.go
│   │   │       └── forcetypeassert_cgo.go
│   │   ├── funcorder/
│   │   │   ├── funcorder.go
│   │   │   ├── funcorder_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── funcorder.go
│   │   │       ├── funcorder_disable_constructor.go
│   │   │       ├── funcorder_disable_constructor.yml
│   │   │       ├── funcorder_struct_method.go
│   │   │       └── funcorder_struct_method.yml
│   │   ├── funlen/
│   │   │   ├── funlen.go
│   │   │   ├── funlen_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── funlen.go
│   │   │       ├── funlen_cgo.go
│   │   │       ├── funlen_custom.go
│   │   │       ├── funlen_custom.yml
│   │   │       ├── funlen_ignore_comments.go
│   │   │       └── funlen_ignore_comments.yml
│   │   ├── gci/
│   │   │   ├── gci.go
│   │   │   ├── gci_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── gci.go
│   │   │       │   └── out/
│   │   │       │       └── gci.go
│   │   │       ├── gci.go
│   │   │       ├── gci.yml
│   │   │       ├── gci_cgo.go
│   │   │       ├── gci_go124.go
│   │   │       └── gci_go124.yml
│   │   ├── ginkgolinter/
│   │   │   ├── ginkgolinter.go
│   │   │   ├── ginkgolinter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ginkgolinter.go
│   │   │       ├── ginkgolinter_allow_havelen0.yml
│   │   │       ├── ginkgolinter_cgo.go
│   │   │       ├── ginkgolinter_default.yml
│   │   │       ├── ginkgolinter_havelen0.go
│   │   │       ├── ginkgolinter_suppress_async.go
│   │   │       ├── ginkgolinter_suppress_async.yml
│   │   │       ├── ginkgolinter_suppress_compare.go
│   │   │       ├── ginkgolinter_suppress_compare.yml
│   │   │       ├── ginkgolinter_suppress_err.go
│   │   │       ├── ginkgolinter_suppress_err.yml
│   │   │       ├── ginkgolinter_suppress_focused_containers.go
│   │   │       ├── ginkgolinter_suppress_focused_containers.yml
│   │   │       ├── ginkgolinter_suppress_len.go
│   │   │       ├── ginkgolinter_suppress_len.yml
│   │   │       ├── ginkgolinter_suppress_nil.go
│   │   │       ├── ginkgolinter_suppress_nil.yml
│   │   │       ├── go.mod
│   │   │       └── go.sum
│   │   ├── gocheckcompilerdirectives/
│   │   │   ├── gocheckcompilerdirectives.go
│   │   │   ├── gocheckcompilerdirectives_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocheckcompilerdirectives.go
│   │   │       └── gocheckcompilerdirectives_cgo.go
│   │   ├── gochecknoglobals/
│   │   │   ├── gochecknoglobals.go
│   │   │   ├── gochecknoglobals_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecknoglobals.go
│   │   │       └── gochecknoglobals_cgo.go
│   │   ├── gochecknoinits/
│   │   │   ├── gochecknoinits.go
│   │   │   ├── gochecknoinits_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecknoinits.go
│   │   │       └── gochecknoinits_cgo.go
│   │   ├── gochecksumtype/
│   │   │   ├── gochecksumtype.go
│   │   │   ├── gochecksumtype_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gochecksumtype.go
│   │   │       ├── gochecksumtype_cgo.go
│   │   │       ├── gochecksumtype_custom.go
│   │   │       └── gochecksumtype_custom.yml
│   │   ├── gocognit/
│   │   │   ├── gocognit.go
│   │   │   ├── gocognit_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocognit.go
│   │   │       ├── gocognit.yml
│   │   │       └── gocognit_cgo.go
│   │   ├── goconst/
│   │   │   ├── goconst.go
│   │   │   ├── goconst_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── goconst.go
│   │   │       ├── goconst_calls_enabled.go
│   │   │       ├── goconst_calls_enabled.yml
│   │   │       ├── goconst_cgo.go
│   │   │       ├── goconst_dont_ignore_test.go
│   │   │       ├── goconst_eval_and_find_duplicates.go
│   │   │       ├── goconst_eval_and_find_duplicates.yml
│   │   │       ├── goconst_eval_const_expressions.go
│   │   │       ├── goconst_eval_const_expressions.yml
│   │   │       ├── goconst_find_duplicates.go
│   │   │       └── goconst_find_duplicates.yml
│   │   ├── gocritic/
│   │   │   ├── gocritic.go
│   │   │   ├── gocritic_integration_test.go
│   │   │   ├── gocritic_settings.go
│   │   │   ├── gocritic_settings_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── gocritic.go
│   │   │       │   └── out/
│   │   │       │       └── gocritic.go
│   │   │       ├── gocritic-fix.yml
│   │   │       ├── gocritic.go
│   │   │       ├── gocritic.yml
│   │   │       ├── gocritic_cgo.go
│   │   │       ├── gocritic_importShadow.go
│   │   │       ├── gocritic_inportShadow.yml
│   │   │       └── ruleguard/
│   │   │           ├── README.md
│   │   │           ├── preferWriteString.go
│   │   │           ├── rangeExprCopy.go
│   │   │           └── stringsSimplify.go
│   │   ├── gocyclo/
│   │   │   ├── gocyclo.go
│   │   │   ├── gocyclo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gocyclo.go
│   │   │       ├── gocyclo.yml
│   │   │       └── gocyclo_cgo.go
│   │   ├── godoclint/
│   │   │   ├── godoclint.go
│   │   │   ├── godoclint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── godoclint.yml
│   │   │       ├── godoclint_default_fail.go
│   │   │       ├── godoclint_default_pass.go
│   │   │       ├── godoclint_full_fail.go
│   │   │       ├── godoclint_full_pass.go
│   │   │       └── godoclint_full_pass_test.go
│   │   ├── godot/
│   │   │   ├── godot.go
│   │   │   ├── godot_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── godot.go
│   │   │       │   └── out/
│   │   │       │       └── godot.go
│   │   │       ├── godot.go
│   │   │       └── godot_cgo.go
│   │   ├── godox/
│   │   │   ├── godox.go
│   │   │   ├── godox_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── godox.go
│   │   │       ├── godox.yml
│   │   │       └── godox_cgo.go
│   │   ├── gofmt/
│   │   │   ├── gofmt.go
│   │   │   ├── gofmt_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gofmt.go
│   │   │       │   │   └── gofmt_rewrite_rules.go
│   │   │       │   └── out/
│   │   │       │       ├── gofmt.go
│   │   │       │       └── gofmt_rewrite_rules.go
│   │   │       ├── gofmt.go
│   │   │       ├── gofmt.yml
│   │   │       ├── gofmt_cgo.go
│   │   │       ├── gofmt_no_simplify.go
│   │   │       ├── gofmt_no_simplify.yml
│   │   │       ├── gofmt_rewrite_rules.go
│   │   │       ├── gofmt_rewrite_rules.yml
│   │   │       └── gofmt_too_many_empty_lines.go
│   │   ├── gofumpt/
│   │   │   ├── gofumpt.go
│   │   │   ├── gofumpt_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gofumpt.go
│   │   │       │   │   └── gofumpt_cgo.go
│   │   │       │   └── out/
│   │   │       │       ├── gofumpt.go
│   │   │       │       └── gofumpt_cgo.go
│   │   │       ├── gofumpt-fix.yml
│   │   │       ├── gofumpt.go
│   │   │       ├── gofumpt.yml
│   │   │       ├── gofumpt_cgo.go
│   │   │       ├── gofumpt_too_many_empty_lines.go
│   │   │       ├── gofumpt_with_extra.go
│   │   │       └── gofumpt_with_extra.yml
│   │   ├── goheader/
│   │   │   ├── goheader.go
│   │   │   ├── goheader_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── goheader_1.go
│   │   │       │   │   ├── goheader_2.go
│   │   │       │   │   ├── goheader_3.go
│   │   │       │   │   └── goheader_4.go
│   │   │       │   └── out/
│   │   │       │       ├── goheader_1.go
│   │   │       │       ├── goheader_2.go
│   │   │       │       ├── goheader_3.go
│   │   │       │       └── goheader_4.go
│   │   │       ├── goheader-fix.yml
│   │   │       ├── goheader.yml
│   │   │       ├── goheader_bad.go
│   │   │       ├── goheader_cgo.go
│   │   │       └── goheader_good.go
│   │   ├── goimports/
│   │   │   ├── goimports.go
│   │   │   ├── goimports_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── goimports.go
│   │   │       │   │   └── goimports_cgo.go
│   │   │       │   └── out/
│   │   │       │       ├── goimports.go
│   │   │       │       └── goimports_cgo.go
│   │   │       ├── goimports.go
│   │   │       ├── goimports.yml
│   │   │       ├── goimports_cgo.go
│   │   │       ├── goimports_local.go
│   │   │       └── goimports_local.yml
│   │   ├── golines/
│   │   │   ├── golines.go
│   │   │   ├── golines_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── golines-custom.go
│   │   │       │   │   └── golines.go
│   │   │       │   └── out/
│   │   │       │       ├── golines-custom.go
│   │   │       │       └── golines.go
│   │   │       ├── golines-custom.yml
│   │   │       ├── golines.go
│   │   │       └── golines.yml
│   │   ├── gomoddirectives/
│   │   │   └── gomoddirectives.go
│   │   ├── gomodguard/
│   │   │   ├── gomodguard.go
│   │   │   ├── gomodguard_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── gomodguard.go
│   │   │       ├── gomodguard.yml
│   │   │       └── gomodguard_cgo.go
│   │   ├── goprintffuncname/
│   │   │   ├── goprintffuncname.go
│   │   │   ├── goprintffuncname_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── goprintffuncname.go
│   │   │       └── goprintffuncname_cgo.go
│   │   ├── gosec/
│   │   │   ├── gosec.go
│   │   │   ├── gosec_integration_test.go
│   │   │   ├── gosec_test.go
│   │   │   └── testdata/
│   │   │       ├── gosec.go
│   │   │       ├── gosec.yml
│   │   │       ├── gosec_cgo.go
│   │   │       ├── gosec_global_option.go
│   │   │       ├── gosec_global_option.yml
│   │   │       ├── gosec_nosec.go
│   │   │       ├── gosec_nosec.yml
│   │   │       ├── gosec_rules_config.go
│   │   │       ├── gosec_severity_confidence.go
│   │   │       └── gosec_severity_confidence.yml
│   │   ├── gosmopolitan/
│   │   │   ├── gosmopolitan.go
│   │   │   ├── gosmopolitan_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── gosmopolitan.go
│   │   │       ├── gosmopolitan_allow_time_local.go
│   │   │       ├── gosmopolitan_allow_time_local.yml
│   │   │       ├── gosmopolitan_cgo.go
│   │   │       ├── gosmopolitan_dont_ignore_test.go
│   │   │       ├── gosmopolitan_escape_hatches.go
│   │   │       ├── gosmopolitan_escape_hatches.yml
│   │   │       ├── gosmopolitan_scripts.go
│   │   │       └── gosmopolitan_scripts.yml
│   │   ├── govet/
│   │   │   ├── govet.go
│   │   │   ├── govet_integration_test.go
│   │   │   ├── govet_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── govet.go
│   │   │       │   └── out/
│   │   │       │       └── govet.go
│   │   │       ├── govet.go
│   │   │       ├── govet.yml
│   │   │       ├── govet_cgo.go
│   │   │       ├── govet_custom_formatter.go
│   │   │       ├── govet_fieldalignment.go
│   │   │       ├── govet_fieldalignment.yml
│   │   │       ├── govet_fix.yml
│   │   │       ├── govet_ifaceassert.go
│   │   │       └── govet_ifaceassert.yml
│   │   ├── grouper/
│   │   │   ├── grouper.go
│   │   │   ├── grouper_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── grouper.go
│   │   │       ├── grouper.yml
│   │   │       └── grouper_cgo.go
│   │   ├── iface/
│   │   │   ├── iface.go
│   │   │   ├── iface_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── iface.go
│   │   │       │   └── out/
│   │   │       │       └── iface.go
│   │   │       ├── iface_all.go
│   │   │       ├── iface_all.yml
│   │   │       ├── iface_cgo.go
│   │   │       ├── iface_default.go
│   │   │       ├── iface_fix.yml
│   │   │       ├── iface_identical.go
│   │   │       ├── iface_identical.yml
│   │   │       ├── iface_opaque.go
│   │   │       ├── iface_opaque.yml
│   │   │       ├── iface_unexported.go
│   │   │       ├── iface_unexported.yml
│   │   │       ├── iface_unused.go
│   │   │       └── iface_unused.yml
│   │   ├── importas/
│   │   │   ├── importas.go
│   │   │   ├── importas_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── importas.go
│   │   │       │   └── out/
│   │   │       │       └── importas.go
│   │   │       ├── importas.go
│   │   │       ├── importas.yml
│   │   │       ├── importas_cgo.go
│   │   │       ├── importas_several_empty_aliases.go
│   │   │       ├── importas_several_empty_aliases.yml
│   │   │       ├── importas_strict.go
│   │   │       └── importas_strict.yml
│   │   ├── inamedparam/
│   │   │   ├── inamedparam.go
│   │   │   ├── inamedparam_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── inamedparam.go
│   │   │       ├── inamedparam_cgo.go
│   │   │       ├── inamedparam_skip_single_param.go
│   │   │       └── inamedparam_skip_single_param.yml
│   │   ├── ineffassign/
│   │   │   ├── ineffassign.go
│   │   │   ├── ineffassign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ineffassign.go
│   │   │       └── ineffassign_cgo.go
│   │   ├── interfacebloat/
│   │   │   ├── interfacebloat.go
│   │   │   ├── interfacebloat_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── interfacebloat.go
│   │   │       └── interfacebloat_cgo.go
│   │   ├── internal/
│   │   │   ├── commons.go
│   │   │   └── util.go
│   │   ├── intrange/
│   │   │   ├── intrange.go
│   │   │   ├── intrange_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── intrange.go
│   │   │       │   └── out/
│   │   │       │       └── intrange.go
│   │   │       ├── intrange.go
│   │   │       └── intrange_cgo.go
│   │   ├── iotamixing/
│   │   │   ├── iotamixing.go
│   │   │   ├── iotamixing_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── iotamixing.go
│   │   │       ├── iotamixing_report-individual.go
│   │   │       └── iotamixing_report-individual.yml
│   │   ├── ireturn/
│   │   │   ├── ireturn.go
│   │   │   ├── ireturn_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── ireturn.go
│   │   │       ├── ireturn_allow.go
│   │   │       ├── ireturn_allow.yml
│   │   │       ├── ireturn_cgo.go
│   │   │       ├── ireturn_reject_generics.go
│   │   │       ├── ireturn_reject_generics.yml
│   │   │       ├── ireturn_reject_stdlib.go
│   │   │       └── ireturn_reject_stdlib.yml
│   │   ├── lll/
│   │   │   ├── lll.go
│   │   │   ├── lll_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── lll.go
│   │   │       ├── lll.yml
│   │   │       ├── lll_cgo.go
│   │   │       ├── lll_import.yml
│   │   │       ├── lll_import_multi.go
│   │   │       ├── lll_import_single.go
│   │   │       ├── lll_max_scan_token_size.go
│   │   │       └── lll_max_scan_token_size_cgo.go
│   │   ├── loggercheck/
│   │   │   ├── loggercheck.go
│   │   │   ├── loggercheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── loggercheck_cgo.go
│   │   │       ├── loggercheck_custom.go
│   │   │       ├── loggercheck_custom.yml
│   │   │       ├── loggercheck_default.go
│   │   │       ├── loggercheck_kitlogonly.go
│   │   │       ├── loggercheck_kitlogonly.yml
│   │   │       ├── loggercheck_logronly.go
│   │   │       ├── loggercheck_logronly.yml
│   │   │       ├── loggercheck_noprintflike.go
│   │   │       ├── loggercheck_noprintflike.yml
│   │   │       ├── loggercheck_requirestringkey.go
│   │   │       ├── loggercheck_requirestringkey.yml
│   │   │       ├── loggercheck_slogonly.go
│   │   │       ├── loggercheck_slogonly.yml
│   │   │       ├── loggercheck_zaponly.go
│   │   │       └── loggercheck_zaponly.yml
│   │   ├── maintidx/
│   │   │   ├── maintidx.go
│   │   │   ├── maintidx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── maintidx.go
│   │   │       ├── maintidx_cgo.go
│   │   │       ├── maintidx_under_100.go
│   │   │       └── maintidx_under_100.yml
│   │   ├── makezero/
│   │   │   ├── makezero.go
│   │   │   ├── makezero_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── makezero.go
│   │   │       ├── makezero_always.go
│   │   │       ├── makezero_always.yml
│   │   │       └── makezero_cgo.go
│   │   ├── mirror/
│   │   │   ├── mirror.go
│   │   │   ├── mirror_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── mirror.go
│   │   │       │   └── out/
│   │   │       │       └── mirror.go
│   │   │       ├── mirror.go
│   │   │       └── mirror_cgo.go
│   │   ├── misspell/
│   │   │   ├── misspell.go
│   │   │   ├── misspell_integration_test.go
│   │   │   ├── misspell_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── misspell.go
│   │   │       │   └── out/
│   │   │       │       └── misspell.go
│   │   │       ├── misspell.go
│   │   │       ├── misspell.yml
│   │   │       ├── misspell_cgo.go
│   │   │       ├── misspell_custom.go
│   │   │       └── misspell_custom.yml
│   │   ├── mnd/
│   │   │   ├── mnd.go
│   │   │   ├── mnd_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── mnd.go
│   │   │       ├── mnd_cgo.go
│   │   │       ├── mnd_custom.go
│   │   │       └── mnd_custom.yml
│   │   ├── modernize/
│   │   │   ├── modernize.go
│   │   │   ├── modernize_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── any.go
│   │   │       │   │   ├── fieldsseq.go
│   │   │       │   │   ├── fmtappendf.go
│   │   │       │   │   ├── forvar.go
│   │   │       │   │   ├── mapsloop.go
│   │   │       │   │   ├── mapsloop_dot.go
│   │   │       │   │   ├── minmax.go
│   │   │       │   │   ├── rangeint.go
│   │   │       │   │   ├── reflecttypefor.go
│   │   │       │   │   ├── slicescontains.go
│   │   │       │   │   ├── slicessort.go
│   │   │       │   │   ├── splitseq.go
│   │   │       │   │   ├── stditerators.go
│   │   │       │   │   ├── stringsbuilder.go
│   │   │       │   │   ├── stringscutprefix.go
│   │   │       │   │   ├── testingcontext_test.go
│   │   │       │   │   └── waitgroup.go
│   │   │       │   └── out/
│   │   │       │       ├── any.go
│   │   │       │       ├── fieldsseq.go
│   │   │       │       ├── fmtappendf.go
│   │   │       │       ├── forvar.go
│   │   │       │       ├── mapsloop.go
│   │   │       │       ├── mapsloop_dot.go
│   │   │       │       ├── minmax.go
│   │   │       │       ├── rangeint.go
│   │   │       │       ├── reflecttypefor.go
│   │   │       │       ├── slicescontains.go
│   │   │       │       ├── slicessort.go
│   │   │       │       ├── splitseq.go
│   │   │       │       ├── stditerators.go
│   │   │       │       ├── stringsbuilder.go
│   │   │       │       ├── stringscutprefix.go
│   │   │       │       ├── testingcontext_test.go
│   │   │       │       └── waitgroup.go
│   │   │       ├── modernize_any.go
│   │   │       ├── modernize_custom.go
│   │   │       └── modernize_custom.yml
│   │   ├── musttag/
│   │   │   ├── musttag.go
│   │   │   ├── musttag_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── musttag.go
│   │   │       ├── musttag.yml
│   │   │       ├── musttag_cgo.go
│   │   │       └── musttag_custom.go
│   │   ├── nakedret/
│   │   │   ├── nakedret.go
│   │   │   ├── nakedret_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nakedret.go
│   │   │       │   └── out/
│   │   │       │       └── nakedret.go
│   │   │       ├── nakedret.go
│   │   │       └── nakedret_cgo.go
│   │   ├── nestif/
│   │   │   ├── nestif.go
│   │   │   ├── nestif_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nestif.go
│   │   │       ├── nestif.yml
│   │   │       └── nestif_cgo.go
│   │   ├── nilerr/
│   │   │   ├── nilerr.go
│   │   │   ├── nilerr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilerr.go
│   │   │       └── nilerr_cgo.go
│   │   ├── nilnesserr/
│   │   │   ├── nilnesserr.go
│   │   │   ├── nilnesserr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilnesserr.go
│   │   │       └── nilnesserr_cgo.go
│   │   ├── nilnil/
│   │   │   ├── nilnil.go
│   │   │   ├── nilnil_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nilnil.go
│   │   │       ├── nilnil_cgo.go
│   │   │       ├── nilnil_detect_opposite.go
│   │   │       ├── nilnil_detect_opposite.yml
│   │   │       ├── nilnil_multiple_nils.go
│   │   │       ├── nilnil_multiple_nils.yml
│   │   │       ├── nilnil_pointers_only.go
│   │   │       └── nilnil_pointers_only.yml
│   │   ├── nlreturn/
│   │   │   ├── nlreturn.go
│   │   │   ├── nlreturn_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nlreturn.go
│   │   │       │   └── out/
│   │   │       │       └── nlreturn.go
│   │   │       ├── nlreturn-block-size.go
│   │   │       ├── nlreturn-block-size.yml
│   │   │       ├── nlreturn.go
│   │   │       └── nlreturn_cgo.go
│   │   ├── noctx/
│   │   │   ├── noctx.go
│   │   │   ├── noctx_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── noctx.go
│   │   │       └── noctx_cgo.go
│   │   ├── noinlineerr/
│   │   │   ├── noinlineerr.go
│   │   │   ├── noinlineerr_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── noinlineerr.go
│   │   │       │   └── out/
│   │   │       │       └── noinlineerr.go
│   │   │       └── noinlineerr.go
│   │   ├── nolintlint/
│   │   │   ├── internal/
│   │   │   │   ├── README.md
│   │   │   │   ├── issues.go
│   │   │   │   ├── nolintlint.go
│   │   │   │   └── nolintlint_test.go
│   │   │   ├── nolintlint.go
│   │   │   ├── nolintlint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── nolintlint.go
│   │   │       │   └── out/
│   │   │       │       └── nolintlint.go
│   │   │       ├── nolintlint.go
│   │   │       ├── nolintlint.yml
│   │   │       ├── nolintlint_cgo.go
│   │   │       ├── nolintlint_unused.go
│   │   │       └── nolintlint_unused.yml
│   │   ├── nonamedreturns/
│   │   │   ├── nonamedreturns.go
│   │   │   ├── nonamedreturns_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nonamedreturns.go
│   │   │       ├── nonamedreturns_cgo.go
│   │   │       ├── nonamedreturns_custom.go
│   │   │       └── nonamedreturns_custom.yml
│   │   ├── nosprintfhostport/
│   │   │   ├── nosprintfhostport.go
│   │   │   ├── nosprintfhostport_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── nosprintfhostport.go
│   │   │       └── nosprintfhostport_cgo.go
│   │   ├── paralleltest/
│   │   │   ├── paralleltest.go
│   │   │   ├── paralleltest_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── paralleltest_custom_test.go
│   │   │       ├── paralleltest_custom_test.yml
│   │   │       └── paralleltest_test.go
│   │   ├── perfsprint/
│   │   │   ├── perfsprint.go
│   │   │   ├── perfsprint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── perfsprint.go
│   │   │       │   └── out/
│   │   │       │       └── perfsprint.go
│   │   │       ├── perfsprint.go
│   │   │       ├── perfsprint_cgo.go
│   │   │       ├── perfsprint_custom.go
│   │   │       └── perfsprint_custom.yml
│   │   ├── prealloc/
│   │   │   ├── prealloc.go
│   │   │   ├── prealloc_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── prealloc.go
│   │   │       └── prealloc_cgo.go
│   │   ├── predeclared/
│   │   │   ├── predeclared.go
│   │   │   ├── predeclared_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── predeclared.go
│   │   │       ├── predeclared_cgo.go
│   │   │       ├── predeclared_custom.go
│   │   │       └── predeclared_custom.yml
│   │   ├── promlinter/
│   │   │   ├── promlinter.go
│   │   │   ├── promlinter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── promlinter.go
│   │   │       └── promlinter_cgo.go
│   │   ├── protogetter/
│   │   │   ├── protogetter.go
│   │   │   ├── protogetter_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── proto/
│   │   │       │   ├── test.go
│   │   │       │   ├── test.pb.go
│   │   │       │   ├── test.proto
│   │   │       │   └── test_grpc.pb.go
│   │   │       ├── protogetter.go
│   │   │       └── protogetter_cgo.go
│   │   ├── reassign/
│   │   │   ├── reassign.go
│   │   │   ├── reassign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── reassign.go
│   │   │       ├── reassign_cgo.go
│   │   │       ├── reassign_patterns.go
│   │   │       └── reassign_patterns.yml
│   │   ├── recvcheck/
│   │   │   ├── recvcheck.go
│   │   │   ├── recvcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── recvcheck.go
│   │   │       └── recvcheck_cgo.go
│   │   ├── revive/
│   │   │   ├── revive.go
│   │   │   ├── revive_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── revive.go
│   │   │       │   └── out/
│   │   │       │       └── revive.go
│   │   │       ├── revive-fix.yml
│   │   │       ├── revive.go
│   │   │       ├── revive.yml
│   │   │       ├── revive_cgo.go
│   │   │       └── revive_default.go
│   │   ├── rowserrcheck/
│   │   │   ├── rowserrcheck.go
│   │   │   ├── rowserrcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── rowserrcheck.go
│   │   │       └── rowserrcheck_cgo.go
│   │   ├── sloglint/
│   │   │   ├── sloglint.go
│   │   │   ├── sloglint_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── sloglint.go
│   │   │       ├── sloglint_args_on_sep_lines.go
│   │   │       ├── sloglint_args_on_sep_lines.yml
│   │   │       ├── sloglint_attr_only.go
│   │   │       ├── sloglint_attr_only.yml
│   │   │       ├── sloglint_cgo.go
│   │   │       ├── sloglint_context_only.go
│   │   │       ├── sloglint_context_only.yml
│   │   │       ├── sloglint_forbidden_keys.go
│   │   │       ├── sloglint_forbidden_keys.yml
│   │   │       ├── sloglint_key_naming_case.go
│   │   │       ├── sloglint_key_naming_case.yml
│   │   │       ├── sloglint_kv_only.go
│   │   │       ├── sloglint_kv_only.yml
│   │   │       ├── sloglint_no_raw_keys.go
│   │   │       ├── sloglint_no_raw_keys.yml
│   │   │       ├── sloglint_static_msg.go
│   │   │       └── sloglint_static_msg.yml
│   │   ├── spancheck/
│   │   │   ├── spancheck.go
│   │   │   ├── spancheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── go.mod
│   │   │       ├── go.sum
│   │   │       ├── spancheck.go
│   │   │       ├── spancheck_cgo.go
│   │   │       ├── spancheck_enable_all.go
│   │   │       ├── spancheck_enable_all.yml
│   │   │       ├── spancheck_keep_default.go
│   │   │       └── spancheck_keep_default.yml
│   │   ├── sqlclosecheck/
│   │   │   ├── sqlclosecheck.go
│   │   │   ├── sqlclosecheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── sqlclosecheck.go
│   │   │       └── sqlclosecheck_cgo.go
│   │   ├── staticcheck/
│   │   │   ├── staticcheck.go
│   │   │   ├── staticcheck_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   ├── gosimple.go
│   │   │       │   │   ├── staticcheck.go
│   │   │       │   │   └── stylecheck.go
│   │   │       │   └── out/
│   │   │       │       ├── gosimple.go
│   │   │       │       ├── staticcheck.go
│   │   │       │       └── stylecheck.go
│   │   │       ├── gosimple.go
│   │   │       ├── gosimple.yml
│   │   │       ├── gosimple_cgo.go
│   │   │       ├── staticcheck.go
│   │   │       ├── staticcheck.yml
│   │   │       ├── staticcheck_cgo.go
│   │   │       ├── stylecheck.go
│   │   │       ├── stylecheck.yml
│   │   │       ├── stylecheck_cgo.go
│   │   │       ├── stylecheck_empty.go
│   │   │       ├── stylecheck_empty.yml
│   │   │       ├── stylecheck_nil.go
│   │   │       └── stylecheck_nil.yml
│   │   ├── swaggo/
│   │   │   ├── swaggo.go
│   │   │   ├── swaggo_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── swaggo.go
│   │   │       │   └── out/
│   │   │       │       └── swaggo.go
│   │   │       ├── swaggo.go
│   │   │       └── swaggo.yml
│   │   ├── tagalign/
│   │   │   ├── tagalign.go
│   │   │   ├── tagalign_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── fix/
│   │   │       │   ├── in/
│   │   │       │   │   └── tagalign.go
│   │   │       │   └── out/
│   │   │       │       └── tagalign.go
│   │   │       ├── tagalign.go
│   │   │       ├── tagalign_align_only.go
│   │   │       ├── tagalign_align_only.yml
│   │   │       ├── tagalign_cgo.go
│   │   │       ├── tagalign_order_only.go
│   │   │       ├── tagalign_order_only.yml
│   │   │       ├── tagalign_sort_only.go
│   │   │       ├── tagalign_sort_only.yml
│   │   │       ├── tagalign_strict.go
│   │   │       └── tagalign_strict.yml
│   │   ├── tagliatelle/
│   │   │   ├── tagliatelle.go
│   │   │   ├── tagliatelle_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── tagliatelle.go
│   │   │       ├── tagliatelle_cgo.go
│   │   │       ├── tagliatelle_ignored_fields.go
│   │   │       ├── tagliatelle_ignored_fields.yml
│   │   │       ├── tagliatelle_initialism_overrides.go
│   │   │       └── tagliatelle_initialism_overrides.yml
│   │   ├── testableexamples/
│   │   │   ├── testableexamples.go
│   │   │   ├── testableexamples_integration_test.go
│   │   │   └── testdata/
│   │   │       ├── testableexamples_test.go
│   │   │       └── testableexamples_test_cgo.go
│   │   ├── testifylint/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── testifylint.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── testifylint.go
│   │   │   │   ├── testifylint.go
│   │   │   │   ├── testifylint_bool_compare_only.go
│   │   │   │   ├── testifylint_bool_compare_only.yml
│   │   │   │   ├── testifylint_cgo.go
│   │   │   │   ├── testifylint_formatter_dont_require_string_msg.go
│   │   │   │   ├── testifylint_formatter_dont_require_string_msg.yml
│   │   │   │   ├── testifylint_formatter_only.go
│   │   │   │   ├── testifylint_formatter_only.yml
│   │   │   │   ├── testifylint_require_error_only.go
│   │   │   │   └── testifylint_require_error_only.yml
│   │   │   ├── testifylint.go
│   │   │   └── testifylint_integration_test.go
│   │   ├── testpackage/
│   │   │   ├── testdata/
│   │   │   │   └── testpackage_test.go
│   │   │   ├── testpackage.go
│   │   │   └── testpackage_integration_test.go
│   │   ├── thelper/
│   │   │   ├── testdata/
│   │   │   │   ├── thelper.go
│   │   │   │   ├── thelper.yml
│   │   │   │   ├── thelper_cgo.go
│   │   │   │   ├── thelper_fuzz.go
│   │   │   │   └── thelper_with_options.go
│   │   │   ├── thelper.go
│   │   │   └── thelper_integration_test.go
│   │   ├── tparallel/
│   │   │   ├── testdata/
│   │   │   │   ├── tparallel_cgo.go
│   │   │   │   ├── tparallel_happy_path_test.go
│   │   │   │   ├── tparallel_missing_subtest_test.go
│   │   │   │   └── tparallel_missing_toplevel_test.go
│   │   │   ├── tparallel.go
│   │   │   └── tparallel_integration_test.go
│   │   ├── typecheck.go
│   │   ├── unconvert/
│   │   │   ├── testdata/
│   │   │   │   ├── unconvert.go
│   │   │   │   └── unconvert_cgo.go
│   │   │   ├── unconvert.go
│   │   │   └── unconvert_integration_test.go
│   │   ├── unparam/
│   │   │   ├── testdata/
│   │   │   │   ├── unparam.go
│   │   │   │   └── unparam_cgo.go
│   │   │   ├── unparam.go
│   │   │   └── unparam_integration_test.go
│   │   ├── unqueryvet/
│   │   │   ├── testdata/
│   │   │   │   ├── unqueryvet.go
│   │   │   │   ├── unqueryvet_custom.go
│   │   │   │   └── unqueryvet_custom.yml
│   │   │   ├── unqueryvet.go
│   │   │   └── unqueryvet_integration_test.go
│   │   ├── unused/
│   │   │   ├── testdata/
│   │   │   │   ├── unused.go
│   │   │   │   └── unused_cgo.go
│   │   │   ├── unused.go
│   │   │   └── unused_integration_test.go
│   │   ├── usestdlibvars/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── usestdlibvars.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── usestdlibvars.go
│   │   │   │   ├── usestdlibvars.go
│   │   │   │   ├── usestdlibvars_cgo.go
│   │   │   │   ├── usestdlibvars_non_default.go
│   │   │   │   └── usestdlibvars_non_default.yml
│   │   │   ├── usestdlibvars.go
│   │   │   └── usestdlibvars_integration_test.go
│   │   ├── usetesting/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── usetesting.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── usetesting.go
│   │   │   │   ├── usetesting.go
│   │   │   │   ├── usetesting_cgo.go
│   │   │   │   ├── usetesting_configuration.go
│   │   │   │   └── usetesting_configuration.yml
│   │   │   ├── usetesting.go
│   │   │   └── usetesting_integration_test.go
│   │   ├── varnamelen/
│   │   │   ├── testdata/
│   │   │   │   ├── varnamelen.go
│   │   │   │   ├── varnamelen_cgo.go
│   │   │   │   ├── varnamelen_configuration.go
│   │   │   │   └── varnamelen_configuration.yml
│   │   │   ├── varnamelen.go
│   │   │   └── varnamelen_integration_test.go
│   │   ├── wastedassign/
│   │   │   ├── testdata/
│   │   │   │   ├── wastedassign.go
│   │   │   │   └── wastedassign_cgo.go
│   │   │   ├── wastedassign.go
│   │   │   └── wastedassign_integration_test.go
│   │   ├── whitespace/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   └── whitespace.go
│   │   │   │   │   └── out/
│   │   │   │   │       └── whitespace.go
│   │   │   │   ├── whitespace-fix.yml
│   │   │   │   ├── whitespace.go
│   │   │   │   ├── whitespace.yml
│   │   │   │   └── whitespace_cgo.go
│   │   │   ├── whitespace.go
│   │   │   └── whitespace_integration_test.go
│   │   ├── wrapcheck/
│   │   │   ├── testdata/
│   │   │   │   ├── wrapcheck.go
│   │   │   │   └── wrapcheck_cgo.go
│   │   │   ├── wrapcheck.go
│   │   │   └── wrapcheck_integration_test.go
│   │   ├── wsl/
│   │   │   ├── testdata/
│   │   │   │   ├── fix/
│   │   │   │   │   ├── in/
│   │   │   │   │   │   ├── wsl_v4.go
│   │   │   │   │   │   └── wsl_v5.go
│   │   │   │   │   └── out/
│   │   │   │   │       ├── wsl_v4.go
│   │   │   │   │       └── wsl_v5.go
│   │   │   │   ├── ws_v4_cgo.go
│   │   │   │   ├── wsl_v4.go
│   │   │   │   ├── wsl_v4.yml
│   │   │   │   ├── wsl_v5.go
│   │   │   │   ├── wsl_v5_config.go
│   │   │   │   └── wsl_v5_config.yml
│   │   │   ├── wsl.go
│   │   │   ├── wsl_integration_test.go
│   │   │   └── wsl_v5.go
│   │   └── zerologlint/
│   │       ├── testdata/
│   │       │   ├── go.mod
│   │       │   ├── go.sum
│   │       │   ├── zerologlint.go
│   │       │   └── zerologlint_cgo.go
│   │       ├── zerologlint.go
│   │       └── zerologlint_integration_test.go
│   ├── goutil/
│   │   ├── env.go
│   │   ├── version.go
│   │   └── version_test.go
│   ├── lint/
│   │   ├── context.go
│   │   ├── linter/
│   │   │   ├── config.go
│   │   │   ├── context.go
│   │   │   └── linter.go
│   │   ├── lintersdb/
│   │   │   ├── builder_linter.go
│   │   │   ├── builder_plugin_go.go
│   │   │   ├── builder_plugin_module.go
│   │   │   ├── manager.go
│   │   │   ├── manager_test.go
│   │   │   ├── validator.go
│   │   │   └── validator_test.go
│   │   ├── package.go
│   │   ├── package_test.go
│   │   └── runner.go
│   ├── logutils/
│   │   ├── log.go
│   │   ├── logutils.go
│   │   ├── mock.go
│   │   ├── out.go
│   │   └── stderr_log.go
│   ├── printers/
│   │   ├── checkstyle.go
│   │   ├── checkstyle_test.go
│   │   ├── codeclimate.go
│   │   ├── codeclimate_test.go
│   │   ├── html.go
│   │   ├── html_test.go
│   │   ├── json.go
│   │   ├── json_test.go
│   │   ├── junitxml.go
│   │   ├── junitxml_test.go
│   │   ├── printer.go
│   │   ├── printer_test.go
│   │   ├── sarif.go
│   │   ├── sarif_test.go
│   │   ├── tab.go
│   │   ├── tab_test.go
│   │   ├── teamcity.go
│   │   ├── teamcity_test.go
│   │   ├── testdata/
│   │   │   ├── golden-json.json
│   │   │   ├── golden-line-number.txt
│   │   │   ├── golden-teamcity.txt
│   │   │   ├── in-issues.json
│   │   │   └── in-report-data.json
│   │   ├── text.go
│   │   └── text_test.go
│   ├── report/
│   │   ├── data.go
│   │   └── log.go
│   ├── result/
│   │   ├── issue.go
│   │   └── processors/
│   │       ├── base_rule.go
│   │       ├── cgo.go
│   │       ├── diff.go
│   │       ├── exclusion_generated_file_filter.go
│   │       ├── exclusion_generated_file_filter_test.go
│   │       ├── exclusion_generated_file_matcher.go
│   │       ├── exclusion_generated_file_matcher_test.go
│   │       ├── exclusion_paths.go
│   │       ├── exclusion_paths_test.go
│   │       ├── exclusion_presets.go
│   │       ├── exclusion_rules.go
│   │       ├── exclusion_rules_test.go
│   │       ├── filename_unadjuster.go
│   │       ├── fixer.go
│   │       ├── invalid_issue.go
│   │       ├── invalid_issue_test.go
│   │       ├── issues.go
│   │       ├── max_from_linter.go
│   │       ├── max_from_linter_test.go
│   │       ├── max_per_file_from_linter.go
│   │       ├── max_per_file_from_linter_test.go
│   │       ├── max_same_issues.go
│   │       ├── max_same_issues_test.go
│   │       ├── nolint_filter.go
│   │       ├── nolint_filter_test.go
│   │       ├── path_absoluter.go
│   │       ├── path_prettifier.go
│   │       ├── path_prettifier_test.go
│   │       ├── path_relativity.go
│   │       ├── path_shortener.go
│   │       ├── processor.go
│   │       ├── processor_test.go
│   │       ├── severity.go
│   │       ├── severity_test.go
│   │       ├── sort_results.go
│   │       ├── sort_results_test.go
│   │       ├── source_code.go
│   │       ├── testdata/
│   │       │   ├── exclusion_generated_file_filter/
│   │       │   │   ├── exclude.go
│   │       │   │   ├── exclude_block_comment.go
│   │       │   │   ├── exclude_doc.go
│   │       │   │   ├── exclude_long_line.go
│   │       │   │   ├── go_strict.go
│   │       │   │   └── go_strict_invalid.go
│   │       │   ├── exclusion_rules/
│   │       │   │   ├── case_sensitive.go
│   │       │   │   └── exclusion_rules.go
│   │       │   ├── nolint_filter/
│   │       │   │   ├── apply_to_unknown.go
│   │       │   │   ├── bad_names.go
│   │       │   │   ├── nolint.go
│   │       │   │   ├── nolint2.go
│   │       │   │   ├── unused.go
│   │       │   │   └── whole_file.go
│   │       │   └── severity/
│   │       │       ├── exclude_rules.go
│   │       │       └── severity_rules.go
│   │       ├── uniq_by_line.go
│   │       └── uniq_by_line_test.go
│   └── timeutils/
│       └── stopwatch.go
├── scripts/
│   ├── bench/
│   │   ├── bench_local.sh
│   │   ├── bench_version.sh
│   │   └── readme.md
│   ├── gen_github_action_config/
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── main_test.go
│   │   ├── testdata/
│   │   │   ├── all-releases-v2.json
│   │   │   ├── all-releases.json
│   │   │   ├── github-action-config-v1.json
│   │   │   ├── github-action-config-v2.json
│   │   │   └── github-action-config.json
│   │   └── types.go
│   ├── print_ast/
│   │   └── main.go
│   └── website/
│       ├── copy_jsonschema/
│       │   └── main.go
│       ├── dump_info/
│       │   ├── cmd_help.go
│       │   ├── default_exclusions.go
│       │   ├── formatters.go
│       │   ├── linters.go
│       │   ├── main.go
│       │   ├── thanks.go
│       │   └── thanks_test.go
│       ├── expand_templates/
│       │   ├── .gitignore
│       │   ├── changelog.go
│       │   ├── configuration.go
│       │   ├── configuration_test.go
│       │   ├── main.go
│       │   └── plugins.go
│       ├── github/
│       │   └── github.go
│       └── types/
│           └── types.go
├── test/
│   ├── bench/
│   │   └── bench_test.go
│   ├── configuration_file_test.go
│   ├── enabled_linters_test.go
│   ├── fix_test.go
│   ├── linters_test.go
│   ├── output_test.go
│   ├── run_test.go
│   ├── testdata/
│   │   ├── autogenerated/
│   │   │   ├── autogenerated.go
│   │   │   ├── do_not_edit.go
│   │   │   ├── go_bindata.go
│   │   │   ├── mockgen.go
│   │   │   └── protoc_gen_foo.go
│   │   ├── cgo/
│   │   │   └── main.go
│   │   ├── cgo_with_issues/
│   │   │   └── main.go
│   │   ├── configs/
│   │   │   ├── custom_linter_goplugin.yml
│   │   │   ├── custom_linter_module.yml
│   │   │   ├── custom_linter_notype.yml
│   │   │   ├── default_exclude.yml
│   │   │   ├── multiple-issues-fix.yml
│   │   │   ├── output.yml
│   │   │   └── path-except.yml
│   │   ├── default_exclude.go
│   │   ├── fix/
│   │   │   ├── in/
│   │   │   │   └── multiple-issues-fix.go
│   │   │   └── out/
│   │   │       └── multiple-issues-fix.go
│   │   ├── linedirective/
│   │   │   ├── dupl.yml
│   │   │   ├── gomodguard.yml
│   │   │   ├── hello.go
│   │   │   ├── hello.tmpl
│   │   │   └── lll.yml
│   │   ├── minimalpkg/
│   │   │   └── minimalpkg.go
│   │   ├── nogofiles/
│   │   │   └── test.txt
│   │   ├── notcompiles/
│   │   │   ├── typecheck.go
│   │   │   └── typecheck_many_issues.go
│   │   ├── output.go
│   │   ├── path_except.go
│   │   ├── path_except_test.go
│   │   ├── quicktemplate/
│   │   │   ├── hello.qtpl
│   │   │   └── hello.qtpl.go
│   │   ├── sort_results/
│   │   │   └── main.go
│   │   ├── symlink_loop/
│   │   │   └── realpkg/
│   │   │       └── p.go
│   │   ├── unsafe/
│   │   │   └── pkg.go
│   │   ├── used_only_in_tests/
│   │   │   ├── a.go
│   │   │   └── a_test.go
│   │   ├── withconfig/
│   │   │   ├── .golangci.yml
│   │   │   └── pkg/
│   │   │       └── pkg.go
│   │   ├── withtests/
│   │   │   ├── p.go
│   │   │   └── p_test.go
│   │   └── withxtest/
│   │       ├── p.go
│   │       └── p_test.go
│   ├── testdata_etc/
│   │   ├── abspath/
│   │   │   └── with_issue.go
│   │   └── unused_exported/
│   │       ├── golangci.yml
│   │       ├── lib/
│   │       │   ├── bar_test.go
│   │       │   └── foo.go
│   │       └── main.go
│   └── testshared/
│       ├── analysis.go
│       ├── analysis_test.go
│       ├── directives.go
│       ├── directives_test.go
│       ├── install.go
│       ├── integration/
│       │   ├── fix.go
│       │   └── run.go
│       ├── runner.go
│       ├── runner_test.go
│       ├── runner_unix.go
│       ├── runner_windows.go
│       └── testdata/
│           └── all.go
└── third_party/
    ├── dogsled/
    │   └── LICENSE
    ├── gochecknoglobals/
    │   └── LICENSE
    ├── gochecknoinits/
    │   └── LICENSE
    ├── gometalinter/
    │   └── LICENSE
    ├── lll/
    │   └── LICENSE
    ├── nakedret/
    │   └── LICENSE
    └── x_tools/
        └── LICENSE
Download .txt
Showing preview only (407K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4760 symbols across 1045 files)

FILE: cmd/golangci-lint/main.go
  function main (line 24) | func main() {
  function createBuildInfo (line 33) | func createBuildInfo() commands.BuildInfo {

FILE: internal/cache/cache.go
  type HashMode (line 22) | type HashMode
  constant HashModeNeedOnlySelf (line 25) | HashModeNeedOnlySelf HashMode = iota
  constant HashModeNeedDirectDeps (line 26) | HashModeNeedDirectDeps
  constant HashModeNeedAllDeps (line 27) | HashModeNeedAllDeps
  type hashResults (line 32) | type hashResults
  type Cache (line 37) | type Cache struct
    method Close (line 54) | func (c *Cache) Close() {
    method Put (line 61) | func (c *Cache) Put(pkg *packages.Package, mode HashMode, key string, ...
    method Get (line 80) | func (c *Cache) Get(pkg *packages.Package, mode HashMode, key string, ...
    method buildKey (line 97) | func (c *Cache) buildKey(pkg *packages.Package, mode HashMode, key str...
    method pkgActionID (line 113) | func (c *Cache) pkgActionID(pkg *packages.Package, mode HashMode) (cac...
    method packageHash (line 130) | func (c *Cache) packageHash(pkg *packages.Package, mode HashMode) (str...
    method computePkgHash (line 159) | func (c *Cache) computePkgHash(pkg *packages.Package) (hashResults, er...
    method computeDepsHash (line 202) | func (c *Cache) computeDepsHash(depMode HashMode, imps []*packages.Pac...
    method putBytes (line 219) | func (c *Cache) putBytes(actionID cache.ActionID, buf *bytes.Buffer) e...
    method getBytes (line 235) | func (c *Cache) getBytes(actionID cache.ActionID) ([]byte, error) {
    method fileHash (line 252) | func (c *Cache) fileHash(f string) ([cache.HashSize]byte, error) {
    method encode (line 266) | func (c *Cache) encode(data any) (*bytes.Buffer, error) {
    method decode (line 278) | func (c *Cache) decode(b []byte, data any) error {
  function NewCache (line 45) | func NewCache(sw *timeutils.Stopwatch, log logutils.Log) (*Cache, error) {
  function SetSalt (line 289) | func SetSalt(b *bytes.Buffer) {
  function DefaultDir (line 293) | func DefaultDir() string {

FILE: internal/cache/cache_test.go
  function setupCache (line 15) | func setupCache(t *testing.T) *Cache {
  function fakePackage (line 27) | func fakePackage() *packages.Package {
  type Foo (line 47) | type Foo struct
  function TestCache_Put (line 51) | func TestCache_Put(t *testing.T) {
  function TestCache_Get_missing_data (line 72) | func TestCache_Get_missing_data(t *testing.T) {
  function TestCache_buildKey (line 88) | func TestCache_buildKey(t *testing.T) {
  function TestCache_pkgActionID (line 99) | func TestCache_pkgActionID(t *testing.T) {
  function TestCache_packageHash_load (line 110) | func TestCache_packageHash_load(t *testing.T) {
  function TestCache_packageHash_store (line 123) | func TestCache_packageHash_store(t *testing.T) {
  function TestCache_computeHash (line 145) | func TestCache_computeHash(t *testing.T) {

FILE: internal/cache/testdata/hello.go
  function Hello (line 5) | func Hello() {

FILE: internal/errorutil/errors.go
  type PanicError (line 8) | type PanicError struct
    method Error (line 17) | func (e PanicError) Error() string {
    method Stack (line 21) | func (e PanicError) Stack() []byte {
  function NewPanicError (line 13) | func NewPanicError(recovered any, stack []byte) *PanicError {

FILE: internal/go/base/error_notunix.go
  function IsETXTBSY (line 9) | func IsETXTBSY(err error) bool {

FILE: internal/go/base/error_unix.go
  function IsETXTBSY (line 14) | func IsETXTBSY(err error) bool {

FILE: internal/go/cache/cache.go
  type ActionID (line 35) | type ActionID
  type OutputID (line 38) | type OutputID
  type Cache (line 41) | type Cache interface
  type DiskCache (line 83) | type DiskCache struct
    method fileName (line 121) | func (c *DiskCache) fileName(id [HashSize]byte, key string) string {
    method Get (line 191) | func (c *DiskCache) Get(id ActionID) (Entry, error) {
    method get (line 205) | func (c *DiskCache) get(id ActionID) (Entry, error) {
    method OutputFile (line 322) | func (c *DiskCache) OutputFile(out OutputID) string {
    method markUsed (line 367) | func (c *DiskCache) markUsed(file string) (isDir bool) {
    method Close (line 378) | func (c *DiskCache) Close() error { return c.Trim() }
    method Trim (line 381) | func (c *DiskCache) Trim() error {
    method trimSubdir (line 421) | func (c *DiskCache) trimSubdir(subdir string, cutoff time.Time) {
    method putIndexEntry (line 453) | func (c *DiskCache) putIndexEntry(id ActionID, out OutputID, size int6...
    method Put (line 519) | func (c *DiskCache) Put(id ActionID, file io.ReadSeeker) (OutputID, in...
    method PutExecutable (line 530) | func (c *DiskCache) PutExecutable(id ActionID, name string, file io.Re...
    method put (line 549) | func (c *DiskCache) put(id ActionID, executableName string, file io.Re...
    method copyFile (line 583) | func (c *DiskCache) copyFile(file io.ReadSeeker, executableName string...
    method FuzzDir (line 714) | func (c *DiskCache) FuzzDir() string {
  function Open (line 99) | func Open(dir string) (*DiskCache, error) {
  type entryNotFoundError (line 127) | type entryNotFoundError struct
    method Error (line 131) | func (e *entryNotFoundError) Error() string {
    method Unwrap (line 138) | func (e *entryNotFoundError) Unwrap() error {
  constant hexSize (line 144) | hexSize   = HashSize * 2
  constant entrySize (line 145) | entrySize = 2 + 1 + hexSize + 1 + hexSize + 1 + 20 + 1 + 20 + 1
  type Entry (line 198) | type Entry struct
  function GetFile (line 269) | func GetFile(c Cache, id ActionID) (file string, entry Entry, err error) {
  function GetBytes (line 288) | func GetBytes(c Cache, id ActionID) ([]byte, Entry, error) {
  function GetMmap (line 306) | func GetMmap(c Cache, id ActionID) ([]byte, Entry, bool, error) {
  constant mtimeInterval (line 351) | mtimeInterval = 1 * time.Hour
  constant trimInterval (line 352) | trimInterval  = 24 * time.Hour
  constant trimLimit (line 353) | trimLimit     = 5 * 24 * time.Hour
  type noVerifyReadSeeker (line 513) | type noVerifyReadSeeker struct
  function PutNoVerify (line 545) | func PutNoVerify(c Cache, id ActionID, file io.ReadSeeker) (OutputID, in...
  function PutBytes (line 576) | func PutBytes(c Cache, id ActionID, data []byte) error {

FILE: internal/go/cache/cache_gcil.go
  function IsErrMissing (line 9) | func IsErrMissing(err error) bool {

FILE: internal/go/cache/cache_test.go
  function init (line 19) | func init() {
  function TestBasic (line 23) | func TestBasic(t *testing.T) {
  function TestGrowth (line 64) | func TestGrowth(t *testing.T) {
  function dummyID (line 132) | func dummyID(x int) [HashSize]byte {
  function TestCacheTrim (line 138) | func TestCacheTrim(t *testing.T) {

FILE: internal/go/cache/default.go
  function Default (line 17) | func Default() Cache {
  constant cacheREADME (line 26) | cacheREADME = `This directory holds cached build artifacts from golangci...
  function initDefaultCache (line 31) | func initDefaultCache() Cache {
  function DefaultDir (line 69) | func DefaultDir() (string, bool) {

FILE: internal/go/cache/default_gcil.go
  constant envGolangciLintCache (line 4) | envGolangciLintCache     = "GOLANGCI_LINT_CACHE"
  constant envGolangciLintCacheProg (line 5) | envGolangciLintCacheProg = "GOLANGCI_LINT_CACHEPROG"

FILE: internal/go/cache/hash.go
  constant HashSize (line 21) | HashSize = 32
  type Hash (line 25) | type Hash struct
    method Write (line 94) | func (h *Hash) Write(b []byte) (int, error) {
    method Sum (line 105) | func (h *Hash) Sum() [HashSize]byte {
  function stripExperiment (line 42) | func stripExperiment(version string) string {
  function Subkey (line 51) | func Subkey(parent ActionID, desc string) (ActionID, error) {
  function NewHash (line 78) | func NewHash(name string) (*Hash, error) {
  function reverseHash (line 132) | func reverseHash(id [HashSize]byte) string {
  function FileHash (line 150) | func FileHash(file string) ([HashSize]byte, error) {
  function SetFileHash (line 185) | func SetFileHash(file string, sum [HashSize]byte) {

FILE: internal/go/cache/hash_gcil.go
  function SetSalt (line 3) | func SetSalt(b []byte) {

FILE: internal/go/cache/hash_test.go
  function TestHash (line 13) | func TestHash(t *testing.T) {
  function TestHashFile (line 29) | func TestHashFile(t *testing.T) {

FILE: internal/go/cache/prog.go
  type ProgCache (line 33) | type ProgCache struct
    method readLoop (line 149) | func (c *ProgCache) readLoop(readLoopDone chan<- struct{}) {
    method send (line 186) | func (c *ProgCache) send(ctx context.Context, req *cacheprog.Request) ...
    method writeToChild (line 205) | func (c *ProgCache) writeToChild(req *cacheprog.Request, resc chan<- *...
    method Get (line 260) | func (c *ProgCache) Get(a ActionID) (Entry, error) {
    method noteOutputFile (line 299) | func (c *ProgCache) noteOutputFile(o OutputID, diskPath string) {
    method OutputFile (line 305) | func (c *ProgCache) OutputFile(o OutputID) string {
    method Put (line 311) | func (c *ProgCache) Put(a ActionID, file io.ReadSeeker) (_ OutputID, s...
    method Close (line 350) | func (c *ProgCache) Close() error {
    method FuzzDir (line 371) | func (c *ProgCache) FuzzDir() string {
  function startCacheProg (line 72) | func startCacheProg(progAndArgs string, fuzzDirCache Cache) Cache {

FILE: internal/go/cacheprog/cacheprog.go
  type Cmd (line 31) | type Cmd
  constant CmdPut (line 41) | CmdPut = Cmd("put")
  constant CmdGet (line 52) | CmdGet = Cmd("get")
  constant CmdClose (line 58) | CmdClose = Cmd("close")
  type Request (line 65) | type Request struct
  type Response (line 112) | type Response struct

FILE: internal/go/mmap/mmap.go
  type Data (line 19) | type Data struct
  function Mmap (line 25) | func Mmap(file string) (Data, bool, error) {

FILE: internal/go/mmap/mmap_other.go
  function mmapFile (line 15) | func mmapFile(f *os.File) (Data, error) {

FILE: internal/go/mmap/mmap_unix.go
  function mmapFile (line 16) | func mmapFile(f *os.File) (Data, error) {

FILE: internal/go/mmap/mmap_windows.go
  function mmapFile (line 16) | func mmapFile(f *os.File) (Data, error) {

FILE: internal/go/quoted/quoted.go
  function isSpaceByte (line 15) | func isSpaceByte(c byte) bool {
  function Split (line 25) | func Split(s string) ([]string, error) {
  function Join (line 65) | func Join(args []string) (string, error) {
  type Flag (line 107) | type Flag
    method Set (line 111) | func (f *Flag) Set(v string) error {
    method String (line 120) | func (f *Flag) String() string {

FILE: internal/go/quoted/quoted_test.go
  function TestSplit (line 13) | func TestSplit(t *testing.T) {
  function TestJoin (line 56) | func TestJoin(t *testing.T) {

FILE: internal/go/testenv/testenv.go
  function SyscallIsNotSupported (line 15) | func SyscallIsNotSupported(err error) bool {

FILE: internal/go/testenv/testenv_notunix.go
  function syscallIsNotSupported (line 19) | func syscallIsNotSupported(err error) bool {

FILE: internal/go/testenv/testenv_unix.go
  function syscallIsNotSupported (line 19) | func syscallIsNotSupported(err error) bool {

FILE: internal/x/tools/diff/diff.go
  type Edit (line 16) | type Edit struct
    method String (line 21) | func (e Edit) String() string {
  function Apply (line 31) | func Apply(src string, edits []Edit) (string, error) {
  function ApplyBytes (line 58) | func ApplyBytes(src []byte, edits []Edit) ([]byte, error) {
  function validate (line 66) | func validate(src string, edits []Edit) ([]Edit, int, error) {
  function SortEdits (line 94) | func SortEdits(edits []Edit) {
  type editsSort (line 98) | type editsSort
    method Len (line 100) | func (a editsSort) Len() int { return len(a) }
    method Less (line 101) | func (a editsSort) Less(i, j int) bool {
    method Swap (line 107) | func (a editsSort) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
  function lineEdits (line 112) | func lineEdits(src string, edits []Edit) ([]Edit, error) {
  function expandEdit (line 155) | func expandEdit(edit Edit, src string) Edit {

FILE: internal/x/tools/diff/lcs/common.go
  type lcs (line 13) | type lcs
    method sort (line 23) | func (l lcs) sort() lcs {
    method valid (line 36) | func (l lcs) valid() bool {
    method fix (line 50) | func (l lcs) fix() lcs {
    method prepend (line 144) | func (lcs lcs) prepend(x, y int) lcs {
    method append (line 163) | func (lcs lcs) append(x, y int) lcs {
  type diag (line 17) | type diag struct
  type direction (line 81) | type direction
  constant empty (line 84) | empty    direction = iota
  constant leftdown (line 85) | leftdown
  constant rightup (line 86) | rightup
  constant bad (line 87) | bad
  function overlap (line 92) | func overlap(exist, prop diag) (direction, diag) {
  function ok (line 177) | func ok(d, k int) bool {

FILE: internal/x/tools/diff/lcs/common_test.go
  type Btest (line 15) | type Btest struct
  function init (line 62) | func init() {
  function check (line 66) | func check(t *testing.T, str string, lcs lcs, want []string) {
  function checkDiffs (line 82) | func checkDiffs(t *testing.T, before string, diffs []Diff, after string) {
  function lcslen (line 99) | func lcslen(l lcs) int {
  function randstr (line 108) | func randstr(rng *rand.Rand, s string, n int) string {
  function TestLcsFix (line 117) | func TestLcsFix(t *testing.T) {

FILE: internal/x/tools/diff/lcs/labels.go
  type label (line 13) | type label struct
    method set (line 29) | func (t *label) set(D, k, x int) {
    method get (line 42) | func (t *label) get(d, k int) int {
  constant debug (line 18) | debug = false
  function checkDK (line 22) | func checkDK(D, k int) {
  function newtriang (line 49) | func newtriang(limit int) label {

FILE: internal/x/tools/diff/lcs/old.go
  type Diff (line 14) | type Diff struct
  function DiffStrings (line 21) | func DiffStrings(a, b string) []Diff { return diff(stringSeqs{a, b}) }
  function DiffBytes (line 25) | func DiffBytes(a, b []byte) []Diff { return diff(bytesSeqs{a, b}) }
  function DiffRunes (line 28) | func DiffRunes(a, b []rune) []Diff { return diff(runesSeqs{a, b}) }
  function diff (line 30) | func diff(seqs sequences) []Diff {
  function compute (line 40) | func compute(seqs sequences, algo func(*editGraph) lcs, limit int) ([]Di...
  type editGraph (line 60) | type editGraph struct
    method fdone (line 91) | func (e *editGraph) fdone(D, k int) (bool, lcs) {
    method forwardlcs (line 147) | func (e *editGraph) forwardlcs(D, k int) lcs {
    method lookForward (line 169) | func (e *editGraph) lookForward(k, relx int) int {
    method setForward (line 178) | func (e *editGraph) setForward(d, k, relx int) {
    method getForward (line 183) | func (e *editGraph) getForward(d, k int) int {
    method bdone (line 191) | func (e *editGraph) bdone(D, k int) (bool, lcs) {
    method backwardlcs (line 252) | func (e *editGraph) backwardlcs(D, k int) lcs {
    method lookBackward (line 272) | func (e *editGraph) lookBackward(k, relx int) int {
    method setBackward (line 282) | func (e *editGraph) setBackward(d, k, relx int) {
    method getBackward (line 287) | func (e *editGraph) getBackward(d, k int) int {
    method twoDone (line 376) | func (e *editGraph) twoDone(df, db int) (int, bool) {
    method twolcs (line 405) | func (e *editGraph) twolcs(df, db, kf int) lcs {
  method toDiffs (line 71) | func (lcs lcs) toDiffs(alen, blen int) []Diff {
  function forward (line 102) | func forward(e *editGraph) lcs {
  function backward (line 203) | func backward(e *editGraph) lcs {
  function twosided (line 294) | func twosided(e *editGraph) lcs {

FILE: internal/x/tools/diff/lcs/old_test.go
  function TestAlgosOld (line 16) | func TestAlgosOld(t *testing.T) {
  function TestIntOld (line 34) | func TestIntOld(t *testing.T) {
  function TestSpecialOld (line 62) | func TestSpecialOld(t *testing.T) { // exercises lcs.fix
  function TestRegressionOld001 (line 71) | func TestRegressionOld001(t *testing.T) {
  function TestRegressionOld002 (line 84) | func TestRegressionOld002(t *testing.T) {
  function TestRegressionOld003 (line 96) | func TestRegressionOld003(t *testing.T) {
  function TestRandOld (line 108) | func TestRandOld(t *testing.T) {
  function TestDiffAPI (line 134) | func TestDiffAPI(t *testing.T) {
  function BenchmarkTwoOld (line 161) | func BenchmarkTwoOld(b *testing.B) {
  function BenchmarkForwOld (line 173) | func BenchmarkForwOld(b *testing.B) {
  function rng (line 187) | func rng(tb testing.TB) *rand.Rand {
  function genBench (line 193) | func genBench(rng *rand.Rand, set string, n int) []struct{ before, after...
  function BenchmarkLargeFileSmallDiff (line 228) | func BenchmarkLargeFileSmallDiff(b *testing.B) {

FILE: internal/x/tools/diff/lcs/sequence.go
  type sequences (line 10) | type sequences interface
  type stringSeqs (line 16) | type stringSeqs struct
    method lengths (line 18) | func (s stringSeqs) lengths() (int, int) { return len(s.a), len(s.b) }
    method commonPrefixLen (line 19) | func (s stringSeqs) commonPrefixLen(ai, aj, bi, bj int) int {
    method commonSuffixLen (line 22) | func (s stringSeqs) commonSuffixLen(ai, aj, bi, bj int) int {
  type bytesSeqs (line 28) | type bytesSeqs struct
    method lengths (line 30) | func (s bytesSeqs) lengths() (int, int) { return len(s.a), len(s.b) }
    method commonPrefixLen (line 31) | func (s bytesSeqs) commonPrefixLen(ai, aj, bi, bj int) int {
    method commonSuffixLen (line 34) | func (s bytesSeqs) commonSuffixLen(ai, aj, bi, bj int) int {
  type runesSeqs (line 38) | type runesSeqs struct
    method lengths (line 40) | func (s runesSeqs) lengths() (int, int) { return len(s.a), len(s.b) }
    method commonPrefixLen (line 41) | func (s runesSeqs) commonPrefixLen(ai, aj, bi, bj int) int {
    method commonSuffixLen (line 44) | func (s runesSeqs) commonSuffixLen(ai, aj, bi, bj int) int {
  function commonPrefixLenBytes (line 56) | func commonPrefixLenBytes(a, b []byte) int {
  function commonPrefixLenRunes (line 64) | func commonPrefixLenRunes(a, b []rune) int {
  function commonPrefixLenString (line 72) | func commonPrefixLenString(a, b string) int {
  function commonSuffixLenBytes (line 82) | func commonSuffixLenBytes(a, b []byte) int {
  function commonSuffixLenRunes (line 90) | func commonSuffixLenRunes(a, b []rune) int {
  function commonSuffixLenString (line 98) | func commonSuffixLenString(a, b string) int {
  function min (line 107) | func min(x, y int) int {

FILE: internal/x/tools/diff/myers/diff.go
  function ComputeEdits (line 27) | func ComputeEdits(before, after string) []diff.Edit {
  type opKind (line 58) | type opKind
    method String (line 66) | func (kind opKind) String() string {
  constant opDelete (line 61) | opDelete opKind = iota
  constant opInsert (line 62) | opInsert
  constant opEqual (line 63) | opEqual
  type operation (line 79) | type operation struct
  function operations (line 88) | func operations(a, b []string) []*operation {
  function backtrack (line 162) | func backtrack(trace [][]int, x, y, offset int) [][]int {
  function shortestEditSequence (line 192) | func shortestEditSequence(a, b []string) ([][]int, int) {
  function splitLines (line 240) | func splitLines(text string) []string {

FILE: internal/x/tools/diff/ndiff.go
  function Strings (line 16) | func Strings(before, after string) []Edit {
  function Bytes (line 30) | func Bytes(before, after []byte) []Edit {
  function diffASCII (line 41) | func diffASCII(before, after []byte) []Edit {
  function diffRunes (line 52) | func diffRunes(before, after []rune) []Edit {
  function runes (line 72) | func runes(bytes []byte) []rune {
  function runesLen (line 84) | func runesLen(runes []rune) (len int) {
  function isASCII (line 92) | func isASCII[S string | []byte](s S) bool {

FILE: internal/x/tools/diff/unified.go
  constant DefaultContextLines (line 15) | DefaultContextLines = 3
  function Unified (line 20) | func Unified(oldLabel, newLabel, old, new string) string {
  function ToUnified (line 34) | func ToUnified(oldLabel, newLabel, content string, edits []Edit, context...
  type unified (line 43) | type unified struct
    method String (line 198) | func (u unified) String() string {
  type hunk (line 53) | type hunk struct
  type line (line 63) | type line struct
  type opKind (line 73) | type opKind
    method String (line 88) | func (k opKind) String() string {
  constant opDelete (line 78) | opDelete opKind = iota
  constant opInsert (line 80) | opInsert
  constant opEqual (line 83) | opEqual
  function toUnified (line 103) | func toUnified(fromName, toName string, content string, edits []Edit, co...
  function splitLines (line 173) | func splitLines(text string) []string {
  function addEqualLines (line 181) | func addEqualLines(h *hunk, lines []string, start, end int) int {

FILE: internal/x/tools/driverutil/readfile.go
  function CheckedReadFile (line 22) | func CheckedReadFile(pass *analysis.Pass, readFile ReadFileFunc) ReadFil...
  function CheckReadable (line 32) | func CheckReadable(pass *analysis.Pass, filename string) error {

FILE: internal/x/tools/driverutil/url.go
  function ResolveURL (line 16) | func ResolveURL(a *analysis.Analyzer, d analysis.Diagnostic) (string, er...

FILE: pkg/commands/cache.go
  type cacheCommand (line 15) | type cacheCommand struct
    method executeClean (line 53) | func (*cacheCommand) executeClean(_ *cobra.Command, _ []string) error {
    method executeStatus (line 63) | func (*cacheCommand) executeStatus(_ *cobra.Command, _ []string) {
  function newCacheCommand (line 19) | func newCacheCommand() *cacheCommand {
  function dirSizeBytes (line 74) | func dirSizeBytes(path string) (int64, error) {

FILE: pkg/commands/config.go
  type pathOptions (line 19) | type pathOptions struct
  type configCommand (line 23) | type configCommand struct
    method preRunE (line 94) | func (c *configCommand) preRunE(cmd *cobra.Command, args []string) err...
    method executePath (line 109) | func (c *configCommand) executePath(cmd *cobra.Command, _ []string) er...
    method getUsedConfig (line 136) | func (c *configCommand) getUsedConfig() string {
  function newConfigCommand (line 36) | func newConfigCommand(log logutils.Log, info BuildInfo) *configCommand {

FILE: pkg/commands/config_verify.go
  type verifyOptions (line 25) | type verifyOptions struct
  method executeVerify (line 29) | func (c *configCommand) executeVerify(cmd *cobra.Command, _ []string) er...
  function createSchemaURL (line 58) | func createSchemaURL(flags *pflag.FlagSet, buildInfo BuildInfo) (string,...
  function extractCommitHash (line 102) | func extractCommitHash(buildInfo BuildInfo) (string, error) {
  function validateConfiguration (line 129) | func validateConfiguration(schemaPath, targetFile string) error {
  function printValidationDetail (line 165) | func printValidationDetail(cmd *cobra.Command, detail *jsonschema.Output...
  function decodeYamlFile (line 179) | func decodeYamlFile(filename string) (any, error) {
  function decodeTomlFile (line 196) | func decodeTomlFile(filename string) (any, error) {
  type jsonschemaHTTPLoader (line 213) | type jsonschemaHTTPLoader struct
    method Load (line 223) | func (l jsonschemaHTTPLoader) Load(url string) (any, error) {
  function newJSONSchemaHTTPLoader (line 217) | func newJSONSchemaHTTPLoader() *jsonschemaHTTPLoader {

FILE: pkg/commands/config_verify_test.go
  function Test_createSchemaURL (line 11) | func Test_createSchemaURL(t *testing.T) {
  function Test_createSchemaURL_error (line 99) | func Test_createSchemaURL_error(t *testing.T) {

FILE: pkg/commands/custom.go
  constant envKeepTempFiles (line 15) | envKeepTempFiles = "CUSTOM_GCL_KEEP_TEMP_FILES"
  type customOptions (line 17) | type customOptions struct
  type customCommand (line 23) | type customCommand struct
    method preRunE (line 57) | func (c *customCommand) preRunE(_ *cobra.Command, _ []string) error {
    method runE (line 85) | func (c *customCommand) runE(cmd *cobra.Command, _ []string) error {
  function newCustomCommand (line 33) | func newCustomCommand(logger logutils.Log) *customCommand {

FILE: pkg/commands/flagsets.go
  constant defaultMaxIssuesPerLinter (line 13) | defaultMaxIssuesPerLinter = 50
  function setupLintersFlagSet (line 15) | func setupLintersFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
  function setupFormattersFlagSet (line 29) | func setupFormattersFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
  function setupRunFlagSet (line 34) | func setupRunFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
  function setupOutputFlagSet (line 62) | func setupOutputFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
  function setupOutputFormatsFlagSet (line 72) | func setupOutputFormatsFlagSet(v *viper.Viper, fs *pflag.FlagSet) {
  function setupIssuesFlagSet (line 117) | func setupIssuesFlagSet(v *viper.Viper, fs *pflag.FlagSet) {

FILE: pkg/commands/fmt.go
  type fmtOptions (line 20) | type fmtOptions struct
  type fmtCommand (line 28) | type fmtCommand struct
    method persistentPreRunE (line 80) | func (c *fmtCommand) persistentPreRunE(cmd *cobra.Command, args []stri...
    method preRunE (line 93) | func (c *fmtCommand) preRunE(_ *cobra.Command, _ []string) error {
    method execute (line 115) | func (c *fmtCommand) execute(_ *cobra.Command, args []string) error {
    method persistentPostRun (line 128) | func (c *fmtCommand) persistentPostRun(_ *cobra.Command, _ []string) {
  function newFmtCommand (line 43) | func newFmtCommand(logger logutils.Log, info BuildInfo) *fmtCommand {
  function cleanArgs (line 134) | func cleanArgs(args []string) []string {

FILE: pkg/commands/formatters.go
  type formattersHelp (line 18) | type formattersHelp struct
  type formattersOptions (line 23) | type formattersOptions struct
  type formattersCommand (line 28) | type formattersCommand struct
    method preRunE (line 72) | func (c *formattersCommand) preRunE(cmd *cobra.Command, args []string)...
    method execute (line 91) | func (c *formattersCommand) execute(_ *cobra.Command, _ []string) error {
  function newFormattersCommand (line 41) | func newFormattersCommand(logger logutils.Log) *formattersCommand {

FILE: pkg/commands/help.go
  type helpOptions (line 15) | type helpOptions struct
  type helpCommand (line 19) | type helpCommand struct
  function newHelpCommand (line 29) | func newHelpCommand(logger logutils.Log) *helpCommand {
  function formatDescription (line 78) | func formatDescription(desc string) string {

FILE: pkg/commands/help_formatters.go
  type formatterHelp (line 19) | type formatterHelp struct
  function newFormatterHelp (line 27) | func newFormatterHelp(lc *linter.Config) formatterHelp {
  method formattersPreRunE (line 37) | func (c *helpCommand) formattersPreRunE(_ *cobra.Command, _ []string) er...
  method formattersExecute (line 49) | func (c *helpCommand) formattersExecute(_ *cobra.Command, _ []string) er...
  method formattersPrintJSON (line 59) | func (c *helpCommand) formattersPrintJSON() error {
  method formattersPrint (line 77) | func (c *helpCommand) formattersPrint() {
  function printFormatters (line 95) | func printFormatters(lcs []*linter.Config) {

FILE: pkg/commands/help_linters.go
  type linterHelp (line 20) | type linterHelp struct
  function newLinterHelp (line 31) | func newLinterHelp(lc *linter.Config) linterHelp {
  method lintersPreRunE (line 50) | func (c *helpCommand) lintersPreRunE(_ *cobra.Command, _ []string) error {
  method lintersExecute (line 62) | func (c *helpCommand) lintersExecute(_ *cobra.Command, _ []string) error {
  method lintersPrintJSON (line 72) | func (c *helpCommand) lintersPrintJSON() error {
  method lintersPrint (line 90) | func (c *helpCommand) lintersPrint() {
  function printLinters (line 115) | func printLinters(lcs []*linter.Config) {

FILE: pkg/commands/help_test.go
  function Test_formatDescription (line 9) | func Test_formatDescription(t *testing.T) {

FILE: pkg/commands/internal/builder.go
  type Builder (line 23) | type Builder struct
    method Build (line 43) | func (b Builder) Build(ctx context.Context) error {
    method clone (line 91) | func (b Builder) clone(ctx context.Context) error {
    method addToGoMod (line 110) | func (b Builder) addToGoMod(ctx context.Context) error {
    method goGet (line 130) | func (b Builder) goGet(ctx context.Context, plugin *Plugin) error {
    method addReplaceDirective (line 147) | func (b Builder) addReplaceDirective(ctx context.Context, plugin *Plug...
    method goModTidy (line 165) | func (b Builder) goModTidy(ctx context.Context) error {
    method goBuild (line 179) | func (b Builder) goBuild(ctx context.Context, binaryName string) error {
    method copyBinary (line 206) | func (b Builder) copyBinary(binaryName string) error {
    method getBinaryName (line 243) | func (b Builder) getBinaryName() string {
    method createVersion (line 252) | func (b Builder) createVersion(orig string) (string, error) {
  function NewBuilder (line 33) | func NewBuilder(logger logutils.Log, cfg *Configuration, root string) *B...
  function sanitizeVersion (line 276) | func sanitizeVersion(v string) string {

FILE: pkg/commands/internal/builder_test.go
  function Test_sanitizeVersion (line 9) | func Test_sanitizeVersion(t *testing.T) {

FILE: pkg/commands/internal/configuration.go
  constant base (line 13) | base = ".custom-gcl"
  constant defaultBinaryName (line 15) | defaultBinaryName = "custom-gcl"
  type Configuration (line 18) | type Configuration struct
    method Validate (line 33) | func (c *Configuration) Validate() error {
  type Plugin (line 79) | type Plugin struct
  function LoadConfiguration (line 95) | func LoadConfiguration() (*Configuration, error) {
  function findConfigurationFile (line 118) | func findConfigurationFile() (string, error) {
  function isConf (line 138) | func isConf(ext, name string) bool {

FILE: pkg/commands/internal/configuration_test.go
  function TestConfiguration_Validate (line 10) | func TestConfiguration_Validate(t *testing.T) {
  function TestConfiguration_Validate_error (line 53) | func TestConfiguration_Validate_error(t *testing.T) {

FILE: pkg/commands/internal/dirhash.go
  function hashDir (line 19) | func hashDir(dir, prefix string, hash dirhash.Hash) (string, error) {
  function dirFiles (line 35) | func dirFiles(dir, prefix string) ([]string, error) {

FILE: pkg/commands/internal/imports.go
  constant importsTemplate (line 12) | importsTemplate = `
  method updatePluginsFile (line 22) | func (b Builder) updatePluginsFile() error {
  function generateImports (line 45) | func generateImports(cfg *Configuration) ([]byte, error) {

FILE: pkg/commands/internal/imports_test.go
  function Test_generateImports (line 12) | func Test_generateImports(t *testing.T) {

FILE: pkg/commands/internal/migrate/cloner/cloner.go
  constant newPkgName (line 19) | newPkgName = "versiontwo"
  constant srcDir (line 22) | srcDir = "./pkg/config"
  constant dstDir (line 23) | dstDir = "./pkg/commands/internal/migrate/versiontwo"
  function main (line 26) | func main() {
  function processPackage (line 44) | func processPackage(srcDir, dstDir string) error {
  function skipFile (line 67) | func skipFile(path string) bool {
  function processFile (line 80) | func processFile(file *ast.File) {
  function processStructFields (line 117) | func processStructFields(structType *ast.StructType) {
  function convertType (line 138) | func convertType(expr ast.Expr) ast.Expr {
  function convertStructTag (line 153) | func convertStructTag(value string) string {
  function wrapStructTag (line 165) | func wrapStructTag(s string) string {
  function writeNewFile (line 169) | func writeNewFile(fset *token.FileSet, file *ast.File, srcPath, dstDir s...

FILE: pkg/commands/internal/migrate/fakeloader/config.go
  type Config (line 5) | type Config struct
    method SetConfigDir (line 16) | func (c *Config) SetConfigDir(dir string) {
    method IsInternalTest (line 20) | func (*Config) IsInternalTest() bool {
  function NewConfig (line 11) | func NewConfig() *Config {

FILE: pkg/commands/internal/migrate/fakeloader/fakeloader.go
  function Load (line 15) | func Load(srcPath string, old any) error {

FILE: pkg/commands/internal/migrate/migrate.go
  function ToConfig (line 9) | func ToConfig(old *versionone.Config) *versiontwo.Config {

FILE: pkg/commands/internal/migrate/migrate_formatters.go
  function toFormatters (line 12) | func toFormatters(old *versionone.Config) versiontwo.Formatters {
  function toFormattersPathsFromRules (line 41) | func toFormattersPathsFromRules(old versionone.Issues) []string {
  function toGciSettings (line 62) | func toGciSettings(old versionone.GciSettings) versiontwo.GciSettings {
  function toGoFmtSettings (line 72) | func toGoFmtSettings(old versionone.GoFmtSettings) versiontwo.GoFmtSetti...
  function toGoFumptSettings (line 87) | func toGoFumptSettings(old versionone.GoFumptSettings) versiontwo.GoFump...
  function toGoImportsSettings (line 94) | func toGoImportsSettings(old versionone.GoImportsSettings) versiontwo.Go...

FILE: pkg/commands/internal/migrate/migrate_issues.go
  function toIssues (line 8) | func toIssues(old *versionone.Config) versiontwo.Issues {

FILE: pkg/commands/internal/migrate/migrate_linter_names.go
  type LinterInfo (line 11) | type LinterInfo struct
    method isName (line 19) | func (l *LinterInfo) isName(name string) bool {
    method hasPresets (line 27) | func (l *LinterInfo) hasPresets(names []string) bool {
  function ProcessEffectiveLinters (line 37) | func ProcessEffectiveLinters(old versionone.Linters) (enable, disable []...
  function ProcessEffectiveFormatters (line 50) | func ProcessEffectiveFormatters(old versionone.Linters) []string {
  function disableAllFilter (line 69) | func disableAllFilter(old versionone.Linters) []string {
  function enableAllFilter (line 98) | func enableAllFilter(old versionone.Linters) []string {
  function defaultLintersFilter (line 133) | func defaultLintersFilter(old versionone.Linters) (enable, disable []str...
  function defaultLintersEnableFilter (line 185) | func defaultLintersEnableFilter(old versionone.Linters, effectiveDisable...
  function defaultLintersDisableFilter (line 202) | func defaultLintersDisableFilter(old versionone.Linters) []LinterInfo {
  function allLinters (line 213) | func allLinters() []LinterInfo {
  function toNames (line 730) | func toNames(linters []LinterInfo) []string {
  function removeLinters (line 740) | func removeLinters(linters, toRemove []LinterInfo) []LinterInfo {
  function allEnabled (line 748) | func allEnabled(old versionone.Linters, linters []LinterInfo) []LinterIn...
  function allDisabled (line 760) | func allDisabled(old versionone.Linters, linters []LinterInfo) []LinterI...
  function filter (line 772) | func filter(linters []LinterInfo, fns ...fnFilter) []LinterInfo {
  function mergeFilters (line 784) | func mergeFilters(linter LinterInfo, fns []fnFilter) bool {
  type fnFilter (line 794) | type fnFilter
  function onlyPresets (line 796) | func onlyPresets(old versionone.Linters) fnFilter {
  function onlyDefault (line 802) | func onlyDefault(linter LinterInfo) bool {
  function notDefault (line 806) | func notDefault(linter LinterInfo) bool {
  function keepFast (line 810) | func keepFast(old versionone.Linters) fnFilter {
  function keepSlow (line 820) | func keepSlow(old versionone.Linters) fnFilter {
  function unknownLinterNames (line 830) | func unknownLinterNames(names []string, linters []LinterInfo) []string {
  function convertStaticcheckLinterNames (line 867) | func convertStaticcheckLinterNames(names []string) []string {
  function convertDisabledStaticcheckLinterNames (line 882) | func convertDisabledStaticcheckLinterNames(names []string) []string {
  function onlyLinterNames (line 903) | func onlyLinterNames(names []string) []string {
  function onlyFormatterNames (line 917) | func onlyFormatterNames(names []string) []string {
  function convertAlternativeNames (line 931) | func convertAlternativeNames(names []string) []string {
  function Unique (line 960) | func Unique[S ~[]E, E cmp.Ordered](s S) S {
  function getAllFormatterNames (line 964) | func getAllFormatterNames() []string {

FILE: pkg/commands/internal/migrate/migrate_linter_names_test.go
  function Test_disableAllFilter (line 12) | func Test_disableAllFilter(t *testing.T) {
  function Test_enableAllFilter (line 117) | func Test_enableAllFilter(t *testing.T) {
  function Test_defaultLintersDisableFilter (line 197) | func Test_defaultLintersDisableFilter(t *testing.T) {
  function Test_defaultLintersEnableFilter (line 296) | func Test_defaultLintersEnableFilter(t *testing.T) {
  function Test_convertStaticcheckLinterNames (line 377) | func Test_convertStaticcheckLinterNames(t *testing.T) {
  function Test_unknownLinterNames (line 426) | func Test_unknownLinterNames(t *testing.T) {

FILE: pkg/commands/internal/migrate/migrate_linters.go
  function toLinters (line 9) | func toLinters(old *versionone.Config) versiontwo.Linters {
  function getDefaultName (line 22) | func getDefaultName(old versionone.Linters) *string {

FILE: pkg/commands/internal/migrate/migrate_linters_exclusions.go
  function toExclusions (line 13) | func toExclusions(old *versionone.Config) versiontwo.LinterExclusions {
  function toExclusionGenerated (line 22) | func toExclusionGenerated(excludeGenerated *string) *string {
  function toPresets (line 34) | func toPresets(old versionone.Issues) []string {
  function toExclusionRules (line 63) | func toExclusionRules(old *versionone.Config) []versiontwo.ExcludeRule {
  function addPrefix (line 95) | func addPrefix(old versionone.Issues, s *string) *string {
  function linterTestExclusions (line 108) | func linterTestExclusions(old versionone.LintersSettings) []versiontwo.E...
  function toExclusionPaths (line 136) | func toExclusionPaths(old versionone.Issues) []string {

FILE: pkg/commands/internal/migrate/migrate_linters_settings.go
  function toLinterSettings (line 12) | func toLinterSettings(old versionone.LintersSettings) versiontwo.Linters...
  function toAsasalintSettings (line 95) | func toAsasalintSettings(old versionone.AsasalintSettings) versiontwo.As...
  function toBiDiChkSettings (line 102) | func toBiDiChkSettings(old versionone.BiDiChkSettings) versiontwo.BiDiCh...
  function toCopyLoopVarSettings (line 118) | func toCopyLoopVarSettings(old versionone.CopyLoopVarSettings) versiontw...
  function toCyclopSettings (line 124) | func toCyclopSettings(old versionone.Cyclop) versiontwo.CyclopSettings {
  function toDecorderSettings (line 131) | func toDecorderSettings(old versionone.DecorderSettings) versiontwo.Deco...
  function toDepGuardSettings (line 144) | func toDepGuardSettings(old versionone.DepGuardSettings) versiontwo.DepG...
  function toDogsledSettings (line 171) | func toDogsledSettings(old versionone.DogsledSettings) versiontwo.Dogsle...
  function toDuplSettings (line 177) | func toDuplSettings(old versionone.DuplSettings) versiontwo.DuplSettings {
  function toDupWordSettings (line 183) | func toDupWordSettings(old versionone.DupWordSettings) versiontwo.DupWor...
  function toErrcheckSettings (line 190) | func toErrcheckSettings(old versionone.ErrcheckSettings) versiontwo.Errc...
  function toErrChkJSONSettings (line 199) | func toErrChkJSONSettings(old versionone.ErrChkJSONSettings) versiontwo....
  function toErrorLintSettings (line 206) | func toErrorLintSettings(old versionone.ErrorLintSettings) versiontwo.Er...
  function toExhaustiveSettings (line 230) | func toExhaustiveSettings(old versionone.ExhaustiveSettings) versiontwo....
  function toExhaustructSettings (line 243) | func toExhaustructSettings(old versionone.ExhaustructSettings) versiontw...
  function toFatcontextSettings (line 250) | func toFatcontextSettings(old versionone.FatcontextSettings) versiontwo....
  function toForbidigoSettings (line 256) | func toForbidigoSettings(old versionone.ForbidigoSettings) versiontwo.Fo...
  function toFunlenSettings (line 287) | func toFunlenSettings(old versionone.FunlenSettings) versiontwo.FunlenSe...
  function toGinkgoLinterSettings (line 295) | func toGinkgoLinterSettings(old versionone.GinkgoLinterSettings) version...
  function toGocognitSettings (line 312) | func toGocognitSettings(old versionone.GocognitSettings) versiontwo.Goco...
  function toGoChecksumTypeSettings (line 318) | func toGoChecksumTypeSettings(old versionone.GoChecksumTypeSettings) ver...
  function toGoConstSettings (line 325) | func toGoConstSettings(old versionone.GoConstSettings) versiontwo.GoCons...
  function toGoCriticSettings (line 338) | func toGoCriticSettings(old versionone.GoCriticSettings) versiontwo.GoCr...
  function toGoCycloSettings (line 380) | func toGoCycloSettings(old versionone.GoCycloSettings) versiontwo.GoCycl...
  function toGodotSettings (line 386) | func toGodotSettings(old versionone.GodotSettings) versiontwo.GodotSetti...
  function toGodoxSettings (line 395) | func toGodoxSettings(old versionone.GodoxSettings) versiontwo.GodoxSetti...
  function toGoHeaderSettings (line 401) | func toGoHeaderSettings(old versionone.GoHeaderSettings) versiontwo.GoHe...
  function toGoModDirectivesSettings (line 409) | func toGoModDirectivesSettings(old versionone.GoModDirectivesSettings) v...
  function toGoModGuardSettings (line 423) | func toGoModGuardSettings(old versionone.GoModGuardSettings) versiontwo....
  function toGoSecSettings (line 463) | func toGoSecSettings(old versionone.GoSecSettings) versiontwo.GoSecSetti...
  function toGosmopolitanSettings (line 474) | func toGosmopolitanSettings(old versionone.GosmopolitanSettings) version...
  function toGovetSettings (line 482) | func toGovetSettings(old versionone.GovetSettings) versiontwo.GovetSetti...
  function toGrouperSettings (line 493) | func toGrouperSettings(old versionone.GrouperSettings) versiontwo.Groupe...
  function toIfaceSettings (line 506) | func toIfaceSettings(old versionone.IfaceSettings) versiontwo.IfaceSetti...
  function toImportAsSettings (line 513) | func toImportAsSettings(old versionone.ImportAsSettings) versiontwo.Impo...
  function toINamedParamSettings (line 529) | func toINamedParamSettings(old versionone.INamedParamSettings) versiontw...
  function toInterfaceBloatSettings (line 535) | func toInterfaceBloatSettings(old versionone.InterfaceBloatSettings) ver...
  function toIreturnSettings (line 541) | func toIreturnSettings(old versionone.IreturnSettings) versiontwo.Iretur...
  function toLllSettings (line 548) | func toLllSettings(old versionone.LllSettings) versiontwo.LllSettings {
  function toLoggerCheckSettings (line 555) | func toLoggerCheckSettings(old versionone.LoggerCheckSettings) versiontw...
  function toMaintIdxSettings (line 568) | func toMaintIdxSettings(old versionone.MaintIdxSettings) versiontwo.Main...
  function toMakezeroSettings (line 574) | func toMakezeroSettings(old versionone.MakezeroSettings) versiontwo.Make...
  function toMisspellSettings (line 580) | func toMisspellSettings(old versionone.MisspellSettings) versiontwo.Miss...
  function toMndSettings (line 597) | func toMndSettings(old versionone.MndSettings) versiontwo.MndSettings {
  function toMustTagSettings (line 606) | func toMustTagSettings(old versionone.MustTagSettings) versiontwo.MustTa...
  function toNakedretSettings (line 620) | func toNakedretSettings(old versionone.NakedretSettings) versiontwo.Nake...
  function toNestifSettings (line 626) | func toNestifSettings(old versionone.NestifSettings) versiontwo.NestifSe...
  function toNilNilSettings (line 632) | func toNilNilSettings(old versionone.NilNilSettings) versiontwo.NilNilSe...
  function toNlreturnSettings (line 639) | func toNlreturnSettings(old versionone.NlreturnSettings) versiontwo.Nlre...
  function toNoLintLintSettings (line 645) | func toNoLintLintSettings(old versionone.NoLintLintSettings) versiontwo....
  function toNoNamedReturnsSettings (line 654) | func toNoNamedReturnsSettings(old versionone.NoNamedReturnsSettings) ver...
  function toParallelTestSettings (line 660) | func toParallelTestSettings(old versionone.ParallelTestSettings) version...
  function toPerfSprintSettings (line 668) | func toPerfSprintSettings(old versionone.PerfSprintSettings) versiontwo....
  function toPreallocSettings (line 683) | func toPreallocSettings(old versionone.PreallocSettings) versiontwo.Prea...
  function toPredeclaredSettings (line 691) | func toPredeclaredSettings(old versionone.PredeclaredSettings) versiontw...
  function toPromlinterSettings (line 703) | func toPromlinterSettings(old versionone.PromlinterSettings) versiontwo....
  function toProtoGetterSettings (line 710) | func toProtoGetterSettings(old versionone.ProtoGetterSettings) versiontw...
  function toReassignSettings (line 719) | func toReassignSettings(old versionone.ReassignSettings) versiontwo.Reas...
  function toRecvcheckSettings (line 725) | func toRecvcheckSettings(old versionone.RecvcheckSettings) versiontwo.Re...
  function toReviveSettings (line 732) | func toReviveSettings(old versionone.ReviveSettings) versiontwo.ReviveSe...
  function toRowsErrCheckSettings (line 762) | func toRowsErrCheckSettings(old versionone.RowsErrCheckSettings) version...
  function toSlogLintSettings (line 768) | func toSlogLintSettings(old versionone.SlogLintSettings) versiontwo.Slog...
  function toSpancheckSettings (line 783) | func toSpancheckSettings(old versionone.SpancheckSettings) versiontwo.Sp...
  function toStaticCheckSettings (line 791) | func toStaticCheckSettings(old versionone.LintersSettings) versiontwo.St...
  function toTagAlignSettings (line 824) | func toTagAlignSettings(old versionone.TagAlignSettings) versiontwo.TagA...
  function toTagliatelleSettings (line 833) | func toTagliatelleSettings(old versionone.TagliatelleSettings) versiontw...
  function toTestifylintSettings (line 858) | func toTestifylintSettings(old versionone.TestifylintSettings) versiontw...
  function toTestpackageSettings (line 886) | func toTestpackageSettings(old versionone.TestpackageSettings) versiontw...
  function toThelperSettings (line 893) | func toThelperSettings(old versionone.ThelperSettings) versiontwo.Thelpe...
  function toUnconvertSettings (line 918) | func toUnconvertSettings(old versionone.UnconvertSettings) versiontwo.Un...
  function toUnparamSettings (line 925) | func toUnparamSettings(old versionone.UnparamSettings) versiontwo.Unpara...
  function toUnusedSettings (line 931) | func toUnusedSettings(old versionone.UnusedSettings) versiontwo.UnusedSe...
  function toUseStdlibVarsSettings (line 942) | func toUseStdlibVarsSettings(old versionone.UseStdlibVarsSettings) versi...
  function toUseTestingSettings (line 957) | func toUseTestingSettings(old versionone.UseTestingSettings) versiontwo....
  function toVarnamelenSettings (line 969) | func toVarnamelenSettings(old versionone.VarnamelenSettings) versiontwo....
  function toWhitespaceSettings (line 984) | func toWhitespaceSettings(old versionone.WhitespaceSettings) versiontwo....
  function toWrapcheckSettings (line 991) | func toWrapcheckSettings(old versionone.WrapcheckSettings) versiontwo.Wr...
  function toWSLSettings (line 1001) | func toWSLSettings(old versionone.WSLSettings) versiontwo.WSLv4Settings {
  function toCustom (line 1019) | func toCustom(old map[string]versionone.CustomLinterSettings) map[string...

FILE: pkg/commands/internal/migrate/migrate_output.go
  function toOutput (line 11) | func toOutput(old *versionone.Config) versiontwo.Output {
  function defaultFormatPath (line 81) | func defaultFormatPath(p string) string {
  function cleanIncompatibleFormats (line 89) | func cleanIncompatibleFormats(old versionone.OutputFormats, f1, f2 strin...

FILE: pkg/commands/internal/migrate/migrate_run.go
  function toRun (line 9) | func toRun(old *versionone.Config) versiontwo.Run {

FILE: pkg/commands/internal/migrate/migrate_severity.go
  function toSeverity (line 8) | func toSeverity(old *versionone.Config) versiontwo.Severity {

FILE: pkg/commands/internal/migrate/migrate_test.go
  type fakeFile (line 19) | type fakeFile struct
    method Name (line 28) | func (f *fakeFile) Name() string {
  function newFakeFile (line 24) | func newFakeFile(name string) *fakeFile {
  function TestToConfig (line 32) | func TestToConfig(t *testing.T) {
  function testFile (line 67) | func testFile(t *testing.T, in, golden string, update bool) {
  function updateGolden (line 101) | func updateGolden(t *testing.T, golden string, old *versionone.Config) {

FILE: pkg/commands/internal/migrate/parser/parser.go
  type File (line 16) | type File interface
  function Decode (line 23) | func Decode(file File, data any) error {
  function Encode (line 48) | func Encode(data any, dstFile File) error {

FILE: pkg/commands/internal/migrate/ptr/ptr.go
  function Deref (line 3) | func Deref[T any](v *T) T {
  function Pointer (line 12) | func Pointer[T any](v T) *T { return &v }

FILE: pkg/commands/internal/migrate/versionone/base_rule.go
  type BaseRule (line 3) | type BaseRule struct

FILE: pkg/commands/internal/migrate/versionone/config.go
  type Config (line 3) | type Config struct
  function NewConfig (line 16) | func NewConfig() *Config {

FILE: pkg/commands/internal/migrate/versionone/issues.go
  type Issues (line 3) | type Issues struct
  type ExcludeRule (line 30) | type ExcludeRule struct

FILE: pkg/commands/internal/migrate/versionone/linters.go
  type Linters (line 3) | type Linters struct

FILE: pkg/commands/internal/migrate/versionone/linters_settings.go
  type LintersSettings (line 11) | type LintersSettings struct
  type AsasalintSettings (line 101) | type AsasalintSettings struct
  type BiDiChkSettings (line 107) | type BiDiChkSettings struct
  type CopyLoopVarSettings (line 119) | type CopyLoopVarSettings struct
  type Cyclop (line 126) | type Cyclop struct
  type DepGuardSettings (line 132) | type DepGuardSettings struct
  type DepGuardList (line 136) | type DepGuardList struct
  type DepGuardDeny (line 143) | type DepGuardDeny struct
  type DecorderSettings (line 148) | type DecorderSettings struct
  type DogsledSettings (line 159) | type DogsledSettings struct
  type DuplSettings (line 163) | type DuplSettings struct
  type DupWordSettings (line 167) | type DupWordSettings struct
  type ErrcheckSettings (line 172) | type ErrcheckSettings struct
  type ErrChkJSONSettings (line 185) | type ErrChkJSONSettings struct
  type ErrorLintSettings (line 190) | type ErrorLintSettings struct
  type ErrorLintAllowPair (line 199) | type ErrorLintAllowPair struct
  type ExhaustiveSettings (line 204) | type ExhaustiveSettings struct
  type ExhaustructSettings (line 216) | type ExhaustructSettings struct
  type FatcontextSettings (line 221) | type FatcontextSettings struct
  type ForbidigoSettings (line 225) | type ForbidigoSettings struct
  type ForbidigoPattern (line 235) | type ForbidigoPattern struct
    method UnmarshalText (line 247) | func (p *ForbidigoPattern) UnmarshalText(text []byte) error {
    method MarshalString (line 258) | func (p *ForbidigoPattern) MarshalString() ([]byte, error) {
  type FunlenSettings (line 266) | type FunlenSettings struct
  type GinkgoLinterSettings (line 272) | type GinkgoLinterSettings struct
  type GoChecksumTypeSettings (line 287) | type GoChecksumTypeSettings struct
  type GocognitSettings (line 292) | type GocognitSettings struct
  type GoConstSettings (line 296) | type GoConstSettings struct
  type GoCriticSettings (line 308) | type GoCriticSettings struct
  type GoCriticCheckSettings (line 319) | type GoCriticCheckSettings
  type GoCycloSettings (line 321) | type GoCycloSettings struct
  type GodotSettings (line 325) | type GodotSettings struct
  type GodoxSettings (line 335) | type GodoxSettings struct
  type GoHeaderSettings (line 339) | type GoHeaderSettings struct
  type GoModDirectivesSettings (line 345) | type GoModDirectivesSettings struct
  type GoModGuardSettings (line 357) | type GoModGuardSettings struct
  type GoSecSettings (line 375) | type GoSecSettings struct
  type GosmopolitanSettings (line 385) | type GosmopolitanSettings struct
  type GovetSettings (line 392) | type GovetSettings struct
  type GrouperSettings (line 406) | type GrouperSettings struct
  type IfaceSettings (line 417) | type IfaceSettings struct
  type ImportAsSettings (line 422) | type ImportAsSettings struct
  type ImportAsAlias (line 428) | type ImportAsAlias struct
  type INamedParamSettings (line 433) | type INamedParamSettings struct
  type InterfaceBloatSettings (line 437) | type InterfaceBloatSettings struct
  type IreturnSettings (line 441) | type IreturnSettings struct
  type LllSettings (line 446) | type LllSettings struct
  type LoggerCheckSettings (line 451) | type LoggerCheckSettings struct
  type MaintIdxSettings (line 462) | type MaintIdxSettings struct
  type MakezeroSettings (line 466) | type MakezeroSettings struct
  type MisspellSettings (line 470) | type MisspellSettings struct
  type MisspellExtraWords (line 478) | type MisspellExtraWords struct
  type MustTagSettings (line 483) | type MustTagSettings struct
  type NakedretSettings (line 491) | type NakedretSettings struct
  type NestifSettings (line 495) | type NestifSettings struct
  type NilNilSettings (line 499) | type NilNilSettings struct
  type NlreturnSettings (line 504) | type NlreturnSettings struct
  type MndSettings (line 508) | type MndSettings struct
  type NoLintLintSettings (line 515) | type NoLintLintSettings struct
  type NoNamedReturnsSettings (line 522) | type NoNamedReturnsSettings struct
  type ParallelTestSettings (line 526) | type ParallelTestSettings struct
  type PerfSprintSettings (line 532) | type PerfSprintSettings struct
  type PreallocSettings (line 548) | type PreallocSettings struct
  type PredeclaredSettings (line 554) | type PredeclaredSettings struct
  type PromlinterSettings (line 559) | type PromlinterSettings struct
  type ProtoGetterSettings (line 564) | type ProtoGetterSettings struct
  type ReassignSettings (line 571) | type ReassignSettings struct
  type RecvcheckSettings (line 575) | type RecvcheckSettings struct
  type ReviveSettings (line 580) | type ReviveSettings struct
  type RowsErrCheckSettings (line 602) | type RowsErrCheckSettings struct
  type SlogLintSettings (line 606) | type SlogLintSettings struct
  type SpancheckSettings (line 619) | type SpancheckSettings struct
  type StaticCheckSettings (line 625) | type StaticCheckSettings struct
  type TagAlignSettings (line 632) | type TagAlignSettings struct
  type TagliatelleSettings (line 639) | type TagliatelleSettings struct
  type TagliatelleCase (line 643) | type TagliatelleCase struct
  type TagliatelleOverrides (line 648) | type TagliatelleOverrides struct
  type TagliatelleBase (line 654) | type TagliatelleBase struct
  type TagliatelleExtendedRule (line 661) | type TagliatelleExtendedRule struct
  type TestifylintSettings (line 667) | type TestifylintSettings struct
  type TestpackageSettings (line 699) | type TestpackageSettings struct
  type ThelperSettings (line 704) | type ThelperSettings struct
  type ThelperOptions (line 711) | type ThelperOptions struct
  type TenvSettings (line 717) | type TenvSettings struct
  type UseStdlibVarsSettings (line 721) | type UseStdlibVarsSettings struct
  type UseTestingSettings (line 739) | type UseTestingSettings struct
  type UnconvertSettings (line 749) | type UnconvertSettings struct
  type UnparamSettings (line 754) | type UnparamSettings struct
  type UnusedSettings (line 759) | type UnusedSettings struct
  type VarnamelenSettings (line 771) | type VarnamelenSettings struct
  type WhitespaceSettings (line 784) | type WhitespaceSettings struct
  type WrapcheckSettings (line 789) | type WrapcheckSettings struct
  type WSLSettings (line 798) | type WSLSettings struct
  type CustomLinterSettings (line 815) | type CustomLinterSettings struct
  type GciSettings (line 833) | type GciSettings struct
  type GoFmtSettings (line 845) | type GoFmtSettings struct
  type GoFmtRewriteRule (line 850) | type GoFmtRewriteRule struct
  type GoFumptSettings (line 855) | type GoFumptSettings struct
  type GoImportsSettings (line 863) | type GoImportsSettings struct

FILE: pkg/commands/internal/migrate/versionone/output.go
  type Output (line 9) | type Output struct
  type OutputFormat (line 19) | type OutputFormat struct
  type OutputFormats (line 24) | type OutputFormats
    method UnmarshalText (line 26) | func (p *OutputFormats) UnmarshalText(text []byte) error {

FILE: pkg/commands/internal/migrate/versionone/run.go
  type Run (line 8) | type Run struct

FILE: pkg/commands/internal/migrate/versionone/severity.go
  type Severity (line 3) | type Severity struct
  type SeverityRule (line 9) | type SeverityRule struct

FILE: pkg/commands/internal/migrate/versiontwo/base_rule.go
  type BaseRule (line 5) | type BaseRule struct

FILE: pkg/commands/internal/migrate/versiontwo/config.go
  type Config (line 5) | type Config struct

FILE: pkg/commands/internal/migrate/versiontwo/formatters.go
  type Formatters (line 5) | type Formatters struct
  type FormatterExclusions (line 11) | type FormatterExclusions struct

FILE: pkg/commands/internal/migrate/versiontwo/formatters_settings.go
  type FormatterSettings (line 5) | type FormatterSettings struct
  type GciSettings (line 13) | type GciSettings struct
  type GoFmtSettings (line 21) | type GoFmtSettings struct
  type GoFmtRewriteRule (line 26) | type GoFmtRewriteRule struct
  type GoFumptSettings (line 31) | type GoFumptSettings struct
  type GoImportsSettings (line 38) | type GoImportsSettings struct
  type GoLinesSettings (line 42) | type GoLinesSettings struct

FILE: pkg/commands/internal/migrate/versiontwo/issues.go
  type Issues (line 5) | type Issues struct

FILE: pkg/commands/internal/migrate/versiontwo/linters.go
  type Linters (line 5) | type Linters struct

FILE: pkg/commands/internal/migrate/versiontwo/linters_exclusions.go
  type LinterExclusions (line 5) | type LinterExclusions struct
  type ExcludeRule (line 14) | type ExcludeRule struct

FILE: pkg/commands/internal/migrate/versiontwo/linters_settings.go
  type LintersSettings (line 5) | type LintersSettings struct
  type AsasalintSettings (line 92) | type AsasalintSettings struct
  type BiDiChkSettings (line 97) | type BiDiChkSettings struct
  type CopyLoopVarSettings (line 109) | type CopyLoopVarSettings struct
  type CyclopSettings (line 113) | type CyclopSettings struct
  type DepGuardSettings (line 118) | type DepGuardSettings struct
  type DepGuardList (line 122) | type DepGuardList struct
  type DepGuardDeny (line 129) | type DepGuardDeny struct
  type DecorderSettings (line 134) | type DecorderSettings struct
  type DogsledSettings (line 145) | type DogsledSettings struct
  type DuplSettings (line 149) | type DuplSettings struct
  type DupWordSettings (line 153) | type DupWordSettings struct
  type EmbeddedStructFieldCheckSettings (line 158) | type EmbeddedStructFieldCheckSettings struct
  type ErrcheckSettings (line 162) | type ErrcheckSettings struct
  type ErrChkJSONSettings (line 170) | type ErrChkJSONSettings struct
  type ErrorLintSettings (line 175) | type ErrorLintSettings struct
  type ErrorLintAllowPair (line 184) | type ErrorLintAllowPair struct
  type ExhaustiveSettings (line 189) | type ExhaustiveSettings struct
  type ExhaustructSettings (line 200) | type ExhaustructSettings struct
  type FatcontextSettings (line 205) | type FatcontextSettings struct
  type ForbidigoSettings (line 209) | type ForbidigoSettings struct
  type ForbidigoPattern (line 215) | type ForbidigoPattern struct
  type FuncOrderSettings (line 221) | type FuncOrderSettings struct
  type FunlenSettings (line 227) | type FunlenSettings struct
  type GinkgoLinterSettings (line 233) | type GinkgoLinterSettings struct
  type GoChecksumTypeSettings (line 248) | type GoChecksumTypeSettings struct
  type GocognitSettings (line 253) | type GocognitSettings struct
  type GoConstSettings (line 257) | type GoConstSettings struct
  type GoCriticSettings (line 272) | type GoCriticSettings struct
  type GoCriticCheckSettings (line 283) | type GoCriticCheckSettings
  type GoCycloSettings (line 285) | type GoCycloSettings struct
  type GodotSettings (line 289) | type GodotSettings struct
  type GodoxSettings (line 296) | type GodoxSettings struct
  type GoHeaderSettings (line 300) | type GoHeaderSettings struct
  type GoModDirectivesSettings (line 306) | type GoModDirectivesSettings struct
  type GoModGuardSettings (line 318) | type GoModGuardSettings struct
  type GoModGuardAllowed (line 323) | type GoModGuardAllowed struct
  type GoModGuardBlocked (line 328) | type GoModGuardBlocked struct
  type GoModGuardModule (line 334) | type GoModGuardModule struct
  type GoModGuardVersion (line 339) | type GoModGuardVersion struct
  type GoSecSettings (line 344) | type GoSecSettings struct
  type GosmopolitanSettings (line 353) | type GosmopolitanSettings struct
  type GovetSettings (line 359) | type GovetSettings struct
  type GrouperSettings (line 370) | type GrouperSettings struct
  type IfaceSettings (line 381) | type IfaceSettings struct
  type ImportAsSettings (line 386) | type ImportAsSettings struct
  type ImportAsAlias (line 392) | type ImportAsAlias struct
  type INamedParamSettings (line 397) | type INamedParamSettings struct
  type InterfaceBloatSettings (line 401) | type InterfaceBloatSettings struct
  type IreturnSettings (line 405) | type IreturnSettings struct
  type LllSettings (line 410) | type LllSettings struct
  type LoggerCheckSettings (line 415) | type LoggerCheckSettings struct
  type MaintIdxSettings (line 426) | type MaintIdxSettings struct
  type MakezeroSettings (line 430) | type MakezeroSettings struct
  type MisspellSettings (line 434) | type MisspellSettings struct
  type MisspellExtraWords (line 441) | type MisspellExtraWords struct
  type MustTagSettings (line 446) | type MustTagSettings struct
  type MustTagFunction (line 450) | type MustTagFunction struct
  type NakedretSettings (line 456) | type NakedretSettings struct
  type NestifSettings (line 460) | type NestifSettings struct
  type NilNilSettings (line 464) | type NilNilSettings struct
  type NlreturnSettings (line 470) | type NlreturnSettings struct
  type MndSettings (line 474) | type MndSettings struct
  type NoLintLintSettings (line 481) | type NoLintLintSettings struct
  type NoNamedReturnsSettings (line 488) | type NoNamedReturnsSettings struct
  type ParallelTestSettings (line 492) | type ParallelTestSettings struct
  type PerfSprintSettings (line 498) | type PerfSprintSettings struct
  type PreallocSettings (line 514) | type PreallocSettings struct
  type PredeclaredSettings (line 520) | type PredeclaredSettings struct
  type PromlinterSettings (line 525) | type PromlinterSettings struct
  type ProtoGetterSettings (line 530) | type ProtoGetterSettings struct
  type ReassignSettings (line 537) | type ReassignSettings struct
  type RecvcheckSettings (line 541) | type RecvcheckSettings struct
  type ReviveSettings (line 546) | type ReviveSettings struct
  type ReviveRule (line 558) | type ReviveRule struct
  type ReviveDirective (line 566) | type ReviveDirective struct
  type RowsErrCheckSettings (line 571) | type RowsErrCheckSettings struct
  type SlogLintSettings (line 575) | type SlogLintSettings struct
  type SpancheckSettings (line 589) | type SpancheckSettings struct
  type StaticCheckSettings (line 595) | type StaticCheckSettings struct
  type TagAlignSettings (line 602) | type TagAlignSettings struct
  type TagliatelleSettings (line 609) | type TagliatelleSettings struct
  type TagliatelleCase (line 613) | type TagliatelleCase struct
  type TagliatelleOverrides (line 618) | type TagliatelleOverrides struct
  type TagliatelleBase (line 624) | type TagliatelleBase struct
  type TagliatelleExtendedRule (line 631) | type TagliatelleExtendedRule struct
  type TestifylintSettings (line 637) | type TestifylintSettings struct
  type TestifylintBoolCompare (line 651) | type TestifylintBoolCompare struct
  type TestifylintExpectedActual (line 655) | type TestifylintExpectedActual struct
  type TestifylintFormatter (line 659) | type TestifylintFormatter struct
  type TestifylintGoRequire (line 665) | type TestifylintGoRequire struct
  type TestifylintRequireError (line 669) | type TestifylintRequireError struct
  type TestifylintSuiteExtraAssertCall (line 673) | type TestifylintSuiteExtraAssertCall struct
  type TestpackageSettings (line 677) | type TestpackageSettings struct
  type ThelperSettings (line 682) | type ThelperSettings struct
  type ThelperOptions (line 689) | type ThelperOptions struct
  type UseStdlibVarsSettings (line 695) | type UseStdlibVarsSettings struct
  type UseTestingSettings (line 709) | type UseTestingSettings struct
  type UnconvertSettings (line 719) | type UnconvertSettings struct
  type UnparamSettings (line 724) | type UnparamSettings struct
  type UnusedSettings (line 728) | type UnusedSettings struct
  type VarnamelenSettings (line 737) | type VarnamelenSettings struct
  type WhitespaceSettings (line 750) | type WhitespaceSettings struct
  type WrapcheckSettings (line 755) | type WrapcheckSettings struct
  type WSLv4Settings (line 764) | type WSLv4Settings struct
  type WSLv5Settings (line 781) | type WSLv5Settings struct
  type CustomLinterSettings (line 791) | type CustomLinterSettings struct

FILE: pkg/commands/internal/migrate/versiontwo/output.go
  type Output (line 5) | type Output struct

FILE: pkg/commands/internal/migrate/versiontwo/output_formats.go
  type Formats (line 5) | type Formats struct
  type SimpleFormat (line 17) | type SimpleFormat struct
  type Text (line 21) | type Text struct
  type Tab (line 28) | type Tab struct
  type JUnitXML (line 34) | type JUnitXML struct

FILE: pkg/commands/internal/migrate/versiontwo/run.go
  type Run (line 9) | type Run struct

FILE: pkg/commands/internal/migrate/versiontwo/severity.go
  type Severity (line 5) | type Severity struct
  type SeverityRule (line 10) | type SeverityRule struct

FILE: pkg/commands/internal/vibra.go
  type FlagFunc (line 10) | type FlagFunc
  type FlagPFunc (line 12) | type FlagPFunc
  function AddFlagAndBind (line 15) | func AddFlagAndBind[T any](v *viper.Viper, fs *pflag.FlagSet, pfn FlagFu...
  function AddFlagAndBindP (line 25) | func AddFlagAndBindP[T any](v *viper.Viper, fs *pflag.FlagSet, pfn FlagP...
  function AddDeprecatedFlagAndBind (line 35) | func AddDeprecatedFlagAndBind[T any](v *viper.Viper, fs *pflag.FlagSet, ...
  function AddHackedStringSliceP (line 41) | func AddHackedStringSliceP(fs *pflag.FlagSet, name, shorthand, usage str...
  function AddHackedStringSlice (line 46) | func AddHackedStringSlice(fs *pflag.FlagSet, name, usage string) {
  function AddDeprecatedHackedStringSlice (line 51) | func AddDeprecatedHackedStringSlice(fs *pflag.FlagSet, name, usage strin...
  function deprecateFlag (line 56) | func deprecateFlag(fs *pflag.FlagSet, name string) {

FILE: pkg/commands/linters.go
  type lintersHelp (line 18) | type lintersHelp struct
  type lintersOptions (line 23) | type lintersOptions struct
  type lintersCommand (line 28) | type lintersCommand struct
    method preRunE (line 71) | func (c *lintersCommand) preRunE(cmd *cobra.Command, args []string) er...
    method execute (line 90) | func (c *lintersCommand) execute(_ *cobra.Command, _ []string) error {
  function newLintersCommand (line 41) | func newLintersCommand(logger logutils.Log) *lintersCommand {

FILE: pkg/commands/migrate.go
  type migrateOptions (line 25) | type migrateOptions struct
  type migrateCommand (line 31) | type migrateCommand struct
    method execute (line 83) | func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error {
    method preRunE (line 132) | func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error {
    method persistentPreRunE (line 171) | func (c *migrateCommand) persistentPreRunE(_ *cobra.Command, args []st...
    method backupConfigurationFile (line 191) | func (c *migrateCommand) backupConfigurationFile(srcPath string) error {
  function newMigrateCommand (line 44) | func newMigrateCommand(log logutils.Log, info BuildInfo) *migrateCommand {
  function saveNewConfiguration (line 215) | func saveNewConfiguration(cfg any, dstPath string) error {
  function callForAction (line 226) | func callForAction(cmd *cobra.Command) {

FILE: pkg/commands/root.go
  function Execute (line 16) | func Execute(info BuildInfo) error {
  type rootOptions (line 20) | type rootOptions struct
  type rootCommand (line 27) | type rootCommand struct
    method Execute (line 80) | func (c *rootCommand) Execute() error {
  function newRootCommand (line 34) | func newRootCommand(info BuildInfo) *rootCommand {
  function setupRootPersistentFlags (line 89) | func setupRootPersistentFlags(fs *pflag.FlagSet, opts *rootOptions) {
  function setupLogger (line 95) | func setupLogger(logger logutils.Log) error {
  function forceRootParsePersistentFlags (line 124) | func forceRootParsePersistentFlags() (*rootOptions, error) {
  function safeArgs (line 156) | func safeArgs(fs *pflag.FlagSet, args []string) []string {

FILE: pkg/commands/run.go
  constant defaultTimeout (line 47) | defaultTimeout = 0 * time.Minute
  constant envFailOnWarnings (line 51) | envFailOnWarnings = "FAIL_ON_WARNINGS"
  constant envMemLogEvery (line 53) | envMemLogEvery = "GL_MEM_LOG_EVERY"
  constant envMemProfileRate (line 57) | envMemProfileRate = "GL_MEM_PROFILE_RATE"
  type runOptions (line 60) | type runOptions struct
  type runCommand (line 70) | type runCommand struct
    method persistentPreRunE (line 148) | func (c *runCommand) persistentPreRunE(cmd *cobra.Command, args []stri...
    method persistentPostRunE (line 170) | func (c *runCommand) persistentPostRunE(_ *cobra.Command, _ []string) ...
    method preRunE (line 180) | func (c *runCommand) preRunE(_ *cobra.Command, args []string) error {
    method postRun (line 223) | func (c *runCommand) postRun(_ *cobra.Command, _ []string) {
    method execute (line 227) | func (c *runCommand) execute(_ *cobra.Command, _ []string) {
    method startTracing (line 265) | func (c *runCommand) startTracing() error {
    method stopTracing (line 295) | func (c *runCommand) stopTracing() error {
    method runAndPrint (line 323) | func (c *runCommand) runAndPrint(ctx context.Context) error {
    method runAnalysis (line 370) | func (c *runCommand) runAnalysis(ctx context.Context) ([]*result.Issue...
    method setOutputToDevNull (line 390) | func (c *runCommand) setOutputToDevNull() (savedStdout, savedStderr *o...
    method setExitCodeIfIssuesFound (line 402) | func (c *runCommand) setExitCodeIfIssuesFound(issues []*result.Issue) {
    method printDeprecatedLinterMessages (line 408) | func (c *runCommand) printDeprecatedLinterMessages(enabledLinters map[...
    method printStats (line 438) | func (c *runCommand) printStats(issues []*result.Issue) {
    method setupExitCode (line 462) | func (c *runCommand) setupExitCode(ctx context.Context) {
    method acquireFileLock (line 486) | func (c *runCommand) acquireFileLock() bool {
    method releaseFileLock (line 512) | func (c *runCommand) releaseFileLock() {
  function newRunCommand (line 99) | func newRunCommand(logger logutils.Log, info BuildInfo) *runCommand {
  function watchResources (line 525) | func watchResources(ctx context.Context, done chan struct{}, logger logu...
  function setupConfigFileFlagSet (line 581) | func setupConfigFileFlagSet(fs *pflag.FlagSet, cfg *config.LoaderOptions) {
  function setupRunPersistentFlags (line 586) | func setupRunPersistentFlags(fs *pflag.FlagSet, opts *runOptions) {
  function printMemStats (line 596) | func printMemStats(ms *runtime.MemStats, logger logutils.Log) {
  function formatMemory (line 611) | func formatMemory(memBytes uint64) string {
  function initHashSalt (line 626) | func initHashSalt(logger logutils.Log, version string, cfg *config.Confi...
  function computeBinarySalt (line 652) | func computeBinarySalt(version string) ([]byte, error) {
  function computeConfigSalt (line 685) | func computeConfigSalt(cfg *config.Config) ([]byte, error) {
  function computeGoModSalt (line 703) | func computeGoModSalt() (string, error) {

FILE: pkg/commands/version.go
  type BuildInfo (line 14) | type BuildInfo struct
    method String (line 22) | func (b BuildInfo) String() string {
  type versionOptions (line 27) | type versionOptions struct
  type versionCommand (line 33) | type versionCommand struct
    method execute (line 63) | func (c *versionCommand) execute(_ *cobra.Command, _ []string) error {
  function newVersionCommand (line 40) | func newVersionCommand(info BuildInfo) *versionCommand {
  function printVersion (line 88) | func printVersion(w io.Writer, info BuildInfo) error {

FILE: pkg/config/base_loader.go
  type BaseConfig (line 19) | type BaseConfig interface
  type BaseLoader (line 24) | type BaseLoader struct
    method Load (line 45) | func (l *BaseLoader) Load() error {
    method setConfigFile (line 59) | func (l *BaseLoader) setConfigFile() error {
    method evaluateOptions (line 83) | func (l *BaseLoader) evaluateOptions() (string, error) {
    method setupConfigFileSearch (line 100) | func (l *BaseLoader) setupConfigFileSearch() {
    method getConfigSearchPaths (line 112) | func (l *BaseLoader) getConfigSearchPaths() []string {
    method parseConfig (line 156) | func (l *BaseLoader) parseConfig() error {
    method setConfigDir (line 190) | func (l *BaseLoader) setConfigDir() error {
  function NewBaseLoader (line 35) | func NewBaseLoader(log logutils.Log, v *viper.Viper, opts LoaderOptions,...
  function customDecoderHook (line 219) | func customDecoderHook() viper.DecoderConfigOption {
  function DecodeHookFunc (line 223) | func DecodeHookFunc() mapstructure.DecodeHookFunc {

FILE: pkg/config/base_rule.go
  type BaseRule (line 9) | type BaseRule struct
    method Validate (line 20) | func (b *BaseRule) Validate(minConditionsCount int) error {
  function validateOptionalRegex (line 68) | func validateOptionalRegex(value string) error {

FILE: pkg/config/config.go
  constant defaultGoVersion (line 22) | defaultGoVersion = "1.22"
  type Config (line 25) | type Config struct
    method GetConfigDir (line 47) | func (c *Config) GetConfigDir() string {
    method SetConfigDir (line 52) | func (c *Config) SetConfigDir(dir string) {
    method GetBasePath (line 56) | func (c *Config) GetBasePath() string {
    method IsInternalTest (line 60) | func (c *Config) IsInternalTest() bool {
    method Validate (line 64) | func (c *Config) Validate() error {
  function NewDefault (line 82) | func NewDefault() *Config {
  function IsGoGreaterThanOrEqual (line 93) | func IsGoGreaterThanOrEqual(current, limit string) bool {
  function detectGoVersion (line 107) | func detectGoVersion(ctx context.Context, log logutils.Log) string {
  function detectGoVersionFromGoMod (line 116) | func detectGoVersionFromGoMod(ctx context.Context, log logutils.Log) str...
  function parseGoVersion (line 150) | func parseGoVersion(v string) string {
  function parseGoMod (line 165) | func parseGoMod(goMod string) (*modfile.File, error) {
  function detectGoModFallback (line 174) | func detectGoModFallback(ctx context.Context) string {

FILE: pkg/config/config_test.go
  function TestIsGoGreaterThanOrEqual (line 9) | func TestIsGoGreaterThanOrEqual(t *testing.T) {
  function Test_parseGoVersion (line 87) | func Test_parseGoVersion(t *testing.T) {

FILE: pkg/config/formatters.go
  type Formatters (line 8) | type Formatters struct
    method Validate (line 14) | func (f *Formatters) Validate() error {
  type FormatterExclusions (line 24) | type FormatterExclusions struct

FILE: pkg/config/formatters_settings.go
  type FormatterSettings (line 18) | type FormatterSettings struct
  type GciSettings (line 26) | type GciSettings struct
  type GoFmtSettings (line 34) | type GoFmtSettings struct
  type GoFmtRewriteRule (line 39) | type GoFmtRewriteRule struct
  type GoFumptSettings (line 44) | type GoFumptSettings struct
  type GoImportsSettings (line 51) | type GoImportsSettings struct
  type GoLinesSettings (line 55) | type GoLinesSettings struct

FILE: pkg/config/issues.go
  type Issues (line 3) | type Issues struct

FILE: pkg/config/linters.go
  constant GroupStandard (line 9) | GroupStandard = "standard"
  constant GroupAll (line 10) | GroupAll      = "all"
  constant GroupNone (line 11) | GroupNone     = "none"
  constant GroupFast (line 12) | GroupFast     = "fast"
  type Linters (line 15) | type Linters struct
    method Validate (line 26) | func (l *Linters) Validate() error {
    method validateNoFormatters (line 41) | func (l *Linters) validateNoFormatters() error {
  function getAllFormatterNames (line 51) | func getAllFormatterNames() []string {

FILE: pkg/config/linters_exclusions.go
  constant GeneratedModeLax (line 9) | GeneratedModeLax     = "lax"
  constant GeneratedModeStrict (line 10) | GeneratedModeStrict  = "strict"
  constant GeneratedModeDisable (line 11) | GeneratedModeDisable = "disable"
  constant ExclusionPresetComments (line 15) | ExclusionPresetComments             = "comments"
  constant ExclusionPresetStdErrorHandling (line 16) | ExclusionPresetStdErrorHandling     = "std-error-handling"
  constant ExclusionPresetCommonFalsePositives (line 17) | ExclusionPresetCommonFalsePositives = "common-false-positives"
  constant ExclusionPresetLegacy (line 18) | ExclusionPresetLegacy               = "legacy"
  constant excludeRuleMinConditionsCount (line 21) | excludeRuleMinConditionsCount = 2
  type LinterExclusions (line 23) | type LinterExclusions struct
    method Validate (line 32) | func (e *LinterExclusions) Validate() error {
  type ExcludeRule (line 55) | type ExcludeRule struct
    method Validate (line 59) | func (e *ExcludeRule) Validate() error {

FILE: pkg/config/linters_exclusions_test.go
  function TestLinterExclusions_Validate (line 9) | func TestLinterExclusions_Validate(t *testing.T) {
  function TestLinterExclusions_Validate_error (line 36) | func TestLinterExclusions_Validate_error(t *testing.T) {

FILE: pkg/config/linters_settings.go
  type LintersSettings (line 239) | type LintersSettings struct
    method Validate (line 331) | func (s *LintersSettings) Validate() error {
  type AsasalintSettings (line 345) | type AsasalintSettings struct
  type BiDiChkSettings (line 350) | type BiDiChkSettings struct
  type CopyLoopVarSettings (line 362) | type CopyLoopVarSettings struct
  type CyclopSettings (line 366) | type CyclopSettings struct
  type DepGuardSettings (line 371) | type DepGuardSettings struct
  type DepGuardList (line 375) | type DepGuardList struct
  type DepGuardDeny (line 382) | type DepGuardDeny struct
  type DecorderSettings (line 387) | type DecorderSettings struct
  type DogsledSettings (line 398) | type DogsledSettings struct
  type DuplSettings (line 402) | type DuplSettings struct
  type DupWordSettings (line 406) | type DupWordSettings struct
  type EmbeddedStructFieldCheckSettings (line 412) | type EmbeddedStructFieldCheckSettings struct
  type ErrcheckSettings (line 417) | type ErrcheckSettings struct
  type ErrChkJSONSettings (line 425) | type ErrChkJSONSettings struct
  type ErrorLintSettings (line 430) | type ErrorLintSettings struct
  type ErrorLintAllowPair (line 439) | type ErrorLintAllowPair struct
  type ExhaustiveSettings (line 444) | type ExhaustiveSettings struct
  type ExhaustructSettings (line 455) | type ExhaustructSettings struct
  type FatcontextSettings (line 464) | type FatcontextSettings struct
  type ForbidigoSettings (line 468) | type ForbidigoSettings struct
  type ForbidigoPattern (line 474) | type ForbidigoPattern struct
  type FuncOrderSettings (line 480) | type FuncOrderSettings struct
  type FunlenSettings (line 486) | type FunlenSettings struct
  type GinkgoLinterSettings (line 492) | type GinkgoLinterSettings struct
  type GoChecksumTypeSettings (line 509) | type GoChecksumTypeSettings struct
  type GocognitSettings (line 514) | type GocognitSettings struct
  type GoConstSettings (line 518) | type GoConstSettings struct
  type GoCriticSettings (line 534) | type GoCriticSettings struct
  type GoCriticCheckSettings (line 545) | type GoCriticCheckSettings
  type GoCycloSettings (line 547) | type GoCycloSettings struct
  type GodoclintSettings (line 551) | type GodoclintSettings struct
  type GodotSettings (line 569) | type GodotSettings struct
  type GodoxSettings (line 576) | type GodoxSettings struct
  type GoHeaderSettings (line 580) | type GoHeaderSettings struct
  type GoModDirectivesSettings (line 586) | type GoModDirectivesSettings struct
  type GoModGuardSettings (line 599) | type GoModGuardSettings struct
  type GoModGuardAllowed (line 604) | type GoModGuardAllowed struct
  type GoModGuardBlocked (line 609) | type GoModGuardBlocked struct
  type GoModGuardModule (line 615) | type GoModGuardModule struct
  type GoModGuardVersion (line 620) | type GoModGuardVersion struct
  type GoSecSettings (line 625) | type GoSecSettings struct
  type GosmopolitanSettings (line 634) | type GosmopolitanSettings struct
  type GovetSettings (line 640) | type GovetSettings struct
    method Validate (line 651) | func (cfg *GovetSettings) Validate() error {
  type GrouperSettings (line 664) | type GrouperSettings struct
  type IfaceSettings (line 675) | type IfaceSettings struct
  type ImportAsSettings (line 680) | type ImportAsSettings struct
  type ImportAsAlias (line 686) | type ImportAsAlias struct
  type INamedParamSettings (line 691) | type INamedParamSettings struct
  type IneffassignSettings (line 695) | type IneffassignSettings struct
  type InterfaceBloatSettings (line 699) | type InterfaceBloatSettings struct
  type IotaMixingSettings (line 703) | type IotaMixingSettings struct
  type IreturnSettings (line 707) | type IreturnSettings struct
  type LllSettings (line 712) | type LllSettings struct
  type LoggerCheckSettings (line 717) | type LoggerCheckSettings struct
  type MaintIdxSettings (line 728) | type MaintIdxSettings struct
  type MakezeroSettings (line 732) | type MakezeroSettings struct
  type MisspellSettings (line 736) | type MisspellSettings struct
  type MisspellExtraWords (line 743) | type MisspellExtraWords struct
  type MustTagSettings (line 748) | type MustTagSettings struct
  type MustTagFunction (line 752) | type MustTagFunction struct
  type NakedretSettings (line 758) | type NakedretSettings struct
  type NestifSettings (line 762) | type NestifSettings struct
  type NilNilSettings (line 766) | type NilNilSettings struct
  type NlreturnSettings (line 772) | type NlreturnSettings struct
  type MndSettings (line 776) | type MndSettings struct
  type ModernizeSettings (line 783) | type ModernizeSettings struct
  type NoLintLintSettings (line 787) | type NoLintLintSettings struct
  type NoNamedReturnsSettings (line 794) | type NoNamedReturnsSettings struct
  type ParallelTestSettings (line 798) | type ParallelTestSettings struct
  type PerfSprintSettings (line 804) | type PerfSprintSettings struct
  type PreallocSettings (line 823) | type PreallocSettings struct
  type PredeclaredSettings (line 829) | type PredeclaredSettings struct
  type PromlinterSettings (line 834) | type PromlinterSettings struct
  type ProtoGetterSettings (line 839) | type ProtoGetterSettings struct
  type ReassignSettings (line 846) | type ReassignSettings struct
  type RecvcheckSettings (line 850) | type RecvcheckSettings struct
  type ReviveSettings (line 855) | type ReviveSettings struct
  type ReviveRule (line 868) | type ReviveRule struct
  type ReviveDirective (line 876) | type ReviveDirective struct
  type RowsErrCheckSettings (line 881) | type RowsErrCheckSettings struct
  type SlogLintSettings (line 885) | type SlogLintSettings struct
  type SpancheckSettings (line 899) | type SpancheckSettings struct
  type StaticCheckSettings (line 905) | type StaticCheckSettings struct
    method HasConfiguration (line 912) | func (s *StaticCheckSettings) HasConfiguration() bool {
  type TagAlignSettings (line 916) | type TagAlignSettings struct
  type TagliatelleSettings (line 923) | type TagliatelleSettings struct
  type TagliatelleCase (line 927) | type TagliatelleCase struct
  type TagliatelleOverrides (line 932) | type TagliatelleOverrides struct
  type TagliatelleBase (line 938) | type TagliatelleBase struct
  type TagliatelleExtendedRule (line 945) | type TagliatelleExtendedRule struct
  type TestifylintSettings (line 951) | type TestifylintSettings struct
  type TestifylintBoolCompare (line 965) | type TestifylintBoolCompare struct
  type TestifylintExpectedActual (line 969) | type TestifylintExpectedActual struct
  type TestifylintFormatter (line 973) | type TestifylintFormatter struct
  type TestifylintGoRequire (line 979) | type TestifylintGoRequire struct
  type TestifylintRequireError (line 983) | type TestifylintRequireError struct
  type TestifylintSuiteExtraAssertCall (line 987) | type TestifylintSuiteExtraAssertCall struct
  type TestpackageSettings (line 991) | type TestpackageSettings struct
  type ThelperSettings (line 996) | type ThelperSettings struct
  type ThelperOptions (line 1003) | type ThelperOptions struct
  type UseStdlibVarsSettings (line 1009) | type UseStdlibVarsSettings struct
  type UseTestingSettings (line 1023) | type UseTestingSettings struct
  type UnconvertSettings (line 1033) | type UnconvertSettings struct
  type UnparamSettings (line 1038) | type UnparamSettings struct
  type UnqueryvetSettings (line 1042) | type UnqueryvetSettings struct
  type UnqueryvetSQLBuildersSettings (line 1059) | type UnqueryvetSQLBuildersSettings struct
  type UnqueryvetCustomRule (line 1070) | type UnqueryvetCustomRule struct
  type UnusedSettings (line 1079) | type UnusedSettings struct
  type VarnamelenSettings (line 1088) | type VarnamelenSettings struct
  type WhitespaceSettings (line 1101) | type WhitespaceSettings struct
  type WrapcheckSettings (line 1106) | type WrapcheckSettings struct
  type WSLv4Settings (line 1116) | type WSLv4Settings struct
  type WSLv5Settings (line 1133) | type WSLv5Settings struct
  type CustomLinterSettings (line 1144) | type CustomLinterSettings struct
    method Validate (line 1162) | func (s *CustomLinterSettings) Validate() error {

FILE: pkg/config/linters_settings_test.go
  function TestLintersSettings_Validate (line 9) | func TestLintersSettings_Validate(t *testing.T) {
  function TestLintersSettings_Validate_error (line 45) | func TestLintersSettings_Validate_error(t *testing.T) {
  function TestCustomLinterSettings_Validate (line 86) | func TestCustomLinterSettings_Validate(t *testing.T) {
  function TestCustomLinterSettings_Validate_error (line 122) | func TestCustomLinterSettings_Validate_error(t *testing.T) {
  function TestGovetSettings_Validate (line 154) | func TestGovetSettings_Validate(t *testing.T) {
  function TestGovetSettings_Validate_error (line 189) | func TestGovetSettings_Validate_error(t *testing.T) {

FILE: pkg/config/loader.go
  constant modeLinters (line 21) | modeLinters    = "linters"
  constant modeFormatters (line 22) | modeFormatters = "formatters"
  type LoaderOptions (line 25) | type LoaderOptions struct
  type LoadOptions (line 30) | type LoadOptions struct
  type Loader (line 35) | type Loader struct
    method Load (line 67) | func (l *Loader) Load(opts LoadOptions) error {
    method applyStringSliceHack (line 136) | func (l *Loader) applyStringSliceHack() {
    method appendStringSlice (line 146) | func (l *Loader) appendStringSlice(name string, current *[]string) {
    method checkConfigurationVersion (line 153) | func (l *Loader) checkConfigurationVersion() error {
    method handleGoVersion (line 162) | func (l *Loader) handleGoVersion() {
    method handleDeprecation (line 183) | func (l *Loader) handleDeprecation() error {
    method handleLinterOptionDeprecations (line 193) | func (l *Loader) handleLinterOptionDeprecations() {
    method handleEnableOnlyOption (line 204) | func (l *Loader) handleEnableOnlyOption() error {
    method handleFormatters (line 229) | func (l *Loader) handleFormatters() {
    method handleFormatterOverrides (line 235) | func (l *Loader) handleFormatterOverrides() {
    method handleFormatterExclusions (line 258) | func (l *Loader) handleFormatterExclusions() {
    method handleFormatterDeprecations (line 273) | func (*Loader) handleFormatterDeprecations() {
  function NewLintersLoader (line 45) | func NewLintersLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSe...
  function NewFormattersLoader (line 52) | func NewFormattersLoader(log logutils.Log, v *viper.Viper, fs *pflag.Fla...
  function newLoader (line 59) | func newLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts...

FILE: pkg/config/output.go
  type Output (line 11) | type Output struct
    method Validate (line 19) | func (o *Output) Validate() error {
    method validateSortOrder (line 34) | func (o *Output) validateSortOrder() error {
    method validatePathMode (line 52) | func (o *Output) validatePathMode() error {

FILE: pkg/config/output_formats.go
  type Formats (line 3) | type Formats struct
    method IsEmpty (line 15) | func (f *Formats) IsEmpty() bool {
  type SimpleFormat (line 37) | type SimpleFormat struct
  type Text (line 41) | type Text struct
  type Tab (line 48) | type Tab struct
  type JUnitXML (line 54) | type JUnitXML struct

FILE: pkg/config/output_test.go
  function TestOutput_Validate (line 11) | func TestOutput_Validate(t *testing.T) {
  function TestOutput_Validate_error (line 64) | func TestOutput_Validate_error(t *testing.T) {

FILE: pkg/config/placeholders.go
  constant placeholderBasePath (line 7) | placeholderBasePath = "${base-path}"
  constant placeholderConfigPath (line 10) | placeholderConfigPath = "${config-path}"
  function NewPlaceholderReplacer (line 13) | func NewPlaceholderReplacer(cfg *Config) *strings.Replacer {

FILE: pkg/config/run.go
  type Run (line 13) | type Run struct
    method Validate (line 33) | func (r *Run) Validate() error {

FILE: pkg/config/run_test.go
  function TestRun_Validate (line 9) | func TestRun_Validate(t *testing.T) {
  function TestRun_Validate_error (line 50) | func TestRun_Validate_error(t *testing.T) {

FILE: pkg/config/severity.go
  constant severityRuleMinConditionsCount (line 8) | severityRuleMinConditionsCount = 1
  type Severity (line 10) | type Severity struct
    method Validate (line 15) | func (s *Severity) Validate() error {
  type SeverityRule (line 29) | type SeverityRule struct
    method Validate (line 34) | func (s *SeverityRule) Validate() error {

FILE: pkg/config/severity_test.go
  function TestSeverity_Validate (line 9) | func TestSeverity_Validate(t *testing.T) {
  function TestSeverity_Validate_error (line 60) | func TestSeverity_Validate_error(t *testing.T) {
  function TestSeverityRule_Validate (line 107) | func TestSeverityRule_Validate(t *testing.T) {
  function TestSeverityRule_Validate_error (line 119) | func TestSeverityRule_Validate_error(t *testing.T) {

FILE: pkg/exitcodes/exitcodes.go
  constant Success (line 4) | Success = iota
  constant IssuesFound (line 5) | IssuesFound
  constant WarningInTest (line 6) | WarningInTest
  constant Failure (line 7) | Failure
  constant Timeout (line 8) | Timeout
  constant NoGoFiles (line 9) | NoGoFiles
  constant NoConfigFileDetected (line 10) | NoConfigFileDetected
  constant ErrorWasLogged (line 11) | ErrorWasLogged
  type ExitError (line 14) | type ExitError struct
    method Error (line 19) | func (e ExitError) Error() string {

FILE: pkg/fsutils/basepath.go
  constant RelativePathModeGoMod (line 16) | RelativePathModeGoMod   = "gomod"
  constant RelativePathModeGitRoot (line 17) | RelativePathModeGitRoot = "gitroot"
  constant RelativePathModeCfg (line 18) | RelativePathModeCfg     = "cfg"
  constant RelativePathModeWd (line 19) | RelativePathModeWd      = "wd"
  constant OutputPathModeAbsolute (line 23) | OutputPathModeAbsolute = "abs"
  function AllRelativePathModes (line 25) | func AllRelativePathModes() []string {
  function GetBasePath (line 29) | func GetBasePath(ctx context.Context, mode, cfgDir string) (string, erro...
  function gitRoot (line 69) | func gitRoot(ctx context.Context) (string, error) {

FILE: pkg/fsutils/filecache.go
  type FileCache (line 11) | type FileCache struct
    method GetFileBytes (line 19) | func (fc *FileCache) GetFileBytes(filePath string) ([]byte, error) {
    method PrintStats (line 54) | func (fc *FileCache) PrintStats(log logutils.Log) {
  function NewFileCache (line 15) | func NewFileCache() *FileCache {
  function PrettifyBytesCount (line 34) | func PrettifyBytesCount(n int64) string {

FILE: pkg/fsutils/fsutils.go
  function IsDir (line 10) | func IsDir(filename string) bool {
  function UseWdCache (line 22) | func UseWdCache(use bool) {
  function Getwd (line 26) | func Getwd() (string, error) {
  type evalSymlinkRes (line 51) | type evalSymlinkRes struct
  function EvalSymlinks (line 56) | func EvalSymlinks(path string) (string, error) {
  function ShortestRelPath (line 70) | func ShortestRelPath(path, wd string) (string, error) {

FILE: pkg/fsutils/fsutils_test.go
  function TestShortestRelPath (line 11) | func TestShortestRelPath(t *testing.T) {

FILE: pkg/fsutils/fsutils_unix.go
  function evalSymlinks (line 7) | func evalSymlinks(path string) (string, error) {

FILE: pkg/fsutils/fsutils_windows.go
  function evalSymlinks (line 22) | func evalSymlinks(path string) (string, error) {

FILE: pkg/fsutils/linecache.go
  type fileLinesCache (line 9) | type fileLinesCache
  type LineCache (line 11) | type LineCache struct
    method GetLine (line 23) | func (lc *LineCache) GetLine(filePath string, index1 int) (string, err...
    method getRawLine (line 37) | func (lc *LineCache) getRawLine(filePath string, index0 int) ([]byte, ...
    method getFileCache (line 54) | func (lc *LineCache) getFileCache(filePath string) (fileLinesCache, er...
  function NewLineCache (line 16) | func NewLineCache(fc *FileCache) *LineCache {

FILE: pkg/fsutils/path_unix.go
  function NormalizePathInRegex (line 6) | func NormalizePathInRegex(path string) string {

FILE: pkg/fsutils/path_windows.go
  function NormalizePathInRegex (line 17) | func NormalizePathInRegex(path string) string {

FILE: pkg/goanalysis/issue.go
  type Issue (line 11) | type Issue struct
  function NewIssue (line 16) | func NewIssue(issue *result.Issue, pass *analysis.Pass) *Issue {
  type EncodingIssue (line 23) | type EncodingIssue struct

FILE: pkg/goanalysis/linter.go
  type LoadMode (line 16) | type LoadMode
    method String (line 18) | func (loadMode LoadMode) String() string {
  constant LoadModeNone (line 33) | LoadModeNone LoadMode = iota
  constant LoadModeSyntax (line 34) | LoadModeSyntax
  constant LoadModeTypesInfo (line 35) | LoadModeTypesInfo
  constant LoadModeWholeProgram (line 36) | LoadModeWholeProgram
  type Linter (line 39) | type Linter struct
    method Run (line 57) | func (lnt *Linter) Run(_ context.Context, lintCtx *linter.Context) ([]...
    method UseOriginalPackages (line 65) | func (lnt *Linter) UseOriginalPackages() {
    method LoadMode (line 69) | func (lnt *Linter) LoadMode() LoadMode {
    method WithDesc (line 73) | func (lnt *Linter) WithDesc(desc string) *Linter {
    method WithVersion (line 79) | func (lnt *Linter) WithVersion(v int) *Linter {
    method WithConfig (line 98) | func (lnt *Linter) WithConfig(cfg map[string]any) *Linter {
    method WithLoadMode (line 110) | func (lnt *Linter) WithLoadMode(loadMode LoadMode) *Linter {
    method WithIssuesReporter (line 115) | func (lnt *Linter) WithIssuesReporter(r func(*linter.Context) []*Issue...
    method WithContextSetter (line 120) | func (lnt *Linter) WithContextSetter(cs func(*linter.Context)) *Linter {
    method Name (line 125) | func (lnt *Linter) Name() string {
    method Desc (line 129) | func (lnt *Linter) Desc() string {
    method allAnalyzerNames (line 133) | func (lnt *Linter) allAnalyzerNames() []string {
    method configureAnalyzer (line 141) | func (*Linter) configureAnalyzer(a *analysis.Analyzer, cfg map[string]...
    method configure (line 162) | func (lnt *Linter) configure() error {
    method preRun (line 183) | func (lnt *Linter) preRun(lintCtx *linter.Context) error {
    method getName (line 199) | func (lnt *Linter) getName() string {
    method getLinterNameForDiagnostic (line 203) | func (lnt *Linter) getLinterNameForDiagnostic(*Diagnostic) string {
    method getAnalyzers (line 207) | func (lnt *Linter) getAnalyzers() []*analysis.Analyzer {
    method useOriginalPackages (line 211) | func (lnt *Linter) useOriginalPackages() bool {
    method reportIssues (line 215) | func (lnt *Linter) reportIssues(lintCtx *linter.Context) []*Issue {
    method getLoadMode (line 222) | func (lnt *Linter) getLoadMode() LoadMode {
  function NewLinter (line 49) | func NewLinter(name, desc string, analyzers []*analysis.Analyzer, cfg ma...
  function NewLinterFromAnalyzer (line 53) | func NewLinterFromAnalyzer(analyzer *analysis.Analyzer) *Linter {
  function allFlagNames (line 226) | func allFlagNames(fs *flag.FlagSet) []string {
  function valueToString (line 234) | func valueToString(v any) string {
  function DummyRun (line 251) | func DummyRun(_ *analysis.Pass) (any, error) {

FILE: pkg/goanalysis/load/guard.go
  type Guard (line 9) | type Guard struct
    method AddMutexForPkg (line 20) | func (g *Guard) AddMutexForPkg(pkg *packages.Package) {
    method MutexForPkg (line 24) | func (g *Guard) MutexForPkg(pkg *packages.Package) *sync.Mutex {
    method Mutex (line 28) | func (g *Guard) Mutex() *sync.Mutex {
  function NewGuard (line 14) | func NewGuard() *Guard {

FILE: pkg/goanalysis/metalinter.go
  type MetaLinter (line 13) | type MetaLinter struct
    method Run (line 24) | func (ml MetaLinter) Run(_ context.Context, lintCtx *linter.Context) (...
    method Name (line 34) | func (MetaLinter) Name() string {
    method Desc (line 38) | func (MetaLinter) Desc() string {
    method getLoadMode (line 42) | func (ml MetaLinter) getLoadMode() LoadMode {
    method getAnalyzers (line 52) | func (ml MetaLinter) getAnalyzers() []*analysis.Analyzer {
    method getName (line 60) | func (MetaLinter) getName() string {
    method useOriginalPackages (line 64) | func (MetaLinter) useOriginalPackages() bool {
    method reportIssues (line 68) | func (ml MetaLinter) reportIssues(lintCtx *linter.Context) []*Issue {
    method getLinterNameForDiagnostic (line 78) | func (ml MetaLinter) getLinterNameForDiagnostic(diag *Diagnostic) stri...
    method getAnalyzerToLinterNameMapping (line 82) | func (ml MetaLinter) getAnalyzerToLinterNameMapping() map[*analysis.An...
  function NewMetaLinter (line 18) | func NewMetaLinter(linters []*Linter) *MetaLinter {

FILE: pkg/goanalysis/pkgerrors/errors.go
  type IllTypedError (line 13) | type IllTypedError struct
    method Error (line 17) | func (e *IllTypedError) Error() string {
  function BuildIssuesFromIllTypedError (line 21) | func BuildIssuesFromIllTypedError(errs []error, lintCtx *linter.Context)...

FILE: pkg/goanalysis/pkgerrors/extract.go
  function extractErrors (line 16) | func extractErrors(pkg *packages.Package) []packages.Error {
  function extractErrorsImpl (line 85) | func extractErrorsImpl(pkg *packages.Package, seenPackages map[*packages...
  function stackCrusher (line 110) | func stackCrusher(msg string) string {

FILE: pkg/goanalysis/pkgerrors/extract_test.go
  function Test_extractErrors (line 10) | func Test_extractErrors(t *testing.T) {
  function Test_stackCrusher (line 131) | func Test_stackCrusher(t *testing.T) {

FILE: pkg/goanalysis/pkgerrors/parse.go
  function parseError (line 15) | func parseError(srcErr packages.Error) (*result.Issue, error) {
  function parseErrorPosition (line 28) | func parseErrorPosition(pos string) (*token.Position, error) {

FILE: pkg/goanalysis/pkgerrors/parse_test.go
  function Test_parseError (line 11) | func Test_parseError(t *testing.T) {

FILE: pkg/goanalysis/position.go
  function GetGoFilePosition (line 11) | func GetGoFilePosition(pass *analysis.Pass, f *ast.File) (token.Position...
  function GetFilePositionFor (line 21) | func GetFilePositionFor(fset *token.FileSet, p token.Pos) token.Position {
  function EndOfLinePos (line 33) | func EndOfLinePos(f *token.File, line int) token.Pos {
  function AdjustPos (line 48) | func AdjustPos(line, nonAdjLine, adjLine int) int {

FILE: pkg/goanalysis/runner.go
  type Diagnostic (line 41) | type Diagnostic struct
  type runner (line 49) | type runner struct
    method run (line 80) | func (r *runner) run(analyzers []*analysis.Analyzer, initialPackages [...
    method markAllActions (line 97) | func (r *runner) markAllActions(a *analysis.Analyzer, pkg *packages.Pa...
    method makeAction (line 116) | func (r *runner) makeAction(a *analysis.Analyzer, pkg *packages.Package,
    method buildActionFactDeps (line 151) | func (r *runner) buildActionFactDeps(act *action, a *analysis.Analyzer...
    method prepareAnalysis (line 176) | func (r *runner) prepareAnalysis(pkgs []*packages.Package,
    method analyze (line 220) | func (r *runner) analyze(pkgs []*packages.Package, analyzers []*analys...
  function newRunner (line 60) | func newRunner(prefix string, logger logutils.Log, pkgCache *cache.Cache...
  type actKey (line 92) | type actKey struct
  function extractDiagnostics (line 284) | func extractDiagnostics(roots []*action) (retDiags []*Diagnostic, retErr...

FILE: pkg/goanalysis/runner_action.go
  type actionAllocator (line 11) | type actionAllocator struct
    method alloc (line 23) | func (actAlloc *actionAllocator) alloc() *action {
  function newActionAllocator (line 16) | func newActionAllocator(maxCount int) *actionAllocator {
  method waitUntilDependingAnalyzersWorked (line 32) | func (act *action) waitUntilDependingAnalyzersWorked(ctx context.Context) {
  method analyzeSafe (line 44) | func (act *action) analyzeSafe() {
  method markDepsForAnalyzingSource (line 62) | func (act *action) markDepsForAnalyzingSource() {

FILE: pkg/goanalysis/runner_action_cache.go
  type Fact (line 14) | type Fact struct
  method loadCachedFacts (line 19) | func (act *action) loadCachedFacts() bool {
  method persistFactsToCache (line 40) | func (act *action) persistFactsToCache() error {
  method loadPersistedFacts (line 82) | func (act *action) loadPersistedFacts() bool {
  function factCacheKey (line 124) | func factCacheKey(a *analysis.Analyzer) string {

FILE: pkg/goanalysis/runner_action_test.go
  function Test_action_markDepsForAnalyzingSource (line 10) | func Test_action_markDepsForAnalyzingSource(t *testing.T) {

FILE: pkg/goanalysis/runner_checker.go
  type action (line 31) | type action struct
    method String (line 67) | func (act *action) String() string {
    method analyze (line 72) | func (act *action) analyze() {
    method ObjectFact (line 346) | func (act *action) ObjectFact(obj types.Object, ptr analysis.Fact) bool {
    method exportObjectFact (line 360) | func (act *action) exportObjectFact(obj types.Object, fact analysis.Fa...
    method AllObjectFacts (line 385) | func (act *action) AllObjectFacts() []analysis.ObjectFact {
    method PackageFact (line 398) | func (act *action) PackageFact(pkg *types.Package, ptr analysis.Fact) ...
    method exportPackageFact (line 412) | func (act *action) exportPackageFact(fact analysis.Fact) {
    method factType (line 425) | func (act *action) factType(fact analysis.Fact) reflect.Type {
    method AllPackageFacts (line 438) | func (act *action) AllPackageFacts() []analysis.PackageFact {
  type objectFactKey (line 55) | type objectFactKey struct
  type packageFactKey (line 61) | type packageFactKey struct
  function inheritFacts (line 221) | func inheritFacts(act, dep *action) {
  function codeFact (line 285) | func codeFact(fact analysis.Fact) (analysis.Fact, error) {
  function exportedFrom (line 320) | func exportedFrom(obj types.Object, pkg *types.Package) bool {
  function analysisModuleFromPackagesModule (line 447) | func analysisModuleFromPackagesModule(mod *packages.Module) *analysis.Mo...

FILE: pkg/goanalysis/runner_loadingpackage.go
  constant unsafePkgName (line 27) | unsafePkgName = "unsafe"
  constant tooNew (line 30) | tooNew = 151
  type loadingPackage (line 32) | type loadingPackage struct
    method analyzeRecursive (line 44) | func (lp *loadingPackage) analyzeRecursive(ctx context.Context, cancel...
    method analyze (line 61) | func (lp *loadingPackage) analyze(ctx context.Context, cancel context....
    method loadFromSource (line 119) | func (lp *loadingPackage) loadFromSource(loadMode LoadMode) error {
    method loadFromExportData (line 224) | func (lp *loadingPackage) loadFromExportData() error {
    method loadWithFacts (line 281) | func (lp *loadingPackage) loadWithFacts(loadMode LoadMode) error {
    method loadImportedPackageWithFacts (line 318) | func (lp *loadingPackage) loadImportedPackageWithFacts(loadMode LoadMo...
    method decUse (line 378) | func (lp *loadingPackage) decUse(canClearTypes bool) {
    method convertError (line 445) | func (lp *loadingPackage) convertError(err error) []packages.Error {
    method String (line 502) | func (lp *loadingPackage) String() string {
  type importerFunc (line 506) | type importerFunc
    method Import (line 508) | func (f importerFunc) Import(path string) (*types.Package, error) { re...
  function sizeOfValueTreeBytes (line 510) | func sizeOfValueTreeBytes(v any) int {
  function sizeOfReflectValueTreeBytes (line 514) | func sizeOfReflectValueTreeBytes(rv reflect.Value, visitedPtrs map[uintp...

FILE: pkg/goanalysis/runners.go
  type runAnalyzersConfig (line 19) | type runAnalyzersConfig interface
  function runAnalyzers (line 28) | func runAnalyzers(cfg runAnalyzersConfig, lintCtx *linter.Context) ([]*r...
  function buildIssues (line 86) | func buildIssues(diags []*Diagnostic, linterNameBuilder func(diag *Diagn...

FILE: pkg/goanalysis/runners_cache.go
  function saveIssuesToCache (line 19) | func saveIssuesToCache(allPkgs []*packages.Package, pkgsFromCache map[*p...
  function loadIssuesFromCache (line 78) | func loadIssuesFromCache(pkgs []*packages.Package, lintCtx *linter.Context,
  function getIssuesCacheKey (line 153) | func getIssuesCacheKey(analyzers []*analysis.Analyzer) string {
  function analyzersHashID (line 157) | func analyzersHashID(analyzers []*analysis.Analyzer) string {

FILE: pkg/goformat/runner.go
  type Runner (line 25) | type Runner struct
    method Run (line 47) | func (c *Runner) Run(paths []string) error {
    method walk (line 81) | func (c *Runner) walk(root string, stdout *os.File) error {
    method process (line 114) | func (c *Runner) process(path string, stdout io.Writer, in io.Reader) ...
    method formatStdIn (line 165) | func (c *Runner) formatStdIn(path string, stdout io.Writer, in io.Read...
    method setOutputToDevNull (line 197) | func (c *Runner) setOutputToDevNull() {
    method ExitCode (line 207) | func (c *Runner) ExitCode() int {
  function NewRunner (line 36) | func NewRunner(logger logutils.Log,
  type RunnerOptions (line 211) | type RunnerOptions struct
    method MatchAnyPattern (line 258) | func (o RunnerOptions) MatchAnyPattern(path string) (bool, error) {
  function NewRunnerOptions (line 223) | func NewRunnerOptions(cfg *config.Config, diff, diffColored, stdin bool)...
  function skipDir (line 283) | func skipDir(name string) bool {
  function isGoFile (line 293) | func isGoFile(f fs.FileInfo) bool {

FILE: pkg/goformat/runner_test.go
  function TestRunnerOptions_MatchAnyPattern (line 14) | func TestRunnerOptions_MatchAnyPattern(t *testing.T) {
  function TestRunnerOptions_MatchAnyPattern_withSymlinks (line 97) | func TestRunnerOptions_MatchAnyPattern_withSymlinks(t *testing.T) {

FILE: pkg/goformatters/analyzer.go
  function NewAnalyzer (line 18) | func NewAnalyzer(logger logutils.Log, doc string, formatter Formatter) *...

FILE: pkg/goformatters/formatters.go
  type Formatter (line 3) | type Formatter interface

FILE: pkg/goformatters/gci/gci.go
  constant Name (line 17) | Name = "gci"
  type Formatter (line 19) | type Formatter struct
    method Name (line 58) | func (*Formatter) Name() string {
    method Format (line 62) | func (f *Formatter) Format(filename string, src []byte) ([]byte, error) {
  function New (line 23) | func New(settings *config.GciSettings) (*Formatter, error) {

FILE: pkg/goformatters/gci/internal/config/config.go
  type Config (line 25) | type Config struct
  type YamlConfig (line 31) | type YamlConfig struct
    method Parse (line 41) | func (g YamlConfig) Parse() (*Config, error) {
  function ParseConfig (line 79) | func ParseConfig(in string) (*Config, error) {
  function configureSections (line 98) | func configureSections(sections section.SectionList, path string) error {

FILE: pkg/goformatters/gci/internal/section/parser.go
  function Parse (line 11) | func Parse(data []string) (section.SectionList, error) {

FILE: pkg/goformatters/gci/internal/section/section.go
  function DefaultSections (line 5) | func DefaultSections() section.SectionList {

FILE: pkg/goformatters/gci/internal/section/standard.go
  constant StandardType (line 8) | StandardType = "standard"
  type Standard (line 10) | type Standard struct
    method MatchSpecificity (line 12) | func (s Standard) MatchSpecificity(spec *parse.GciImports) specificity...
    method String (line 19) | func (s Standard) String() string {
    method Type (line 23) | func (s Standard) Type() string {
  function isStandard (line 27) | func isStandard(pkg string) bool {

FILE: pkg/goformatters/gofmt/gofmt.go
  constant Name (line 9) | Name = "gofmt"
  type Formatter (line 11) | type Formatter struct
    method Name (line 29) | func (*Formatter) Name() string {
    method Format (line 33) | func (f *Formatter) Format(filename string, src []byte) ([]byte, error) {
  function New (line 15) | func New(settings *config.GoFmtSettings) *Formatter {

FILE: pkg/goformatters/gofumpt/gofumpt.go
  constant Name (line 11) | Name = "gofumpt"
  type Formatter (line 13) | type Formatter struct
    method Name (line 31) | func (*Formatter) Name() string {
    method Format (line 35) | func (f *Formatter) Format(_ string, src []byte) ([]byte, error) {
  function New (line 17) | func New(settings *config.GoFumptSettings, goVersion string) *Formatter {
  function getLangVersion (line 39) | func getLangVersion(v string) string {

FILE: pkg/goformatters/goimports/goimports.go
  constant Name (line 11) | Name = "goimports"
  type Formatter (line 13) | type Formatter struct
    method Name (line 23) | func (*Formatter) Name() string {
    method Format (line 27) | func (*Formatter) Format(filename string, src []byte) ([]byte, error) {
  function New (line 15) | func New(settings *config.GoImportsSettings) *Formatter {

FILE: pkg/goformatters/golines/golines.go
  constant Name (line 9) | Name = "golines"
  type Formatter (line 11) | type Formatter struct
    method Name (line 33) | func (*Formatter) Name() string {
    method Format (line 37) | func (f *Formatter) Format(_ string, src []byte) ([]byte, error) {
  function New (line 15) | func New(settings *config.GoLinesSettings) *Formatter {

FILE: pkg/goformatters/internal/diff.go
  type Change (line 18) | type Change struct
  type diffLineType (line 23) | type diffLineType
  constant diffLineAdded (line 26) | diffLineAdded    diffLineType = "added"
  constant diffLineOriginal (line 27) | diffLineOriginal diffLineType = "original"
  constant diffLineDeleted (line 28) | diffLineDeleted  diffLineType = "deleted"
  type diffLine (line 31) | type diffLine struct
  type hunkChangesParser (line 37) | type hunkChangesParser struct
    method parse (line 49) | func (p *hunkChangesParser) parse(h *diffpkg.Hunk) []Change {
    method handleOriginalLine (line 87) | func (p *hunkChangesParser) handleOriginalLine(lines []diffLine, line ...
    method handleDeletedLines (line 116) | func (p *hunkChangesParser) handleDeletedLines(deletedLines []diffLine...
    method handleAddedOnlyLines (line 136) | func (p *hunkChangesParser) handleAddedOnlyLines(addedLines []string) {
  function parseDiffLines (line 162) | func parseDiffLines(h *diffpkg.Hunk) []diffLine {
  function ExtractDiagnosticFromPatch (line 213) | func ExtractDiagnosticFromPatch(
  function toDiagnostic (line 252) | func toDiagnostic(ft *token.File, change Change, adjLine int) analysis.D...

FILE: pkg/goformatters/internal/diff_test.go
  function Test_parse (line 16) | func Test_parse(t *testing.T) {

FILE: pkg/goformatters/meta_formatter.go
  type MetaFormatter (line 19) | type MetaFormatter struct
    method Format (line 67) | func (m *MetaFormatter) Format(filename string, src []byte) []byte {
  function NewMetaFormatter (line 24) | func NewMetaFormatter(log logutils.Log, cfg *config.Formatters, runCfg *...
  function IsFormatter (line 93) | func IsFormatter(name string) bool {

FILE: pkg/goformatters/swaggo/swaggo.go
  constant Name (line 5) | Name = "swaggo"
  type Formatter (line 7) | type Formatter struct
    method Name (line 17) | func (*Formatter) Name() string {
    method Format (line 21) | func (f *Formatter) Format(path string, src []byte) ([]byte, error) {
  function New (line 11) | func New() *Formatter {

FILE: pkg/golinters/arangolint/arangolint.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/arangolint/arangolint_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/arangolint/testdata/arangolint.go
  function _ (line 10) | func _() {

FILE: pkg/golinters/arangolint/testdata/arangolint_cgo.go
  function _ (line 21) | func _() {
  function _ (line 27) | func _() {

FILE: pkg/golinters/asasalint/asasalint.go
  function New (line 11) | func New(settings *config.AsasalintSettings) *goanalysis.Linter {

FILE: pkg/golinters/asasalint/asasalint_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/asasalint/testdata/asasalint.go
  function getArgsLength (line 6) | func getArgsLength(args ...interface{}) int {
  function checkArgsLength (line 12) | func checkArgsLength(args ...interface{}) int {
  function someCall (line 16) | func someCall() {

FILE: pkg/golinters/asasalint/testdata/asasalint_cgo.go
  function _ (line 19) | func _() {
  function getArgsLength (line 25) | func getArgsLength(args ...interface{}) int {
  function checkArgsLength (line 31) | func checkArgsLength(args ...interface{}) int {
  function someCall (line 35) | func someCall() {

FILE: pkg/golinters/asciicheck/asciicheck.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/asciicheck/asciicheck_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/asciicheck/testdata/asciicheck.go
  type AsciicheckTеstStruct (line 9) | type AsciicheckTеstStruct struct
  type AsciicheckField (line 13) | type AsciicheckField struct
  type AsciicheckJustStruct (line 15) | type AsciicheckJustStruct struct
  function AsciicheckTеstFunc (line 19) | func AsciicheckTеstFunc() { // want `identifier "AsciicheckTеstFunc" con...

FILE: pkg/golinters/asciicheck/testdata/asciicheck_cgo.go
  function _ (line 20) | func _() {
  type AsciicheckTеstStruct (line 26) | type AsciicheckTеstStruct struct
  type AsciicheckField (line 30) | type AsciicheckField struct
  type AsciicheckJustStruct (line 32) | type AsciicheckJustStruct struct
  function AsciicheckTеstFunc (line 36) | func AsciicheckTеstFunc() { // want `identifier "AsciicheckTеstFunc" con...

FILE: pkg/golinters/bidichk/bidichk.go
  function New (line 12) | func New(settings *config.BiDiChkSettings) *goanalysis.Linter {

FILE: pkg/golinters/bidichk/bidichk_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/bidichk/testdata/bidichk.go
  function main (line 6) | func main() {

FILE: pkg/golinters/bidichk/testdata/bidichk_cgo.go
  function _ (line 19) | func _() {
  function _ (line 25) | func _() {

FILE: pkg/golinters/bodyclose/bodyclose.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/bodyclose/bodyclose_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/bodyclose/testdata/bodyclose.go
  function BodycloseNotClosed (line 9) | func BodycloseNotClosed() {

FILE: pkg/golinters/bodyclose/testdata/bodyclose_cgo.go
  function _ (line 20) | func _() {
  function BodycloseNotClosed (line 26) | func BodycloseNotClosed() {

FILE: pkg/golinters/canonicalheader/canonicalheader.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/canonicalheader/canonicalheader_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/canonicalheader/testdata/canonicalheader.go
  function canonicalheader (line 6) | func canonicalheader() {

FILE: pkg/golinters/canonicalheader/testdata/canonicalheader_cgo.go
  function _ (line 19) | func _() {
  function canonicalheader (line 25) | func canonicalheader() {

FILE: pkg/golinters/canonicalheader/testdata/fix/in/canonicalheader.go
  function canonicalheader (line 7) | func canonicalheader() {

FILE: pkg/golinters/canonicalheader/testdata/fix/out/canonicalheader.go
  function canonicalheader (line 7) | func canonicalheader() {

FILE: pkg/golinters/containedctx/containedctx.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/containedctx/containedctx_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/containedctx/testdata/containedctx.go
  type ok (line 6) | type ok struct
  type ng (line 11) | type ng struct
  type empty (line 15) | type empty struct

FILE: pkg/golinters/containedctx/testdata/containedctx_cgo.go
  function _ (line 19) | func _() {
  type ok (line 25) | type ok struct
  type ng (line 30) | type ng struct
  type empty (line 34) | type empty struct

FILE: pkg/golinters/contextcheck/contextcheck.go
  function New (line 12) | func New() *goanalysis.Linter {

FILE: pkg/golinters/contextcheck/contextcheck_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/contextcheck/testdata/contextcheck.go
  type MyString (line 6) | type MyString
  function contextcheckCase1 (line 8) | func contextcheckCase1(ctx context.Context) {
  function contextcheckCase2 (line 12) | func contextcheckCase2(ctx context.Context) {
  function contextcheckCase3 (line 27) | func contextcheckCase3(ctx context.Context) {
  function contextcheckCase4 (line 36) | func contextcheckCase4(ctx context.Context) {
  function funcWithCtx (line 42) | func funcWithCtx(ctx context.Context) {}
  function funcWithoutCtx (line 44) | func funcWithoutCtx() {
  function getNewCtx (line 48) | func getNewCtx(ctx context.Context) (newCtx context.Context, cancel cont...

FILE: pkg/golinters/contextcheck/testdata/contextcheck_cgo.go
  function _ (line 19) | func _() {
  function contextcheckCase1 (line 25) | func contextcheckCase1(ctx context.Context) {
  function funcWithCtx (line 29) | func funcWithCtx(ctx context.Context) {}
  function funcWithoutCtx (line 31) | func funcWithoutCtx() {

FILE: pkg/golinters/copyloopvar/copyloopvar.go
  function New (line 10) | func New(settings *config.CopyLoopVarSettings) *goanalysis.Linter {

FILE: pkg/golinters/copyloopvar/copyloopvar_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/copyloopvar/testdata/copyloopvar.go
  function copyloopvarCase1 (line 8) | func copyloopvarCase1() {
  function copyloopvarCase2 (line 28) | func copyloopvarCase2() {

FILE: pkg/golinters/copyloopvar/testdata/copyloopvar_cgo.go
  function _ (line 21) | func _() {
  function copyloopvarCase2 (line 27) | func copyloopvarCase2() {

FILE: pkg/golinters/copyloopvar/testdata/copyloopvar_custom.go
  function copyloopvarCase1 (line 9) | func copyloopvarCase1() {
  function copyloopvarCase2 (line 29) | func copyloopvarCase2() {

FILE: pkg/golinters/copyloopvar/testdata/fix/in/copyloopvar.go
  function _ (line 7) | func _() {
  function _ (line 27) | func _() {

FILE: pkg/golinters/copyloopvar/testdata/fix/out/copyloopvar.go
  function _ (line 7) | func _() {
  function _ (line 27) | func _() {

FILE: pkg/golinters/cyclop/cyclop.go
  function New (line 10) | func New(settings *config.CyclopSettings) *goanalysis.Linter {

FILE: pkg/golinters/cyclop/cyclop_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/cyclop/testdata/cyclop.go
  function cyclopComplexFunc (line 5) | func cyclopComplexFunc(s string) { // want "calculated cyclomatic comple...

FILE: pkg/golinters/cyclop/testdata/cyclop_cgo.go
  function _ (line 19) | func _() {
  function cyclopComplexFunc (line 25) | func cyclopComplexFunc(s string) { // want "calculated cyclomatic comple...

FILE: pkg/golinters/decorder/decorder.go
  function New (line 12) | func New(settings *config.DecorderSettings) *goanalysis.Linter {

FILE: pkg/golinters/decorder/decorder_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/decorder/testdata/decorder.go
  constant decoh (line 8) | decoh = math.MaxInt64
  constant decoi (line 9) | decoi = 1
  type decol (line 15) | type decol
  function decom (line 17) | func decom() {
  function init (line 21) | func init() {}

FILE: pkg/golinters/decorder/testdata/decorder_cgo.go
  constant decoc (line 21) | decoc = math.MaxInt64
  constant decod (line 22) | decod = 1
  type decoe (line 28) | type decoe
  function decof (line 30) | func decof() {
  function init (line 34) | func init() {}
  function _ (line 36) | func _() {

FILE: pkg/golinters/decorder/testdata/decorder_custom.go
  constant decoc (line 8) | decoc = math.MaxInt64
  constant decod (line 9) | decod = 1
  type decoe (line 15) | type decoe
  function decof (line 17) | func decof() {
  function init (line 21) | func init() {}

FILE: pkg/golinters/depguard/depguard.go
  function New (line 13) | func New(settings *config.DepGuardSettings, replacer *strings.Replacer) ...

FILE: pkg/golinters/depguard/depguard_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/depguard/testdata/depguard.go
  function SpewDebugInfo (line 12) | func SpewDebugInfo() {

FILE: pkg/golinters/depguard/testdata/depguard_additional_guards.go
  function SpewDebugInfo (line 14) | func SpewDebugInfo() {

FILE: pkg/golinters/depguard/testdata/depguard_cgo.go
  function _ (line 23) | func _() {
  function SpewDebugInfo (line 29) | func SpewDebugInfo() {

FILE: pkg/golinters/depguard/testdata/depguard_ignore_file_rules.go
  function SpewDebugInfo (line 14) | func SpewDebugInfo() {

FILE: pkg/golinters/dogsled/dogsled.go
  function New (line 14) | func New(settings *config.DogsledSettings) *goanalysis.Linter {
  function run (line 27) | func run(pass *analysis.Pass, maxBlanks int) (any, error) {

FILE: pkg/golinters/dogsled/dogsled_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/dogsled/testdata/dogsled.go
  function Dogsled (line 4) | func Dogsled() {
  function ret1 (line 11) | func ret1() (a int) {
  function ret2 (line 15) | func ret2() (a, b int) {
  function ret3 (line 19) | func ret3() (a, b, c int) {
  function ret4 (line 23) | func ret4() (a, b, c, d int) {

FILE: pkg/golinters/dogsled/testdata/dogsled_cgo.go
  function _ (line 18) | func _() {
  function _ (line 24) | func _() {
  function ret1 (line 31) | func ret1() (a int) {
  function ret2 (line 35) | func ret2() (a, b int) {
  function ret3 (line 39) | func ret3() (a, b, c int) {
  function ret4 (line 43) | func ret4() (a, b, c, d int) {

FILE: pkg/golinters/dupl/dupl.go
  constant linterName (line 19) | linterName = "dupl"
  function New (line 21) | func New(settings *config.DuplSettings) *goanalysis.Linter {
  function runDupl (line 52) | func runDupl(pass *analysis.Pass, settings *config.DuplSettings) ([]*goa...

FILE: pkg/golinters/dupl/dupl_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/dupl/testdata/dupl.go
  type DuplLogger (line 5) | type DuplLogger struct
    method level (line 7) | func (DuplLogger) level() int {
    method Debug (line 11) | func (DuplLogger) Debug(args ...interface{}) {}
    method Info (line 12) | func (DuplLogger) Info(args ...interface{})  {}
    method First (line 14) | func (logger *DuplLogger) First(args ...interface{}) { // want "14-23 ...
    method Second (line 25) | func (logger *DuplLogger) Second(args ...interface{}) { // want "25-34...

FILE: pkg/golinters/dupl/testdata/dupl_cgo.go
  function _ (line 19) | func _() {
  type DuplLogger (line 25) | type DuplLogger struct
    method level (line 27) | func (DuplLogger) level() int {
    method Debug (line 31) | func (DuplLogger) Debug(args ...interface{}) {}
    method Info (line 32) | func (DuplLogger) Info(args ...interface{})  {}
    method First (line 34) | func (logger *DuplLogger) First(args ...interface{}) { // want "34-43 ...
    method Second (line 45) | func (logger *DuplLogger) Second(args ...interface{}) { // want "45-54...

FILE: pkg/golinters/dupword/dupword.go
  function New (line 12) | func New(settings *config.DupWordSettings) *goanalysis.Linter {

FILE: pkg/golinters/dupword/dupword_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/dupword/testdata/dupword.go
  function duplicateWordInComments (line 6) | func duplicateWordInComments() {
  function duplicateWordInStr (line 11) | func duplicateWordInStr() {

FILE: pkg/golinters/dupword/testdata/dupword_cgo.go
  function _ (line 19) | func _() {
  function duplicateWordInComments (line 25) | func duplicateWordInComments() {

FILE: pkg/golinters/dupword/testdata/dupword_comments_only.go
  function _ (line 7) | func _() {

FILE: pkg/golinters/dupword/testdata/dupword_ignore.go
  function duplicateWordInComments (line 7) | func duplicateWordInComments() {
  function duplicateWordInStr (line 12) | func duplicateWordInStr() {

FILE: pkg/golinters/dupword/testdata/fix/in/dupword.go
  function duplicateWordInComments (line 7) | func duplicateWordInComments() {
  function duplicateWordInStr (line 12) | func duplicateWordInStr() {

FILE: pkg/golinters/dupword/testdata/fix/out/dupword.go
  function duplicateWordInComments (line 7) | func duplicateWordInComments() {
  function duplicateWordInStr (line 12) | func duplicateWordInStr() {

FILE: pkg/golinters/durationcheck/durationcheck.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/durationcheck/durationcheck_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/durationcheck/testdata/durationcheck.go
  type durationCheckData (line 9) | type durationCheckData struct
  function durationcheckCase01 (line 14) | func durationcheckCase01() {
  function durationcheckCase02 (line 19) | func durationcheckCase02() {
  function durationcheckCase03 (line 24) | func durationcheckCase03() {
  function durationcheckCase04 (line 29) | func durationcheckCase04(someDuration time.Duration) {
  function durationcheckCase05 (line 34) | func durationcheckCase05() {

FILE: pkg/golinters/durationcheck/testdata/durationcheck_cgo.go
  function _ (line 19) | func _() {
  type durationCheckData (line 25) | type durationCheckData struct
  function durationcheckCase01 (line 30) | func durationcheckCase01() {
  function durationcheckCase02 (line 35) | func durationcheckCase02() {

FILE: pkg/golinters/embeddedstructfieldcheck/embeddedstructfieldcheck.go
  function New (line 10) | func New(settings *config.EmbeddedStructFieldCheckSettings) *goanalysis....

FILE: pkg/golinters/embeddedstructfieldcheck/embeddedstructfieldcheck_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/embeddedstructfieldcheck_comments.go
  type ValidStructWithSingleLineComments (line 6) | type ValidStructWithSingleLineComments struct
  type StructWithSingleLineComments (line 14) | type StructWithSingleLineComments struct
  type StructWithMultiLineComments (line 21) | type StructWithMultiLineComments struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/embeddedstructfieldcheck_mutex.go
  type MutextEmbedded (line 7) | type MutextEmbedded struct
  type MutextNotEmbedded (line 11) | type MutextNotEmbedded struct
  type PointerMutextEmbedded (line 15) | type PointerMutextEmbedded struct
  type RWMutextEmbedded (line 19) | type RWMutextEmbedded struct
  type RWMutextNotEmbedded (line 23) | type RWMutextNotEmbedded struct
  type PointerRWMutextEmbedded (line 27) | type PointerRWMutextEmbedded struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/embeddedstructfieldcheck_simple.go
  type ValidStruct (line 9) | type ValidStruct struct
  type NoSpaceStruct (line 15) | type NoSpaceStruct struct
  type NotSortedStruct (line 20) | type NotSortedStruct struct
  type MixedEmbeddedAndNotEmbedded (line 26) | type MixedEmbeddedAndNotEmbedded struct
  type EmbeddedWithPointers (line 36) | type EmbeddedWithPointers struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/embeddedstructfieldcheck_special_cases.go
  function myFunction (line 6) | func myFunction() {

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/fix/in/comments.go
  type ValidStructWithSingleLineComments (line 7) | type ValidStructWithSingleLineComments struct
  type StructWithSingleLineComments (line 15) | type StructWithSingleLineComments struct
  type StructWithMultiLineComments (line 23) | type StructWithMultiLineComments struct
  type A (line 32) | type A struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/fix/in/simple.go
  type ValidStruct (line 9) | type ValidStruct struct
  type NoSpaceStruct (line 15) | type NoSpaceStruct struct
  type EmbeddedWithPointers (line 20) | type EmbeddedWithPointers struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/fix/out/comments.go
  type ValidStructWithSingleLineComments (line 7) | type ValidStructWithSingleLineComments struct
  type StructWithSingleLineComments (line 15) | type StructWithSingleLineComments struct
  type StructWithMultiLineComments (line 23) | type StructWithMultiLineComments struct
  type A (line 32) | type A struct

FILE: pkg/golinters/embeddedstructfieldcheck/testdata/fix/out/simple.go
  type ValidStruct (line 9) | type ValidStruct struct
  type NoSpaceStruct (line 15) | type NoSpaceStruct struct
  type EmbeddedWithPointers (line 21) | type EmbeddedWithPointers struct

FILE: pkg/golinters/err113/err113.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/err113/err113_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/err113/testdata/err113.go
  function SimpleEqual (line 6) | func SimpleEqual(e1, e2 error) bool {
  function SimpleNotEqual (line 10) | func SimpleNotEqual(e1, e2 error) bool {
  function CheckGoerr13Import (line 14) | func CheckGoerr13Import(e error) bool {

FILE: pkg/golinters/err113/testdata/err113_cgo.go
  function _ (line 19) | func _() {
  function CheckGoerr13Import (line 25) | func CheckGoerr13Import(e error) bool {

FILE: pkg/golinters/err113/testdata/fix/in/err113.go
  function SimpleEqual (line 7) | func SimpleEqual(e1, e2 error) bool {
  function SimpleNotEqual (line 11) | func SimpleNotEqual(e1, e2 error) bool {
  function CheckGoerr13Import (line 15) | func CheckGoerr13Import(e error) bool {

FILE: pkg/golinters/err113/testdata/fix/out/err113.go
  function SimpleEqual (line 7) | func SimpleEqual(e1, e2 error) bool {
  function SimpleNotEqual (line 11) | func SimpleNotEqual(e1, e2 error) bool {
  function CheckGoerr13Import (line 15) | func CheckGoerr13Import(e error) bool {

FILE: pkg/golinters/errcheck/errcheck.go
  constant linterName (line 20) | linterName = "errcheck"
  function New (line 22) | func New(settings *config.ErrcheckSettings) *goanalysis.Linter {
  function runErrCheck (line 59) | func runErrCheck(pass *analysis.Pass, checker *errcheck.Checker, verbose...
  function getChecker (line 99) | func getChecker(errCfg *config.ErrcheckSettings) *errcheck.Checker {

FILE: pkg/golinters/errcheck/errcheck_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/errcheck/testdata/errcheck.go
  function RetErr (line 10) | func RetErr() error {
  function MissedErrorCheck (line 14) | func MissedErrorCheck() {
  function IgnoreCloseMissingErrHandling (line 18) | func IgnoreCloseMissingErrHandling() error {
  function IgnoreCloseInDeferMissingErrHandling (line 28) | func IgnoreCloseInDeferMissingErrHandling() {
  function IgnoreStdxWrite (line 38) | func IgnoreStdxWrite() {
  function IgnoreBufferWrites (line 43) | func IgnoreBufferWrites(buf *bytes.Buffer) {

FILE: pkg/golinters/errcheck/testdata/errcheck_cgo.go
  function _ (line 18) | func _() {
  function RetErr (line 24) | func RetErr() error {
  function MissedErrorCheck (line 28) | func MissedErrorCheck() {

FILE: pkg/golinters/errcheck/testdata/errcheck_exclude_functions.go
  function TestErrcheckExcludeFunctions (line 9) | func TestErrcheckExcludeFunctions() []byte {
  function TestErrcheckNoExcludeFunctions (line 15) | func TestErrcheckNoExcludeFunctions() []byte {

FILE: pkg/golinters/errcheck/testdata/errcheck_ignore_default.go
  function TestErrcheckIgnoreHashWriteByDefault (line 11) | func TestErrcheckIgnoreHashWriteByDefault() []byte {
  function TestErrcheckIgnoreFmtByDefault (line 17) | func TestErrcheckIgnoreFmtByDefault(s string) int {
  function TestErrcheckNoIgnoreOs (line 22) | func TestErrcheckNoIgnoreOs() {

FILE: pkg/golinters/errcheck/testdata/errcheck_type_assertions.go
  function ErrorTypeAssertion (line 6) | func ErrorTypeAssertion(filter map[string]interface{}) bool {

FILE: pkg/golinters/errchkjson/errchkjson.go
  function New (line 10) | func New(settings *config.ErrChkJSONSettings) *goanalysis.Linter {

FILE: pkg/golinters/errchkjson/errchkjson_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/errchkjson/testdata/errchkjson.go
  type marshalText (line 13) | type marshalText struct
    method MarshalText (line 15) | func (mt marshalText) MarshalText() ([]byte, error) {
  function JSONMarshalSafeTypesWithNoSafe (line 23) | func JSONMarshalSafeTypesWithNoSafe() {
  type structKey (line 255) | type structKey struct
  type ExportedUnsafeAndInvalidStruct (line 256) | type ExportedUnsafeAndInvalidStruct struct
  function JSONMarshalSaveStructWithUnexportedFieldsWithNoSafe (line 286) | func JSONMarshalSaveStructWithUnexportedFieldsWithNoSafe() {
  function JSONMarshalSaveStructWithOmittedFieldsWithNoSafe (line 351) | func JSONMarshalSaveStructWithOmittedFieldsWithNoSafe() {
  function JSONMarshalUnsafeTypes (line 392) | func JSONMarshalUnsafeTypes() {
  function JSONMarshalInvalidTypes (line 516) | func JSONMarshalInvalidTypes() {
  function NotJSONMarshal (line 611) | func NotJSONMarshal() {
  function JSONMarshalStructWithoutExportedFields (line 619) | func JSONMarshalStructWithoutExportedFields() {
  function JSONMarshalStructWithNestedStructWithoutExportedFields (line 631) | func JSONMarshalStructWithNestedStructWithoutExportedFields() {

FILE: pkg/golinters/errchkjson/testdata/errchkjson_cgo.go
  function _ (line 20) | func _() {
  function _ (line 26) | func _() {

FILE: pkg/golinters/errchkjson/testdata/errchkjson_check_error_free_encoding.go
  type marshalText (line 13) | type marshalText struct
    method MarshalText (line 15) | func (mt marshalText) MarshalText() ([]byte, error) {
  function JSONMarshalSafeTypes (line 23) | func JSONMarshalSafeTypes() {
  type structKey (line 255) | type structKey struct
  type ExportedUnsafeAndInvalidStruct (line 256) | type ExportedUnsafeAndInvalidStruct struct
  function JSONMarshalSaveStructWithUnexportedFields (line 286) | func JSONMarshalSaveStructWithUnexportedFields() {
  function JSONMarshalSaveStructWithOmittedFields (line 351) | func JSONMarshalSaveStructWithOmittedFields() {
  function JSONMarshalUnsafeTypes (line 392) | func JSONMarshalUnsafeTypes() {
  function JSONMarshalInvalidTypes (line 516) | func JSONMarshalInvalidTypes() {
  function NotJSONMarshal (line 611) | func NotJSONMarshal() {

FILE: pkg/golinters/errchkjson/testdata/errchkjson_no_exported.go
  function JSONMarshalStructWithoutExportedFields (line 10) | func JSONMarshalStructWithoutExportedFields() {
  function JSONMarshalStructWithNestedStructWithoutExportedFields (line 20) | func JSONMarshalStructWithNestedStructWithoutExportedFields() {

FILE: pkg/golinters/errname/errname.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/errname/errname_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/errname/testdata/errname.go
  constant maxSize (line 21) | maxSize = 256
  function errInsideFuncIsNotSentinel (line 31) | func errInsideFuncIsNotSentinel() error {
  type NotErrorType (line 36) | type NotErrorType struct
    method Set (line 38) | func (t NotErrorType) Set() {}
    method Get (line 39) | func (t NotErrorType) Get() {}
  type DNSConfigError (line 41) | type DNSConfigError struct
    method Error (line 43) | func (D DNSConfigError) Error() string { return "DNS config error" }
  type someTypeWithoutPtr (line 45) | type someTypeWithoutPtr struct
    method Error (line 46) | func (s someTypeWithoutPtr) Error() string { return "someTypeWithoutPt...
  type SomeTypeWithoutPtr (line 48) | type SomeTypeWithoutPtr struct
    method Error (line 49) | func (s SomeTypeWithoutPtr) Error() string { return "SomeTypeWithoutPt...
  type someTypeWithPtr (line 51) | type someTypeWithPtr struct
    method Error (line 52) | func (s *someTypeWithPtr) Error() string { return "someTypeWithPtr" }
  type SomeTypeWithPtr (line 54) | type SomeTypeWithPtr struct
    method Error (line 55) | func (s *SomeTypeWithPtr) Error() string { return "SomeTypeWithPtr" }

FILE: pkg/golinters/errname/testdata/errname_cgo.go
  function _ (line 19) | func _() {

FILE: pkg/golinters/errorlint/errorlint.go
  function New (line 10) | func New(settings *config.ErrorLintSettings) *goanalysis.Linter {
  function toAllowPairs (line 43) | func toAllowPairs(data []config.ErrorLintAllowPair) []errorlint.AllowPair {

FILE: pkg/golinters/errorlint/errorlint_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/errorlint/testdata/errorlint.go
  type errLintBar (line 12) | type errLintBar struct
    method Error (line 14) | func (*errLintBar) Error() string {
  function errorLintAll (line 18) | func errorLintAll() {

FILE: pkg/golinters/errorlint/testdata/errorlint_asserts.go
  type myError (line 10) | type myError struct
    method Error (line 12) | func (*myError) Error() string {
  function errorLintDoAnotherThing (line 16) | func errorLintDoAnotherThing() error {
  function errorLintAsserts (line 20) | func errorLintAsserts() {

FILE: pkg/golinters/errorlint/testdata/errorlint_cgo.go
  function _ (line 21) | func _() {
  type errLintBar (line 29) | type errLintBar struct
    method Error (line 31) | func (*errLintBar) Error() string {
  function errorLintAll (line 35) | func errorLintAll() {

FILE: pkg/golinters/errorlint/testdata/errorlint_comparison.go
  function errorLintDoThing (line 12) | func errorLintDoThing() error {
  function errorLintComparison (line 16) | func errorLintComparison() {

FILE: pkg/golinters/errorlint/testdata/errorlint_errorf.go
  type customError (line 10) | type customError struct
    method Error (line 12) | func (customError) Error() string {
  function errorLintErrorf (line 16) | func errorLintErrorf() {

FILE: pkg/golinters/errorlint/testdata/fix/in/errorlint.go
  function Good (line 10) | func Good() error {
  function NonWrappingVerb (line 15) | func NonWrappingVerb() error {
  function NonWrappingTVerb (line 20) | func NonWrappingTVerb() error {
  function DoubleNonWrappingVerb (line 25) | func DoubleNonWrappingVerb() error {
  function ErrorOneWrap (line 30) | func ErrorOneWrap() error {
  function ValidNonWrappingTVerb (line 37) | func ValidNonWrappingTVerb() error {
  function ErrorMultipleWraps (line 44) | func ErrorMultipleWraps() error {
  function ErrorMultipleWrapsWithCustomError (line 51) | func ErrorMultipleWrapsWithCustomError() error {
  function ErrorStringFormat (line 58) | func ErrorStringFormat() error {
  function ErrorStringFormatCustomError (line 63) | func ErrorStringFormatCustomError() error {
  function NotAnError (line 68) | func NotAnError() error {
  type MyError (line 73) | type MyError struct
    method Error (line 75) | func (MyError) Error() string {
  function ErrorIndexReset (line 79) | func ErrorIndexReset() error {
  function ErrorIndexResetGood (line 84) | func ErrorIndexResetGood() error {

FILE: pkg/golinters/errorlint/testdata/fix/out/errorlint.go
  function Good (line 10) | func Good() error {
  function NonWrappingVerb (line 15) | func NonWrappingVerb() error {
  function NonWrappingTVerb (line 20) | func NonWrappingTVerb() error {
  function DoubleNonWrappingVerb (line 25) | func DoubleNonWrappingVerb() error {
  function ErrorOneWrap (line 30) | func ErrorOneWrap() error {
  function ValidNonWrappingTVerb (line 37) | func ValidNonWrappingTVerb() error {
  function ErrorMultipleWraps (line 44) | func ErrorMultipleWraps() error {
  function ErrorMultipleWrapsWithCustomError (line 51) | func ErrorMultipleWrapsWithCustomError() error {
  function ErrorStringFormat (line 58) | func ErrorStringFormat() error {
  function ErrorStringFormatCustomError (line 63) | func ErrorStringFormatCustomError() error {
  function NotAnError (line 68) | func NotAnError() error {
  type MyError (line 73) | type MyError struct
    method Error (line 75) | func (MyError) Error() string {
  function ErrorIndexReset (line 79) | func ErrorIndexReset() error {
  function ErrorIndexResetGood (line 84) | func ErrorIndexResetGood() error {

FILE: pkg/golinters/exhaustive/exhaustive.go
  function New (line 10) | func New(settings *config.ExhaustiveSettings) *goanalysis.Linter {

FILE: pkg/golinters/exhaustive/exhaustive_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/exhaustive/testdata/exhaustive.go
  type Direction (line 4) | type Direction
  constant North (line 7) | North Direction = iota
  constant East (line 8) | East
  constant South (line 9) | South
  constant West (line 10) | West
  function processDirection (line 13) | func processDirection(d Direction) {

FILE: pkg/golinters/exhaustive/testdata/exhaustive_cgo.go
  function _ (line 22) | func _() {
  type Direction (line 28) | type Direction
  constant North (line 31) | North Direction = iota
  constant East (line 32) | East
  constant South (line 33) | South
  constant West (line 34) | West
  function processDirection (line 37) | func processDirection(d Direction) {

FILE: pkg/golinters/exhaustive/testdata/exhaustive_default.go
  type Direction (line 6) | type Direction
  constant North (line 9) | North Direction = iota
  constant East (line 10) | East
  constant South (line 11) | South
  constant West (line 12) | West
  function processDirectionDefault (line 19) | func processDirectionDefault(d Direction) {

FILE: pkg/golinters/exhaustive/testdata/exhaustive_generated.go
  type Direction (line 11) | type Direction
  constant North (line 14) | North Direction = iota
  constant East (line 15) | East
  constant South (line 16) | South
  constant West (line 17) | West
  function processDirectionGenerated (line 20) | func processDirectionGenerated(d Direction) {

FILE: pkg/golinters/exhaustive/testdata/exhaustive_ignore_enum_members.go
  type Direction (line 5) | type Direction
  constant North (line 8) | North Direction = iota
  constant East (line 9) | East
  constant South (line 10) | South
  constant West (line 11) | West
  function processDirectionIgnoreEnumMembers (line 17) | func processDirectionIgnoreEnumMembers(d Direction) {

FILE: pkg/golinters/exhaustruct/exhaustruct.go
  function New (line 11) | func New(settings *config.ExhaustructSettings) *goanalysis.Linter {

FILE: pkg/golinters/exhaustruct/exhaustruct_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/exhaustruct/testdata/exhaustruct.go
  type Exhaustruct (line 6) | type Exhaustruct struct
  function exhaustruct (line 14) | func exhaustruct() {

FILE: pkg/golinters/exhaustruct/testdata/exhaustruct_cgo.go
  function _ (line 19) | func _() {
  type Exhaustruct (line 25) | type Exhaustruct struct
  function exhaustruct (line 33) | func exhaustruct() {

FILE: pkg/golinters/exhaustruct/testdata/exhaustruct_custom.go
  type ExhaustructCustom (line 7) | type ExhaustructCustom struct
  function exhaustructCustom (line 15) | func exhaustructCustom() {
  type ExhaustructCustom1 (line 50) | type ExhaustructCustom1 struct
  function exhaustructCustom1 (line 58) | func exhaustructCustom1() {
  type ExhaustructCustom2 (line 93) | type ExhaustructCustom2 struct
  function exhaustructCustom2 (line 101) | func exhaustructCustom2() {

FILE: pkg/golinters/exptostd/exptostd.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/exptostd/exptostd_integration_test.go
  function TestFromTestdata (line 13) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 17) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 21) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/exptostd/testdata/exptostd.go
  function _ (line 11) | func _(m, a map[string]string) {
  function _ (line 35) | func _(a, b []string) {

FILE: pkg/golinters/exptostd/testdata/exptostd_cgo.go
  function _ (line 22) | func _() {
  function _ (line 28) | func _(m, a map[string]string) {
  function _ (line 52) | func _(a, b []string) {

FILE: pkg/golinters/exptostd/testdata/fix/in/exptostd.go
  function _ (line 11) | func _(m, a map[string]string) {
  function _ (line 31) | func _(a, b []string) {

FILE: pkg/golinters/exptostd/testdata/fix/out/exptostd.go
  function _ (line 11) | func _(m, a map[string]string) {
  function _ (line 31) | func _(a, b []string) {

FILE: pkg/golinters/fatcontext/fatcontext.go
  function New (line 10) | func New(settings *config.FatcontextSettings) *goanalysis.Linter {

FILE: pkg/golinters/fatcontext/fatcontext_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/fatcontext/testdata/fatcontext.go
  function example (line 6) | func example() {
  function wrapContext (line 31) | func wrapContext(ctx context.Context) context.Context {
  function inStructs (line 36) | func inStructs(ctx context.Context) {

FILE: pkg/golinters/fatcontext/testdata/fatcontext_cgo.go
  function _ (line 19) | func _() {
  function _ (line 25) | func _() {
  function wrapContext (line 50) | func wrapContext(ctx context.Context) context.Context {

FILE: pkg/golinters/fatcontext/testdata/fatcontext_structpointer.go
  type Container (line 9) | type Container struct
  function something (line 13) | func something() func(*Container) {
  function blah (line 21) | func blah(r *Container) {

FILE: pkg/golinters/fatcontext/testdata/fix/in/fatcontext.go
  function example (line 7) | func example() {
  function wrapContext (line 32) | func wrapContext(ctx context.Context) context.Context {
  function inStructs (line 37) | func inStructs(ctx context.Context) {

FILE: pkg/golinters/fatcontext/testdata/fix/out/fatcontext.go
  function example (line 7) | func example() {
  function wrapContext (line 32) | func wrapContext(ctx context.Context) context.Context {
  function inStructs (line 37) | func inStructs(ctx context.Context) {

FILE: pkg/golinters/forbidigo/forbidigo.go
  constant linterName (line 15) | linterName = "forbidigo"
  function New (line 17) | func New(settings *config.ForbidigoSettings) *goanalysis.Linter {
  function runForbidigo (line 37) | func runForbidigo(pass *analysis.Pass, settings *config.ForbidigoSetting...

FILE: pkg/golinters/forbidigo/forbidigo_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/forbidigo/testdata/forbidigo_cgo.go
  function _ (line 22) | func _() {
  function Forbidigo (line 28) | func Forbidigo() {

FILE: pkg/golinters/forbidigo/testdata/forbidigo_example.go
  function Forbidigo (line 11) | func Forbidigo() {

FILE: pkg/golinters/forbidigo/testdata/forbidigo_example_test.go
  function ExampleForbidigo (line 8) | func ExampleForbidigo() {

FILE: pkg/golinters/forbidigo/testdata/forbidigo_include_godoc_examples_test.go
  function ExampleForbidigoNoGodoc (line 7) | func ExampleForbidigoNoGodoc() {

FILE: pkg/golinters/forbidigo/testdata/forbidigo_struct_config.go
  function Forbidigo (line 10) | func Forbidigo() {

FILE: pkg/golinters/forcetypeassert/forcetypeassert.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/forcetypeassert/forcetypeassert_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/forcetypeassert/testdata/forcetypeassert.go
  function forcetypeassertInvalid (line 6) | func forcetypeassertInvalid() {
  function forcetypeassertValid (line 15) | func forcetypeassertValid() {

FILE: pkg/golinters/forcetypeassert/testdata/forcetypeassert_cgo.go
  function _ (line 19) | func _() {
  function _ (line 25) | func _() {
  function _ (line 34) | func _() {

FILE: pkg/golinters/funcorder/funcorder.go
  function New (line 10) | func New(settings *config.FuncOrderSettings) *goanalysis.Linter {

FILE: pkg/golinters/funcorder/funcorder_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/funcorder/testdata/funcorder.go
  type MyStruct (line 6) | type MyStruct struct
    method lenName (line 10) | func (m MyStruct) lenName() int { // want `unexported method "lenName"...
    method GetName (line 14) | func (m MyStruct) GetName() string {
    method SetName (line 18) | func (m *MyStruct) SetName(name string) {
  type MyStruct2 (line 22) | type MyStruct2 struct
    method GetName (line 26) | func (m MyStruct2) GetName() string {
    method SetName (line 30) | func (m *MyStruct2) SetName(name string) {
  function NewMyStruct2 (line 34) | func NewMyStruct2() *MyStruct2 { // want `constructor "NewMyStruct2" for...
  function NewTime (line 38) | func NewTime() time.Time {

FILE: pkg/golinters/funcorder/testdata/funcorder_disable_constructor.go
  type MyStruct (line 7) | type MyStruct struct
    method lenName (line 11) | func (m MyStruct) lenName() int { // want `unexported method "lenName"...
    method GetName (line 15) | func (m MyStruct) GetName() string {
    method SetName (line 19) | func (m *MyStruct) SetName(name string) {
  type MyStruct2 (line 23) | type MyStruct2 struct
    method GetName (line 27) | func (m MyStruct2) GetName() string {
    method SetName (line 31) | func (m *MyStruct2) SetName(name string) {
  function NewMyStruct2 (line 35) | func NewMyStruct2() *MyStruct2 {
  function NewTime (line 39) | func NewTime() time.Time {

FILE: pkg/golinters/funcorder/testdata/funcorder_struct_method.go
  type MyStruct (line 7) | type MyStruct struct
    method lenName (line 11) | func (m MyStruct) lenName() int {
    method GetName (line 15) | func (m MyStruct) GetName() string {
    method SetName (line 19) | func (m *MyStruct) SetName(name string) {
  type MyStruct2 (line 23) | type MyStruct2 struct
    method GetName (line 27) | func (m MyStruct2) GetName() string {
    method SetName (line 31) | func (m *MyStruct2) SetName(name string) {
  function NewMyStruct2 (line 35) | func NewMyStruct2() *MyStruct2 { // want `constructor "NewMyStruct2" for...
  function NewTime (line 39) | func NewTime() time.Time {

FILE: pkg/golinters/funlen/funlen.go
  type Config (line 10) | type Config struct
  function New (line 16) | func New(settings *config.FunlenSettings) *goanalysis.Linter {

FILE: pkg/golinters/funlen/funlen_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/funlen/testdata/funlen.go
  function TooManyLines (line 4) | func TooManyLines() { // want `Function 'TooManyLines' is too long \(70 ...
  function TooManyStatements (line 77) | func TooManyStatements() { // want `Function 'TooManyStatements' has too...
  function withComments (line 126) | func withComments() {

FILE: pkg/golinters/funlen/testdata/funlen_cgo.go
  function _ (line 18) | func _() {
  function TooManyLines (line 24) | func TooManyLines() { // want `Function 'TooManyLines' is too long \(70 ...
  function TooManyStatements (line 97) | func TooManyStatements() { // want `Function 'TooManyStatements' has too...
  function withComments (line 146) | func withComments() {

FILE: pkg/golinters/funlen/testdata/funlen_custom.go
  function TooManyLines (line 5) | func TooManyLines() { // want `Function 'TooManyLines' is too long \(22 ...
  function TooManyStatements (line 30) | func TooManyStatements() { // want `Function 'TooManyStatements' has too...

FILE: pkg/golinters/funlen/testdata/funlen_ignore_comments.go
  function withComments (line 6) | func withComments() {

FILE: pkg/golinters/gci/gci.go
  constant linterName (line 11) | linterName = "gci"
  function New (line 13) | func New(settings *config.GciSettings) *goanalysis.Linter {

FILE: pkg/golinters/gci/gci_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/gci/testdata/fix/in/gci.go
  function GoimportsLocalTest (line 14) | func GoimportsLocalTest() {

FILE: pkg/golinters/gci/testdata/fix/out/gci.go
  function GoimportsLocalTest (line 14) | func GoimportsLocalTest() {

FILE: pkg/golinters/gci/testdata/gci.go
  function GoimportsLocalTest (line 12) | func GoimportsLocalTest() {

FILE: pkg/golinters/gci/testdata/gci_cgo.go
  function _ (line 22) | func _() {
  function GoimportsLocalTest (line 28) | func GoimportsLocalTest() {

FILE: pkg/golinters/gci/testdata/gci_go124.go
  function _ (line 13) | func _() {

FILE: pkg/golinters/ginkgolinter/ginkgolinter.go
  function New (line 11) | func New(settings *config.GinkgoLinterSettings) *goanalysis.Linter {

FILE: pkg/golinters/ginkgolinter/ginkgolinter_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter.go
  function LenUsecase (line 12) | func LenUsecase() {
  function NilUsecase (line 29) | func NilUsecase() {
  function BooleanUsecase (line 38) | func BooleanUsecase() {
  function ErrorUsecase (line 45) | func ErrorUsecase() {
  function HaveLen0Usecase (line 56) | func HaveLen0Usecase() {
  function WrongComparisonUsecase (line 61) | func WrongComparisonUsecase() {
  function slowInt (line 71) | func slowInt() int {
  function WrongEventuallyWithFunction (line 76) | func WrongEventuallyWithFunction() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_cgo.go
  function _ (line 20) | func _() {
  function LenUsecase (line 26) | func LenUsecase() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_havelen0.go
  function LenUsecase_havelen0 (line 13) | func LenUsecase_havelen0() {
  function NilUsecase_havelen0 (line 30) | func NilUsecase_havelen0() {
  function BooleanUsecase_havelen0 (line 39) | func BooleanUsecase_havelen0() {
  function ErrorUsecase_havelen0 (line 46) | func ErrorUsecase_havelen0() {
  function HaveLen0Usecase_havelen0 (line 57) | func HaveLen0Usecase_havelen0() {
  function WrongComparisonUsecase_havelen0 (line 62) | func WrongComparisonUsecase_havelen0() {
  function slowInt_havelen0 (line 72) | func slowInt_havelen0() int {
  function WrongEventuallyWithFunction_havelen0 (line 77) | func WrongEventuallyWithFunction_havelen0() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_async.go
  function LenUsecase_async (line 13) | func LenUsecase_async() {
  function NilUsecase_async (line 30) | func NilUsecase_async() {
  function BooleanUsecase_async (line 39) | func BooleanUsecase_async() {
  function ErrorUsecase_async (line 46) | func ErrorUsecase_async() {
  function HaveLen0Usecase_async (line 57) | func HaveLen0Usecase_async() {
  function WrongComparisonUsecase_async (line 62) | func WrongComparisonUsecase_async() {
  function slowInt_async (line 72) | func slowInt_async() int {
  function WrongEventuallyWithFunction_async (line 78) | func WrongEventuallyWithFunction_async() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_compare.go
  function LenUsecase_compare (line 13) | func LenUsecase_compare() {
  function NilUsecase_compare (line 30) | func NilUsecase_compare() {
  function BooleanUsecase_compare (line 39) | func BooleanUsecase_compare() {
  function ErrorUsecase_compare (line 46) | func ErrorUsecase_compare() {
  function HaveLen0Usecase_compare (line 57) | func HaveLen0Usecase_compare() {
  function WrongComparisonUsecase_compare (line 63) | func WrongComparisonUsecase_compare() {
  function slowInt_compare (line 73) | func slowInt_compare() int {
  function WrongEventuallyWithFunction_compare (line 78) | func WrongEventuallyWithFunction_compare() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_err.go
  function LenUsecase_err (line 13) | func LenUsecase_err() {
  function NilUsecase_err (line 30) | func NilUsecase_err() {
  function BooleanUsecase_err (line 39) | func BooleanUsecase_err() {
  function ErrorUsecase_err (line 47) | func ErrorUsecase_err() {
  function HaveLen0Usecase_err (line 58) | func HaveLen0Usecase_err() {
  function WrongComparisonUsecase_err (line 63) | func WrongComparisonUsecase_err() {
  function slowInt_err (line 73) | func slowInt_err() int {
  function WrongEventuallyWithFunction_err (line 78) | func WrongEventuallyWithFunction_err() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_focused_containers.go
  function LenUsecase_focus (line 13) | func LenUsecase_focus() {
  function NilUsecase_focus (line 30) | func NilUsecase_focus() {
  function BooleanUsecase_focus (line 39) | func BooleanUsecase_focus() {
  function ErrorUsecase_focus (line 46) | func ErrorUsecase_focus() {
  function HaveLen0Usecase_focus (line 57) | func HaveLen0Usecase_focus() {
  function WrongComparisonUsecase_focus (line 62) | func WrongComparisonUsecase_focus() {
  function slowInt_focus (line 72) | func slowInt_focus() int {
  function WrongEventuallyWithFunction_focus (line 77) | func WrongEventuallyWithFunction_focus() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_len.go
  function LenUsecase_len (line 14) | func LenUsecase_len() {
  function NilUsecase_len (line 31) | func NilUsecase_len() {
  function BooleanUsecase_len (line 40) | func BooleanUsecase_len() {
  function ErrorUsecase_len (line 47) | func ErrorUsecase_len() {
  function HaveLen0Usecase_len (line 58) | func HaveLen0Usecase_len() {
  function WrongComparisonUsecase_len (line 63) | func WrongComparisonUsecase_len() {
  function slowInt_len (line 73) | func slowInt_len() int {
  function WrongEventuallyWithFunction_len (line 78) | func WrongEventuallyWithFunction_len() {

FILE: pkg/golinters/ginkgolinter/testdata/ginkgolinter_suppress_nil.go
  function LenUsecase_nil (line 13) | func LenUsecase_nil() {
  function NilUsecase_nil (line 31) | func NilUsecase_nil() {
  function BooleanUsecase_nil (line 40) | func BooleanUsecase_nil() {
  function ErrorUsecase_nil (line 47) | func ErrorUsecase_nil() {
  function HaveLen0Usecase_nil (line 58) | func HaveLen0Usecase_nil() {
  function WrongComparisonUsecase_nil (line 63) | func WrongComparisonUsecase_nil() {
  function slowInt_nil (line 73) | func slowInt_nil() int {
  function WrongEventuallyWithFunction_nil (line 78) | func WrongEventuallyWithFunction_nil() {

FILE: pkg/golinters/gocheckcompilerdirectives/gocheckcompilerdirectives.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/gocheckcompilerdirectives/gocheckcompilerdirectives_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gocheckcompilerdirectives/testdata/gocheckcompilerdirectives_cgo.go
  function _ (line 19) | func _() {

FILE: pkg/golinters/gochecknoglobals/gochecknoglobals.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/gochecknoglobals/gochecknoglobals_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gochecknoglobals/testdata/gochecknoglobals.go
  function NoGlobals (line 18) | func NoGlobals() {

FILE: pkg/golinters/gochecknoglobals/testdata/gochecknoglobals_cgo.go
  function _ (line 21) | func _() {
  function NoGlobals (line 35) | func NoGlobals() {

FILE: pkg/golinters/gochecknoinits/gochecknoinits.go
  function New (line 14) | func New() *goanalysis.Linter {
  function run (line 25) | func run(pass *analysis.Pass) (any, error) {

FILE: pkg/golinters/gochecknoinits/gochecknoinits_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gochecknoinits/testdata/gochecknoinits.go
  function init (line 6) | func init() { // want "don't use `init` function"
  function Init (line 10) | func Init() {}

FILE: pkg/golinters/gochecknoinits/testdata/gochecknoinits_cgo.go
  function _ (line 19) | func _() {
  function init (line 25) | func init() { // want "don't use `init` function"
  function Init (line 29) | func Init() {}

FILE: pkg/golinters/gochecksumtype/gochecksumtype.go
  constant linterName (line 17) | linterName = "gochecksumtype"
  function New (line 19) | func New(settings *config.GoChecksumTypeSettings) *goanalysis.Linter {
  function runGoCheckSumType (line 50) | func runGoCheckSumType(pass *analysis.Pass, settings *config.GoChecksumT...

FILE: pkg/golinters/gochecksumtype/gochecksumtype_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gochecksumtype/testdata/gochecksumtype.go
  type SumType (line 9) | type SumType interface
  type One (line 12) | type One struct
    method isSumType (line 14) | func (One) isSumType() {}
  type Two (line 16) | type Two struct
    method isSumType (line 18) | func (Two) isSumType() {}
  function sumTypeTest (line 20) | func sumTypeTest() {

FILE: pkg/golinters/gochecksumtype/testdata/gochecksumtype_cgo.go
  function _ (line 19) | func _() {
  type SumType (line 26) | type SumType interface
  type One (line 29) | type One struct
    method isSumType (line 31) | func (One) isSumType() {}
  type Two (line 33) | type Two struct
    method isSumType (line 35) | func (Two) isSumType() {}
  function sumTypeTest (line 37) | func sumTypeTest() {

FILE: pkg/golinters/gochecksumtype/testdata/gochecksumtype_custom.go
  type SumType (line 10) | type SumType interface
  type One (line 13) | type One struct
    method isSumType (line 15) | func (One) isSumType() {}
  type Two (line 17) | type Two struct
    method isSumType (line 19) | func (Two) isSumType() {}
  function sumTypeTest (line 21) | func sumTypeTest() {

FILE: pkg/golinters/gocognit/gocognit.go
  constant linterName (line 18) | linterName = "gocognit"
  function New (line 20) | func New(settings *config.GocognitSettings) *goanalysis.Linter {
  function runGocognit (line 48) | func runGocognit(pass *analysis.Pass, settings *config.GocognitSettings)...

FILE: pkg/golinters/gocognit/gocognit_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gocognit/testdata/gocognit.go
  function GoCognit_CC4_GetWords (line 5) | func GoCognit_CC4_GetWords(number int) string { // want "cognitive compl...
  function GoCognit_CC1_GetWords (line 17) | func GoCognit_CC1_GetWords(number int) string {
  function GoCognit_CC3_Fact (line 30) | func GoCognit_CC3_Fact(n int) int { // want "cognitive complexity 3 of f...
  function GoCognit_CC7_SumOfPrimes (line 38) | func GoCognit_CC7_SumOfPrimes(max int) int { // want "cognitive complexi...

FILE: pkg/golinters/gocognit/testdata/gocognit_cgo.go
  function _ (line 19) | func _() {
  function _ (line 25) | func _(number int) string { // want "cognitive complexity 4 of func .* i...

FILE: pkg/golinters/goconst/goconst.go
  constant linterName (line 17) | linterName = "goconst"
  function New (line 19) | func New(settings *config.GoConstSettings) *goanalysis.Linter {
  function runGoconst (line 50) | func runGoconst(pass *analysis.Pass, settings *config.GoConstSettings) (...

FILE: pkg/golinters/goconst/goconst_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/goconst/testdata/goconst.go
  function GoconstA (line 6) | func GoconstA() {
  function GoconstB (line 15) | func GoconstB() {
  constant AlreadyHasConst (line 22) | AlreadyHasConst = "alreadyhasconst"
  function GoconstC (line 24) | func GoconstC() {

FILE: pkg/golinters/goconst/testdata/goconst_calls_enabled.go
  constant FooBar (line 7) | FooBar = "foobar"
  function Baz (line 9) | func Baz() {

FILE: pkg/golinters/goconst/testdata/goconst_cgo.go
  function _ (line 19) | func _() {
  function _ (line 25) | func _() {
  function _ (line 34) | func _() {

FILE: pkg/golinters/goconst/testdata/goconst_dont_ignore_test.go
  function TestGoConstA (line 9) | func TestGoConstA(t *testing.T) {
  function TestGoConstB (line 18) | func TestGoConstB(t *testing.T) {
  constant AlreadyHasConst (line 25) | AlreadyHasConst = "alreadyhasconst"
  function TestGoConstC (line 27) | func TestGoConstC(t *testing.T) {

FILE: pkg/golinters/goconst/testdata/goconst_eval_and_find_duplicates.go
  constant envPrefix (line 8) | envPrefix   = "FOO_"
  constant EnvUser (line 9) | EnvUser     = envPrefix + "USER"
  constant EnvPassword (line 10) | EnvPassword = envPrefix + "PASSWORD"
  constant EnvUserFull (line 13) | EnvUserFull = "FOO_USER"
  constant KiB (line 15) | KiB = 1 << 10
  function _ (line 17) | func _() {

FILE: pkg/golinters/goconst/testdata/goconst_eval_const_expressions.go
  constant prefix (line 6) | prefix = "example.com/"
  constant API (line 7) | API    = prefix + "api"
  constant Web (line 8) | Web    = prefix + "web"
  constant Full (line 11) | Full = "example.com/api"
  function _ (line 13) | func _() {

FILE: pkg/golinters/goconst/testdata/goconst_find_duplicates.go
  constant SingleConst (line 5) | SingleConst = "single constant"
  constant GroupedConst1 (line 8) | GroupedConst1 = "grouped constant"
  constant GroupedConst2 (line 9) | GroupedConst2 = "another grouped"
  constant GroupedDuplicateConst1 (line 13) | GroupedDuplicateConst1 = "grouped duplicate value"
  constant GroupedDuplicateConst2 (line 14) | GroupedDuplicateConst2 = "grouped duplicate value"
  constant DuplicateConst1 (line 17) | DuplicateConst1 = "duplicate value"
  constant DuplicateConst2 (line 19) | DuplicateConst2 = "duplicate value"
  constant SpecialDuplicateConst1 (line 22) | SpecialDuplicateConst1 = "special\nvalue\twith\rchars"
  constant SpecialDuplicateConst2 (line 23) | SpecialDuplicateConst2 = "special\nvalue\twith\rchars"
  function _ (line 26) | func _() {

FILE: pkg/golinters/gocritic/gocritic.go
  constant linterName (line 24) | linterName = "gocritic"
  function New (line 31) | func New(settings *config.GoCriticSettings, replacer *strings.Replacer) ...
  type goCriticWrapper (line 57) | type goCriticWrapper struct
    method init (line 63) | func (w *goCriticWrapper) init(logger logutils.Log, settings *config.G...
    method run (line 84) | func (w *goCriticWrapper) run(pass *analysis.Pass) error {
    method buildEnabledCheckers (line 117) | func (w *goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlint...
  function runOnFile (line 142) | func runOnFile(pass *analysis.Pass, f *ast.File, checks []*gocriticlinte...

FILE: pkg/golinters/gocritic/gocritic_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/gocritic/gocritic_settings.go
  type settingsWrapper (line 17) | type settingsWrapper struct
    method IsCheckEnabled (line 69) | func (s *settingsWrapper) IsCheckEnabled(name string) bool {
    method GetLowerCasedParams (line 73) | func (s *settingsWrapper) GetLowerCasedParams() map[string]config.GoCr...
    method Load (line 77) | func (s *settingsWrapper) Load() error {
    method inferEnabledChecks (line 85) | func (s *settingsWrapper) inferEnabledChecks() {
    method buildEnabledAndDisabledByDefaultChecks (line 168) | func (s *settingsWrapper) buildEnabledAndDisabledByDefaultChecks() (en...
    method expandTagsToChecks (line 180) | func (s *settingsWrapper) expandTagsToChecks(tags []string) []string {
    method setCheckerParams (line 190) | func (s *settingsWrapper) setCheckerParams(
    method debugChecksInitialState (line 221) | func (s *settingsWrapper) debugChecksInitialState() {
    method debugChecksFinalState (line 233) | func (s *settingsWrapper) debugChecksFinalState() {
    method normalizeCheckerParamsValue (line 263) | func (s *settingsWrapper) normalizeCheckerParamsValue(p any) any {
    method validate (line 283) | func (s *settingsWrapper) validate() error {
    method validateOptionsCombinations (line 298) | func (s *settingsWrapper) validateOptionsCombinations() error {
    method validateCheckerTags (line 330) | func (s *settingsWrapper) validateCheckerTags() error {
    method validateCheckerNames (line 346) | func (s *settingsWrapper) validateCheckerNames() error {
    method validateDisabledAndEnabledAtOneMoment (line 374) | func (s *settingsWrapper) validateDisabledAndEnabledAtOneMoment() error {
    method validateAtLeastOneCheckerEnabled (line 390) | func (s *settingsWrapper) validateAtLeastOneCheckerEnabled() error {
  function newSettingsWrapper (line 37) | func newSettingsWrapper(logger logutils.Log, settings *config.GoCriticSe...
  type goCriticChecks (line 398) | type goCriticChecks
  method has (line 400) | func (m goCriticChecks[T]) has(name string) bool {
  function debugChecksListf (line 405) | func debugChecksListf(checks []string, format string, args ...any) {
  function normalizeMap (line 415) | func normalizeMap[ValueT any](in map[string]ValueT) map[string]ValueT {
  function isEnabledByDefaultGoCriticChecker (line 425) | func isEnabledByDefaultGoCriticChecker(info *gocriticlinter.CheckerInfo)...

FILE: pkg/golinters/gocritic/gocritic_settings_test.go
  function Test_settingsWrapper_inferEnabledChecks (line 19) | func Test_settingsWrapper_inferEnabledChecks(t *testing.T) {
  function Test_settingsWrapper_Load (line 277) | func Test_settingsWrapper_Load(t *testing.T) {
  type Slicer (line 453) | type Slicer
    method add (line 455) | func (s Slicer) add(toAdd ...string) Slicer {
    method remove (line 459) | func (s Slicer) remove(toRemove ...string) Slicer {
    method uniq (line 471) | func (s Slicer) uniq() Slicer {

FILE: pkg/golinters/gocritic/testdata/fix/in/gocritic.go
  function gocritic (line 10) | func gocritic() {

FILE: pkg/golinters/gocritic/testdata/fix/out/gocritic.go
  function gocritic (line 10) | func gocritic() {

FILE: pkg/golinters/gocritic/testdata/gocritic.go
  type size1 (line 14) | type size1 struct
  type size2 (line 18) | type size2 struct
  function gocriticAppendAssign (line 23) | func gocriticAppendAssign() {
  function gocriticDupSubExpr (line 30) | func gocriticDupSubExpr(x bool) {
  function gocriticHugeParamSize1 (line 36) | func gocriticHugeParamSize1(ss size1) {
  function gocriticHugeParamSize2 (line 40) | func gocriticHugeParamSize2(ss size2) { // want "hugeParam: ss is heavy ...
  function gocriticHugeParamSize2Ptr (line 44) | func gocriticHugeParamSize2Ptr(ss *size2) {
  function gocriticSwitchTrue (line 48) | func gocriticSwitchTrue() {
  function goCriticPreferStringWriter (line 57) | func goCriticPreferStringWriter(w interface {
  function gocriticStringSimplify (line 64) | func gocriticStringSimplify() {
  function gocriticRuleWrapperFunc (line 70) | func gocriticRuleWrapperFunc() {

FILE: pkg/golinters/gocritic/testdata/gocritic_cgo.go
  function _ (line 20) | func _() {

FILE: pkg/golinters/gocritic/testdata/gocritic_importShadow.go
  function Bar (line 10) | func Bar() {
  function foo (line 14) | func foo() {

FILE: pkg/golinters/gocritic/testdata/ruleguard/preferWriteString.go
  function preferWriteString (line 7) | func preferWriteString(m dsl.Matcher) {

FILE: pkg/golinters/gocritic/testdata/ruleguard/rangeExprCopy.go
  function rangeExprCopy (line 9) | func rangeExprCopy(m dsl.Matcher) {

FILE: pkg/golinters/gocritic/testdata/ruleguard/stringsSimplify.go
  function stringsSimplify (line 7) | func stringsSimplify(m dsl.Matcher) {

FILE: pkg/golinters/gocyclo/gocyclo.go
  constant linterName (line 17) | linterName = "gocyclo"
  function New (line 19) | func New(settings *config.GoCycloSettings) *goanalysis.Linter {
  function runGoCyclo (line 47) | func runGoCyclo(pass *analysis.Pass, settings *config.GoCycloSettings) [...

FILE: pkg/golinters/gocyclo/gocyclo_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gocyclo/testdata/gocyclo.go
  function GocycloBigComplexity (line 7) | func GocycloBigComplexity(s string) { // want "cyclomatic complexity .* ...

FILE: pkg/golinters/gocyclo/testdata/gocyclo_cgo.go
  function _ (line 20) | func _() {
  function _ (line 26) | func _(s string) { // want "cyclomatic complexity .* of func .* is high .*"

FILE: pkg/golinters/godoclint/godoclint.go
  function New (line 17) | func New(settings *config.GodoclintSettings) *goanalysis.Linter {
  function checkSettings (line 81) | func checkSettings(settings *config.GodoclintSettings) error {
  function pointer (line 110) | func pointer[T any](v T) *T { return &v }
  function deref (line 112) | func deref[T any](v *T) T {

FILE: pkg/golinters/godoclint/godoclint_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/godoclint/testdata/godoclint_default_fail.go
  type FooType (line 11) | type FooType struct
    method FooFunc (line 26) | func (FooType) FooFunc() {}
  constant FooConst (line 17) | FooConst = 1
  function FooFunc (line 23) | func FooFunc() {}
  constant DeprecatedConstA (line 31) | DeprecatedConstA = 1
  constant DeprecatedConstB (line 36) | DeprecatedConstB = 1
  constant DeprecatedConstC (line 41) | DeprecatedConstC = 1

FILE: pkg/golinters/godoclint/testdata/godoclint_default_pass.go
  type FooType (line 12) | type FooType struct
    method FooFunc (line 27) | func (FooType) FooFunc() {}
    method fooFunc (line 45) | func (FooType) fooFunc() {}
  constant FooConst (line 18) | FooConst = 1
  function FooFunc (line 24) | func FooFunc() {}
  type fooType (line 30) | type fooType struct
  constant fooConst (line 36) | fooConst = 1
  function fooFunc (line 42) | func fooFunc() {}
  constant DeprecatedConstA (line 50) | DeprecatedConstA = 1
  constant DeprecatedConstB (line 53) | DeprecatedConstB = 1
  constant deprecatedConstC (line 58) | deprecatedConstC = 1
  constant constWithStdlibDoclink (line 62) | constWithStdlibDoclink = 1

FILE: pkg/golinters/godoclint/testdata/godoclint_full_fail.go
  type FooType (line 16) | type FooType struct
    method FooFunc (line 31) | func (FooType) FooFunc() {}
    method fooFunc (line 49) | func (FooType) fooFunc() {}
  constant FooConst (line 22) | FooConst = 1
  function FooFunc (line 28) | func FooFunc() {}
  type fooType (line 34) | type fooType struct
  constant fooConst (line 40) | fooConst = 1
  function fooFunc (line 46) | func fooFunc() {}
  type BarType (line 56) | type BarType struct
    method BarFunc (line 66) | func (BarType) BarFunc() {}
    method barFunc (line 78) | func (BarType) barFunc() {}
  constant BarConst (line 60) | BarConst = 1
  function BarFunc (line 64) | func BarFunc() {}
  type barType (line 68) | type barType struct
  constant barConst (line 72) | barConst = 1
  function barFunc (line 76) | func barFunc() {}
  constant constWithUnusedLink (line 87) | constWithUnusedLink = 1
  constant constWithTooLongGodoc (line 92) | constWithTooLongGodoc = 1
  constant DeprecatedConstA (line 97) | DeprecatedConstA = 1
  constant DeprecatedConstB (line 102) | DeprecatedConstB = 1
  constant DeprecatedConstC (line 107) | DeprecatedConstC = 1
  constant constWithStdlibDoclink (line 112) | constWithStdlibDoclink = 1

FILE: pkg/golinters/godoclint/testdata/godoclint_full_pass.go
  type FooType (line 17) | type FooType struct
    method FooFunc (line 32) | func (FooType) FooFunc() {}
    method fooFunc (line 50) | func (FooType) fooFunc() {}
  constant FooConst (line 23) | FooConst = 1
  function FooFunc (line 29) | func FooFunc() {}
  type fooType (line 35) | type fooType struct
  constant fooConst (line 41) | fooConst = 1
  function fooFunc (line 47) | func fooFunc() {}
  constant constWithUnusedLink (line 57) | constWithUnusedLink = 1
  constant constWithTooLongGodoc (line 62) | constWithTooLongGodoc = 1
  constant DeprecatedConstA (line 67) | DeprecatedConstA = 1
  constant DeprecatedConstB (line 70) | DeprecatedConstB = 1
  constant deprecatedConstC (line 75) | deprecatedConstC = 1
  constant constWithStdlibDoclink (line 78) | constWithStdlibDoclink = 1

FILE: pkg/golinters/godoclint/testdata/godoclint_full_pass_test.go
  type FooType (line 17) | type FooType struct
    method FooFunc (line 32) | func (FooType) FooFunc() {}
    method fooFunc (line 50) | func (FooType) fooFunc() {}
  constant FooConst (line 23) | FooConst = 1
  function FooFunc (line 29) | func FooFunc() {}
  type fooType (line 35) | type fooType struct
  constant fooConst (line 41) | fooConst = 1
  function fooFunc (line 47) | func fooFunc() {}
  constant constWithUnusedLink (line 57) | constWithUnusedLink = 1
  constant constWithTooLongGodoc (line 62) | constWithTooLongGodoc = 1
  constant DeprecatedConstA (line 67) | DeprecatedConstA = 1
  constant DeprecatedConstB (line 70) | DeprecatedConstB = 1
  constant constWithStdlibDoclink (line 73) | constWithStdlibDoclink = 1

FILE: pkg/golinters/godot/godot.go
  function New (line 13) | func New(settings *config.GodotSettings) *goanalysis.Linter {
  function runGodot (line 43) | func runGodot(pass *analysis.Pass, settings godot.Settings) error {

FILE: pkg/golinters/godot/godot_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/godot/testdata/fix/in/godot.go
  function godot (line 10) | func godot(a, b int) int {
  function Foo (line 18) | func Foo() {

FILE: pkg/golinters/godot/testdata/fix/out/godot.go
  function godot (line 10) | func godot(a, b int) int {
  function Foo (line 18) | func Foo() {

FILE: pkg/golinters/godot/testdata/godot.go
  function Godot (line 7) | func Godot() {
  function Foo (line 16) | func Foo() {

FILE: pkg/golinters/godot/testdata/godot_cgo.go
  function _ (line 18) | func _() {
  function Godot (line 27) | func Godot() {

FILE: pkg/golinters/godox/godox.go
  function New (line 14) | func New(settings *config.GodoxSettings) *goanalysis.Linter {
  function run (line 26) | func run(pass *analysis.Pass, settings *config.GodoxSettings) error {

FILE: pkg/golinters/godox/godox_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/godox/testdata/godox.go
  function todoLeftInCode (line 5) | func todoLeftInCode() {

FILE: pkg/golinters/godox/testdata/godox_cgo.go
  function _ (line 19) | func _() {
  function todoLeftInCode (line 25) | func todoLeftInCode() {

FILE: pkg/golinters/gofmt/gofmt.go
  function New (line 11) | func New(settings *config.GoFmtSettings) *goanalysis.Linter {

FILE: pkg/golinters/gofmt/gofmt_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/gofmt/testdata/fix/in/gofmt.go
  function gofmt (line 5) | func gofmt(a, b int) int {

FILE: pkg/golinters/gofmt/testdata/fix/in/gofmt_rewrite_rules.go
  function GofmtRewriteRule (line 7) | func GofmtRewriteRule() {
  function GofmtRewriteRule2 (line 19) | func GofmtRewriteRule2() {

FILE: pkg/golinters/gofmt/testdata/fix/out/gofmt.go
  function gofmt (line 5) | func gofmt(a, b int) int {

FILE: pkg/golinters/gofmt/testdata/fix/out/gofmt_rewrite_rules.go
  function GofmtRewriteRule (line 7) | func GofmtRewriteRule() {
  function GofmtRewriteRule2 (line 19) | func GofmtRewriteRule2() {

FILE: pkg/golinters/gofmt/testdata/gofmt.go
  function GofmtNotSimplified (line 6) | func GofmtNotSimplified() {

FILE: pkg/golinters/gofmt/testdata/gofmt_cgo.go
  function _ (line 19) | func _() {
  function GofmtNotSimplified (line 25) | func GofmtNotSimplified() {

FILE: pkg/golinters/gofmt/testdata/gofmt_no_simplify.go
  function GofmtNotSimplifiedOk (line 6) | func GofmtNotSimplifiedOk() {
  function GofmtBadFormat (line 11) | func GofmtBadFormat(){  // want "File is not properly formatted"

FILE: pkg/golinters/gofmt/testdata/gofmt_rewrite_rules.go
  function GofmtRewriteRule (line 6) | func GofmtRewriteRule() {

FILE: pkg/golinters/gofmt/testdata/gofmt_too_many_empty_lines.go
  function _ (line 7) | func _() {

FILE: pkg/golinters/gofumpt/gofumpt.go
  function New (line 11) | func New(settings *config.GoFumptSettings) *goanalysis.Linter {

FILE: pkg/golinters/gofumpt/gofumpt_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/gofumpt/testdata/fix/in/gofumpt.go
  function GofmtNotExtra (line 7) | func GofmtNotExtra(bar string, baz string) {

FILE: pkg/golinters/gofumpt/testdata/fix/in/gofumpt_cgo.go
  function GofmtNotExtra (line 17) | func GofmtNotExtra(bar string, baz string) {

FILE: pkg/golinters/gofumpt/testdata/fix/out/gofumpt.go
  function GofmtNotExtra (line 7) | func GofmtNotExtra(bar, baz string) {

FILE: pkg/golinters/gofumpt/testdata/fix/out/gofumpt_cgo.go
  function GofmtNotExtra (line 17) | func GofmtNotExtra(bar, baz string) {

FILE: pkg/golinters/gofumpt/testdata/gofumpt.go
  function GofumptNewLine (line 6) | func GofumptNewLine() {

FILE: pkg/golinters/gofumpt/testdata/gofumpt_cgo.go
  function _ (line 19) | func _() {
  function GofumptNewLine (line 25) | func GofumptNewLine() {

FILE: pkg/golinters/gofumpt/testdata/gofumpt_too_many_empty_lines.go
  function _ (line 7) | func _() {

FILE: pkg/golinters/gofumpt/testdata/gofumpt_with_extra.go
  function GofmtNotExtra (line 6) | func GofmtNotExtra(bar string, baz string) { // want "File is not proper...

FILE: pkg/golinters/goheader/goheader.go
  constant linterName (line 14) | linterName = "goheader"
  function New (line 16) | func New(settings *config.GoHeaderSettings, replacer *strings.Replacer) ...
  function runGoHeader (line 42) | func runGoHeader(pass *analysis.Pass, conf *goheader.Configuration) error {

FILE: pkg/golinters/goheader/goheader_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/goheader/testdata/goheader_cgo.go
  function _ (line 25) | func _() {

FILE: pkg/golinters/goimports/goimports.go
  function New (line 11) | func New(settings *config.GoImportsSettings) *goanalysis.Linter {

FILE: pkg/golinters/goimports/goimports_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/goimports/testdata/fix/in/goimports.go
  function goimports (line 10) | func goimports(a, b int) int {

FILE: pkg/golinters/goimports/testdata/fix/in/goimports_cgo.go
  function goimports (line 20) | func goimports(a, b int) int {

FILE: pkg/golinters/goimports/testdata/fix/out/goimports.go
  function goimports (line 5) | func goimports(a, b int) int {

FILE: pkg/golinters/goimports/testdata/fix/out/goimports_cgo.go
  function goimports (line 15) | func goimports(a, b int) int {

FILE: pkg/golinters/goimports/testdata/goimports.go
  function Bar (line 9) | func Bar() {

FILE: pkg/golinters/goimports/testdata/goimports_cgo.go
  function _ (line 20) | func _() {
  function Bar (line 26) | func Bar() {

FILE: pkg/golinters/goimports/testdata/goimports_local.go
  function GoimportsLocalPrefixTest (line 11) | func GoimportsLocalPrefixTest() {

FILE: pkg/golinters/golines/golines.go
  function New (line 11) | func New(settings *config.GoLinesSettings) *goanalysis.Linter {

FILE: pkg/golinters/golines/golines_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/golines/testdata/fix/in/golines-custom.go
  type Foo (line 6) | type Foo struct

FILE: pkg/golinters/golines/testdata/fix/in/golines.go
  type MyStruct (line 11) | type MyStruct struct
  type MyInterface (line 17) | type MyInterface interface
  function longLine (line 26) | func longLine(aReallyLongName string, anotherLongName string, aThirdLong...
  function shortFunc (line 61) | func shortFunc(a int, b int) error {

FILE: pkg/golinters/golines/testdata/fix/out/golines-custom.go
  type Foo (line 6) | type Foo struct

FILE: pkg/golinters/golines/testdata/fix/out/golines.go
  type MyStruct (line 25) | type MyStruct struct
  type MyInterface (line 31) | type MyInterface interface
  function longLine (line 47) | func longLine(
  function shortFunc (line 119) | func shortFunc(a int, b int) error {

FILE: pkg/golinters/golines/testdata/golines.go
  type MyStruct (line 11) | type MyStruct struct
  type MyInterface (line 17) | type MyInterface interface
  function longLine (line 26) | func longLine(aReallyLongName string, anotherLongName string, aThirdLong...
  function shortFunc (line 61) | func shortFunc(a int, b int) error {

FILE: pkg/golinters/gomoddirectives/gomoddirectives.go
  constant linterName (line 17) | linterName = "gomoddirectives"
  function New (line 19) | func New(settings *config.GoModDirectivesSettings) *goanalysis.Linter {

FILE: pkg/golinters/gomodguard/gomodguard.go
  constant linterName (line 16) | linterName = "gomodguard"
  function New (line 18) | func New(settings *config.GoModGuardSettings) *goanalysis.Linter {

FILE: pkg/golinters/gomodguard/gomodguard_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gomodguard/testdata/gomodguard.go
  type Something (line 13) | type Something struct
  function aAllowedImport (line 15) | func aAllowedImport() { //nolint:unused
  function aBlockedImport (line 21) | func aBlockedImport() { //nolint:unused

FILE: pkg/golinters/gomodguard/testdata/gomodguard_cgo.go
  function _ (line 23) | func _() {
  type Something (line 30) | type Something struct
  function aAllowedImport (line 32) | func aAllowedImport() { //nolint:unused
  function aBlockedImport (line 38) | func aBlockedImport() { //nolint:unused

FILE: pkg/golinters/goprintffuncname/goprintffuncname.go
  function New (line 9) | func New() *goanalysis.Linter {

FILE: pkg/golinters/goprintffuncname/goprintffuncname_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/goprintffuncname/testdata/goprintffuncname.go
  function PrintfLikeFuncWithBadName (line 4) | func PrintfLikeFuncWithBadName(format string, args ...interface{}) { // ...

FILE: pkg/golinters/goprintffuncname/testdata/goprintffuncname_cgo.go
  function _ (line 18) | func _() {
  function PrintfLikeFuncWithBadName (line 24) | func PrintfLikeFuncWithBadName(format string, args ...interface{}) { // ...

FILE: pkg/golinters/gosec/gosec.go
  constant linterName (line 25) | linterName = "gosec"
  function New (line 27) | func New(settings *config.GoSecSettings) *goanalysis.Linter {
  function runGoSec (line 82) | func runGoSec(lintCtx *linter.Context, pass *analysis.Pass, settings *co...
  function toGosecConfig (line 148) | func toGosecConfig(settings *config.GoSecSettings) gosec.Config {
  function convertScoreToString (line 165) | func convertScoreToString(score issue.Score) string {
  function convertGosecGlobals (line 179) | func convertGosecGlobals(globalOptionFromConfig any, conf gosec.Config) {
  function createAnalyzerFilters (line 199) | func createAnalyzerFilters(includes, excludes []string) []analyzers.Anal...
  function createRuleFilters (line 214) | func createRuleFilters(includes, excludes []string) []rules.RuleFilter {
  function convertToScore (line 229) | func convertToScore(str string) (issue.Score, error) {
  function filterIssues (line 244) | func filterIssues(issues []*issue.Issue, severity, confidence issue.Scor...

FILE: pkg/golinters/gosec/gosec_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gosec/gosec_test.go
  function Test_toGosecConfig (line 12) | func Test_toGosecConfig(t *testing.T) {

FILE: pkg/golinters/gosec/testdata/gosec.go
  function Gosec (line 12) | func Gosec() {
  function GosecNolintGosec (line 17) | func GosecNolintGosec() {
  function GosecNoErrorCheckingByDefault (line 22) | func GosecNoErrorCheckingByDefault() {
  function GosecG204SubprocWithFunc (line 27) | func GosecG204SubprocWithFunc() {

FILE: pkg/golinters/gosec/testdata/gosec_cgo.go
  function _ (line 24) | func _() {
  function Gosec (line 30) | func Gosec() {

FILE: pkg/golinters/gosec/testdata/gosec_global_option.go
  function Gosec (line 10) | func Gosec() {

FILE: pkg/golinters/gosec/testdata/gosec_nosec.go
  function Gosec (line 10) | func Gosec() {

FILE: pkg/golinters/gosec/testdata/gosec_rules_config.go
  constant gosecToken (line 7) | gosecToken = "62ebc7a03d6ca24dca1258fd4b48462f6fed1545"
  constant gosecSimple (line 8) | gosecSimple = "62ebc7a03d6ca24dca1258fd4b48462f6fed1545"
  function gosecCustom (line 10) | func gosecCustom() {

FILE: pkg/golinters/gosec/testdata/gosec_severity_confidence.go
  function gosecVariableURL (line 13) | func gosecVariableURL() {
  function gosecHardcodedCredentials (line 26) | func gosecHardcodedCredentials() {

FILE: pkg/golinters/gosmopolitan/gosmopolitan.go
  function New (line 12) | func New(settings *config.GosmopolitanSettings) *goanalysis.Linter {

FILE: pkg/golinters/gosmopolitan/gosmopolitan_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan.go
  type col (line 9) | type col struct
  function main (line 14) | func main() {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan_allow_time_local.go
  function main (line 10) | func main() {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan_cgo.go
  function _ (line 20) | func _() {
  type col (line 26) | type col struct
  function _ (line 31) | func _() {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan_dont_ignore_test.go
  function main (line 8) | func main() {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan_escape_hatches.go
  type A (line 9) | type A
  type C (line 11) | type C struct
  function D (line 16) | func D(fmt string) string {
  type X (line 21) | type X struct
  function main (line 25) | func main() {

FILE: pkg/golinters/gosmopolitan/testdata/gosmopolitan_scripts.go
  function main (line 9) | func main() {

FILE: pkg/golinters/govet/govet.go
  function New (line 157) | func New(settings *config.GovetSettings) *goanalysis.Linter {
  function analyzersFromConfig (line 172) | func analyzersFromConfig(settings *config.GovetSettings) []*analysis.Ana...
  function isAnalyzerEnabled (line 192) | func isAnalyzerEnabled(name string, cfg *config.GovetSettings, defaultAn...
  function logAnalyzers (line 216) | func logAnalyzers(message string, analyzers []*analysis.Analyzer) {

FILE: pkg/golinters/govet/govet_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/govet/govet_test.go
  function TestGovet (line 19) | func TestGovet(t *testing.T) {
  function sortAnalyzers (line 34) | func sortAnalyzers(a, b *analysis.Analyzer) int {
  function TestGovetSorted (line 46) | func TestGovetSorted(t *testing.T) {
  function TestGovetAnalyzerIsEnabled (line 61) | func TestGovetAnalyzerIsEnabled(t *testing.T) {

FILE: pkg/golinters/govet/testdata/fix/in/govet.go
  type Foo (line 12) | type Foo struct
  function nonConstantFormat (line 20) | func nonConstantFormat(s string) {

FILE: pkg/golinters/govet/testdata/fix/out/govet.go
  type Foo (line 12) | type Foo struct
  function nonConstantFormat (line 20) | func nonConstantFormat(s string) {

FILE: pkg/golinters/govet/testdata/govet.go
  function GovetComposites (line 11) | func GovetComposites() error {
  function GovetShadow (line 15) | func GovetShadow(f io.Reader, buf []byte) (err error) {
  function GovetPrintf (line 27) | func GovetPrintf() {
  function GovetStringIntConv (line 32) | func GovetStringIntConv() {

FILE: pkg/golinters/govet/testdata/govet_cgo.go
  function _ (line 20) | func _() {
  function _ (line 26) | func _(f io.Reader, buf []byte) (err error) {

FILE: pkg/golinters/govet/testdata/govet_custom_formatter.go
  constant escape (line 12) | escape = "\x1b"
  constant reset (line 13) | reset  = escape + "[0m"
  constant green (line 14) | green  = escape + "[32m"
  constant minValue (line 16) | minValue = 0.0
  constant maxValue (line 17) | maxValue = 1.0
  type Bar (line 21) | type Bar
    method Format (line 26) | func (h Bar) Format(state fmt.State, r rune) {
  function main (line 74) | func main() {

FILE: pkg/golinters/govet/testdata/govet_fieldalignment.go
  type gvfaGood (line 6) | type gvfaGood struct
  type gvfaBad (line 12) | type gvfaBad struct
  type gvfaPointerGood (line 18) | type gvfaPointerGood struct
  type gvfaPointerBad (line 23) | type gvfaPointerBad struct
  type gvfaPointerSorta (line 28) | type gvfaPointerSorta struct
  type gvfaPointerSortaBad (line 39) | type gvfaPointerSortaBad struct
  type gvfaZeroGood (line 50) | type gvfaZeroGood struct
  type gvfaZeroBad (line 55) | type gvfaZeroBad struct

FILE: pkg/golinters/govet/testdata/govet_ifaceassert.go
  function GovetIfaceAssert (line 9) | func GovetIfaceAssert() {

FILE: pkg/golinters/grouper/grouper.go
  function New (line 10) | func New(settings *config.GrouperSettings) *goanalysis.Linter {

FILE: pkg/golinters/grouper/grouper_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {

FILE: pkg/golinters/grouper/testdata/grouper.go
  function dummy (line 7) | func dummy() { fmt.Println("dummy") }

FILE: pkg/golinters/grouper/testdata/grouper_cgo.go
  function _ (line 17) | func _() {

FILE: pkg/golinters/iface/iface.go
  function New (line 16) | func New(settings *config.IfaceSettings) *goanalysis.Linter {
  function analyzersFromSettings (line 30) | func analyzersFromSettings(settings *config.IfaceSettings) []*analysis.A...
  function uniqueNames (line 56) | func uniqueNames(names []string) []string {

FILE: pkg/golinters/iface/iface_integration_test.go
  function TestFromTestdata (line 9) | func TestFromTestdata(t *testing.T) {
  function TestFix (line 13) | func TestFix(t *testing.T) {
  function TestFixPathPrefix (line 17) | func TestFixPathPrefix(t *testing.T) {

FILE: pkg/golinters/iface/testdata/fix/in/iface.go
  type Pinger (line 10) | type Pinger interface
  type Healthcheck (line 14) | type Healthcheck interface
  type Server (line 20) | type Server interface
  type server (line 24) | type server struct
    method Serve (line 28) | func (s server) Serve() error {
  function NewServer (line 32) | func NewServer(addr string) Server {
  type User (line 38) | type User struct
  type UserRepository (line 43) | type UserRepository interface
  type UserRepositorySQL (line 47) | type UserRepositorySQL struct
    method UserOf (line 50) | func (r *UserRepositorySQL) UserOf(id string) (*User, error) {
  type Granter (line 54) | type Granter interface
  function AllowAll (line 58) | func AllowAll(g Granter) error {
  type Allower (line 62) | type Allower interface
  function Allow (line 66) | func Allow(x any) {

FILE: pkg/golinters/iface/testdata/fix/out/iface.go
  type Server (line 12) | type Server interface
  type server (line 16) | type server struct
    method Serve (line 20) | func (s server) Serve() error {
  function NewServer (line 24) | func NewServer(addr string) *server {
  type User (line 30) | type User struct
  type UserRepositorySQL (line 35) | type UserRepositorySQL struct
    method UserOf (line 38) | func (r *UserRepositorySQL) UserOf(id string) (*User, error) {
  type Granter (line 42) | type Granter interface
  function AllowAll (line 46) | func AllowAll(g Granter) error {
  type Allower (line 50) | ty
Condensed preview — 1800 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,624K chars).
[
  {
    "path": ".custom-gcl.reference.yml",
    "chars": 1073,
    "preview": "# The golangci-lint version used to build the custom binary.\n# Required.\nversion: v2.0.0\n\n# The name of the custom binar"
  },
  {
    "path": ".gitattributes",
    "chars": 101,
    "preview": "go.sum linguist-generated\nassets/* linguist-generated\n*       text=auto eol=lf\n*.ps1   text eol=crlf\n"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 93,
    "preview": "See [contributing quick start](https://golangci-lint.run/docs/contributing/) on our website.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 3642,
    "preview": "name: 🐞 Bug Report\ndescription: \"Create a report to help us improve.\"\nlabels: [bug]\nbody:\n  - type: checkboxes\n    id: t"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 475,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: 📖 Documentation\n    url: https://golangci-lint.run\n    about: Pleas"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 2202,
    "preview": "name: 💡 Feature request\ndescription: \"Suggest an idea for this project.\"\nlabels: [enhancement]\nbody:\n\n  - type: checkbox"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 551,
    "preview": "<!--\n\nWARNING:\n\nWe use Dependabot to update dependencies (linters included).\nThe updates happen at least automatically o"
  },
  {
    "path": ".github/boring-cyborg.yml",
    "chars": 318,
    "preview": "firstPRWelcomeComment: Hey, thank you for opening your first Pull Request !\n\n# Comment to be posted to on first time iss"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 1638,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: gomod\n    directory: \"/\"\n    schedule:\n      interval: weekly\n      day: \"sun"
  },
  {
    "path": ".github/new-linter-checklist.md",
    "chars": 3771,
    "preview": "In order for a pull request adding a linter to be reviewed, the linter and the PR must follow some requirements.\n\n- [ ] "
  },
  {
    "path": ".github/peril/.gitignore",
    "chars": 14,
    "preview": "node_modules/\n"
  },
  {
    "path": ".github/peril/README.md",
    "chars": 171,
    "preview": "Based on https://github.com/gatsbyjs/gatsby/tree/HEAD/peril.\n\n## Update a code\n\n```bash\nheroku ps:restart web --app gola"
  },
  {
    "path": ".github/peril/package.json",
    "chars": 369,
    "preview": "{\n  \"dependencies\": {\n    \"jest\": \"^29.0.3\"\n  },\n  \"scripts\": {\n    \"test\": \"jest\"\n  },\n  \"jest\": {\n    \"rootDir\": \"../\""
  },
  {
    "path": ".github/peril/rules/invite-collaborator.ts",
    "chars": 2354,
    "preview": "import { danger } from \"danger\";\n\nconst comment = (username: string) => `\nHey, @${username} — we just merged your PR to "
  },
  {
    "path": ".github/peril/settings.json",
    "chars": 383,
    "preview": "{\n  \"$schema\": \"https://raw.githubusercontent.com/danger/peril/HEAD/peril-settings-json.schema\",\n  \"settings\": {\n    \"ig"
  },
  {
    "path": ".github/peril/tests/invite-collaborator.test.ts",
    "chars": 1754,
    "preview": "jest.mock(\"danger\", () => jest.fn());\nimport * as danger from \"danger\";\n\nconst dm = danger as any;\n\nimport { inviteColla"
  },
  {
    "path": ".github/peril/tsconfig.json",
    "chars": 150,
    "preview": "{\n  \"compilerOptions\": {\n    \"esModuleInterop\": false,\n    \"target\": \"es5\",\n    \"module\": \"commonjs\",\n    \"lib\": [\"es201"
  },
  {
    "path": ".github/stale.yml",
    "chars": 727,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 366\n\n# Number of days of inactivity before "
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 1570,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/deploy-documentation.yml",
    "chars": 1091,
    "preview": "name: Deploy Documentation\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n\n  doc:\n    name: Build and deploy documentati"
  },
  {
    "path": ".github/workflows/new-linter-checklist.yml",
    "chars": 870,
    "preview": "name: Add new linter checklist\n\non:\n  workflow_dispatch:\n    inputs:\n      pr:\n        description: PR number\n        re"
  },
  {
    "path": ".github/workflows/post-release.yml",
    "chars": 2187,
    "preview": "name: \"Post release\"\non:\n  release:\n    types:\n      - published\n\nenv:\n  # https://github.com/actions/setup-go#supported"
  },
  {
    "path": ".github/workflows/pr-checks.yml",
    "chars": 3464,
    "preview": "name: Checks\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\nenv:\n  # https://github.com/actions/setup-go#suppor"
  },
  {
    "path": ".github/workflows/pr-documentation.yml",
    "chars": 842,
    "preview": "name: Check Documentation\n\non:\n  pull_request:\n\njobs:\n\n  doc:\n    name: Build documentation\n    runs-on: ubuntu-latest\n "
  },
  {
    "path": ".github/workflows/pr-tests.yml",
    "chars": 2536,
    "preview": "name: Tests\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\nenv:\n  # https://github.com/actions/setup-go#support"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 2983,
    "preview": "name: \"Release a tag\"\non:\n  push:\n    tags:\n      - v*\n\npermissions:\n  # Allow the workflow to write attestations.\n  id-"
  },
  {
    "path": ".gitignore",
    "chars": 358,
    "preview": "*.test\n.DS_Store\n/*.pdf\n/*.pprof\n/*.txt\n/test.lock\n/.idea/\n/.vscode/\n/dist/\n/golangci-lint\n/golangci-lint.exe\n/test/path"
  },
  {
    "path": ".golangci.next.reference.yml",
    "chars": 185118,
    "preview": "# This file contains all available configuration options\n# with their default values (in comments).\n#\n# This file is not"
  },
  {
    "path": ".golangci.reference.yml",
    "chars": 185118,
    "preview": "# This file contains all available configuration options\n# with their default values (in comments).\n#\n# This file is not"
  },
  {
    "path": ".golangci.yml",
    "chars": 6654,
    "preview": "# This configuration file is not a recommendation.\n#\n# We intentionally use a limited set of linters.\n# This configurati"
  },
  {
    "path": ".goreleaser.yml",
    "chars": 9123,
    "preview": "version: 2\n\nproject_name: golangci-lint\n\nbuilds:\n  - binary: golangci-lint\n    main: ./cmd/golangci-lint/\n    flags:\n   "
  },
  {
    "path": ".pre-commit-hooks.yaml",
    "chars": 1095,
    "preview": "- id: golangci-lint\n  name: golangci-lint\n  description: Fast linters runner for Go. Note that only modified files are l"
  },
  {
    "path": "CHANGELOG-v1.md",
    "chars": 65765,
    "preview": "Follow the news and releases on [Mastodon](https://fosstodon.org/@golangcilint) and on [Bluesky](https://bsky.app/profil"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 19075,
    "preview": "Follow the news and releases on [Mastodon](https://fosstodon.org/@golangcilint) and on [Bluesky](https://bsky.app/profil"
  },
  {
    "path": "LICENSE",
    "chars": 35148,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "Makefile",
    "chars": 3725,
    "preview": ".DEFAULT_GOAL = test\n.PHONY: FORCE\n\n# enable consistent Go 1.12/1.13 GOPROXY behavior.\nexport GOPROXY = https://proxy.go"
  },
  {
    "path": "README.md",
    "chars": 3338,
    "preview": "<p align=\"center\">\n  <img alt=\"golangci-lint logo\" src=\"assets/go.png\" height=\"150\" />\n  <h3 align=\"center\">golangci-lin"
  },
  {
    "path": "assets/github-action-config-v1.json",
    "chars": 6721,
    "preview": "{\n  \"MinorVersionToConfig\": {\n    \"latest\": {\n      \"TargetVersion\": \"v1.64.8\"\n    },\n    \"v1.10\": {\n      \"Error\": \"gol"
  },
  {
    "path": "assets/github-action-config-v2.json",
    "chars": 8653,
    "preview": "{\n  \"MinorVersionToConfig\": {\n    \"latest\": {\n      \"TargetVersion\": \"v2.11.3\"\n    },\n    \"v1.10\": {\n      \"Error\": \"gol"
  },
  {
    "path": "assets/github-action-config.json",
    "chars": 6721,
    "preview": "{\n  \"MinorVersionToConfig\": {\n    \"latest\": {\n      \"TargetVersion\": \"v1.64.8\"\n    },\n    \"v1.10\": {\n      \"Error\": \"gol"
  },
  {
    "path": "build/buildx-alpine.Dockerfile",
    "chars": 679,
    "preview": "# syntax=docker/dockerfile:1.4\nFROM golang:1.26-alpine\n\nARG TARGETPLATFORM\n\n# related to https://github.com/golangci/gol"
  },
  {
    "path": "build/buildx.Dockerfile",
    "chars": 470,
    "preview": "# syntax=docker/dockerfile:1.4\nFROM golang:1.26\n\nARG TARGETPLATFORM\n\n# related to https://github.com/golangci/golangci-l"
  },
  {
    "path": "cmd/golangci-lint/main.go",
    "chars": 1649,
    "preview": "package main\n\nimport (\n\t\"cmp\"\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"runtime/debug\"\n\t\"strings\"\n\n\t\"github.com/golangci/golangci-lint/v2"
  },
  {
    "path": "cmd/golangci-lint/plugins.go",
    "chars": 62,
    "preview": "package main\n\n// This file is used to declare module plugins.\n"
  },
  {
    "path": "docs/.gitignore",
    "chars": 295,
    "preview": "### Hugo files\n.hugo_build.lock\npublic/\nresources/\n\n# Copy of install.sh\n/static/install.sh\n\n### Generated files\n\n# Gene"
  },
  {
    "path": "docs/Makefile",
    "chars": 343,
    "preview": ".PHONY: default clean serve build\n\ndefault: clean serve\n\nclean:\n\trm -rf public/\n\nserve: clean\n\thugo server --disableFast"
  },
  {
    "path": "docs/archetypes/default.md",
    "chars": 101,
    "preview": "---\ndate: '{{ .Date }}'\ndraft: true\ntitle: '{{ replace .File.ContentBaseName \"-\" \" \" | title }}'\n---\n"
  },
  {
    "path": "docs/assets/css/custom.css",
    "chars": 1189,
    "preview": ":root {\n  --primary-hue: 187deg;\n  --primary-saturation: 54.4%;\n  --primary-lightness: 57.8%;\n}\n\n/* Allow card subtitle "
  },
  {
    "path": "docs/content/_index.md",
    "chars": 2292,
    "preview": "---\ntitle: 'Golangci-lint'\nlayout: hextra-home\nparams:\n  width: wide\n---\n\n{{< hextra/hero-container image=\"images/golang"
  },
  {
    "path": "docs/content/docs/_index.md",
    "chars": 1362,
    "preview": "---\ntitle: 'Golangci-lint Documentation'\n---\n\n{{< hextra/hero-subtitle >}}\n  Everything you need to know for your golang"
  },
  {
    "path": "docs/content/docs/configuration/_index.md",
    "chars": 599,
    "preview": "---\ntitle: Configuration\nweight: 2\naliases:\n  - /usage/configuration/\n---\n\nThe config file has lower priority than comma"
  },
  {
    "path": "docs/content/docs/configuration/cli.md",
    "chars": 2897,
    "preview": "---\ntitle: Command-Line\nweight: 1\n---\n\n{{% golangci/cli-output %}}\n\n## `run`\n\n{{< cards >}}\n    {{< card link=\"/docs/lin"
  },
  {
    "path": "docs/content/docs/configuration/file.md",
    "chars": 2349,
    "preview": "---\ntitle: Configuration File\nweight: 2\n---\n\nGolangci-lint looks for config files in the following paths from the curren"
  },
  {
    "path": "docs/content/docs/contributing/_index.md",
    "chars": 699,
    "preview": "---\ntitle: Contributing\nweight: 6\naliases:\n  - /contributing/quick-start/\n---\n\n{{< cards >}}\n  {{< card link=\"/docs/cont"
  },
  {
    "path": "docs/content/docs/contributing/architecture.md",
    "chars": 8859,
    "preview": "---\ntitle: Architecture\nweight: 3\naliases:\n  - /contributing/architecture/\n---\n\nThere are the following golangci-lint ex"
  },
  {
    "path": "docs/content/docs/contributing/debug.md",
    "chars": 590,
    "preview": "---\ntitle: Debugging\nweight: 5\naliases:\n  - /contributing/debug/\n---\n\nYou can see a verbose output of linter by using `-"
  },
  {
    "path": "docs/content/docs/contributing/faq.md",
    "chars": 1185,
    "preview": "---\ntitle: FAQ\nweight: 6\naliases:\n  - /contributing/faq/\n---\n\n## How to add a new open-source linter to `golangci-lint`\n"
  },
  {
    "path": "docs/content/docs/contributing/new-linters.md",
    "chars": 2945,
    "preview": "---\ntitle: New linters\nweight: 4\naliases:\n  - /contributing/new-linters/\n---\n\n## How to write a linter\n\nUse `go/analysis"
  },
  {
    "path": "docs/content/docs/contributing/website.md",
    "chars": 2444,
    "preview": "---\ntitle: This Website\nweight: 7\naliases:\n  - /contributing/website/\n---\n\n## Technology\n\nWe use [Hugo](https://gohugo.i"
  },
  {
    "path": "docs/content/docs/contributing/workflow.md",
    "chars": 1954,
    "preview": "---\ntitle: Workflow\nweight: 2\naliases:\n  - /contributing/workflow/\n---\n\nBy participating in this project, you agree to a"
  },
  {
    "path": "docs/content/docs/donate/_index.md",
    "chars": 711,
    "preview": "---\ntitle: Support Us\nweight: 8\naliases:\n  - /donate/\n---\n\nGolangci-lint is a free and open-source project built by volu"
  },
  {
    "path": "docs/content/docs/formatters/_index.md",
    "chars": 1306,
    "preview": "---\ntitle: Formatters\nweight: 4\nexcludeSearch: true\naliases:\n  - /usage/formatters/\n---\n\nTo see a list of supported form"
  },
  {
    "path": "docs/content/docs/formatters/configuration.md",
    "chars": 120,
    "preview": "---\ntitle: Settings\nweight: 2\n---\n\n{{% golangci/items/settings info=\"formatters_info\" settings=\"formatter_settings\" %}}\n"
  },
  {
    "path": "docs/content/docs/linters/_index.md",
    "chars": 1705,
    "preview": "---\ntitle: Linters\nweight: 3\nexcludeSearch: true\naliases:\n  - /usage/linters/\n---\n\nTo see a list of supported linters an"
  },
  {
    "path": "docs/content/docs/linters/configuration.md",
    "chars": 114,
    "preview": "---\ntitle: Settings\nweight: 2\n---\n\n{{% golangci/items/settings info=\"linters_info\" settings=\"linter_settings\" %}}\n"
  },
  {
    "path": "docs/content/docs/linters/false-positives.md",
    "chars": 4294,
    "preview": "---\ntitle: False Positives\nweight: 3\naliases:\n  - /usage/false-positives/\n---\n\nFalse positives are inevitable, but we di"
  },
  {
    "path": "docs/content/docs/plugins/_index.md",
    "chars": 293,
    "preview": "---\ntitle: Plugins\nweight: 7\n---\n\n{{< cards >}}\n  {{< card link=\"/docs/plugins/module-plugins/\" title=\"Module Plugin Sys"
  },
  {
    "path": "docs/content/docs/plugins/go-plugins.md",
    "chars": 3477,
    "preview": "---\ntitle: Go Plugin System\nweight: 2\naliases:\n  - /plugins/go-plugins/\n---\n\n{{< callout type=\"warning\" >}}\n  **We recom"
  },
  {
    "path": "docs/content/docs/plugins/module-plugins.md",
    "chars": 2077,
    "preview": "---\ntitle: Module Plugin System\nweight: 1\naliases:\n  - /plugins/module-plugins/\n---\n\n> [!TIP]\n> An example linter can be"
  },
  {
    "path": "docs/content/docs/product/_index.md",
    "chars": 412,
    "preview": "---\ntitle: Product\nweight: 5\n---\n\n{{< cards cols=2 >}}\n  {{< card link=\"/docs/product/thanks/\" title=\"Thanks\" icon=\"hear"
  },
  {
    "path": "docs/content/docs/product/changelog-v1.md",
    "chars": 467,
    "preview": "---\ntitle: Changelog v1\nexcludeSearch: true\nsidebar:\n  exclude: true\n---\n\nFollow the news and releases on [Mastodon](htt"
  },
  {
    "path": "docs/content/docs/product/changelog.md",
    "chars": 634,
    "preview": "---\ntitle: Changelog\nweight: 2\nexcludeSearch: true\naliases:\n  - /product/changelog/\n---\n\nFollow the news and releases on"
  },
  {
    "path": "docs/content/docs/product/migration-guide.md",
    "chars": 32356,
    "preview": "---\ntitle: Migration guide\nweight: 3\naliases:\n  - /product/migration-guide/\n---\n\n## Command `migrate`\n\nYou can use golan"
  },
  {
    "path": "docs/content/docs/product/roadmap.md",
    "chars": 4015,
    "preview": "---\ntitle: Roadmap\nweight: 4\naliases:\n  - /product/roadmap/\n---\n\n## 💡 Feature Requests\n\nPlease file an issue to suggest "
  },
  {
    "path": "docs/content/docs/product/thanks.md",
    "chars": 1329,
    "preview": "---\ntitle: Thanks\nweight: 1\naliases:\n  - /product/thanks/\n---\n\n## ❤️\n\n### Thanks to developers and authors of used linte"
  },
  {
    "path": "docs/content/docs/welcome/_index.md",
    "chars": 775,
    "preview": "---\ntitle: Welcome\nweight: 1\n---\n\nThis quickstart guide provides step-by-step instructions to help you install, configur"
  },
  {
    "path": "docs/content/docs/welcome/faq.md",
    "chars": 5160,
    "preview": "---\ntitle: FAQ\ntoc: false\nweight: 5\naliases:\n  - /welcome/faq/\n---\n\n## Which Go versions are supported?\n\nThe same as the"
  },
  {
    "path": "docs/content/docs/welcome/install/_index.md",
    "chars": 315,
    "preview": "---\ntitle: \"Install\"\nweight: 1\naliases:\n  - /welcome/install/\n---\n\nWhere do you want to install golangci-lint?\n\n{{< card"
  },
  {
    "path": "docs/content/docs/welcome/install/ci.md",
    "chars": 2630,
    "preview": "---\ntitle: \"CI Installation\"\nweight: 3\n---\n\nIt's important to have reproducible CI: don't start to fail all builds at th"
  },
  {
    "path": "docs/content/docs/welcome/install/local.md",
    "chars": 6760,
    "preview": "---\ntitle: \"Local Installation\"\nweight: 2\n---\n\n## Binaries\n\n```bash\n# binary will be $(go env GOPATH)/bin/golangci-lint\n"
  },
  {
    "path": "docs/content/docs/welcome/integrations.md",
    "chars": 3947,
    "preview": "---\ntitle: Integrations\nweight: 3\naliases:\n  - /welcome/integrations/\n---\n\n## Editor Integration\n\n### GoLand\n\nStarting f"
  },
  {
    "path": "docs/content/docs/welcome/quick-start.md",
    "chars": 1223,
    "preview": "---\ntitle: Quick Start\nweight: 2\naliases:\n  - /welcome/quick-start/\n---\n\n## Linting\n\nTo run golangci-lint:\n\n```bash\ngola"
  },
  {
    "path": "docs/data/cli_help.json",
    "chars": 13440,
    "preview": "{\n  \"defaultEnabledLinters\": \"Enabled by default linters:\\nerrcheck: Errcheck is a program for checking for unchecked er"
  },
  {
    "path": "docs/data/configuration_file.json",
    "chars": 18126,
    "preview": "{\n  \"formatters\": \"formatters:\\n  # Enable specific formatter.\\n  # Default: [] (uses standard Go formatting)\\n  enable:"
  },
  {
    "path": "docs/data/exclusion_presets.json",
    "chars": 1760,
    "preview": "{\n  \"comments\": [\n    {\n      \"linters\": [\n        \"staticcheck\"\n      ],\n      \"text\": \"(ST1000|ST1020|ST1021|ST1022)\"\n"
  },
  {
    "path": "docs/data/formatters_info.json",
    "chars": 1693,
    "preview": "[\n  {\n    \"name\": \"gci\",\n    \"desc\": \"Check if code and import statements are formatted, with additional rules.\",\n    \"l"
  },
  {
    "path": "docs/data/icons.yaml",
    "chars": 341,
    "preview": "heart-red: <svg xmlns=\"http://www.w3.org/2000/svg\" color=\"red\" fill=\"red\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"c"
  },
  {
    "path": "docs/data/linters_info.json",
    "chars": 30814,
    "preview": "[\n  {\n    \"name\": \"arangolint\",\n    \"desc\": \"opinionated best practices for arangodb client\",\n    \"loadMode\": 8767,\n    "
  },
  {
    "path": "docs/data/thanks.json",
    "chars": 16056,
    "preview": "[\n  {\n    \"name\": \"4meepo\",\n    \"linters\": [\n      \"tagalign\"\n    ],\n    \"profile\": \"https://github.com/sponsors/4meepo\""
  },
  {
    "path": "docs/go.mod",
    "chars": 97,
    "preview": "module github.com/golangci/docs\n\ngo 1.24.0\n\nrequire github.com/imfing/hextra v0.11.0 // indirect\n"
  },
  {
    "path": "docs/go.sum",
    "chars": 169,
    "preview": "github.com/imfing/hextra v0.11.0 h1:2HswtfKD/TFg2VWp0hvsH5F3/WoEugiz8s3n2JFouqY=\ngithub.com/imfing/hextra v0.11.0/go.mod"
  },
  {
    "path": "docs/golangci-lint.tape",
    "chars": 3474,
    "preview": "Output docs/static/images/demo.gif\n\n# NOTE: it should be run at the root of the repository.\n# vhs docs/golangci-lint.tap"
  },
  {
    "path": "docs/hugo.yaml",
    "chars": 3584,
    "preview": "baseURL: https://golangci-lint.run\nlanguageCode: en-us\ntitle: Golangci-lint\n\nenableRobotsTXT: true\n\nenableGitInfo: true\n"
  },
  {
    "path": "docs/i18n/en.yaml",
    "chars": 29,
    "preview": "copyright: \"© 2025 Golangci\"\n"
  },
  {
    "path": "docs/layouts/404.html",
    "chars": 1334,
    "preview": "{{ define \"main\" }}\n<div class='hx:mx-auto hx:flex hextra-max-page-width'>\n    {{ partial \"sidebar.html\" (dict \"context\""
  },
  {
    "path": "docs/layouts/_partials/custom/head-end.html",
    "chars": 2381,
    "preview": "<script defer src=\"https://cdn.jsdelivr.net/npm/quicklink@3.0.1/dist/quicklink.umd.js\"></script>\n<script>\n  window.addEv"
  },
  {
    "path": "docs/layouts/_partials/footer.html",
    "chars": 3102,
    "preview": "{{- /* Modified version of https://github.com/imfing/hextra/blob/v0.10.0/layouts/_partials/footer.html */ -}}\n{{- /* Thi"
  },
  {
    "path": "docs/layouts/_partials/golangci/items/compare-versions.html",
    "chars": 348,
    "preview": "{{- /*\nCompares two versions.\n\n@param {string} a Version A\n@param {string} b Version B\n@returns {boolean}\n\n@example {{ p"
  },
  {
    "path": "docs/layouts/_partials/golangci/items/format-description.html",
    "chars": 371,
    "preview": "{{- /*\nFormats a item (linter/formatter) description.\n\n@param {string} (positional parameter 0) Description\n@returns {st"
  },
  {
    "path": "docs/layouts/_partials/golangci/items/tag.html",
    "chars": 1208,
    "preview": "{{- /*\nCreates tag information for an item (linter/formatter).\n\n@param {string} (positional parameter 0) Description\n@re"
  },
  {
    "path": "docs/layouts/_partials/shortcodes/badge.html",
    "chars": 3385,
    "preview": "{{- /* Modified version of https://github.com/imfing/hextra/blob/v0.11.0/layouts/_partials/shortcodes/badge.html */ -}}\n"
  },
  {
    "path": "docs/layouts/_partials/shortcodes/cards.html",
    "chars": 436,
    "preview": "{{/* Modified version of https://github.com/imfing/hextra/blob/v0.10.0/layouts/_partials/shortcodes/cards.html */}}\n{{- "
  },
  {
    "path": "docs/layouts/_shortcodes/cards.html",
    "chars": 549,
    "preview": "{{- /* Modified version of https://github.com/imfing/hextra/blob/v0.10.0/layouts/_shortcodes/cards.html */ -}}\n{{- /* Th"
  },
  {
    "path": "docs/layouts/_shortcodes/details.html",
    "chars": 969,
    "preview": "{{- /* Modified version of https://github.com/imfing/hextra/blob/v0.10.0/layouts/_shortcodes/details.html */ -}}\n{{- /* "
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/authors.html",
    "chars": 463,
    "preview": "{{- /*\nCreates a card for each author of a linter/formatter.\n\n@example {{< golangci/authors >}}\n*/ -}}\n\n{{- $thanks := i"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/button.html",
    "chars": 769,
    "preview": "{{- $link := .Get \"link\" -}}\n{{- $text := .Get \"text\" -}}\n{{- $style := .Get \"style\" -}}\n\n{{- $external := hasPrefix $li"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/cli-output.html",
    "chars": 706,
    "preview": "{{- /*\nCreates a code block with the output of the CLI.\n\n@param {string} cmd The name of the command.\n@param {string} se"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/configuration-file-snippet.html",
    "chars": 401,
    "preview": "{{- /*\nCreates a code block with the contents of a configuration file section.\n\n@param {string} section The name of the "
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/embed.html",
    "chars": 210,
    "preview": "{{- /*\nEmbeds a file.\n\n@param {string} file The path to the file.\n@returns {string}\n\n@example {{% golangci/embed file=\"p"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/exclusion-preset-tables.html",
    "chars": 563,
    "preview": "{{- /*\nCreates a table of exclusion presets.\n\n@example {{% golangci/exclusion-preset-tables %}}\n*/ -}}\n\n{{- $presets := "
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/exclusion-presets-snippet.html",
    "chars": 295,
    "preview": "{{- /*\nCreates an exclusion presets configuration snippet.\n\n@example {{% golangci/exclusion-presets-snippet %}}\n*/ -}}\n\n"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/image-card.html",
    "chars": 477,
    "preview": "{{- /*\nCreates a card for an image.\n\n@param {string} src The path to the image.\n@param {string} title The title text for"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/items/cards.html",
    "chars": 2864,
    "preview": "{{- /*\nCreates a card for each item (linter/formatter) in a data file.\n\n@param {string} data The name of the data file.\n"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/items/filter-badge.html",
    "chars": 1074,
    "preview": "{{- /* Modified version of https://github.com/imfing/hextra/blob/v0.10.0/layouts/_shortcodes/badge.html */ -}}\n{{- /*\nCr"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/items/filter.html",
    "chars": 395,
    "preview": "{{- /*\nThis shortcode is used to create a filter bar.\n\n@example {{< golangci/items/filter >}}{{< golangci/items/filter-b"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/items/settings.html",
    "chars": 2362,
    "preview": "{{- /*\nCreates a section for each setting of a linter/formatter.\n\n@param {string} info The name of the data file contain"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/latest-version.html",
    "chars": 327,
    "preview": "{{- /*\nDisplays the latest version of golangci-lint.\nBased on the data file `data/version.json`.\n\n@example {{< golangci/"
  },
  {
    "path": "docs/layouts/_shortcodes/golangci/starcharts.html",
    "chars": 581,
    "preview": "{{- /*\nDisplays a starchart for a GitHub repository.\nSupports both light and dark mode.\n\n@param {string} repo The name o"
  },
  {
    "path": "docs/static/CNAME",
    "chars": 18,
    "preview": "golangci-lint.run\n"
  },
  {
    "path": "docs/static/site.webmanifest",
    "chars": 413,
    "preview": "{\n  \"name\": \"golangci-lint\",\n  \"short_name\": \"golangci-lint\",\n  \"start_url\": \"index.html\",\n  \"icons\": [\n    {\n      \"src"
  },
  {
    "path": "go.mod",
    "chars": 10040,
    "preview": "module github.com/golangci/golangci-lint/v2\n\n// The minimum Go version must always be latest-1.\n// This version should n"
  },
  {
    "path": "go.sum",
    "chars": 96746,
    "preview": "4d63.com/gocheckcompilerdirectives v1.3.0 h1:Ew5y5CtcAAQeTVKUVFrE7EwHMrTO6BggtEj8BZSjZ3A=\n4d63.com/gocheckcompilerdirect"
  },
  {
    "path": "install.sh",
    "chars": 12090,
    "preview": "#!/bin/sh\nset -e\n\nusage() {\n  this=$1\n  cat <<EOF\n$this: download go binaries for golangci/golangci-lint\n\nUsage: $this ["
  },
  {
    "path": "internal/cache/cache.go",
    "chars": 6899,
    "preview": "package cache\n\nimport (\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"maps\"\n\t\"runtime\"\n\t\"slices\"\n\t\"strings"
  },
  {
    "path": "internal/cache/cache_test.go",
    "chars": 3808,
    "preview": "package cache\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n"
  },
  {
    "path": "internal/cache/testdata/hello.go",
    "chars": 77,
    "preview": "package testdata\n\nimport \"fmt\"\n\nfunc Hello() {\n\tfmt.Println(\"hello world\")\n}\n"
  },
  {
    "path": "internal/errorutil/errors.go",
    "chars": 403,
    "preview": "package errorutil\n\nimport (\n\t\"fmt\"\n)\n\n// PanicError can be used to not print stacktrace twice\ntype PanicError struct {\n\t"
  },
  {
    "path": "internal/go/LICENSE",
    "chars": 1479,
    "preview": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or with"
  },
  {
    "path": "internal/go/base/error_notunix.go",
    "chars": 299,
    "preview": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/base/error_unix.go",
    "chars": 299,
    "preview": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/base/readme.md",
    "chars": 208,
    "preview": "# quoted\n\nExtracted from `go/src/cmd/go/internal/base/` (related to `cache`).\n\nOnly the function `IsETXTBSY` is extracte"
  },
  {
    "path": "internal/go/cache/cache.go",
    "chars": 23877,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/cache_gcil.go",
    "chars": 282,
    "preview": "package cache\n\nimport (\n\t\"errors\"\n)\n\n// IsErrMissing allows to access to the internal error.\n// TODO(ldez) the handling "
  },
  {
    "path": "internal/go/cache/cache_test.go",
    "chars": 7310,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/default.go",
    "chars": 2967,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/default_gcil.go",
    "chars": 129,
    "preview": "package cache\n\nconst (\n\tenvGolangciLintCache     = \"GOLANGCI_LINT_CACHE\"\n\tenvGolangciLintCacheProg = \"GOLANGCI_LINT_CACH"
  },
  {
    "path": "internal/go/cache/hash.go",
    "chars": 4940,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/hash_gcil.go",
    "chars": 56,
    "preview": "package cache\n\nfunc SetSalt(b []byte) {\n\thashSalt = b\n}\n"
  },
  {
    "path": "internal/go/cache/hash_test.go",
    "chars": 1123,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/prog.go",
    "chars": 10132,
    "preview": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cache/readme.md",
    "chars": 2432,
    "preview": "# cache\n\nExtracted from `go/src/cmd/go/internal/cache/`.\n\nThe main modifications are:\n- The errors management\n  - Some m"
  },
  {
    "path": "internal/go/cacheprog/cacheprog.go",
    "chars": 5884,
    "preview": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/cacheprog/readme.md",
    "chars": 224,
    "preview": "# quoted\n\nExtracted from `go/src/cmd/go/internal/cacheprog/` (related to `cache`).\nThis is just a copy of the Go code wi"
  },
  {
    "path": "internal/go/mmap/mmap.go",
    "chars": 797,
    "preview": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/mmap/mmap_other.go",
    "chars": 454,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/mmap/mmap_unix.go",
    "chars": 886,
    "preview": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/mmap/mmap_windows.go",
    "chars": 1391,
    "preview": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/mmap/readme.md",
    "chars": 503,
    "preview": "# mmap\n\nExtracted from `go/src/cmd/go/internal/mmap/` (related to `cache`).\nThis is just a copy of the Go code without a"
  },
  {
    "path": "internal/go/quoted/quoted.go",
    "chars": 2839,
    "preview": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/quoted/quoted_test.go",
    "chars": 2957,
    "preview": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/quoted/readme.md",
    "chars": 457,
    "preview": "# quoted\n\nExtracted from `go/src/cmd/internal/quoted/` (related to `cache`).\nThis is just a copy of the Go code without "
  },
  {
    "path": "internal/go/testenv/readme.md",
    "chars": 461,
    "preview": "# testenv\n\nExtracted from `go/src/internal/testenv/`.\n\nOnly the function `SyscallIsNotSupported` is extracted (related t"
  },
  {
    "path": "internal/go/testenv/testenv.go",
    "chars": 705,
    "preview": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/testenv/testenv_notunix.go",
    "chars": 550,
    "preview": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/testenv/testenv_notwin.go",
    "chars": 1173,
    "preview": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/testenv/testenv_unix.go",
    "chars": 994,
    "preview": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/go/testenv/testenv_windows.go",
    "chars": 824,
    "preview": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/LICENSE",
    "chars": 1453,
    "preview": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are per"
  },
  {
    "path": "internal/x/tools/diff/diff.go",
    "chars": 5235,
    "preview": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/common.go",
    "chars": 4724,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/common_test.go",
    "chars": 3959,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/doc.go",
    "chars": 11329,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/git.sh",
    "chars": 928,
    "preview": "#!/bin/bash\n#\n# Copyright 2022 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style"
  },
  {
    "path": "internal/x/tools/diff/lcs/labels.go",
    "chars": 1107,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/old.go",
    "chars": 13126,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/old_test.go",
    "chars": 8359,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/lcs/sequence.go",
    "chars": 3002,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/myers/diff.go",
    "chars": 6007,
    "preview": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/ndiff.go",
    "chars": 2511,
    "preview": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/diff/readme.md",
    "chars": 385,
    "preview": "# diff\n\nExtracted from `/internal/diff/` (related to `fixer`).\nThis is just a copy of the code without any changes.\n\n## "
  },
  {
    "path": "internal/x/tools/diff/unified.go",
    "chars": 6993,
    "preview": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/driverutil/readfile.go",
    "chars": 1312,
    "preview": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "internal/x/tools/driverutil/readme.md",
    "chars": 1026,
    "preview": "# driverutil\n\nExtracted from `/internal/analysis/driverutil/` (related to `checker`).\nThis is just a copy of `readfile.g"
  },
  {
    "path": "internal/x/tools/driverutil/url.go",
    "chars": 898,
    "preview": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license "
  },
  {
    "path": "jsonschema/custom-gcl.jsonschema.json",
    "chars": 1911,
    "preview": "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$ref\": \"#/$defs/Configuration\",\n  \"$defs\": {\n    \"Conf"
  },
  {
    "path": "jsonschema/golangci.jsonschema.json",
    "chars": 169695,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.next.jsonschema.json",
    "chars": 169695,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.57.jsonschema.json",
    "chars": 115085,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.58.jsonschema.json",
    "chars": 119824,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.59.jsonschema.json",
    "chars": 123732,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.60.jsonschema.json",
    "chars": 124611,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.61.jsonschema.json",
    "chars": 124814,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.62.jsonschema.json",
    "chars": 126951,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.63.jsonschema.json",
    "chars": 134929,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.64.jsonschema.json",
    "chars": 139151,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v1.jsonschema.json",
    "chars": 139151,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.0.jsonschema.json",
    "chars": 152034,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.1.jsonschema.json",
    "chars": 153881,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.10.jsonschema.json",
    "chars": 169525,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.2.jsonschema.json",
    "chars": 157088,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.3.jsonschema.json",
    "chars": 157332,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.4.jsonschema.json",
    "chars": 158205,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.5.jsonschema.json",
    "chars": 163489,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.6.jsonschema.json",
    "chars": 165083,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.7.jsonschema.json",
    "chars": 165316,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.8.jsonschema.json",
    "chars": 167833,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "jsonschema/golangci.v2.9.jsonschema.json",
    "chars": 169413,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"$id\": \"https://json.schemastore.org/golangci-lint.json\",\n  "
  },
  {
    "path": "pkg/commands/cache.go",
    "chars": 1854,
    "preview": "package commands\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/golangci/golangci-lint"
  },
  {
    "path": "pkg/commands/config.go",
    "chars": 3636,
    "preview": "package commands\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/spf13/"
  },
  {
    "path": "pkg/commands/config_verify.go",
    "chars": 5728,
    "preview": "package commands\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\""
  }
]

// ... and 1600 more files (download for full content)

About this extraction

This page contains the full source code of the golangci/golangci-lint GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1800 files (8.4 MB), approximately 2.3M tokens, and a symbol index with 4760 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!