很抱歉有一个可能的常见问题,但我找不到答案。
据我记得Eclipse,Javadoc注释中的空白行显示(在源代码中的Javadoc弹出窗口中)作为换行符(具有额外的垂直间距)。
然而,在Netbeans中,情况并非如此。
我可以配置Javadoc将空白行解释为换行符吗?
其他问题:我可以覆盖源内Javadoc弹出窗口的默认Netbeans行为(与此相关)吗?
我所说的是:
/**
* Paragraph One
*
* Paragraph Two
*/
void someMethod() { }
Paragraph One
Paragraph Two
Paragraph One Paragraph Two
答案 0 :(得分:65)
它与Netbeans无关。我怀疑你在一个案例中查看源代码,在另一个案例中查看Javadoc的输出。 HTML中的换行符不重要: ergo 输出不会显示它们。如果您想要换行,请使用<p>
或<br>
。
答案 1 :(得分:30)
我不确定这对OP的情况是否有帮助,但是我将<pre></pre>
放在我的文档周围,因此netbean不会弄乱我的格式。所以它看起来像
/**
* <pre>
* Paragraph One
*
* Paragraph Two
* </pre>
*/
这是最接近我以文本格式显示新行。我正在使用NetBeans 7.1.2。这种方式使用code format
选项不会重新格式化文档。在提示中显示文档仍然是格式化的。
更新:在Netbeans 8.x中,代码格式中有一个选项可以禁用格式化注释。
答案 2 :(得分:10)
NetBeans
中已经有一个选项 - 在8.2版上测试过 - 允许您在评论中保留新行,和/或在<p>
标记中添加Javadoc
标记需要
Tools
菜单中选择Options
Editor
标签,然后转到Formatting
标签Language
菜单中选择了Java
,在Category
菜单中选择了Comments
Preserve New Lines
部分中的General
复选框。 这将保留新行而不添加<p>
代码 Generate "<p>" on Blank Lines
代码,请在Javadoc
部分中选中<p>
复选框。答案 3 :(得分:4)
我同意你的看法,HTML不属于源代码。可悲的是,我没有找到太多的帮助谷歌搜索这个。它实际上很容易实现。
以下是您可以编译和使用的自定义Doclet:
import com.sun.javadoc.*;
import com.sun.tools.doclets.standard.*;
/**
* Formats text-only comments with HTML.
*/
@SuppressWarnings("restriction")
public final class TextDoclet {
private static final Pattern NEWLINE_REGEX = Pattern.compile("\\n");
private static final String BR = "<br/>\n";
public static boolean start(RootDoc rootDoc) {
for ( ClassDoc classdoc : rootDoc.classes())
classdoc.setRawCommentText(formatText(classdoc.getRawCommentText()));
return Standard.start(rootDoc);
}
private static String formatText(String text) {
return NEWLINE_REGEX.matcher(text).replaceAll(BR);
}
}
如何使用javadoc调用它的示例:
javadoc -docletpath ~/project/text-doclet/target/text-doclet-1.0.0-SNAPSHOT.jar -doclet com.myorg.textdoclet.TextDoclet -sourcepath ~/project/myapp/src/main/java -subpackages com.myorg.myapp
答案 4 :(得分:2)
JavaDoc显示已定义CSS样式的方式。您可以编辑与段落标记关联的CSS样式来执行此操作:
p {
line-height: 25px;
}
答案 5 :(得分:1)
这是一个伪解决方案 (遗憾地只影响生成的javadoc,但不影响Netbeans的源内javadoc显示)。
指定包含以下内容的样式表:
div.block {
white-space: pre;
}
答案 6 :(得分:0)
我不知道Eclipse在这里做了什么,但是如果你想要这种行为(不仅仅是IDE),你可能需要创建一个新的Doclet(可能基于默认的HTML doclet),而不是在每个空行等处插入<p>
。