- Merge pairs like eFormatCategoryItemSummary and eFormatCategoryItemRegexSummary into a single value. See explanation below.
- Rename eFormatCategoryItemValue to eFormatCategoryItemFormat. This makes the enum match the names used elsewhere for formatter kinds (format, summary, filter, synth).
- Delete unused values eFormatCategoryItemValidator and eFormatCategoryItemRegexValidator.
This enum is only used to reuse some code in CommandObjectType.cpp. For
example, instead of having separate implementations for `type summary
delete`, type format delete, and so on, there's a single generic
implementation that takes an enum value, and then the specific commands
derive from it and set the right flags for the specific kind of
formatter.
Even though the enum distinguishes between regular and regex matches for
every kind of formatter, this distinction is never used: enum values are
always specified in pairs like
eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary.
This causes some ugly code duplication in TypeCategory.cpp. In order to
handle every flag combination some code appears 8 times:
{format, summary, synth, filter} x {exact, regex}
As these are private we don't have to skip values I think. Also let's use left shift operators to make it more obvious that these are flags.