如何在 kotlinkDoc 中使用@link 和@code

我正在尝试记录一个方法,并尝试使用 @link@code,就像在 JavaDoc中一样。

我知道在 Kotlin 有个 KDoc但我找不到他们,或者至少是类似的东西。

60094 次浏览

@link@code在 kDoc 中不存在,但可以很容易地被 内联标记所替代。

来自 KotlinDoc 链接到元素

内联标记

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

链接到元素

要链接到另一个元素(类、方法、属性或参数) , 只要把它的名字放在方括号里:

为此使用方法 [foo]

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

为此目的使用 [this method][foo]。还可以使用限定的 注意,与 JavaDoc 不同,限定名总是 使用点字符来分隔组件,甚至在方法之前 姓名:

使用 [kotlin.reflect.KClass.properties]枚举 使用相同的规则解析链接中的类 在被记录的元素中使用了 意味着如果已将名称导入当前文件,则 在 KDoc 注释中使用它时,不需要完全限定它。

注意,KDoc 没有任何用于解析重载的语法 自从 Kotlin 文档生成工具将 同一页面上函数的所有重载的文档, 属性不需要标识特定的重载函数 工作链接。

你可以用 java 编写代码,然后把 class 转换成 Kotlin。

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

将被转换为

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

回答这个问题,阿图尔给出了一个很好的提示,但结果是错误的。至少 IntelliJ IDEA 没有理解这个结果。在主注释文本中使用 []()的标记链接格式很好,但是在 @see标记中使用 没有作为外部链接。对于这些,您需要与 Java 中相同的语法:

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

我在 Mac 上的 Android Studio 3.5.2上挣扎了一段时间,这对我很有用:

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

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

至于 @code,你应该使用 标记语法(因为 KDoc 是 Markdown 的扩展版本) :

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

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

在 Java 中的 {@link SomeClass}映射到 Kotlin 的 [SomeClass]

对于在爪哇的 {@code true}地图到“真”在 Kotlin

要引用 一种方法,请使用 同学们:

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

使用变量/参数 不起作用:

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

示例如何为类保留链接:

/**
* [YourClass] Methods
* */

也可以使用方法调用

/**
* [YourClass.someMothod] Methods
* */

真正的例子:

 /**
* [BaseActivity] Methods
* */
override fun initVars() {
//Just Sample
}


/**
* [MainContract.View] - Overrides
* */
override fun handleConnectionMassage(isShow: Boolean) {
//Just Sample
}

看起来我们应该使用一个没有任何特殊标签的超链接,比如 @see或者 @link:

/**
* This is a doc.
*
* See [this](https://google.com)
* And [this](https://stackoverflow.com)
*/
fun myfun() {}

这个文档在 IDE 中以如下方式呈现:

render of a doc in IDE