in core/src/main/java/com/facebook/ktfmt/kdoc/KDocFormatter.kt [62:83]
fun formatKDoc(input: String, blockIndent: Int, maxLineLength: Int): String {
val escapedInput = Escaping.escapeKDoc(input)
val kDocLexer = KDocLexer()
kDocLexer.start(escapedInput)
val tokens = mutableListOf<KDocToken>()
var previousType: IElementType? = null
while (kDocLexer.tokenType != null) {
val tokenType = kDocLexer.tokenType
val tokenText =
with(kDocLexer.tokenText) {
if (previousType == KDocTokens.LEADING_ASTERISK && first() == ' ') substring(1)
else this
}
processToken(tokenType, tokens, tokenText, previousType)
previousType = tokenType
kDocLexer.advance()
}
val result = render(tokens, blockIndent, maxLineLength)
return makeSingleLineIfPossible(blockIndent, result, maxLineLength)
}