> Please review a JavaDoc change to make it possible to link to type parameter 
> documentation from automatically generated signatures as well as user-defined 
> `{@link ...}` and `@see ...` tags. The solution consists in wrapping type 
> parameter documentation into `<span id="type-param-[type-param-name]">` 
> elements for generic classes and `<span 
> id="[member-signature]-type-param-[type-param-name]">` for generic members. 
> 
> While this is not a very big change, there are a few aspects and 
> considerations that need to be explained.
> 
> - Class-level type parameter documentation had to be moved out of the `<div 
> class="horizontal-scroll">` element for the main class description because of 
> [this bug in Chrome](https://issues.chromium.org/issues/40074749). The only 
> viable solution was to move the scroll container beneath the `<hr>` element, 
> which is the way it is already done for package and module pages. This has 
> almost no visual effects on the way pages are rendered, I'd be happy to 
> discuss the stylesheet tweaks if there's interest.
> 
> - JavaDoc only creates links for type parameters in generic types, but not 
> those belonging to generic methods and constructors. While I added support 
> for linking member-level type parameters, I soon realized that these links 
> add a lot of visual noise by adding redundant links from member-level 
> descriptions and signatures to the details of the same member. Displaying 
> only type-level type parameters as links is actually quite helpful in 
> allowing to distinguish them from member-level type parameters. The 
> [documentation of 
> `java.util.Map`](https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Map.html#method-summary)
>  illustrates this nicely. The solution I settled for is to allow linking to 
> member-level type parameters using `{@link ...}` and `@see ...` tags if a 
> `@param` tag is provided for the type parameter, but not create such links 
> for automatically generated signatures.
> 
> - Since `javadoc` will always create links for type parameters of generic 
> types, a link target with the appropriate `id` attribute has to be created 
> even if no `@param` tag for the type parameter is provided. This is done by 
> creating a span with the given `id` in the type signature shown in the main 
> heading of the page. 
> 
> - When type parameter documentation is displayed as link target, it is 
> rendered with a visual highlight, which is similar to the one used for 
> `{@index ...}` tags but fades out after a few seconds. The purpose is to make 
> the type par...

Hannes Wallnöfer has updated the pull request with a new target base due to a 
merge or a rebase. The pull request now contains four commits:

 - Actually resolve conflicts
 - Merge branch 'master' into JDK-8313931
 - Remove trailing whitespace
 - JDK-8313931: Javadoc: links to type parameters actually generate links to 
classes

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

Changes: https://git.openjdk.org/jdk/pull/20494/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20494&range=01
  Stats: 348 lines in 26 files changed: 257 ins; 12 del; 79 mod
  Patch: https://git.openjdk.org/jdk/pull/20494.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20494/head:pull/20494

PR: https://git.openjdk.org/jdk/pull/20494

Reply via email to