package org.jetbrains.dokka /** * Provides facility for rendering [DocumentationNode] as a language-dependent declaration */ trait LanguageService { /** * Renders a [node](DocumentationNode) as a class, function, property or other signature in a target language. * $node: A [DocumentationNode] to render * $returns: [ContentNode] which is a root for a rich content tree suitable for formatting with [FormatService] */ fun render(node: DocumentationNode): ContentNode /** * Renders [node] as a named representation in the target language * * For example: * ${code org.jetbrains.dokka.example} * * $node: A [DocumentationNode] to render * $returns: [String] which is a string representation of the node's name */ fun renderName(node: DocumentationNode): String } fun example(service: LanguageService, node: DocumentationNode) { println("Node name: ${service.renderName(node)}") }