New J2K: correctly print comments for qualified expression

This commit is contained in:
Ilya Kirillov
2019-07-24 22:23:20 +03:00
parent 2bd5a1f196
commit 4ead820395
@@ -51,16 +51,17 @@ class NewCodeBuilder(context: NewJ2kConverterContext) {
return text + "\n".takeIf { needNewLine }.orEmpty() return text + "\n".takeIf { needNewLine }.orEmpty()
} }
private fun JKNonCodeElementsListOwner.needPreserveSpacesAfterLastCommit() = private fun JKNonCodeElementsListOwner.needPreserveSpacesAfterLastComment() =
this is JKArgument this is JKArgument
|| this is JKParameter || this is JKParameter
|| safeAs<JKTreeElement>()?.parent is JKArgument || safeAs<JKTreeElement>()?.parent is JKArgument
|| safeAs<JKTreeElement>()?.parent is JKBinaryExpression || safeAs<JKTreeElement>()?.parent is JKBinaryExpression
|| safeAs<JKTreeElement>()?.parent is JKQualifiedExpression
override fun printLeftNonCodeElements(element: JKNonCodeElementsListOwner) { override fun printLeftNonCodeElements(element: JKNonCodeElementsListOwner) {
val text = element.leftNonCodeElements val text = element.leftNonCodeElements
.let { .let {
if (element.needPreserveSpacesAfterLastCommit()) it if (element.needPreserveSpacesAfterLastComment()) it
else it.dropWhile { it is JKSpaceElement } else it.dropWhile { it is JKSpaceElement }
}.createText() }.createText()
printer.printWithNoIndent(text) printer.printWithNoIndent(text)
@@ -70,7 +71,7 @@ class NewCodeBuilder(context: NewJ2kConverterContext) {
override fun printRightNonCodeElements(element: JKNonCodeElementsListOwner) { override fun printRightNonCodeElements(element: JKNonCodeElementsListOwner) {
val text = element.rightNonCodeElements val text = element.rightNonCodeElements
.let { .let {
if (element.needPreserveSpacesAfterLastCommit()) it if (element.needPreserveSpacesAfterLastComment()) it
else it.dropLastWhile { it is JKSpaceElement } else it.dropLastWhile { it is JKSpaceElement }
}.createText() }.createText()
printer.printWithNoIndent(text) printer.printWithNoIndent(text)