New J2K: correctly print comments for qualified expression
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user