mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
#RUBY-9955 don't insert call element if it isn't needed; replace duplicates with proper let name
This commit is contained in:
+10
-4
@@ -42,6 +42,7 @@ import com.intellij.refactoring.RefactoringBundle;
|
||||
import com.intellij.ui.ReplacePromptDialog;
|
||||
import com.intellij.util.Consumer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -49,7 +50,7 @@ import java.util.*;
|
||||
* @author Dennis.Ushakov
|
||||
*/
|
||||
public class ExtractMethodHelper {
|
||||
public static void processDuplicates(@NotNull final PsiElement callElement,
|
||||
public static void processDuplicates(@Nullable final PsiElement callElement,
|
||||
@NotNull final PsiElement generatedMethod,
|
||||
@NotNull final List<PsiElement> scope,
|
||||
@NotNull final SimpleDuplicatesFinder finder,
|
||||
@@ -60,7 +61,7 @@ public class ExtractMethodHelper {
|
||||
replaceDuplicates(callElement, editor, replacer, finder.findDuplicates(scope, generatedMethod));
|
||||
return;
|
||||
}
|
||||
final Project project = callElement.getProject();
|
||||
final Project project = generatedMethod.getProject();
|
||||
ProgressManager.getInstance().run(new Task.Backgroundable(project, RefactoringBundle.message("searching.for.duplicates"), true) {
|
||||
public void run(@NotNull ProgressIndicator indicator) {
|
||||
if (myProject == null || myProject.isDisposed()) return;
|
||||
@@ -115,7 +116,7 @@ public class ExtractMethodHelper {
|
||||
* @param duplicates discovered duplicates of extracted code fragment
|
||||
* @see #collectDuplicates(SimpleDuplicatesFinder, List, PsiElement)
|
||||
*/
|
||||
public static void replaceDuplicates(@NotNull PsiElement callElement,
|
||||
public static void replaceDuplicates(@Nullable PsiElement callElement,
|
||||
@NotNull Editor editor,
|
||||
@NotNull Consumer<Pair<SimpleMatch, PsiElement>> replacer,
|
||||
@NotNull List<SimpleMatch> duplicates) {
|
||||
@@ -124,7 +125,12 @@ public class ExtractMethodHelper {
|
||||
.message("0.has.detected.1.code.fragments.in.this.file.that.can.be.replaced.with.a.call.to.extracted.method",
|
||||
ApplicationNamesInfo.getInstance().getProductName(), duplicates.size());
|
||||
final boolean isUnittest = ApplicationManager.getApplication().isUnitTestMode();
|
||||
final Project project = callElement.getProject();
|
||||
final Project project = callElement != null ? callElement.getProject() : editor.getProject();
|
||||
if (project == null) {
|
||||
Messages.showErrorDialog(editor.getComponent(), "Cannot find project.");
|
||||
return;
|
||||
}
|
||||
|
||||
final int exitCode = !isUnittest ? Messages.showYesNoDialog(project, message,
|
||||
RefactoringBundle.message("refactoring.extract.method.dialog.title"),
|
||||
Messages.getInformationIcon()) :
|
||||
|
||||
Reference in New Issue
Block a user