diff: do not migrate request if it can be shown by tool from plugin

This commit is contained in:
Aleksey Pivovarov
2015-02-09 16:57:13 +03:00
parent 3a6173e785
commit cb2de20a08
2 changed files with 11 additions and 3 deletions
@@ -149,6 +149,10 @@ public class DiffManagerImpl extends DiffManager implements JDOMExternalizable {
LOG.assertTrue(!myAdditionTools.contains(tool));
}
public ArrayList<DiffTool> getAdditionTools() {
return myAdditionTools;
}
@Override
public MarkupEditorFilter getDiffEditorFilter() {
return DIFF_EDITOR_FILTER;
@@ -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;
}