From a33bf81ad23197d96dd0122aea590c7fca203c9d Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 25 Mar 2013 20:06:13 +0100 Subject: [PATCH] inplace rename: prefer reference to be primary rename variable (DEA-100018) (cherry picked from commit 56fafe3ecec9c3504e23b976633b7d05f83f53c9) --- .../refactoring/rename/inplace/InplaceRefactoring.java | 9 +++++++-- .../jetbrains/plugins/javaFX/fxml/JavaFXRenameTest.java | 4 ++++ plugins/javaFX/testData/rename/Handler.fxml | 8 ++++++++ plugins/javaFX/testData/rename/Handler.java | 3 +++ plugins/javaFX/testData/rename/Handler_after.fxml | 8 ++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 plugins/javaFX/testData/rename/Handler.fxml create mode 100644 plugins/javaFX/testData/rename/Handler.java create mode 100644 plugins/javaFX/testData/rename/Handler_after.fxml diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java index a25d37e3f293..b93d6ea3b8fb 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java @@ -268,11 +268,16 @@ public abstract class InplaceRefactoring { int offset = myEditor.getCaretModel().getOffset(); PsiElement selectedElement = getSelectedInEditorElement(nameIdentifier, refs, stringUsages, offset); - if (nameIdentifier != null) addVariable(nameIdentifier, selectedElement, builder); + boolean subrefOnPrimaryElement = false; for (PsiReference ref : refs) { - if (nameIdentifier != null && ref.getElement() == nameIdentifier.getParent()) continue; + if (nameIdentifier != null && ref.getElement() == nameIdentifier.getParent()) { + builder.replaceElement(ref, PRIMARY_VARIABLE_NAME, createLookupExpression(), true); + subrefOnPrimaryElement = true; + continue; + } addVariable(ref, selectedElement, builder, offset); } + if (nameIdentifier != null && !subrefOnPrimaryElement) addVariable(nameIdentifier, selectedElement, builder); for (Pair usage : stringUsages) { addVariable(usage.first, usage.second, selectedElement, builder); } diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXRenameTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXRenameTest.java index e84c06dcff60..fe18c7e1f55d 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXRenameTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXRenameTest.java @@ -38,6 +38,10 @@ public class JavaFXRenameTest extends DaemonAnalyzerTestCase { doTest("newFieldName"); } + public void testHandler() throws Exception { + doTest("newHandlerName"); + } + public void testCustomComponentTag() throws Exception { doTest("Foo"); } diff --git a/plugins/javaFX/testData/rename/Handler.fxml b/plugins/javaFX/testData/rename/Handler.fxml new file mode 100644 index 000000000000..a6afa36149c1 --- /dev/null +++ b/plugins/javaFX/testData/rename/Handler.fxml @@ -0,0 +1,8 @@ + + + + + +