Как использовать @link и @code в KDoc (Kotlin) для правильного документирования кода?
Правильное использование @link и @code в KDoc
Ваша проблема очень распространена среди новичков в Kotlin. Дело в том, что синтаксис KDoc отличается от JavaDoc, и теги @link и @code требуют специального форматирования с фигурными скобками. Давайте разберемся по порядку.
Как работает @code
Тег @code в KDoc работает только внутри фигурных скобок. Правильный синтаксис: {@code текст}. Без скобок он не будет обработан. Вот исправленный пример:
/**
* Вычисляет сумму двух чисел.
* @param a первое число типа {@code Int}.
* @param b второе число типа {@code Int}.
* @return результат типа {@code Int}.
*/
fun add(a: Int, b: Int): Int {
return a + b
}
Теперь слово Int будет отображаться моноширинным шрифтом в документации.
Как работает @link
С @link ситуация аналогичная — нужны фигурные скобки. Но есть важные нюансы:
- Ссылка на класс в том же пакете:
{@link Calculator} - Ссылка на класс из другого пакета:
{@link com.example.utils.Calculator} - Ссылка на метод или свойство:
{@link Calculator#calculate}или{@link Calculator#calculate(int, int)} - Ссылка с кастомным текстом:
{@link Calculator Калькулятор}— отобразится как "Калькулятор", но будет ссылкой на класс Calculator
Пример правильного использования:
/**
* Вычисляет сумму двух чисел, используя {@link Calculator}.
* Для получения результата вызовите {@link Calculator#compute(int, int)}.
*
* @param a первое число типа {@code Int}
* @param b второе число типа {@code Int}
* @return результат типа {@code Int}
*/
fun add(a: Int, b: Int): Int {
val calc = Calculator()
return calc.compute(a, b)
}
Альтернативный синтаксис с квадратными скобками
В KDoc также поддерживается Markdown-подобный синтаксис для ссылок:
[Calculator]— автоматическая ссылка на класс Calculator (работает, если класс видим в контексте)[Calculator][com.example.Calculator]— явное указание полного имени[текст ссылки][Calculator]— кастомный текст
Этот синтаксис короче и часто удобнее. Пример:
/**
* Использует [Calculator] для вычислений.
* Смотрите также [Calculator.compute].
*/
Проверка через Dokka
Чтобы убедиться, что всё работает, сгенерируйте документацию с помощью Dokka. Добавьте в build.gradle.kts:
plugins {
id("org.jetbrains.dokka") version "1.9.10"
}
tasks.dokkaHtml {
outputDirectory.set(buildDir.resolve("dokka"))
}
Затем выполните ./gradlew dokkaHtml и откройте сгенерированные HTML-файлы. Вы увидите, что {@code Int} отображается моноширинным шрифтом, а {@link Calculator} — кликабельной ссылкой.
Полный исправленный пример
/**
* Вычисляет сумму двух чисел, используя {@link Calculator}.
*
* Пример использования:
* {@code
* val result = add(5, 3)
* println(result) // 8
* }
*
* @param a первое слагаемое типа {@code Int}
* @param b второе слагаемое типа {@code Int}
* @return сумма {@code a + b} типа {@code Int}
*/
fun add(a: Int, b: Int): Int {
return a + b
}
Теперь ваша документация будет выглядеть профессионально и информативно!
<<Дополнительные советы по KDoc и форматированию
Хочу добавить несколько практических замечаний к первому ответу.
Используйте Markdown для простого форматирования
В KDoc поддерживается базовая разметка Markdown, которая часто удобнее тегов:
- Жирный текст:
**текст** - Курсив:
*текст* - Код внутри строки: обратные кавычки
`Int`— это аналог{@code Int} - Блок кода: тройные обратные кавычки
```kotlin ... ```
Пример:
/**
* Вычисляет **сумму** двух чисел.
*
* Пример:
* ```kotlin
* val result = add(5, 3)
* ```
*
* @param a первое число типа `Int`
* @param b второе число типа `Int`
*/
Ссылки на внешние ресурсы
Если нужно сослаться на сайт, используйте стандартную Markdown-ссылку:
/**
* Документация по Kotlin: [Kotlin Docs](https://kotlinlang.org/docs/home.html)
*/
Автоматическая генерация ссылок
В IntelliJ IDEA и Dokka ссылки на классы и функции внутри проекта часто подхватываются автоматически. Если написать [Calculator], IDE сама предложит создать ссылку. Но для гарантии лучше использовать полный синтаксис {@link} или явные квадратные скобки.
Проверка в IDE
В IntelliJ IDEA вы можете навести курсор на KDoc-комментарий и нажать Ctrl+Q (или Cmd+J на macOS), чтобы увидеть предварительный просмотр документации. Это поможет сразу заметить, правильно ли обработались теги.
Надеюсь, эти дополнения помогут вам создавать качественную документацию на Kotlin!
Ответов пока нет.
Войдите чтобы оставить ответ
Блоги
Есть ли хорошие курсы по Python на русском