From cb2de20a08ba6abb1437020c54efc5954bb03612 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Mon, 9 Feb 2015 16:50:06 +0300 Subject: [PATCH] diff: do not migrate request if it can be shown by tool from plugin --- .../openapi/diff/impl/external/DiffManagerImpl.java | 4 ++++ .../vcs/changes/actions/migrate/MigrateDiffTool.java | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/DiffManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/DiffManagerImpl.java index 82b1029c0452..aeb362bf68fe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/DiffManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/external/DiffManagerImpl.java @@ -149,6 +149,10 @@ public class DiffManagerImpl extends DiffManager implements JDOMExternalizable { LOG.assertTrue(!myAdditionTools.contains(tool)); } + public ArrayList getAdditionTools() { + return myAdditionTools; + } + @Override public MarkupEditorFilter getDiffEditorFilter() { return DIFF_EDITOR_FILTER; diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/migrate/MigrateDiffTool.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/migrate/MigrateDiffTool.java index 19e2af8d3b8a..9d8914d03ff1 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/migrate/MigrateDiffTool.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/migrate/MigrateDiffTool.java @@ -15,6 +15,9 @@ */ package com.intellij.openapi.vcs.changes.actions.migrate; +import com.intellij.diff.DiffDialogHints; +import com.intellij.diff.DiffManager; +import com.intellij.diff.chains.DiffRequestChain; import com.intellij.openapi.Disposable; import com.intellij.openapi.diff.DiffRequest; import com.intellij.openapi.diff.DiffTool; @@ -24,9 +27,6 @@ import com.intellij.openapi.diff.impl.external.BinaryDiffTool; import com.intellij.openapi.diff.impl.external.DiffManagerImpl; import com.intellij.openapi.diff.impl.external.FrameDiffTool; import com.intellij.openapi.ui.WindowWrapper; -import com.intellij.diff.DiffDialogHints; -import com.intellij.diff.DiffManager; -import com.intellij.diff.chains.DiffRequestChain; import org.jetbrains.annotations.NotNull; import java.awt.*; @@ -51,6 +51,10 @@ public class MigrateDiffTool implements DiffTool { if (request.getHints().contains(MigrateToNewDiffUtil.DO_NOT_TRY_MIGRATE)) return false; if (request.getOnOkRunnable() != null) return false; if (!DiffManagerImpl.INTERNAL_DIFF.canShow(request) && !BinaryDiffTool.INSTANCE.canShow(request)) return false; + for (DiffTool tool : DiffManagerImpl.getInstanceEx().getAdditionTools()) { + if (tool == this) continue; + if (tool.canShow(request)) return false; + } return true; }