RFR: 8338525: Leading and trailing code blocks by indentation

Jonathan Gibbons jjg at openjdk.org
Thu Sep 12 20:00:05 UTC 2024


On Thu, 12 Sep 2024 11:00:37 GMT, Pavel Rappo <prappo at openjdk.org> wrote:

>> Please review these changes to correct the handling of leading and trailing indented code blocks in a doc comment.
>> 
>> There are two separate issues here: one for leading indented code blocks and one for trailing indented code blocks.
>> 
>> 1. Leading indented code blocks: the code to detect the first sentence of a doc comment is modified to detect whether the comment begins with an indented code block. If it does, the first sentence is deemed to be empty, and the body of the doc comment begins with the code block.
>> 2. Trailing indented code blocks: the content of the indented code block is marked as significant by updating `lastNonWhite`, which will cause the content to be recorded (not dropped) if the code block is followed by EOF.
>> 
>> For both cases, simple `DocTree` AST-level tests are provided, as well as full `JavadocTester` tests, that test the end-user view of the generated docs.
>
> test/langtools/jdk/javadoc/doclet/testMarkdown/TestMarkdownCodeBlocks.java line 497:
> 
>> 495:                     package p;
>> 496:                     ///     Leading code block
>> 497:                     /// Lorum ipsum.
> 
> My immediate reaction was to think that it is not a code block because there's no blank line between those two lines; but it is: https://spec.commonmark.org/0.31.2/#example-114
> 
> So, all is well here.

Yes, you typically need a blank line _before_ an indented code block, to avoid being treated as a continuation of a preceding paragraph, but "unindenting" is enough to end an indented code block.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20956#discussion_r1757500658


More information about the compiler-dev mailing list