On Thu, 22 Feb 2024 15:14:32 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:

>> 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 a more elegant 
>> solution can be found by restructuring the method to first check for `indent 
>> < currIndent` and then only having to check for new indented code blocks 
>> once.
>> 
>> 
>>                 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>"""),
>
> Thanks.  I will investigate your hint to look for a more elegant solution.  
> Thanks for the new test case.

>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.

This seems wrong. Surely, we should not reduce the indentation and then for the 
same line in the comment check for an extra-indented line. Or else I am missing 
something.

That being said, thanks for the test case. I will investigate it.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16388#discussion_r1499779864

Reply via email to