diff options
author | Mateusz Matela | 2015-08-18 22:19:02 +0000 |
---|---|---|
committer | Mateusz Matela | 2015-08-23 20:05:00 +0000 |
commit | 55aaf5499f405cd5e860235407dcd457c7297e41 (patch) | |
tree | bb2bac39632c5bff43e58d8c61677969f3797bd8 | |
parent | b3a7ba253049413b533ab2433ed93bd74b5d3b46 (diff) | |
download | eclipse.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>
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; |