private void createSubChanges( final Variable parent, final TextFileChange change, final List<String> names) { final String parentMsgName = RUtil.formatVarName(RRefactoringAdapter.getUnquotedIdentifier(parent.fName)); for (final Variable variable : parent.fSubVariables.values()) { if (variable.fNewName != null) { final String oldName = RRefactoringAdapter.getUnquotedIdentifier(variable.fName); final String oldMsgName = RUtil.formatVarName(oldName); final boolean isQuoted = (variable.fNewName.charAt(0) == '`'); final GroupCategorySet set = new GroupCategorySet( new GroupCategory( ((IRFrameInSource) parent.getParent()).getFrameId() + '$' + parent.fName, NLS.bind(Messages.RenameInRegion_Changes_VariableGroup_name, parentMsgName), "")); //$NON-NLS-1$ final String message = NLS.bind( Messages.RenameInRegion_Changes_ReplaceOccurrenceOf_name, oldMsgName, parentMsgName); for (final RElementAccess access : variable.fAccessList) { final RAstNode nameNode = access.getNameNode(); if (nameNode == null) { continue; } final String text = (isQuoted && nameNode.getNodeType() == NodeType.SYMBOL && nameNode.getOperator(0) == RTerminal.SYMBOL) ? variable.fNewName : RRefactoringAdapter.getUnquotedIdentifier(variable.fNewName); final IRegion nameRegion = RAst.getElementNameRegion(nameNode); TextChangeCompatibility.addTextEdit( change, message, new ReplaceEdit(nameRegion.getOffset(), nameRegion.getLength(), text), set); } names.add(oldName); } } }