diff options
author | Mateusz Matela | 2018-05-01 20:15:48 +0000 |
---|---|---|
committer | Mateusz Matela | 2018-05-01 20:16:36 +0000 |
commit | ed495f0c157b5f9bb5472b16bfc7639baabab923 (patch) | |
tree | cdc848cfd9b6e012e0679a8890475605101d6f57 | |
parent | 17f843244d722f7543dc33e0f4ea19424b12c6b0 (diff) | |
download | eclipse.jdt.core-ed495f0c157b5f9bb5472b16bfc7639baabab923.tar.gz eclipse.jdt.core-ed495f0c157b5f9bb5472b16bfc7639baabab923.tar.xz eclipse.jdt.core-ed495f0c157b5f9bb5472b16bfc7639baabab923.zip |
Bug 534225 - [formatter] Align Javadoc tags in columns option causes extra spacesI20180502-0100I20180501-2000
2 files changed, 24 insertions, 13 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 2b31cacd2b..5aa0b41b6f 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 @@ -12814,10 +12814,10 @@ public void testBug531981() { "}" ); } - /** - * https://bugs.eclipse.org/373625 - [formatter] preserve whitespace between - * code and comments fails when aligning fields in columns - */ +/** + * https://bugs.eclipse.org/373625 - [formatter] preserve whitespace between + * code and comments fails when aligning fields in columns + */ public void testBug373625a() { this.formatterPrefs.align_type_members_on_columns = true; this.formatterPrefs.comment_preserve_white_space_between_code_and_line_comments = true; @@ -12828,10 +12828,10 @@ public void testBug373625a() { "}"; formatSource(source); } - /** - * https://bugs.eclipse.org/373625 - [formatter] preserve whitespace between - * code and comments fails when aligning fields in columns - */ +/** + * https://bugs.eclipse.org/373625 - [formatter] preserve whitespace between + * code and comments fails when aligning fields in columns + */ public void testBug373625b() { this.formatterPrefs.align_type_members_on_columns = true; this.formatterPrefs.comment_preserve_white_space_between_code_and_line_comments = true; @@ -12847,4 +12847,19 @@ public void testBug373625b() { "}" ); } +/** + * https://bugs.eclipse.org/534225 - [formatter] Align Javadoc tags in + * columns option causes extra spaces + */ +public void testBug534225() { + this.formatterPrefs.comment_align_tags_descriptions_grouped = true; + this.formatterPrefs.comment_indent_parameter_description = true; + String source = + "/**\n" + + " * @param args a b c d e f\n" + + " */\n" + + "public class C {\n" + + "}"; + formatSource(source); +} } diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/TokenManager.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/TokenManager.java index cfc64f2f74..0438dd58f4 100644 --- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/TokenManager.java +++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/TokenManager.java @@ -281,19 +281,15 @@ public class TokenManager implements Iterable<Token> { public int getPositionInLine(int tokenIndex) { Token token = get(tokenIndex); - if (token.getAlign() > 0) - return get(tokenIndex).getAlign(); // find the first token in line and calculate position of given token int firstTokenIndex = token.getLineBreaksBefore() > 0 ? tokenIndex : findFirstTokenInLine(tokenIndex); Token firstToken = get(firstTokenIndex); int startingPosition = toIndent(firstToken.getIndent(), firstToken.getWrapPolicy() != null); - if (firstTokenIndex == tokenIndex) - return startingPosition; this.positionInLineCounter.value = tokenIndex; this.positionInLineCounter.counter = startingPosition; traverse(firstTokenIndex, this.positionInLineCounter); - return this.positionInLineCounter.counter; + return Math.max(this.positionInLineCounter.counter, token.getAlign()); } public int findSourcePositionInLine(int position) { |