void (@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); }