Consider deprecating the `showUndocumentedCategories` option
Why shouldn't we always have showUndocumentedCategories: true? (this isn't the default today).
If someone wrote an {@category foo} tag, then why wouldn't we want to always include it?
If authors don't want a category to show up in documentation, then don't make a category, do they have other purposes?
We'd need to investigate if any of our major users would be affected by changing the default for this option.
Reading the code, I suspect that today, a category is only displayed if, either:
- (A)
showUndocumentedCategories: trueis specified indartdoc_options.yaml, OR - (B) Both of the following statements hold:
- (B.1) The category is declared in
dartdoc_options.yaml, and, - (B.2) There is a markdown file for the category declared in
dartdoc_options.yaml.
- (B.1) The category is declared in
This is mostly motivated by wanting to reduce the number of options. I think we could consider:
Option (i): Always show all categories
We always display all categories, whether they are declared in dartdoc_options.yaml or not.
We'd need to investigate if any major users would be negatively affected.
I suspect we could make this change and simply declare showUndocumentedCategories deprecating, printing a warning for anyone using the option.
Pros:
- We simply options
Cons:
- Typos in
{@category fooo}annotations won't trigger warnings. - Users relying on current behavior might have to remove
{@category foo}annotations from their code.
Option (ii): Require that categories are declared dartdoc_options.yaml
We require that all categories are declared in dartdoc_options.yaml, but we don't require that they have a markdown file (as is currently required in condition (B.2)).
For this I suspect we'd need to:
- Deprecate
showUndocumentedCategories - When encountering an
{@category foo}annotation wherefooisn't declared indartdoc_options.yaml:- Ignore the
{@category foo}annotation - Print a warning stating that category
fooisn't declared indartdoc_options.yaml!
- Ignore the
Pros:
- We simply options
- Typos in
{@category fooo}annotations will trigger a warning (at-least in dartdoc).
Cons:
- Users will need to create a
dartdoc_options.yamlto use categories (this is also the case today). - Users relying on
showUndocumentedCategories: truewill need to change their behavior.