fun paramDescription()

in generator/src/main/kotlin/space/jetbrains/api/generator/Utils.kt [251:292]


fun paramDescription(paramField: HA_Field): String? {
    if (paramField.description == null && paramField.deprecation == null && paramField.experimental == null)
        return null

    val prefix = "@param ${paramField.name} "
    val indent = " ".repeat(prefix.length)
    return buildString {
        if (paramField.description != null) {
            paramField.description.text.splitToSequence('\n').forEachIndexed { ix, s ->
                append(if (ix == 0) prefix else indent)
                appendLine(s)
            }
            paramField.description.helpTopicLink?.let {
                if (length > prefix.length) {
                    append(indent)
                    appendLine("([read more]($it))")
                } else {
                    append(prefix)
                    appendLine("[Read more]($it)")
                }
            }
        }
        paramField.deprecation
            ?.run {
                "deprecated since $since" +
                        ", scheduled for removal".takeIf { forRemoval }.orEmpty() +
                        ". $message"
            }
            ?.let {
                val descPresent = length > prefix.length
                append(if (descPresent) indent else prefix)
                appendLine(if (descPresent) it.replaceFirstChar { it.uppercaseChar() } else it)
            }
        paramField.experimental
            ?.run {
                val descPresent = length > prefix.length
                append(if (descPresent) indent else prefix)
                append("Experimental")
                appendLine(if (message != null) ". $message" else "")
            }
    }
}