# Copyright (C) 2022-2023 Luke Shumaker # # SPDX-License-Identifier: GPL-2.0-or-later linters: enable-all: true disable: # Deprecated - deadcode # deprecated, replaced by 'unused' - exhaustivestruct # deprecated, replaced by 'exhauststruct' - golint # deprecated, replaced by 'revive' - ifshort # deprecated - interfacer # deprecated - maligned # deprecated, replaced by 'govet fieldalignement' - nosnakecase # deprecated, replaced by 'revive var-naming' - scopelint # deprecated, replaced by 'exportloopref' - structcheck # deprecated, replaced by 'unused' - varcheck # deprecated, replaced by 'unused' # Don't support Go 1.18 generics yet - rowserrcheck - sqlclosecheck - wastedassign - ireturn # golangci-lint doesn't claim it doesn't, but it doesn't # Style - godot - lll - nlreturn - nonamedreturns # I name returns for godoc purposes. - wsl # Complexity; sometimes code is just complex. - cyclop - funlen - gocognit - gocyclo - maintidx - nestif # Miscellaneous - goerr113 # forbids fmt.Errorf(%w), which is just silly - godox # I'm OK checking in to-be-completed tasks # These are disabled not because I think they're bad, but because # they currently don't pass, and I haven't really evaluated them yet. - exhaustive - exhaustruct - gochecknoglobals - gochecknoinits - revive - testpackage - thelper - varnamelen - wrapcheck linters-settings: errcheck: exclude-functions: - "git.lukeshu.com/btrfs-progs-ng/lib/textui.Fprintf" gci: sections: - standard - default - prefix(git.lukeshu.com/btrfs-progs-ng) gocritic: disabled-checks: - appendAssign gofmt: simplify: true gomnd: ignored-numbers: - '2' ignored-functions: - 'binutil.NeedNBytes' - 'textui.Tunable' gomoddirectives: replace-allow-list: - github.com/jacobsa/fuse gosec: excludes: - G104 # duplicates errcheck - G304 # this program opens arbitrary files nolintlint: require-explanation: true require-specific: true allow-no-explanation: - dupword stylecheck: checks: - "all" - "-ST1003" # CONST_VAL names for consistency with other btrfs code - "-ST1000" # TODO: get this to pass - "-ST1020" # TODO: get this to pass - "-ST1021" # TODO: get this to pass tagliatelle: case: use-field-name: true rules: json: pascal issues: exclude-use-default: false exclude-rules: # Ignore false positives that don't actually have any words. - linters: [dupword] source: "^[^a-zA-Z]*$" # https://github.com/dominikh/go-tools/issues/1347 - linters: [stylecheck] text: '^ST1016: methods on the same type should have the same receiver name \(seen 1x "(a|dst)", \d+x "[^"]+"\)$' max-issues-per-linter: 0 max-same-issues: 0