output: # Make output more digestible with quickfix in vim/emacs/etc. sort-results: true print-issued-lines: false linters: # We'll track the golangci-lint default linters manually # instead of letting them change without our control. disable-all: true enable: # golangci-lint defaults: - errcheck - gosimple - govet - ineffassign - staticcheck - unused # Our own extras: - gofumpt - nolintlint # lints nolint directives - revive linters-settings: govet: # These govet checks are disabled by default, but they're useful. enable: - niliness - reflectvaluecompare - sortslice - unusedwrite errcheck: exclude-functions: # These methods can not fail. # They operate on an in-memory buffer. - (*go.uber.org/zap/buffer.Buffer).Write - (*go.uber.org/zap/buffer.Buffer).WriteByte - (*go.uber.org/zap/buffer.Buffer).WriteString - (*go.uber.org/zap/zapio.Writer).Close - (*go.uber.org/zap/zapio.Writer).Sync - (*go.uber.org/zap/zapio.Writer).Write # Write to zapio.Writer cannot fail, # so io.WriteString on it cannot fail. - io.WriteString(*go.uber.org/zap/zapio.Writer) # Writing a plain string to a fmt.State cannot fail. - io.WriteString(fmt.State) issues: # Print all issues reported by all linters. max-issues-per-linter: 0 max-same-issues: 0 # Don't ignore some of the issues that golangci-lint considers okay. # This includes documenting all exported entities. exclude-use-default: false exclude-rules: # Don't warn on unused parameters. # Parameter names are useful; replacing them with '_' is undesirable. - linters: [revive] text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _' # staticcheck already has smarter checks for empty blocks. # revive's empty-block linter has false positives. # For example, as of writing this, the following is not allowed. # for foo() { } - linters: [revive] text: 'empty-block: this block is empty, you can remove it' # Ignore logger.Sync() errcheck failures in example_test.go # since those are intended to be uncomplicated examples. - linters: [errcheck] path: example_test.go text: 'Error return value of `logger.Sync` is not checked'