On Wed, 30 Aug 2023 16:34:58 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

> This PR makes JavaDoc and DocLint produce more helpful diagnostic output when 
> encounter an unknown tag.
> 
> Before:
> 
> 
> MyClass.java:4: warning: no main description
>  * @implSpite {@linkpain Object#hashCode}}
>    ^
> MyClass.java:4: error: unknown tag: implSpite
>  * @implSpite {@linkpain Object#hashCode}}
>    ^
> MyClass.java:4: error: unknown tag: linkpain
>  * @implSpite {@linkpain Object#hashCode}}
>               ^
> MyClass.java:5: error: unknown tag: danger
>  * @danger
>    ^
> 
> 
> After:
> 
> 
>  * @implSpite {@linkpain Object#hashCode}}
>    ^
> MyClass.java:4: error: unknown tag: implSpite; the most similar tags are: 
> implSpec, implNote
>  * @implSpite {@linkpain Object#hashCode}}
>    ^
> Note: An unknown tag has been reported. Mistyped? Forgot to add a custom tag 
> or register a taglet?
> MyClass.java:4: error: unknown tag: linkpain; the most similar tags are: 
> linkplain
>  * @implSpite {@linkpain Object#hashCode}}
>               ^
> MyClass.java:5: error: unknown tag: danger
>  * @danger
>    ^
> 
> 
> As you can see, the output has changed in two ways. Firstly, the tags that 
> are similar to the unknown tag might be suggested. Secondly, an auxiliary 
> note to help troubleshoot the unknown tag is provided. That note is provided 
> once, close to the first reported unknown tag. This is done to not clutter 
> the output in case multiple tags are reported.
> 
> For details, see the actual change.

I really like this feature, but my immediate reaction is to also worry about 
decreased readability caused by increased verbosity. Some ideas:

 - `the most similar tags are: ...` is quite long, and there are now 4 colon 
characters in that message line. Maybe the message could be something like 
`unknown tag implSpite, did you mean implSpec, implNote`?
 - The `Note: An unknown tag has been reported...` message after the first 
unrecognized tag is a bit disruptive. I'm not sure it is needed, and if we want 
it maybe it should be at the end of the output? I have an open JBS issue to 
[generate a final message if any invalid input was 
encountered](https://bugs.openjdk.org/browse/JDK-8296175), maybe this would 
also benefit from such handling?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15494#issuecomment-1700648869

Reply via email to