in core/src/main/java/com/facebook/ktfmt/format/Tokenizer.kt [48:111]
override fun visitElement(element: PsiElement) {
val startIndex = element.startOffset
when (element) {
is PsiComment -> {
toks.add(
KotlinTok(
index,
fileText.substring(startIndex, element.endOffset),
element.text,
startIndex,
0,
false,
KtTokens.EOF))
index++
return
}
is KtStringTemplateExpression -> {
toks.add(
KotlinTok(
index,
WhitespaceTombstones.replaceTrailingWhitespaceWithTombstone(
fileText.substring(startIndex, element.endOffset)),
element.text,
startIndex,
0,
true,
KtTokens.EOF))
index++
return
}
is LeafPsiElement -> {
val elementText = element.text
val startIndex = element.startOffset
val endIndex = element.endOffset
if (element is PsiWhiteSpace) {
val matcher = WHITESPACE_NEWLINE_REGEX.matcher(elementText)
while (matcher.find()) {
val text = matcher.group()
toks.add(
KotlinTok(
-1,
fileText.substring(startIndex + matcher.start(), startIndex + matcher.end()),
text,
startIndex + matcher.start(),
0,
false,
KtTokens.EOF))
}
} else {
toks.add(
KotlinTok(
index,
fileText.substring(startIndex, endIndex),
elementText,
startIndex,
0,
true,
KtTokens.EOF))
index++
}
}
}
super.visitElement(element)
}