linters-settings: cyclop: max-complexity: 20 # the maximal average package complexity. If it's higher than 0.0 (float) the check is enabled (default 0.0) package-average: 0.0 skip-tests: false dogsled: # checks assignments with too many blank identifiers; default is 2 max-blank-identifiers: 2 dupl: threshold: 100 errcheck: check-type-assertions: false check-blank: false errorlint: errorf: false asserts: true comparison: true forbidigo: # Forbid the following identifiers (identifiers are written using regexp): forbid: - ^print.*$ - 'fmt\.Print.*' exclude_godoc_examples: true funlen: lines: 60 statements: 60 gocognit: min-complexity: 35 goconst: min-len: 3 min-occurrences: 3 ignore-tests: true match-constant: true numbers: false min: 3 max: 3 ignore-calls: true gocritic: # Which checks should be disabled; can't be combined with 'enabled-checks' disabled-checks: - regexpMust gocyclo: min-complexity: 20 godot: # comments to be checked: `declarations`, `toplevel`, or `all` scope: all capital: false 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 keywords: - TODO - BUG - FIXME - NOTE - OPTIMIZE # marks code that should be optimized before merging - HACK # marks hack-arounds that should be removed before merging gofmt: # simplify code: gofmt with `-s` option simplify: true gofumpt: # Select the Go version to target lang-version: "1.17" extra-rules: false goimports: # put imports beginning with prefix after 3rd-party packages; # it's a comma-separated list of prefixes local-prefixes: github.com/trustwallet gomnd: settings: mnd: # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. checks: - argument - case - condition - operation - return - assign ignored-numbers: 10,1000 gomoddirectives: replace-local: false gosec: # To select a subset of rules to run. # Available rules: https://github.com/securego/gosec#available-rules includes: - G401 - G306 - G101 gosimple: # Select the Go version to target go: "1.17" # https://staticcheck.io/docs/options#checks checks: [ "all" ] govet: check-shadowing: true ifshort: # Maximum length of variable declaration measured in number of lines, after which linter won't suggest using short syntax. # Has higher priority than max-decl-chars. max-decl-lines: 1 # Maximum length of variable declaration measured in number of characters, after which linter won't suggest using short syntax. max-decl-chars: 30 importas: # if set to `true`, force to use alias. no-unaliased: true # List of aliases alias: - pkg: github:com/trustwallet/go-libs/gin alias: golibsGin lll: # max line length line-length: 120 tab-width: 1 misspell: locale: US # ignore-words: nolintlint: # Enable to ensure that nolint directives are all used allow-unused: false # Disable to ensure that nolint directives don't have a leading space allow-leading-space: true # Exclude following linters from requiring an explanation allow-no-explanation: [] # Enable to require an explanation of nonzero length after each nolint directive require-explanation: false # Enable to require nolint directives to mention the specific linter being suppressed require-specific: true revive: # see https://github.com/mgechev/revive#available-rules for details. ignore-generated-header: true severity: warning rules: - name: indent-error-flow severity: warning - name: time-naming severity: warn - name: errorf severity: warn - name: blank-imports sevetiry: warn # The error return parameter should be last - name: error-return severity: error # Redundant if when returning an error - name: if-return severity: warn # Warns when there are heading or trailing newlines in a block - name: empty-lines severity: error staticcheck: # Select the Go version to target go: "1.17" # https://staticcheck.io/docs/options#checks checks: [ "all" ] stylecheck: # Select the Go version to target go: "1.17" # https://staticcheck.io/docs/options#checks checks: [ "all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022" ] # https://staticcheck.io/docs/options#dot_import_whitelist dot-import-whitelist: - fmt # https://staticcheck.io/docs/options#initialisms 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" ] # https://staticcheck.io/docs/options#http_status_code_whitelist http-status-code-whitelist: [ "200", "400", "404", "500" ] unused: # Select the Go version to target go: "1.17" whitespace: multi-if: true # Enforces newlines (or comments) after every multi-line if statement multi-func: false # Enforces newlines (or comments) after every multi-line function signature wsl: # See https://github.com/bombsimon/wsl/blob/master/doc/configuration.md for # documentation of available settings allow-assign-and-anything: false allow-assign-and-call: true allow-cuddle-declarations: false allow-multiline-assign: true allow-separated-leading-comment: false allow-trailing-comment: false force-case-trailing-whitespace: 0 force-err-cuddling: false force-short-decl-cuddling: false strict-append: true linters: disable-all: true enable: - bodyclose - deadcode - depguard - dogsled - dupl - errcheck - exportloopref - exhaustive - funlen - gochecknoinits - goconst - gocritic - gocyclo - gofmt - goimports # - gomnd - goprintffuncname - gosec - gosimple - govet - ineffassign - lll - misspell - nakedret - noctx - nolintlint - rowserrcheck - staticcheck - structcheck - stylecheck - typecheck - unconvert - unparam - unused - varcheck - whitespace - asciicheck # - gochecknoglobals - gocognit - godot # - godox # - goerr113 # - nestif - prealloc - testpackage # - revive # - wsl # don't enable: # - interfacer # - maligned # - scopelint output: format: colored-line-number print-issued-lines: true print-linter-name: true uniq-by-line: true path-prefix: "" sort-results: true