diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterMarkdownCommentsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterMarkdownCommentsTests.java index e9c42cd5b89..775a65a1608 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterMarkdownCommentsTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterMarkdownCommentsTests.java @@ -909,4 +909,88 @@ class Mark61 { formatSource(input, expected); } + public void testMarkdownAndClassicJoinLinesWhenJoinLinesInCommentsIsFalse() throws JavaModelException { + setComplianceLevel(CompilerOptions.VERSION_23); + this.formatterPrefs.join_lines_in_comments = false; + this.formatterPrefs.comment_line_length = 1000; + String input = """ + class Test5 { + /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. + /// Duis sit amet diam nec libero accumsan blandit. + /// Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + /// Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + void main() { + } + + /** + * Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Duis sit amet diam nec libero accumsan blandit. + * Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + * Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + */ + void main2() { + } + } + """; + String expected = """ + class Test5 { + /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. + /// Duis sit amet diam nec libero accumsan blandit. + /// Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + /// Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + void main() { + } + + /** + * Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Duis sit amet diam nec libero accumsan blandit. + * Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + * Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + */ + void main2() { + } + } + """; + formatSource(input, expected); + } + + public void testMarkdownAndClassicJoinLinesWhenJoinLinesInCommentsIsTrue() throws JavaModelException { + setComplianceLevel(CompilerOptions.VERSION_23); + this.formatterPrefs.join_lines_in_comments = true; + this.formatterPrefs.comment_line_length = 1000; + String input = """ + class Test5 { + /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. + /// Duis sit amet diam nec libero accumsan blandit. + /// Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + /// Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + void main() { + } + + /** + * Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Duis sit amet diam nec libero accumsan blandit. + * Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. + * Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + */ + void main2() { + } + } + """; + String expected = """ + class Test5 { + /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet diam nec libero accumsan blandit. Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + void main() { + } + + /** + * Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet diam nec libero accumsan blandit. Quisque non ornare lacus. Suspendisse porta dolor id diam maximus, sed gravida nunc finibus. Aenean vulputate, mi non iaculis sagittis, erat nibh gravida elit, eget feugiat purus tortor sed sem. + */ + void main2() { + } + } + """; + formatSource(input, expected); + } + } \ No newline at end of file diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CommentsPreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CommentsPreparator.java index 5fb7e03af1b..0e3e1e488a9 100644 --- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CommentsPreparator.java +++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CommentsPreparator.java @@ -1512,7 +1512,7 @@ private boolean tokenizeMultilineComment(Token commentToken) { if (lineBreaks > 0) { if (cleanBlankLines && !isMarkdown) lineBreaks = 1; - if (lineBreaks > 1 || (!this.options.join_lines_in_comments && !isMarkdown)) + if (lineBreaks > 1 || !this.options.join_lines_in_comments) outputToken.putLineBreaksBefore(lineBreaks); } if (this.tm.charAt(tokenStart) == '@') {