Bug 296229: @code tag always prepended by space
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/JavadocContentAccess2.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/JavadocContentAccess2.java
index 49eb569..48775eb 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/JavadocContentAccess2.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/JavadocContentAccess2.java
@@ -393,7 +393,7 @@
private final IMember fMember;
/**
- * The method, or <code>null</code> if {@link #fMember} is not a method where {@inheritDoc} could work.
+ * The method, or <code>null</code> if {@link #fMember} is not a method where @inheritDoc could work.
*/
private final IMethod fMethod;
private final Javadoc fJavadoc;
@@ -1020,7 +1020,12 @@
return null;
}
+
private void handleContentElements(List nodes) {
+ handleContentElements(nodes, false);
+ }
+
+ private void handleContentElements(List nodes, boolean skipLeadingWhitespace) {
ASTNode previousNode= null;
for (Iterator iter= nodes.iterator(); iter.hasNext(); ) {
ASTNode child= (ASTNode) iter.next();
@@ -1038,7 +1043,11 @@
}
previousNode= child;
if (child instanceof TextElement) {
- handleText(((TextElement) child).getText());
+ String text= ((TextElement) child).getText();
+ if (skipLeadingWhitespace) {
+ text= text.replaceFirst("^\\s+", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ handleText(text);
} else if (child instanceof TagElement) {
handleInlineTagElement((TagElement) child);
} else {
@@ -1113,7 +1122,7 @@
if (isLink || isLinkplain)
handleLink(node.fragments());
else if (isCode || isLiteral)
- handleContentElements(node.fragments());
+ handleContentElements(node.fragments(), true);
else if (handleInheritDoc(node)) {
// handled
} else if (handleDocRoot(node)) {
@@ -1443,17 +1452,7 @@
}
fBuf.append("'>"); //$NON-NLS-1$
if (fs > 1) {
- //TODO:
- // - Set fLiteralContent for label? Check spec.
- // - Javadoc of java.util.regex.Pattern has a space in front of link in <pre>
-// if (fs == 2 && fragments.get(1) instanceof TextElement) {
-// String text= removeLeadingWhitespace(((TextElement) fragments.get(1)).getText());
-// if (text.length() != 0)
-// handleText(text);
-// else
-// //throws
-// }
- handleContentElements(fragments.subList(1, fs));
+ handleContentElements(fragments.subList(1, fs), true);
} else {
fBuf.append(refTypeName);
if (refMemberName != null) {