diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml index 75aaadb6326c..e50aee709822 100644 --- a/plugins/groovy/src/META-INF/plugin.xml +++ b/plugins/groovy/src/META-INF/plugin.xml @@ -107,6 +107,7 @@ order="first"/> + diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java new file mode 100644 index 000000000000..77d651727802 --- /dev/null +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java @@ -0,0 +1,40 @@ +/* + * Copyright 2000-2010 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.refactoring.rename; + +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiReference; +import com.intellij.refactoring.rename.RenameJavaVariableProcessor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; + +import java.util.Collection; + +/** + * @author Maxim.Medvedev + */ +public class RenameAliasImportedFieldProcessor extends RenameJavaVariableProcessor{ + @Override + public boolean canProcessElement(PsiElement element) { + return super.canProcessElement(element) && !(element instanceof GrField && ((GrField)element).isProperty()); + } + + @NotNull + @Override + public Collection findReferences(PsiElement element) { + return RenameAliasedUsagesUtil.filterAliasedRefs(super.findReferences(element), element); + } +} diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGroovyPropertyProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGroovyPropertyProcessor.java index 1c140efec253..4f9eb8e8996f 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGroovyPropertyProcessor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGroovyPropertyProcessor.java @@ -226,8 +226,7 @@ public class RenameGroovyPropertyProcessor extends RenameJavaVariableProcessor { String newName, Map allRenames, List result) { - super - .findCollisions(element, newName, allRenames, result); //To change body of overridden methods use File | Settings | File Templates. + super.findCollisions(element, newName, allRenames, result); } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/rename/RenameTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/rename/RenameTest.groovy index d357670b6429..df931960716c 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/rename/RenameTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/rename/RenameTest.groovy @@ -295,5 +295,22 @@ foo() """ } + public void testRenameAliasImportedField() { + myFixture.addFileToProject("Foo.groovy", """class Foo { +public static bar +}""") + myFixture.configureByText("a.groovy", """ +import static Foo.bar as foo + +print foo +foo = 4""") + + myFixture.renameElement myFixture.findClass("Foo").getFields()[0], "newName" + myFixture.checkResult """ +import static Foo.newName as foo + +print foo +foo = 4""" + } }