aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Formats/StructuredFormatService.kt3
-rw-r--r--src/Kotlin/KotlinLanguageService.kt7
-rw-r--r--src/Languages/JavaLanguageService.kt3
-rw-r--r--src/Languages/LanguageService.kt9
4 files changed, 17 insertions, 5 deletions
diff --git a/src/Formats/StructuredFormatService.kt b/src/Formats/StructuredFormatService.kt
index 49a7c96b..3f505e37 100644
--- a/src/Formats/StructuredFormatService.kt
+++ b/src/Formats/StructuredFormatService.kt
@@ -1,6 +1,7 @@
package org.jetbrains.dokka
import java.util.LinkedHashMap
+import org.jetbrains.dokka.LanguageService.RenderMode
public data class FormatLink(val text: String, val location: Location)
@@ -162,7 +163,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
val breakdownBySummary = members.groupBy { formatText(location, it.summary) }
for ((summary, items) in breakdownBySummary) {
val signatureTexts = items map { signature ->
- val signature = languageService.render(signature)
+ val signature = languageService.render(signature, RenderMode.SUMMARY)
val signatureAsCode = ContentCode()
signatureAsCode.append(signature)
formatText(location, signatureAsCode)
diff --git a/src/Kotlin/KotlinLanguageService.kt b/src/Kotlin/KotlinLanguageService.kt
index 40f47639..8795aba6 100644
--- a/src/Kotlin/KotlinLanguageService.kt
+++ b/src/Kotlin/KotlinLanguageService.kt
@@ -1,20 +1,23 @@
package org.jetbrains.dokka
+import org.jetbrains.dokka.LanguageService.RenderMode
+
/**
* Implements [LanguageService] and provides rendering of symbols in Kotlin language
*/
class KotlinLanguageService : LanguageService {
- override fun render(node: DocumentationNode): ContentNode {
+ override fun render(node: DocumentationNode, renderMode: RenderMode): ContentNode {
return content {
when (node.kind) {
DocumentationNode.Kind.Package -> renderPackage(node)
DocumentationNode.Kind.Class,
DocumentationNode.Kind.Interface,
DocumentationNode.Kind.Enum,
- DocumentationNode.Kind.EnumItem,
DocumentationNode.Kind.AnnotationClass,
DocumentationNode.Kind.Object -> renderClass(node)
+ DocumentationNode.Kind.EnumItem -> if (renderMode == RenderMode.FULL) identifier(node.name)
+
DocumentationNode.Kind.TypeParameter -> renderTypeParameter(node)
DocumentationNode.Kind.Type,
DocumentationNode.Kind.UpperBound -> renderType(node)
diff --git a/src/Languages/JavaLanguageService.kt b/src/Languages/JavaLanguageService.kt
index 8cc54d4a..7446b34f 100644
--- a/src/Languages/JavaLanguageService.kt
+++ b/src/Languages/JavaLanguageService.kt
@@ -1,12 +1,13 @@
package org.jetbrains.dokka
import org.jetbrains.dokka.DocumentationNode.*
+import org.jetbrains.dokka.LanguageService.RenderMode
/**
* Implements [LanguageService] and provides rendering of symbols in Java language
*/
public class JavaLanguageService : LanguageService {
- override fun render(node: DocumentationNode): ContentNode {
+ override fun render(node: DocumentationNode, renderMode: RenderMode): ContentNode {
return ContentText(when (node.kind) {
Kind.Package -> renderPackage(node)
Kind.Class,
diff --git a/src/Languages/LanguageService.kt b/src/Languages/LanguageService.kt
index 191f12c4..35fea501 100644
--- a/src/Languages/LanguageService.kt
+++ b/src/Languages/LanguageService.kt
@@ -4,12 +4,19 @@ package org.jetbrains.dokka
* Provides facility for rendering [DocumentationNode] as a language-dependent declaration
*/
trait LanguageService {
+ enum class RenderMode {
+ /** Brief signature (used in a list of all members of the class). */
+ SUMMARY
+ /** Full signature (used in the page describing the member itself */
+ FULL
+ }
+
/**
* 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
+ fun render(node: DocumentationNode, renderMode: RenderMode = RenderMode.FULL): ContentNode
/**
* Renders [node] as a named representation in the target language