@Override
  protected @NotNull DiffRequestChain getDiffRequestChain(@NotNull AnActionEvent e) {
    Project project = e.getProject();

    VirtualFile selectedFile = getSelectedFile(e);
    VirtualFile currentFile = getEditingFile(e);
    assert selectedFile != null && currentFile != null;

    MutableDiffRequestChain chain = createMutableChainFromFiles(project, selectedFile, currentFile);

    DiffContent editorContent = chain.getContent2();
    if (editorContent instanceof DocumentContent) {
      Editor editor = EditorFactory.getInstance().editors(((DocumentContent)editorContent).getDocument()).findFirst().orElse(null);
      if (editor != null) {
        int currentLine = editor.getCaretModel().getLogicalPosition().line;
        chain.putRequestUserData(DiffUserDataKeys.SCROLL_TO_LINE, Pair.create(Side.RIGHT, currentLine));
      }
    }

    return chain;
  }
@Override
  protected @NotNull DiffRequestChain getDiffRequestChain(@NotNull AnActionEvent e)