Last active
April 12, 2020 20:13
-
-
Save Helcaraxan/4c259ba58fb240ffdfb8be8eb18965dd to your computer and use it in GitHub Desktop.
Default (draconian) configuration for golangci-lint
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# For full documentation of the configuration options please | |
# see: https://github.com/golangci/golangci-lint#config-file. | |
# options for analysis running | |
run: | |
# timeout for analysis, e.g. 30s, 5m, default is 1m | |
deadline: 5m | |
# list of build tags, all linters use it. Default is empty list. | |
build-tags: | |
# which dirs to skip: they won't be analyzed; | |
# can use regexp here: generated.*, regexp is applied on full path; | |
# default value is empty list, but next dirs are always skipped independently | |
# from this option's value: | |
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ | |
skip-dirs: | |
# which files to skip: they will be analyzed, but issues from them | |
# won't be reported. Default value is empty list, but there is | |
# no need to include all autogenerated files, we confidently recognize | |
# autogenerated files. If it's not please let us know. | |
skip-files: | |
# linters that we should / shouldn't run | |
linters: | |
disable-all: true | |
enable: | |
- deadcode | |
- dogsled | |
- dupl | |
- errcheck | |
- goconst | |
- gocritic | |
- gocyclo | |
- godox | |
- gofmt | |
- golint | |
- gosimple | |
- govet | |
- ineffassign | |
- misspell | |
- nakedret | |
- scopelint | |
- staticcheck | |
- structcheck | |
- typecheck | |
- unconvert | |
- unparam | |
- unused | |
- varcheck | |
- whitespace | |
# all available settings of specific linters, we can set an option for | |
# a given linter even if we deactivate that same linter at runtime | |
linters-settings: | |
govet: | |
# report about shadowed variables | |
check-shadowing: true | |
goimports: | |
# put imports beginning with prefix after 3rd-party packages; | |
# it's a comma-separated list of prefixes | |
local-prefixes: github.com | |
gocyclo: | |
# minimal code complexity to report, 30 by default (but we recommend 10-20) | |
min-complexity: 15 | |
dupl: | |
# tokens count to trigger issue, 150 by default | |
threshold: 150 | |
goconst: | |
# minimal length of string constant, 3 by default | |
min-len: 6 | |
# minimal occurrences count to trigger, 3 by default | |
min-occurrences: 5 | |
nakedret: | |
# make an issue if func has more lines of code than this setting and it has naked returns; default is 30 | |
max-func-lines: 0 # Warn on all naked returns. | |
gocritic: | |
# which checks should be enabled; can't be combined with 'disabled-checks'; | |
# default are: [appendAssign assignOp caseOrder dupArg dupBranchBody dupCase flagDeref | |
# ifElseChain regexpMust singleCaseSwitch sloppyLen switchTrue typeSwitchVar underef | |
# unlambda unslice rangeValCopy defaultCaseOrder]; | |
# | |
# List of available checks: | |
# https://github.com/go-critic/go-critic/blob/master/docs/overview.md | |
enabled-checks: | |
# "diagnostic" checkers | |
- appendAssign | |
- caseOrder | |
- deprecatedComment | |
- dupArg | |
- dupBranchBody | |
- dupCase | |
- dupSubExpr | |
- exitAfterDefer | |
- flagDeref | |
- flagName | |
- nilValReturn | |
# "style" checkers | |
- assignOp | |
- boolExprSimplify | |
- builtinShadow | |
- captLocal | |
- commentedOutImport | |
- defaultCaseOrder | |
- dupImport | |
- emptyStringTest | |
- elseIf | |
- emptyFallthrough | |
- ifElseChain | |
- importShadow | |
- methodExprCall | |
- nestingReduce | |
- newDeref | |
- ptrToRefParam | |
- regexpMust | |
- singleCaseSwitch | |
- sloppyLen | |
- stringXbytes | |
- switchTrue | |
- typeAssertChain | |
- typeSwitchVar | |
- typeUnparen | |
- underef | |
- unlabelStmt | |
- unlambda | |
- unnecessaryBlock | |
- unslice | |
- valSwap | |
# "performance" checkers | |
- appendCombine | |
- indexAlloc | |
- rangeValCopy | |
# rules to deal with reported isues | |
issues: | |
# List of regexps of issue texts to exclude, empty list by default. | |
# But independently from this option we use default exclude patterns, | |
# it can be disabled by `exclude-use-default: false`. To list all | |
# excluded by default patterns execute `golangci-lint run --help` | |
exclude: | |
# List of path and linter specific issues that should be excluded. | |
exclude-rules: | |
- path: "^go/src/improbable.io/(cmd|db|lib)" | |
text: "context leak" | |
linters: | |
- govet | |
# Maximum issues count per one linter. Set to 0 to disable. Default is 50. | |
max-per-linter: 0 | |
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3. | |
max-same-issues: 0 | |
# Show only new issues created after git revision `REV` | |
new-from-rev: "" # Show all linter errors. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment