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 + } } }