在自定义 Javadoc taglet 中展开内联标签

Mar*_*ark 5 java javadoc custom-tag taglet

我编写了一个自定义 Javadoc taglet,它添加了一个新note标签:

 ...
 public boolean isInlineTag() { return false; }

  public String toString(Tag tag) {
      return "<pre class='note'>" + tag.text() + "</pre>";
   }
Run Code Online (Sandbox Code Playgroud)

到目前为止它可以工作,但是内联标签没有扩展。这是一个评论示例:

/**
 * @note Test note with {@link Someclass} // @link tag is NOT expanded
 * @param name - here the {@link Someclass} works // works for standard 'param' tag
 */
Run Code Online (Sandbox Code Playgroud)

内联标签{@link}未展开。但是,它对于内置paramjavadoc 标记来说效果很好。

有没有办法在自定义 Javadoc taglet 中扩展嵌套内联标签?

谢谢!

Paŭ*_*ann 2

Taglet概述说:

Taglet 可以写为块标签(例如@todo)或内联标签(例如{@underline})。块 taglet 目前不支持其文本中的内联标记。

事实上,taglet API 有点太小了,因为它只支持方法toString()

您可以在此方法中检索参数的子标签tag (使用.inlineTags()),但是您必须自己格式化它们,因为您无法从 taglet 访问标准 doclet 的正常机制。

因此,如果您不想在自己的 taglet 中重新实现(或复制)标准 doclet 的部分内容,那么看起来您运气不好。(但是,您同样可以直接扩展标准 doclet,而不是用 taglet 修补它。)