diff options
Diffstat (limited to 'platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java')
-rw-r--r-- | platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java b/platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java index 4974d894857e..0e4c0c4c45b9 100644 --- a/platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java +++ b/platform/diff-impl/src/com/intellij/diff/DiffManagerImpl.java @@ -2,7 +2,6 @@ package com.intellij.diff; import com.intellij.diff.chains.DiffRequestChain; -import com.intellij.diff.chains.DiffRequestProducer; import com.intellij.diff.chains.SimpleDiffRequestChain; import com.intellij.diff.contents.DiffContent; import com.intellij.diff.editor.ChainDiffVirtualFile; @@ -23,17 +22,13 @@ import com.intellij.diff.util.DiffUtil; import com.intellij.openapi.Disposable; import com.intellij.openapi.diff.DiffBundle; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.FileTypeManager; -import com.intellij.openapi.fileTypes.FileTypes; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.WindowWrapper; import com.intellij.openapi.util.Disposer; -import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.util.concurrency.annotations.RequiresEdt; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -56,13 +51,10 @@ public class DiffManagerImpl extends DiffManagerEx { @Override public void showDiff(@Nullable Project project, @NotNull DiffRequestChain requests, @NotNull DiffDialogHints hints) { - List<String> files = ContainerUtil.map(requests.getRequests(), DiffRequestProducer::getName); - FileType fileType = determineFileType(files); - - ExternalDiffSettings.ExternalTool diffTool = ExternalDiffSettings.findDiffTool(fileType); - if (ExternalDiffTool.isEnabled() && diffTool != null) { - ExternalDiffTool.show(project, requests, hints, diffTool); - return; + if (ExternalDiffTool.isEnabled()) { + if (ExternalDiffTool.showIfNeeded(project, requests, hints)) { + return; + } } showDiffBuiltin(project, requests, hints); @@ -166,14 +158,4 @@ public class DiffManagerImpl extends DiffManagerEx { public void showMergeBuiltin(@Nullable Project project, @NotNull MergeRequestProducer requestProducer, @NotNull DiffDialogHints hints) { new MergeWindow.ForProducer(project, requestProducer, hints).show(); } - - private static FileType determineFileType(@NotNull List<String> files) { - FileTypeManager fileTypeManager = FileTypeManager.getInstance(); - - return files.stream() - .filter(filePath -> !FileUtilRt.getExtension(filePath).equals("tmp")) - .map(filePath -> fileTypeManager.getFileTypeByFileName(filePath)) - .findAny() - .orElse(FileTypes.UNKNOWN); - } } |