aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Jemerov <yole@jetbrains.com>2015-01-12 17:23:07 +0100
committerDmitry Jemerov <yole@jetbrains.com>2015-01-12 17:23:07 +0100
commit0c584d0e12f07946fdfc8cc0e9f132558ff794fc (patch)
treee91219e900010aae0cfc0a95499ddd5650f201e7
parentc4f40a03404641a9a42e6518cb066f2e0ae609e0 (diff)
downloaddokka-0c584d0e12f07946fdfc8cc0e9f132558ff794fc.tar.gz
dokka-0c584d0e12f07946fdfc8cc0e9f132558ff794fc.tar.bz2
dokka-0c584d0e12f07946fdfc8cc0e9f132558ff794fc.zip
enum values continued
-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
-rw-r--r--test/data/format/enumClass.md4
-rw-r--r--test/data/format/enumClass.value.md0
-rw-r--r--test/src/format/MarkdownFormatTest.kt4
7 files changed, 23 insertions, 7 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
diff --git a/test/data/format/enumClass.md b/test/data/format/enumClass.md
index 1f2df115..e1c4144e 100644
--- a/test/data/format/enumClass.md
+++ b/test/data/format/enumClass.md
@@ -20,6 +20,6 @@ public enum class InlineOption
### Enum Values
-| [LOCAL_CONTINUE_AND_BREAK](out.md) | `public enum val LOCAL_CONTINUE_AND_BREAK : [InlineOption](out.md)` |
-| [ONLY_LOCAL_RETURN](out.md) | `public enum val ONLY_LOCAL_RETURN : [InlineOption](out.md)` |
+| [LOCAL_CONTINUE_AND_BREAK](out.md) | `` |
+| [ONLY_LOCAL_RETURN](out.md) | `` |
diff --git a/test/data/format/enumClass.value.md b/test/data/format/enumClass.value.md
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/data/format/enumClass.value.md
diff --git a/test/src/format/MarkdownFormatTest.kt b/test/src/format/MarkdownFormatTest.kt
index 8cb6091f..1b8b1cc0 100644
--- a/test/src/format/MarkdownFormatTest.kt
+++ b/test/src/format/MarkdownFormatTest.kt
@@ -51,5 +51,9 @@ public class MarkdownFormatTest {
verifyOutput("test/data/format/enumClass.kt", ".md") { model, output ->
markdownService.appendNodes(tempLocation, output, model.members.single().members)
}
+ verifyOutput("test/data/format/enumClass.kt", ".value.md") { model, output ->
+ val documentationNode = model.members.single()
+ markdownService.appendNodes(tempLocation, output, listOf(documentationNode.members[0].members[1]))
+ }
}
}