mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
Merge branch 'master' into upsource-master
Conflicts: build/scripts/libLicenses.gant images/src/org/intellij/images/index/ImageInfoIndex.java java/compiler/impl/src/com/intellij/compiler/server/BuildManager.java java/execution/impl/src/com/intellij/execution/actions/AbstractRerunFailedTestsAction.java jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildSession.java jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java jps/jps-builders/src/org/jetbrains/jps/javac/JavacMain.java jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java jps/model/src/org/jetbrains/jps/idea/IdeaProjectLoader.groovy platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java platform/lang-impl/src/com/intellij/codeInsight/editorActions/CopyPasteIndentProcessor.java platform/platform-impl/src/com/intellij/featureStatistics/actions/ShowFeatureUsageStatisticsDialog.java platform/platform-resources-en/src/messages/ActionsBundle.properties platform/util/src/com/intellij/icons/AllIcons.java plugins/IdeaTestAssistant/src/com/intellij/testAssistant/TestDataHighlightingPass.java plugins/java-i18n/src/com/intellij/spellchecker/LiteralExpressionTokenizer.java plugins/junit/src/com/intellij/execution/junit/JUnitConfigurationType.java plugins/spellchecker/src/com/intellij/spellchecker/tokenizer/EscapeSequenceTokenizer.java
This commit is contained in:
@@ -101,12 +101,7 @@ public class DuplicatesImpl {
|
||||
|
||||
private static boolean replaceMatch(final Project project, final MatchProvider provider, final Match match, @NotNull final Editor editor,
|
||||
final int idx, final int size, Ref<Boolean> showAll, final String confirmDuplicatePrompt) {
|
||||
final ArrayList<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
|
||||
highlightMatch(project, editor, match, highlighters);
|
||||
final TextRange textRange = match.getTextRange();
|
||||
final LogicalPosition logicalPosition = editor.offsetToLogicalPosition(textRange.getStartOffset());
|
||||
expandAllRegionsCoveringRange(project, editor, textRange);
|
||||
editor.getScrollingModel().scrollTo(logicalPosition, ScrollType.MAKE_VISIBLE);
|
||||
final ArrayList<RangeHighlighter> highlighters = previewMatch(project, match, editor);
|
||||
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
if (size > 1 && (showAll.get() == null || !showAll.get())) {
|
||||
final String prompt = provider.getConfirmDuplicatePrompt(match);
|
||||
@@ -145,6 +140,16 @@ public class DuplicatesImpl {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static ArrayList<RangeHighlighter> previewMatch(Project project, Match match, Editor editor) {
|
||||
final ArrayList<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
|
||||
highlightMatch(project, editor, match, highlighters);
|
||||
final TextRange textRange = match.getTextRange();
|
||||
final LogicalPosition logicalPosition = editor.offsetToLogicalPosition(textRange.getStartOffset());
|
||||
expandAllRegionsCoveringRange(project, editor, textRange);
|
||||
editor.getScrollingModel().scrollTo(logicalPosition, ScrollType.MAKE_VISIBLE);
|
||||
return highlighters;
|
||||
}
|
||||
|
||||
private static void expandAllRegionsCoveringRange(final Project project, Editor editor, final TextRange textRange) {
|
||||
final FoldRegion[] foldRegions = CodeFoldingManager.getInstance(project).getFoldRegionsAtOffset(editor, textRange.getStartOffset());
|
||||
boolean anyCollapsed = false;
|
||||
@@ -177,9 +182,13 @@ public class DuplicatesImpl {
|
||||
public static void processDuplicates(@NotNull MatchProvider provider, @NotNull Project project, @NotNull Editor editor) {
|
||||
boolean hasDuplicates = provider.hasDuplicates();
|
||||
if (hasDuplicates) {
|
||||
List<Match> duplicates = provider.getDuplicates();
|
||||
if (duplicates.size() == 1) {
|
||||
previewMatch(project, duplicates.get(0), editor);
|
||||
}
|
||||
final int answer = Messages.showYesNoDialog(project,
|
||||
RefactoringBundle.message("0.has.detected.1.code.fragments.in.this.file.that.can.be.replaced.with.a.call.to.extracted.method",
|
||||
ApplicationNamesInfo.getInstance().getProductName(), provider.getDuplicates().size()),
|
||||
ApplicationNamesInfo.getInstance().getProductName(), duplicates.size()),
|
||||
"Process Duplicates", Messages.getQuestionIcon());
|
||||
if (answer == 0) {
|
||||
invoke(project, editor, provider);
|
||||
|
||||
Reference in New Issue
Block a user