如何在kotlin kDoc中使用@link和@code

时间:2017-07-19 15:46:45

标签: documentation kotlin kdoc

我正在尝试记录一种方法,并尝试在JavaDoc中使用@link@code

我知道在kotlin有一个kDoc,但我找不到它们或者至少是类似的东西。

7 个答案:

答案 0 :(得分:62)

kDoc中不存在

@link@code,但很容易被Inline Markup取代。

来自KotlinDoc Linking to Elements

  

内联标记

     

对于内联标记,KDoc使用扩展为的常规Markdown语法   支持用于链接到代码中其他元素的简写语法。

     

链接到元素

     

要链接到另一个元素(类,方法,属性或参数),   只需将其名称放在方括号中:

     

为此目的使用方法[foo]

     

如果要指定自定义   链接的标签,使用Markdown参考样式语法:

     

为此目的使用[this method][foo]。您也可以使用合格的   链接中的名称。请注意,与JavaDoc不同,始终是限定名称   使用点字符来分隔组件,甚至在方法之前   名:

     

使用[kotlin.reflect.KClass.properties]枚举。的属性   班级。链接中的名称使用与以下相同的规则进行解析   name在被记录的元素中使用。特别是这个   意味着如果您已将名称导入当前文件,则表示您   在KDoc评论中使用它时,不需要完全限定它。

     

请注意,KDoc没有任何解析重载的语法   链接中的成员。自Kotlin文档生成工具以来   同一页面上函数的所有重载的文档,   不需要识别特定的重载功能   链接到工作。

答案 1 :(得分:15)

对于Java中的{@link SomeClass},在Kotlin中映射为[SomeClass]

对于Java中的{@code true},在Kotlin中映射为`true`

答案 2 :(得分:7)

要引用方法,请使用 class

/**
 * When the configuration succeeds **[MyCallback.onConfigured]** is called.
 */
class MyClass(myCallback: MyCallback) {

使用变量/参数不起作用

/**
 * When the configuration succeeds **[myCallback.onConfigured]** is called.
 */
class MyClass(myCallback: MyCallback) {

答案 3 :(得分:4)

您可以使用Java编写代码并将类转换为Kotlin。

/**
 * @see <a href="http://somelink.com">link</a>
 */
public class Some {
}

将转换为

/**
 * @see [link](http://somelink.com)
 */
class Some

答案 4 :(得分:4)

给出的answer that Artur通常是一个很好的提示,但结果是错误的。至少IntelliJ IDEA不会取消结果。在主注释文本中使用[]()的markdown链接格式很好,但对于@see标签中的外部链接,不是。对于这些,您需要与Java中相同的语法:

/**
 * Do something.
 *
 * @see <a href="https://stackoverflow.com/q/45195370/2621917">External links in kdoc</a>
 */

答案 5 :(得分:1)

我在Mac上的Android Studio 3.5.2上为此付出了一些努力。这对我有用:

/**
* [Your fully-qualified class name.function name]
*/

如果我不使用全限定名,则Kdoc会抱怨说这是一个未解决的引用。我不知道是如何实际使用链接本身。为此,您需要按住COMMAND键(在Mac上是这样),然后链接将处于活动状态。

答案 6 :(得分:0)

对于@code,您应该使用Markdown syntax(因为KDoc是Markdown的扩展版本):

  

要在Markdown中生成代码块,只需将代码块的每一行缩进至少4个空格或1个制表符。

/**
 * Some code sample:
 * 
 *    Set<String> s;
 *    System.out.println(s);
 */
class Scratch