mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
rename field: replace qualified names with field qName (IDEA-210056)
GitOrigin-RevId: 8ae6037597a183c843d89f5b8870a4162ddf73e3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d77a7b258b
commit
64520feaa1
@@ -7,6 +7,7 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
@@ -420,4 +421,20 @@ public class RenameJavaVariableProcessor extends RenameJavaMemberProcessor {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getQualifiedNameAfterRename(@NotNull final PsiElement element, @NotNull final String newName, final boolean nonJava) {
|
||||
if (nonJava && element instanceof PsiField) {
|
||||
final PsiField field = (PsiField)element;
|
||||
PsiClass containingClass = field.getContainingClass();
|
||||
if (containingClass != null) {
|
||||
String qualifiedName = containingClass.getQualifiedName();
|
||||
if (qualifiedName != null) {
|
||||
return StringUtil.getQualifiedName(qualifiedName, newName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
p.A.myField1=foo
|
||||
@@ -0,0 +1 @@
|
||||
p.A.myField=foo
|
||||
@@ -0,0 +1,30 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package com.intellij.java.refactoring;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.refactoring.rename.RenameProcessor;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
|
||||
public class RenameFieldMultiTest extends LightCodeInsightFixtureTestCase {
|
||||
@Override
|
||||
protected String getTestDataPath() {
|
||||
return JavaTestUtil.getJavaTestDataPath() + "/refactoring/renameField/multi/";
|
||||
}
|
||||
|
||||
public void testNonCodeUsages() {
|
||||
PsiClass aClass = myFixture.addClass("package p;\n" +
|
||||
"public class A {\n" +
|
||||
" private String myField;\n" +
|
||||
"}");
|
||||
doTest(aClass, "properties");
|
||||
}
|
||||
|
||||
private void doTest(PsiClass aClass, String ext) {
|
||||
String suffix = getTestName(false);
|
||||
myFixture.configureByFile("before" + suffix + "." + ext);
|
||||
new RenameProcessor(getProject(), aClass.findFieldByName("myField", false), "myField1", true, true).run();
|
||||
myFixture.checkResultByFile("after" + suffix + "." + ext);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user