google-java-format icon indicating copy to clipboard operation
google-java-format copied to clipboard

No new line break for some at-sign@ in Javadoc comment

Open cindy-peng opened this issue 8 months ago • 1 comments

We have a string as:

// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* <p> Sample code:
* <pre>{@code
* // This snippet has been automatically generated and should be regarded as a code template only.
* try (EchoServiceClient echoServiceClient =
*     EchoServiceClient.create()) {
*   EchoResponse response =
*       echoServiceClient.chat();
* }
* }</pre>
* @param request The request object containing all of the parameters for the API call.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
* @InternalApi This method is internal used only. Please do not use directly.
*/

After running java-format on the above string, the Javadoc comment gets reformatted as:

// AUTO-GENERATED DOCUMENTATION AND METHOD.
  /**
   * Sample code:
   *
   * <pre>{@code
   * // This snippet has been automatically generated and should be regarded as a code template only.
   * try (EchoServiceClient echoServiceClient =
   *     EchoServiceClient.create()) {
   *   EchoResponse response =
   *       echoServiceClient.chat();
   * }
   * }</pre>
   *
   * @param request The request object containing all of the parameters for the API call.
   * @throws com.google.api.gax.rpc.ApiException if the remote call fails @InternalApi This method
   *     is internal used only. Please do not use directly.
   */

Notice the line break before @InternalApi was removed and a line break was added after @InternalApi This method. This makes the method comments hard to read. Could you please help investigate? Thank you!

cindy-peng avatar Apr 16 '25 04:04 cindy-peng

Your custom @InternalApi tag is treated like an unescaped annotation by Google Java Format. If you can make it start with a lowercase, it would consider it as a tag:

https://github.com/google/google-java-format/blob/96f114c37c02fcfdfa0d4bc25b6e122d11afc485/core/src/main/java/com/google/googlejavaformat/java/javadoc/JavadocLexer.java#L524-L528

tbroyer avatar Apr 16 '25 06:04 tbroyer