抱歉,可能是常见问题解答类型的问题,但我找不到答案。
据我记得 Eclipse,Javadoc 注释中的空行(在源代码内 Javadoc 弹出窗口中)显示为换行符(具有额外的垂直间距)。
但在 Netbeans 中,情况并非如此。
我可以配置 Javadoc 将空行解释为换行符吗?
附加问题:我可以覆盖源 Javadoc 弹出窗口的默认 Netbeans 行为(与此相关)吗?
我要说的是:
/**
* Paragraph One
*
* Paragraph Two
*/
void someMethod() { }
Paragraph One
Paragraph Two
Paragraph One Paragraph Two
与 Netbeans 无关。我怀疑您在一种情况下查看源代码,在另一种情况下查看 Javadoc 的输出。换行符在 HTML 中并不重要:ergo 输出不会显示它们。如果您想要换行符,请使用
<p>
或 <br>
。
我不确定这是否对OP的情况有帮助,但是我在我的文档周围放了
<pre></pre>
,这样netbean就不会弄乱我的格式。所以它看起来像
/**
* <pre>
* Paragraph One
*
* Paragraph Two
* </pre>
*/
这是我最接近以文本格式显示新行的方法。我正在使用 NetBeans 7.1.2。这样使用
code format
选项将不会重新格式化文档。在提示中显示文档仍然是格式化的。
更新:在 Netbeans 8.x 中,代码格式化中有一个选项可以禁用格式化注释。
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>
复选框。
这是一个您可以编译和使用的自定义 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
(遗憾的是,这仅影响生成的 javadoc,但
不影响 Netbeans 的源代码内 javadoc 显示)。
div.block {
white-space: pre;
}
p {
line-height: 25px;
}
<p>
在每个空行或类似的地方。