RFR: 8276124: Provide snippet support for properties files [v6]

Jonathan Gibbons jjg at openjdk.java.net
Wed Nov 24 18:41:05 UTC 2021


On Wed, 24 Nov 2021 16:11:37 GMT, Pavel Rappo <prappo at openjdk.org> wrote:

>> The initial integration (JDK-8266666) of JEP 413 did not support properties files. This commit rights that wrong.
>
> Pavel Rappo has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove unrelated comment

Approved, for now.  It's good to have simplified `CoarseParser` down to regular expressions.

I look forward to the next step of cleanup (for 19?) where the design contained here can be extended to additional languages, perhaps dynamically (in some fashion TBD).

The regular expressions are a function on the comment character(s), and whether the comment is a "line comment" or "end-of-line comment".  These properties could be described in members of `Language` and the corresponding regauylr expressions generated by the following method:

    Pattern getPattern(String cmt, boolean eol) {
        Pattern payload = eol
                ? Pattern.compile("(?<payload>.*)")
                : Pattern.compile("(?<payload>[ \t]*(" + cmt + ".*)?)");
        Pattern prefix = Pattern.compile(cmt + "(?=[ \t]*@[a-z]+\\b)");
        Pattern markup = Pattern.compile("(?<markup>.*)");

        return Pattern.compile(payload.pattern() + prefix.pattern() + markup.pattern());
    }

Related, `Language` could usefully be converted from an `enum` to a `record`, and maybe have a cache-map of `Map<Language, Pattern>` to reduce the costs of creating those patterns.

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

Marked as reviewed by jjg (Reviewer).

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


More information about the javadoc-dev mailing list