DiffRequestChain (@NotNull AnActionEvent e) { Project project = e.getProject(); Editor editor = getEditor(e); FileType editorFileType = getEditorFileType(e); assert editor != null; DiffContent selectedContent = e.getData(DiffDataKeys.CURRENT_CONTENT); DocumentContent content2 = createContent(project, editor, editorFileType, selectedContent, e); DocumentContent content1 = DiffContentFactory.getInstance().createClipboardContent(project, content2); content1.putUserData(BlankDiffWindowUtil.REMEMBER_CONTENT_KEY, true); VirtualFile editorFile = FileDocumentManager.getInstance().getFile(editor.getDocument()); String editorContentTitle = editorFile != null ? DiffRequestFactory.getInstance().getContentTitle(editorFile) : DiffBundle.message("diff.content.editor.content.title"); if (editor.getSelectionModel().hasSelection()) { editorContentTitle = DiffBundle.message("diff.content.selection.from.file.content.title", editorContentTitle); } MutableDiffRequestChain chain = BlankDiffWindowUtil.createBlankDiffRequestChain(content1, content2, null); String windowTitle = editorFile != null ? DiffBundle.message("diff.clipboard.vs.editor.dialog.title.with.filename", editorFile.getName()) : DiffBundle.message("diff.clipboard.vs.editor.dialog.title"); chain.setWindowTitle(windowTitle); chain.setTitle1(DiffBundle.message("diff.content.clipboard.content.title")); chain.setTitle2(editorContentTitle); int currentLine = editor.getCaretModel().getLogicalPosition().line; chain.putRequestUserData(DiffUserDataKeys.SCROLL_TO_LINE, Pair.create(Side.RIGHT, currentLine)); return chain; }