in src/commonMain/kotlin/org/intellij/markdown/parser/sequentialparsers/impl/LinkParserUtil.kt [88:121]
fun parseLinkText(iterator: TokensCache.Iterator): LocalParsingResult? {
var it = iterator
if (it.type != MarkdownTokenTypes.LBRACKET) {
return null
}
val startIndex = it.index
val delegate = RangesListBuilder()
var bracketDepth = 1
it = it.advance()
while (it.type != null) {
if (it.type == MarkdownTokenTypes.RBRACKET) {
if (--bracketDepth == 0) {
break
}
}
delegate.put(it.index)
if (it.type == MarkdownTokenTypes.LBRACKET) {
bracketDepth++
}
it = it.advance()
}
if (it.type == MarkdownTokenTypes.RBRACKET) {
return LocalParsingResult(it,
listOf(SequentialParser.Node(startIndex..it.index + 1, MarkdownElementTypes.LINK_TEXT)),
delegate.get())
}
return null
}