Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Matela2018-05-01 20:15:48 +0000
committerMateusz Matela2018-05-01 20:16:36 +0000
commited495f0c157b5f9bb5472b16bfc7639baabab923 (patch)
treecdc848cfd9b6e012e0679a8890475605101d6f57
parent17f843244d722f7543dc33e0f4ea19424b12c6b0 (diff)
downloadeclipse.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
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java31
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/TokenManager.java6
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) {

Back to the top