add generate mode and new //counterfeiter:generate directive #124
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a
//counterfeiter:generate
directive and a corresponding-generate
flag that can be used to look for and execute the directives.If you are using many
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6
directives in a single package, go will executecounterfeiter
multiple times and cause extraneous file operations searching through all lines in each file in the package. This cost is more impactful for packages with many files and for packages with large files (as measured by line count or length of lines).If you wish to avoid these costs, you can now have a single go:generate directive in a package:
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
Then, replace instances of:
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . YourInterface
with://counterfeiter:generate . YourInterface
The performance gain here is relatively small, 0 <= x <= 5% on packages I tested with.
Related: #120 and #123.