Table of Contents
💡 Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.
🐛 Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
Thanks
Thanks to all contributors! Thanks to alecthomas/gometalinter for inspiration and amazing work. Thanks to bradleyfalzon/revgrep for cool diff tool.
Thanks to developers and authors of used linters:
- timakin
- kisielk
- golang
- jingyugao
- dominikh
- securego
- opennota
- mvdan
- mdempsky
- gordonklaus
- mibk
- jgautheron
- remyoudompheng
- alecthomas
- uudashr
- tdakkota
- OpenPeeDeeP
- client9
- walle
- alexkohler
- kyoh86
- go-critic
- leighmcculloch
- matoous
- ultraware
- bombsimon
- jirfag
- tommy-muehle
- Djarvur
- ryancurrah
- tetafro
- maratori
- nakabonne
- golangci-lint
Changelog
Follow the news and releases on our twitter and our blog. There is the most valuable changes log:
May 2020
- Add new linters:
nolintlint
,goerr113
- Updated linters:
godot
,staticcheck
- Launch a website
April 2020
- Add new linters:
testpackage
,nestif
,godot
,gomodguard
,asciicheck
- Add github actions output format
- Update linters:
wsl
,gomodguard
,gosec
- Support
disabled-tags
setting forgocritic
- Mitigate OOM and "failed prerequisites"
- Self-isolate due to unexpected pandemics
- Support case-sensitive excludes
- Allow granular re-enabling excludes by ID, e.g.
EXC0002
September 2019
- Support go1.13
- Add new linters:
funlen
,whitespace
(with auto-fix) andgodox
- Update linters:
gochecknoglobals
,scopelint
,gosec
- Provide pre-built binary for ARM and FreeBSD
- Fix false-positives in
unused
- Fix false-positives in
- Support
--skip-dirs-use-default
- Add support for bash completions
July 2019
- Fix parallel writes race condition
- Update bodyclose with fixed panic
June 2019
- Treat Go source files as a plain text by
misspell
: it allows detecting issues in strings, variable names, etc. - Implement richer and more stable auto-fix of
misspell
issues.
May 2019
- Add bodyclose linter.
- Support junit-xml output.
April 2019
- Update go-critic, new checkers were added: badCall, dupImports, evalOrder, newDeref
- Fix staticcheck panic on packages that do not compile
- Make install script work on Windows
- Fix compatibility with the latest x/tools version and update golang.org/x/tools
- Correct import path of module sourcegraph/go-diff
- Fix
max-issues-per-linter
name - Fix linting of preprocessed files (e.g.
*.qtpl.go
, goyacc) - Enable auto-fixing when running via pre-commit
March 2019
- Support the newest
go vet
(withgo/analysis
) - Support configuration of
go vet
: e.g. you can set print functions bylinters-settings.govet.settings.printf.funcs
- Update megacheck (staticcheck) to 2019.1.1
- Add information about controlling space-time trade-off into README
- Exclude issues by source code line regexp by
issues.exclude-rules[i].source
- Build and test on go 1.12
- Support
--color
option - Update x/tools to fix c++ issues
- Include support for log level
- Sort linters list in help commands
Future Plans
- Upstream all changes of forked linters.
- Make it easy to write own linter/checker: it should take a minimum code, have perfect documentation, debugging and testing tooling.
- Speed up SSA loading: on-disk cache and existing code profiling-optimizing.
- Analyze (don't only filter) only new code: analyze only changed files and dependencies, make incremental analysis, caches.
- Smart new issues detector: don't print existing issues on changed lines.
- Minimize false-positives by fixing linters and improving testing tooling.
- Automatic issues fixing (code rewrite, refactoring) where it's possible.
- Documentation for every issue type.