RFR: JDK-8298405: Support Markdown in Documentation Comments [v38]
Hannes Wallnöfer
hannesw at openjdk.org
Thu Feb 22 14:56:13 UTC 2024
On Thu, 22 Feb 2024 00:17:29 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:
>> Please review a patch to add support for Markdown syntax in documentation comments, as described in the associated JEP.
>>
>> Notable features:
>>
>> * support for `///` documentation comments in `JavaTokenizer`
>> * new module `jdk.internal.md` -- a private copy of the `commonmark-java` library
>> * updates to `DocCommentParser` to treat `///` comments as Markdown
>> * updates to the standard doclet to render Markdown comments in HTML
>
> Jonathan Gibbons has updated the pull request incrementally with two additional commits since the last revision:
>
> - update DocCommentParser and tests to improve handling of code blocks and code spans in Markdown documentation comments
> - fix indentation, for consistency
src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java line 1373:
> 1371: while (indent < currIndent) {
> 1372: currIndent = indentStack.pop();
> 1373: }
This new Markdown class looks very good!
I think in this place we also need to check for indented code blocks, since we reduced `currIndent` and may have 4 or more character indentation compared to the new `currIndent` value.
My tentative fix is to add the following code here, but maybe there's a more elegant solution by restructuring the method to first check for `indent < currIndent` and then for new indented code blocks.
if (indent >= currIndent + 4 && !isParagraph(prevLineKind)) {
blockId++;
lineKind = LineKind.INDENTED_CODE_BLOCK;
return;
}
The following could be added to `TestMarkdownCodeBlocks.java` to test this case:
POST_LIST_INDENT(
"""
1. list item
second paragraph
{@code CODE}
@Anno
end""",
"""
<ol>
<li>
<p>list item</p>
<p>second paragraph</p>
</li>
</ol>
<pre><code>{@code CODE}
@Anno
</code></pre>
<p>end</p>"""),
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16388#discussion_r1499375866
More information about the compiler-dev
mailing list