diff options
author | Mateusz Matela | 2021-01-01 23:09:16 +0000 |
---|---|---|
committer | Mateusz Matela | 2021-01-02 11:51:32 +0000 |
commit | d5c188d78ee37a5a78869313b94fa62ff542cea6 (patch) | |
tree | 3424bec792e90e9ffee0c32072f6c9d85b9876ca | |
parent | 7f76bf78b299c7a1818a1fd8e600105bb06a4c15 (diff) | |
download | eclipse.jdt.core-d5c188d78ee37a5a78869313b94fa62ff542cea6.tar.gz eclipse.jdt.core-d5c188d78ee37a5a78869313b94fa62ff542cea6.tar.xz eclipse.jdt.core-d5c188d78ee37a5a78869313b94fa62ff542cea6.zip |
Bug 569964 - [formatter] Keep braced code on one line: problem withS4_19_0_M1I20210110-1800I20210109-1830I20210108-1800I20210108-0220I20210106-1800I20210106-0600I20210105-1800I20210105-0600I20210104-1800I20210104-0600I20210103-1800I20210103-0600I20210102-1800
comments after javadoc
Change-Id: I3433c485c686b2408286230704a02d8e200ad78e
Signed-off-by: Mateusz Matela <mateusz.matela@gmail.com>
-rw-r--r-- | org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java | 17 | ||||
-rw-r--r-- | org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Token.java | 13 |
2 files changed, 24 insertions, 6 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java index d2c45c7036..8e78f96099 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2020 IBM Corporation and others. + * Copyright (c) 2000, 2021 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13248,4 +13248,19 @@ public void testBug569798() { "}" ); } +/** + * https://bugs.eclipse.org/569964 - [formatter] Keep braced code on one line: problem with comments after javadoc + */ +public void testBug569964() { + this.formatterPrefs.keep_method_body_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_IF_EMPTY; + formatSource( + "class Test {\n" + + " /**\n" + + " * More Java doc comment\n" + + " */\n" + + " // A line comment\n" + + " /* package */ void nothing() {}\n" + + "}" + ); +} } diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Token.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Token.java index b2b7144267..ca4d701f38 100644 --- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Token.java +++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Token.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014, 2015 Mateusz Matela and others. + * Copyright (c) 2014, 2021 Mateusz Matela and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -143,16 +143,19 @@ public class Token { int start = scanner.getCurrentTokenStartPosition(); int end = scanner.getCurrentTokenEndPosition(); if (currentToken == TokenNameCOMMENT_LINE) { - // don't include line separator - while(end >= start) { + // don't include line separator, but set break-after + while (end > start) { char c = scanner.source[end]; if (c != '\r' && c != '\n') break; end--; } + Token token = new Token(start, end, currentToken); + token.breakAfter(); + return token; + } else { + return new Token(start, end, currentToken); } - Token token = new Token(start, end, currentToken); - return token; } /** Adds space before this token */ |