aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/Model
diff options
context:
space:
mode:
authorSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-06-05 18:28:49 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-06-07 17:19:45 +0300
commitfff865cb03d406a07190ad15a9cbf81cb4cfa36a (patch)
tree9f345ea4e34ef4e1872f424c846f129681404cea /core/src/main/kotlin/Model
parent6ca62b8b7b0bbe5df26e7e66b827926f9b1417d3 (diff)
downloaddokka-fff865cb03d406a07190ad15a9cbf81cb4cfa36a.tar.gz
dokka-fff865cb03d406a07190ad15a9cbf81cb4cfa36a.tar.bz2
dokka-fff865cb03d406a07190ad15a9cbf81cb4cfa36a.zip
Fix StringOutOfBoundsException in link mapping
#167 #KT-18213 fixed
Diffstat (limited to 'core/src/main/kotlin/Model')
-rw-r--r--core/src/main/kotlin/Model/PackageDocs.kt10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/src/main/kotlin/Model/PackageDocs.kt b/core/src/main/kotlin/Model/PackageDocs.kt
index d057d4d0..3b03324c 100644
--- a/core/src/main/kotlin/Model/PackageDocs.kt
+++ b/core/src/main/kotlin/Model/PackageDocs.kt
@@ -4,7 +4,8 @@ import com.google.inject.Inject
import com.google.inject.Singleton
import org.intellij.markdown.MarkdownElementTypes
import org.intellij.markdown.MarkdownTokenTypes
-import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor
+import org.intellij.markdown.parser.LinkMap
+import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import java.io.File
@Singleton
@@ -17,11 +18,12 @@ class PackageDocs
val packageContent: Map<String, Content>
get() = _packageContent
- fun parse(fileName: String, linkResolveContext: List<LazyPackageDescriptor>) {
+ fun parse(fileName: String, linkResolveContext: List<PackageFragmentDescriptor>) {
val file = File(fileName)
if (file.exists()) {
val text = file.readText()
val tree = parseMarkdown(text)
+ val linkMap = LinkMap.buildLinkMap(tree.node, text)
var targetContent: MutableContent = moduleContent
tree.children.forEach {
if (it.type == MarkdownElementTypes.ATX_1) {
@@ -30,7 +32,7 @@ class PackageDocs
targetContent = findTargetContent(headingText.trimStart())
}
} else {
- buildContentTo(it, targetContent, { resolveContentLink(it, linkResolveContext) })
+ buildContentTo(it, targetContent, LinkResolver(linkMap, { resolveContentLink(it, linkResolveContext) }))
}
}
} else {
@@ -51,7 +53,7 @@ class PackageDocs
private fun findOrCreatePackageContent(packageName: String) =
_packageContent.getOrPut(packageName) { -> MutableContent() }
- private fun resolveContentLink(href: String, linkResolveContext: List<LazyPackageDescriptor>): ContentBlock {
+ private fun resolveContentLink(href: String, linkResolveContext: List<PackageFragmentDescriptor>): ContentBlock {
if (linkResolver != null) {
linkResolveContext
.asSequence()