A Golang linter that checks whether wrapped errors have a consistent format. The expected format has the message begin with the function call that last assigned a value to the wrapped error, e.g.:
_, err := fmt.Scanf("")
if err != nil {
return fmt.Errorf("fmt.Scanf: %w", err)
}
For examples of other scenarios check the testdata
directory.
go install github.com/tomhutch/errfmt
The errfmt
linter is called using the following format: errfmt [-flag] [package]
.
Where [package]
can be a Golang package, a filepath or ./...
for all files recursively, e.g.:
errfmt ./...
Apply suggested fixes using the -fix
flag:
errfmt -fix ./...