Javadoc:没有 HTML 标签的换行符?

问题描述 投票:0回答:7

抱歉,可能是常见问题解答类型的问题,但我找不到答案。

据我记得 Eclipse,Javadoc 注释中的空行(在源代码内 Javadoc 弹出窗口中)显示为换行符(具有额外的垂直间距)。

但在 Netbeans 中,情况并非如此。

我可以配置 Javadoc 将空行解释为换行符吗?

附加问题:我可以覆盖源 Javadoc 弹出窗口的默认 Netbeans 行为(与此相关)吗?

我要说的是:

来源

/**
 * Paragraph One
 *
 * Paragraph Two
 */
 void someMethod() { }

日食解读

 Paragraph One

 Paragraph Two

Netbeans解读

 Paragraph One Paragraph Two
java netbeans comments javadoc
7个回答
105
投票

与 Netbeans 无关。我怀疑您在一种情况下查看源代码,在另一种情况下查看 Javadoc 的输出。换行符在 HTML 中并不重要:ergo 输出不会显示它们。如果您想要换行符,请使用

<p>
<br>


52
投票

我不确定这是否对OP的情况有帮助,但是我在我的文档周围放了

<pre></pre>
,这样netbean就不会弄乱我的格式。所以它看起来像

/**
 * <pre>
 * Paragraph One
 *
 * Paragraph Two
 * </pre>
 */

这是我最接近以文本格式显示新行的方法。我正在使用 NetBeans 7.1.2。这样使用

code format
选项将不会重新格式化文档。在提示中显示文档仍然是格式化的。

更新:在 Netbeans 8.x 中,代码格式化中有一个选项可以禁用格式化注释。


16
投票

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>
    复选框。

enter image description here


5
投票
我同意你的观点,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
    

2
投票
这是一个伪解决方案

(遗憾的是,这仅影响生成的 javadoc,但
影响 Netbeans 的源代码内 javadoc 显示)。

指定包含以下内容的样式表:

div.block { white-space: pre; }
    

1
投票
JavaDoc 显示 CSS 样式的定义方式。您可以编辑与段落标签关联的 CSS 样式来执行此操作:

p { line-height: 25px; }
    

0
投票
我不知道 Eclipse 在这里做什么,但如果您想要这种行为(不仅仅是 IDE),您可能必须创建一个新的 Doclet(可能基于默认的 HTML doclet),然后插入一个

<p>

 在每个空行或类似的地方。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.