[amper] AMPER-3571 Cursor jumps into existing configuration after toggling nested completion

GitOrigin-RevId: 3cc359151926932a360cfa05cb1d2e5dc11c66fb
This commit is contained in:
Anton Lobov
2024-10-17 11:14:32 +00:00
committed by intellij-monorepo-bot
parent 3071c13b12
commit a4bdb59ae7
@@ -241,12 +241,12 @@ private fun addBeforeOrAfter(value: JsonValueAdapter,
fakeProperty: PsiElement?): PsiElement {
val properties = value.asObject?.propertyList.orEmpty()
val firstProperty = properties.firstOrNull()
val lastProperty = properties.lastOrNull()
return if (lastProperty != null && element.startOffset >= lastProperty.delegate.endOffset) {
val newElement = value.delegate.addAfter(elementToAdd, lastProperty.delegate)
if (lastProperty.delegate != fakeProperty) {
val lastPropertyBefore = properties.lastOrNull { element.startOffset >= it.delegate.endOffset }
return if (lastPropertyBefore != null) {
val newElement = value.delegate.addAfter(elementToAdd, lastPropertyBefore.delegate)
if (lastPropertyBefore.delegate != fakeProperty) {
JsonLikePsiWalker.getWalker(newElement)?.getSyntaxAdapter(newElement.project)?.ensureComma(
lastProperty.delegate, newElement
lastPropertyBefore.delegate, newElement
)
}
newElement