On Thu, 18 Nov 2021 17:37:16 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:

>> Pavel Rappo has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Test one more corner case example
>
> test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java line 
> 185:
> 
>> 183:                                 link(First) link(line)
>> 184:                                   Second line
>> 185:                                 """, "link\\((.+?)\\)", r -> link(true, 
>> "java.lang.Object#Object", r.group(1)))
> 
> clever

Thanks. It is mainly for readability, to clearly show how the `@link` is 
expected to work. That said, the construct is somewhat clumsy. I hope to 
improve it, once templated strings arrive 
(https://openjdk.java.net/jeps/8273943).

> test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java line 
> 388:
> 
>> 386:         // generate documentation at low cost and do not interfere with 
>> the
>> 387:         // calling test state; for that, do not create file trees, do 
>> not write
>> 388:         // to std out/err, and generally try to keep everything in 
>> memory
> 
> I understand what you're doing here, but I'm surprised you need to go to the 
> trouble of a separate run of javadoc to get the link output.   Can you not 
> put the link tag and the link markup tag in the same source, and then extract 
> the two `<a>` from the generated file?   Maybe put distinguishing characters 
> around each instance, to make locating them easier.  For example:
> 
> 
>  /**
>   * First sentence.  TAG {@link Object} TAG.
>   * {@snippet :
>   *      MARKUP Object MARKUP // @link substring=Object target=Object
>   * }
>   */

What you suggested is how I had that initially. But then a test purist in me 
demanded a clear way of getting the link without interfering with the test 
logic.

As for text blocks: to me, indenting a text block is a complex, subjective and 
unsettled issue. I would postpone re-indenting them for now, primarily because 
of the churn it would otherwise introduce to the dependent PRs. 

If neither of these issues is a showstopper, I would really like to integrate 
this PR to unlock more urgent work on the snippets feature before RDP 1, which 
is on 2021/12/09 as per the Schedule at 
https://openjdk.java.net/projects/jdk/18/. Sometime after this PR is 
integrated, we can revisit this.

> test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetPathOption.java 
> line 168:
> 
>> 166:      */
>> 167:     @Test
>> 168:     public void testSearchPath(Path base) throws Exception {
> 
> Not wrong, but arguably somewhat superfluous. This is close to being a file 
> manager test, not a snippet test.

I can add a comment that this test is a part of an end-to-end demonstration of 
how --snippet-path should work. This is a black-box test that assumes nothing 
about the implementation of the feature.

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

PR: https://git.openjdk.java.net/jdk/pull/6359

Reply via email to