Repository navigation
Format MOE strip markers in javadoc like any other HTML comment - #155
Merged
Merged
Conversation
google/MOE, the tool whose intracomment-strip markers the javadoc formatter recognised, has been dead for years. The lexer no longer gives `<!-- MOE:begin_intracomment_strip -->` and `<!-- MOE:end_intracomment_strip -->` token types of their own, and the writer loses the state that queued the begin marker until the next token and remembered its indent for the end marker: both markers now take the HTML comment path, a line of their own at the indent of the text around them. The layouts the old test pinned change in two places: a blank line the next tag asks for comes after the begin marker instead of before it, and a marker inside or between footer tags is indented as a continuation line of the tag it follows. A begin marker that closes the comment without an end marker is kept instead of silently deleted. The test was written first: moeStripMarkersAreOrdinaryHtmlComments failed before the change; the three cases that only guarded the begin/end pairing against exploding are gone. None of the 15,747 JDK 21 sources changes with javadoc formatting on; the JDK carries no MOE markers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
google/MOE, the tool whose
<!-- MOE:begin_intracomment_strip -->and<!-- MOE:end_intracomment_strip -->markers the javadoc formatter recognised, has been dead for years; #150 drops the line-comment rule for// MOE:. This removes the javadoc side: the two token types, the lexer patterns, the formatter cases and the writer state that queued a begin marker until the next token and remembered its indent for the end marker. Both markers now take the ordinary HTML comment path: a line of their own, at the indent of the text around them. Once #150 is in as well, no MOE reference is left insrc/main.What changes for a javadoc that still carries the markers:
/** Foo. <!-- MOE:begin_intracomment_strip --> */came out as/** Foo. */.Before, for the footer tags of the test:
After:
Tests
Written first:
moeStripMarkersAreOrdinaryHtmlCommentsfailed before the change, with the old layout as its actual output. The three cases that only guarded the begin/end pairing against exploding (moeCommentBeginOnlyInMiddleOfDoc,moeCommentBeginOnlyAtEndOfDoc,moeCommentEndOnly) are gone.Verification
./gradlew testover all modules is green;./gradlew formatDiffchanges nothing; a full recompile gives the same 119 javac warnings before and after.21.X.Xand this branch, and the JDK carries no MOE marker. The CLI never enables javadoc formatting (JavaFormatterOptionsdefaults it off andMainhas no flag for it), so the usual-irun cannot see a javadoc change; the comparison ran throughFormatterwithformatJavadoc(true)plus the CLI's import and reflow passes.