Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Matela2015-08-18 22:19:02 +0000
committerMateusz Matela2015-08-23 20:05:00 +0000
commit55aaf5499f405cd5e860235407dcd457c7297e41 (patch)
treebb2bac39632c5bff43e58d8c61677969f3797bd8
parentb3a7ba253049413b533ab2433ed93bd74b5d3b46 (diff)
downloadeclipse.jdt.core-55aaf5499f405cd5e860235407dcd457c7297e41.tar.gz
eclipse.jdt.core-55aaf5499f405cd5e860235407dcd457c7297e41.tar.xz
eclipse.jdt.core-55aaf5499f405cd5e860235407dcd457c7297e41.zip
fixed bug 475294: [formatter] "Preserve whitespace..." problems with wrapped line comments
Change-Id: I9e80b3191a161a78d9988d1ede61f34368857245 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/FormatterCommentsBugsTest.java99
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/CommentWrapExecutor.java1
2 files changed, 100 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsBugsTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsBugsTest.java
index 48dcc5a1a8..052ab5832b 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsBugsTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsBugsTest.java
@@ -7223,4 +7223,103 @@ public void testBug474011() {
" // bbb\n" +
"}");
}
+/**
+ * https://bugs.eclipse.org/475294 - [formatter] "Preserve whitespace..." problems with wrapped line comments
+ */
+public void testBug475294() {
+ this.formatterPrefs.comment_preserve_white_space_between_code_and_line_comments = true;
+ String source =
+ "public class A {\n" +
+ " void a() {\n" +
+ " System.out.println();// aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " }\n" +
+ "}";
+ formatSource(source,
+ "public class A {\n" +
+ " void a() {\n" +
+ " System.out.println();// aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " }\n" +
+ "}");
+}
+/**
+ * https://bugs.eclipse.org/475294 - [formatter] "Preserve whitespace..." problems with wrapped line comments
+ */
+public void testBug475294b() {
+ this.formatterPrefs.comment_preserve_white_space_between_code_and_line_comments = true;
+ this.formatterPrefs.use_tabs_only_for_leading_indentations = true;
+ String source =
+ "public class A {\n" +
+ " void a() {\n" +
+ " System.out.println();// aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " }\n" +
+ "}";
+ formatSource(source,
+ "public class A {\n" +
+ " void a() {\n" +
+ " System.out.println();// aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " System.out.println(); // aaaaaaa bbbbbbbbbbbbbbb ccccccccccccc\n" +
+ " // ddddddddddddddd eeeeeeeeeeeeeee\n" +
+ " }\n" +
+ "}");
+}
}
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/CommentWrapExecutor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/CommentWrapExecutor.java
index dd89f53f19..b24658a5ef 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/CommentWrapExecutor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/CommentWrapExecutor.java
@@ -227,6 +227,7 @@ public class CommentWrapExecutor extends TokenTraverser {
if (prefix.tokenType == TokenNameWHITESPACE) {
whitespace = new Token(prefix);
whitespace.breakBefore();
+ whitespace.setIndent(indent);
whitespace.setWrapPolicy(new WrapPolicy(0, commentIndex, false));
prefix = structure.get(1);
assert prefix.tokenType == TokenNameCOMMENT_LINE;

Back to the top