IDEA-56118 rename aliases for fields

This commit is contained in:
Maxim Medvedev
2010-07-14 13:25:02 +04:00
parent 911d18073d
commit 1f8de6553c
4 changed files with 59 additions and 2 deletions
+1
View File
@@ -107,6 +107,7 @@
order="first"/>
<renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedClassProcessor" order="first"/>
<renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedMethodProcessor" order="first"/>
<renamePsiElementProcessor implementation="org.jetbrains.plugins.groovy.refactoring.rename.RenameAliasImportedFieldProcessor" order="first"/>
<applicationService serviceInterface="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"
serviceImplementation="org.jetbrains.plugins.groovy.settings.GroovyApplicationSettings"/>
@@ -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<PsiReference> findReferences(PsiElement element) {
return RenameAliasedUsagesUtil.filterAliasedRefs(super.findReferences(element), element);
}
}
@@ -226,8 +226,7 @@ public class RenameGroovyPropertyProcessor extends RenameJavaVariableProcessor {
String newName,
Map<? extends PsiElement, String> allRenames,
List<UsageInfo> result) {
super
.findCollisions(element, newName, allRenames, result); //To change body of overridden methods use File | Settings | File Templates.
super.findCollisions(element, newName, allRenames, result);
}
@@ -295,5 +295,22 @@ foo()
"""
}
public void testRenameAliasImportedField() {
myFixture.addFileToProject("Foo.groovy", """class Foo {
public static bar
}""")
myFixture.configureByText("a.groovy", """
import static Foo.ba<caret>r 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"""
}
}