90 lines
3.0 KiB
YAML
90 lines
3.0 KiB
YAML
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:
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
- staticcheck
|
|
- unused
|
|
|
|
# Our own extras:
|
|
- gofumpt
|
|
- nolintlint # lints nolint directives
|
|
- revive
|
|
- errorlint
|
|
|
|
# License header check
|
|
- goheader
|
|
|
|
linters-settings:
|
|
govet:
|
|
# These govet checks are disabled by default, but they're useful.
|
|
enable:
|
|
- niliness
|
|
- reflectvaluecompare
|
|
- sortslice
|
|
- unusedwrite
|
|
|
|
goheader:
|
|
values:
|
|
const:
|
|
COMPANY: 'Uber Technologies, Inc.'
|
|
regexp:
|
|
YEAR_RANGE: '\d{4}(-\d{4})?'
|
|
template: |-
|
|
Copyright (c) {{ YEAR_RANGE }} {{ COMPANY }}
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
|
|
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'
|
|
|
|
# It's okay if internal packages and examples in docs/
|
|
# don't have package comments.
|
|
- linters: [revive]
|
|
path: '.+/internal/.+|^internal/.+'
|
|
text: 'should have a package comment'
|