From fcbd7b357a614d37e9ac6af150596d7eb3177c64 Mon Sep 17 00:00:00 2001 From: Zack Grannan Date: Sun, 2 Mar 2014 17:34:28 -0800 Subject: [PATCH] Modified doRefactoring to allow occurrences to be specified --- .../JetIntroduceVariableHandler.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/introduceVariable/JetIntroduceVariableHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/introduceVariable/JetIntroduceVariableHandler.java index d8537cabc54..da0ffbaaa91 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/introduceVariable/JetIntroduceVariableHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/introduceVariable/JetIntroduceVariableHandler.java @@ -65,7 +65,7 @@ public class JetIntroduceVariableHandler extends JetIntroduceHandlerBase { JetRefactoringUtil.SelectExpressionCallback callback = new JetRefactoringUtil.SelectExpressionCallback() { @Override public void run(@Nullable JetExpression expression) { - doRefactoring(project, editor, expression); + doRefactoring(project, editor, expression, null); } }; try { @@ -76,7 +76,11 @@ public class JetIntroduceVariableHandler extends JetIntroduceHandlerBase { } } - private static void doRefactoring(@NotNull final Project project, final Editor editor, @Nullable JetExpression _expression) { + + public static void doRefactoring( + @NotNull final Project project, final Editor editor, @Nullable JetExpression _expression, + @Nullable List occurrencesToReplace + ) { if (_expression == null) { showErrorHint(project, editor, JetRefactoringBundle.message("cannot.refactor.no.expression")); return; @@ -155,7 +159,15 @@ public class JetIntroduceVariableHandler extends JetIntroduceHandlerBase { final boolean isInplaceAvailableOnDataContext = editor.getSettings().isVariableInplaceRenameEnabled() && !ApplicationManager.getApplication().isUnitTestMode(); - final List allOccurrences = findOccurrences(occurrenceContainer, expression); + + final List allOccurrences; + if (occurrencesToReplace == null) { + allOccurrences = findOccurrences(occurrenceContainer, expression); + } + else { + allOccurrences = occurrencesToReplace; + } + final boolean finalNoTypeInference = noTypeInference; final boolean finalNeedParentheses = needParentheses; Pass callback = new Pass() { @@ -212,7 +224,7 @@ public class JetIntroduceVariableHandler extends JetIntroduceHandlerBase { }, INTRODUCE_VARIABLE, null); } }; - if (isInplaceAvailableOnDataContext) { + if (isInplaceAvailableOnDataContext && occurrencesToReplace == null) { OccurrencesChooser.simpleChooser(editor). showChooser(expression, allOccurrences, callback); }