aboutsummaryrefslogtreecommitdiff
path: root/src/Formats
diff options
context:
space:
mode:
authorIlya Ryzhenkov <orangy@jetbrains.com>2014-10-03 19:09:31 +0400
committerIlya Ryzhenkov <orangy@jetbrains.com>2014-10-03 19:09:31 +0400
commit7c6da4babd01da31c57c5c6c827eb2957c989b1c (patch)
tree1cc063c24326044b9ee968b2278e0864e8ee7051 /src/Formats
parenta52e1d543d22fdacf87ec00988b753d2d1107c1d (diff)
downloaddokka-7c6da4babd01da31c57c5c6c827eb2957c989b1c.tar.gz
dokka-7c6da4babd01da31c57c5c6c827eb2957c989b1c.tar.bz2
dokka-7c6da4babd01da31c57c5c6c827eb2957c989b1c.zip
Language Service now formats to ContentNode instead of String.
Diffstat (limited to 'src/Formats')
-rw-r--r--src/Formats/HtmlFormatService.kt13
-rw-r--r--src/Formats/MarkdownFormatService.kt11
-rw-r--r--src/Formats/StructuredFormatService.kt18
3 files changed, 35 insertions, 7 deletions
diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt
index 550899ff..c3720956 100644
--- a/src/Formats/HtmlFormatService.kt
+++ b/src/Formats/HtmlFormatService.kt
@@ -10,16 +10,25 @@ public open class HtmlFormatService(locationService: LocationService,
override public fun formatText(text: String): String {
return text.htmlEscape()
}
+ override fun formatSymbol(text: String): String {
+ return "<span class=\"symbol\">${formatText(text)}</span>"
+ }
+ override fun formatKeyword(text: String): String {
+ return "<span class=\"keyword\">${formatText(text)}</span>"
+ }
+ override fun formatIdentifier(text: String): String {
+ return "<span class=\"identifier\">${formatText(text)}</span>"
+ }
override fun appendBlockCode(to: StringBuilder, line: String) {
to.appendln("<code>")
- to.appendln(line.htmlEscape())
+ to.appendln(line)
to.appendln("</code>")
}
override fun appendBlockCode(to: StringBuilder, lines: Iterable<String>) {
to.appendln("<code>")
- to.appendln(lines.map { it.htmlEscape() }.join("\n"))
+ to.appendln(lines.join("\n"))
to.appendln("</code>")
}
diff --git a/src/Formats/MarkdownFormatService.kt b/src/Formats/MarkdownFormatService.kt
index 3b87835f..7b71f638 100644
--- a/src/Formats/MarkdownFormatService.kt
+++ b/src/Formats/MarkdownFormatService.kt
@@ -16,6 +16,17 @@ public open class MarkdownFormatService(locationService: LocationService,
return text.htmlEscape()
}
+ override fun formatSymbol(text: String): String {
+ return text.htmlEscape()
+ }
+
+ override fun formatKeyword(text: String): String {
+ return text.htmlEscape()
+ }
+ override fun formatIdentifier(text: String): String {
+ return text.htmlEscape()
+ }
+
override public fun formatCode(code: String): String {
return "`$code`"
}
diff --git a/src/Formats/StructuredFormatService.kt b/src/Formats/StructuredFormatService.kt
index f2fb9b41..ea8ed36e 100644
--- a/src/Formats/StructuredFormatService.kt
+++ b/src/Formats/StructuredFormatService.kt
@@ -22,6 +22,9 @@ public abstract class StructuredFormatService(val locationService: LocationServi
public abstract fun appendTableCell(to: StringBuilder, body: () -> Unit)
public abstract fun formatText(text: String): String
+ public abstract fun formatSymbol(text: String): String
+ public abstract fun formatKeyword(text: String): String
+ public abstract fun formatIdentifier(text: String): String
public abstract fun formatLink(text: String, location: Location): String
public open fun formatLink(link: FormatLink): String = formatLink(formatText(link.text), link.location)
public abstract fun formatBold(text: String): String
@@ -36,6 +39,9 @@ public abstract class StructuredFormatService(val locationService: LocationServi
return StringBuilder {
when (node) {
is ContentText -> append(node.text)
+ is ContentSymbol -> append(formatSymbol(node.text))
+ is ContentKeyword -> append(formatKeyword(node.text))
+ is ContentIdentifier -> append(formatIdentifier(node.text))
is ContentEmphasis -> append(formatBold(formatText(node.children)))
else -> append(formatText(node.children))
}
@@ -55,7 +61,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
appendHeader(to, "Description", 3)
for (node in described) {
if (!single) {
- appendBlockCode(to, languageService.render(node))
+ appendBlockCode(to, formatText(languageService.render(node)))
}
appendLine(to, formatText(node.doc.description))
appendLine(to)
@@ -76,7 +82,9 @@ public abstract class StructuredFormatService(val locationService: LocationServi
}
for ((summary, items) in breakdownBySummary) {
- appendBlockCode(to, items.map { languageService.render(it) })
+ items.forEach {
+ appendBlockCode(to, formatText(languageService.render(it)))
+ }
appendLine(to, formatText(summary))
appendLine(to)
}
@@ -105,6 +113,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
for (node in nodes) {
appendSection("Members", node.members, node, to)
appendSection("Extensions", node.extensions, node, to)
+ appendSection("Inheritors", node.inheritors, node, to)
appendSection("Links", node.links, node, to)
}
}
@@ -126,9 +135,8 @@ public abstract class StructuredFormatService(val locationService: LocationServi
appendTableCell(to) {
val breakdownBySummary = members.groupBy { it.doc.summary }
for ((summary, items) in breakdownBySummary) {
- val signatures = items.map { formatCode("${languageService.render(it)}") }
- for (signature in signatures) {
- appendText(to, signature)
+ for (signature in items) {
+ appendBlockCode(to, formatText(languageService.render(signature)))
}
if (!summary.isEmpty()) {