/errfmt

Primary LanguageGoMIT LicenseMIT

Errfmt

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.

Installation

go install github.com/tomhutch/errfmt

Usage

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 ./...