error-prone
error-prone copied to clipboard
Collecting ideas for a new set of configuration options
A number of recent github issues (#647, #599, #512, #488) are focused around customizing and/or configuring Error Prone's behavior.
Historically, Error Prone has offered a (very) limited amount of configuration:
- Individual check severity level could be changed between
OFF
,WARNING
, andERROR
- Warnings could be disabled in generated code (
-XepDisableWarningsInGeneratedCode
)
In the past year, we've added a few more configuration flags
-
-XepAllDisabledChecksAsWarnings
- Turns on all of the optional checks as warnings for those wanting to see everything -
-XepAllErrorsAsWarnings
- Demote all error-level checks to warning-level (this allows you to see all of the error prone errors at once as opposed to build, fix, build, fix, etc.) -
-XepDisableAllChecks
- Completely disable all of the checks, allowing you to then turn on individual checks one at a time (used in a chain like-XepDisableAllChecks -Xep:EqualsIncompatibleType:ERROR
) -
-XepPatchLocation
andXepPatchChecks
- used to control the patching feature.
We have a new flag that's only available in the newest snapshots
-
-XepOpt:[Namespace:]FlagName[=Value]
- Pass any number of arbitrary flags to individual bug checkers or collections thereof (individual checkers can be customized
We've generally responded to requests for configuration changes by adding new flags, and dealing with the combinations of these flags has been a bit arbitrary.
We'd like to solicit feedback from the community to help us build a newer configuration model:
- What parts of Error Prone's behavior are you customizing now? Links to existing configurations on github are helpful.
- If you are able to successfully configure Error Prone's behavior to your liking, do you feel that the configuration flags make it straightforward to do so?
- If you are not able to successfully configure Error Prone's behavior to your liking, what portions of Error Prone would you want to configure?
- In addition, I'll comment on this issue with a few things we can configure now, and a few of the proposed changes made in other issues. Feel free to :+1: these features, propose new ones, etc.