@Override
  @RequiresEdt
  public void showMerge(@Nullable Project project, @NotNull MergeRequest request) {
    // plugin may provide a better tool for this MergeRequest
    AutomaticExternalMergeTool tool = AutomaticExternalMergeTool.EP_NAME.findFirstSafe(mergeTool -> mergeTool.canShow(project, request));
    if (tool != null) {
      tool.show(project, request);
      return;
    }

    if (request instanceof ThreesideMergeRequest mergeRequest) {
      DiffContent outputContent = mergeRequest.getOutputContent();
      FileType fileType = outputContent.getContentType();

      if (fileType != null) {
        ExternalDiffSettings.ExternalTool mergeTool = ExternalDiffSettings.findMergeTool(fileType);
        if (ExternalMergeTool.isEnabled() && mergeTool != null) {
          ExternalMergeTool.show(project, mergeTool, request);
          return;
        }
      }
    }

    showMergeBuiltin(project, request);
  }
@Override
  @RequiresEdt
  public void showMerge(@Nullable Project project, @NotNull MergeRequest request)