From 885d963c3fcfa5f6bb5b569eae9e53ef9a9dc78f Mon Sep 17 00:00:00 2001 From: Mikhail Mutcianko Date: Sun, 3 Aug 2014 16:56:21 +0400 Subject: [PATCH] add bound property renaming by renaming xml attribute value --- .../jet/lang/resolve/android/AndroidUIXmlProcessor.kt | 2 +- .../jet/plugin/android/AndroidRenameProcessor.kt | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt index c073ef5beff..c106841b305 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt @@ -64,7 +64,7 @@ abstract class AndroidUIXmlProcessor(val project: Project) { protected abstract val androidAppPackage: String private val fileCache = HashMap() - private var lastCachedPsi: JetFile? = null + var lastCachedPsi: JetFile? = null protected val fileModificationTime: HashMap = HashMap() protected val filesToProcess: Queue = ConcurrentLinkedQueue() diff --git a/idea/src/org/jetbrains/jet/plugin/android/AndroidRenameProcessor.kt b/idea/src/org/jetbrains/jet/plugin/android/AndroidRenameProcessor.kt index e30e01cd88a..496e17c32dd 100644 --- a/idea/src/org/jetbrains/jet/plugin/android/AndroidRenameProcessor.kt +++ b/idea/src/org/jetbrains/jet/plugin/android/AndroidRenameProcessor.kt @@ -59,7 +59,14 @@ public class AndroidRenameProcessor : RenamePsiElementProcessor() { private fun renameAttributeValue(attribute: XmlAttributeValue, newName: String?, allRenames: MutableMap, scope: SearchScope) { val element1 = LazyValueResourceElementWrapper.computeLazyElement(attribute); + val processor = ServiceManager.getService(attribute.getProject(), javaClass()) if (element1 == null) return - val id = AndroidResourceUtil.getResourceNameByReferenceText(attribute.getValue()!!) + val oldPropName = AndroidResourceUtil.getResourceNameByReferenceText(attribute.getValue()!!) + val newPropName = processor!!.resourceManager.idToName(newName!!) + val props = processor.lastCachedPsi?.findChildrenByClass(javaClass()) + val matchedProps = props?.filter { it.getName() == oldPropName } ?: arrayListOf() + for (prop in matchedProps) { + allRenames[prop] = newPropName + } } }