diff: expose DiffRequestFactoryImpl methods via its interface

GitOrigin-RevId: 451f79c7436dbe722069d1e8c12e512091f7a7bc
This commit is contained in:
Aleksey Pivovarov
2024-08-22 14:02:34 +02:00
committed by intellij-monorepo-bot
parent 79a8154cf9
commit bca5ef6d62
14 changed files with 103 additions and 50 deletions

View File

@@ -97,8 +97,13 @@ a:com.intellij.diff.DiffRequestFactory
- a:createTextMergeRequestFromFiles(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile,java.util.List,java.lang.String,java.util.List,com.intellij.util.Consumer):com.intellij.diff.merge.TextMergeRequest - a:createTextMergeRequestFromFiles(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile,java.util.List,java.lang.String,java.util.List,com.intellij.util.Consumer):com.intellij.diff.merge.TextMergeRequest
- a:getContentTitle(com.intellij.openapi.vfs.VirtualFile):java.lang.String - a:getContentTitle(com.intellij.openapi.vfs.VirtualFile):java.lang.String
- s:getInstance():com.intellij.diff.DiffRequestFactory - s:getInstance():com.intellij.diff.DiffRequestFactory
- a:getTitle(com.intellij.openapi.vcs.FilePath):java.lang.String
- a:getTitle(com.intellij.openapi.vfs.VirtualFile):java.lang.String - a:getTitle(com.intellij.openapi.vfs.VirtualFile):java.lang.String
- a:getTitle(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.vfs.VirtualFile):java.lang.String - getTitle(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.vfs.VirtualFile):java.lang.String
- a:getTitleForComparison(com.intellij.openapi.vcs.FilePath,com.intellij.openapi.vcs.FilePath):java.lang.String
- a:getTitleForComparison(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.vfs.VirtualFile):java.lang.String
- a:getTitleForModification(com.intellij.openapi.vcs.FilePath,com.intellij.openapi.vcs.FilePath):java.lang.String
- a:getTitleForModification(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.vfs.VirtualFile):java.lang.String
com.intellij.diff.DiffRequestPanel com.intellij.diff.DiffRequestPanel
- com.intellij.openapi.Disposable - com.intellij.openapi.Disposable
- a:getComponent():javax.swing.JComponent - a:getComponent():javax.swing.JComponent

View File

@@ -11,6 +11,7 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NlsContexts; import com.intellij.openapi.util.NlsContexts;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.Consumer; import com.intellij.util.Consumer;
import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Contract;
@@ -48,6 +49,9 @@ public abstract class DiffRequestFactory {
// Titles // Titles
// //
/**
* See also the prettier {@link com.intellij.openapi.vcs.history.DiffTitleFilePathCustomizer}
*/
@NlsContexts.Label @NlsContexts.Label
@Nullable @Nullable
@Contract("null->null; !null->!null") @Contract("null->null; !null->!null")
@@ -55,11 +59,49 @@ public abstract class DiffRequestFactory {
@NlsContexts.DialogTitle @NlsContexts.DialogTitle
@NotNull @NotNull
public abstract String getTitle(@Nullable VirtualFile file1, @Nullable VirtualFile file2); public abstract String getTitle(@NotNull VirtualFile file);
/**
* @deprecated Prefer using {@link #getTitleForComparison} or {@link #getTitleForModification} explicitly.
*/
@NlsContexts.DialogTitle
@NotNull
@Deprecated
public String getTitle(@Nullable VirtualFile file1, @Nullable VirtualFile file2) {
return getTitleForComparison(file1, file2);
}
/**
* Title for 'file1 vs file2' diffs. Ex: "compare two selected files".
*/
@NlsContexts.DialogTitle
@NotNull
public abstract String getTitleForComparison(@Nullable VirtualFile file1, @Nullable VirtualFile file2);
/**
* Title for 'file1 was changed into file2' diffs. Ex: "show file change in a commit".
*/
@NlsContexts.DialogTitle
@NotNull
public abstract String getTitleForModification(@Nullable VirtualFile file1, @Nullable VirtualFile file2);
@NlsContexts.DialogTitle @NlsContexts.DialogTitle
@NotNull @NotNull
public abstract String getTitle(@NotNull VirtualFile file); public abstract String getTitle(@NotNull FilePath path);
/**
* Title for 'path1 vs path2' diffs. Ex: "compare two selected files".
*/
@NlsContexts.DialogTitle
@NotNull
public abstract String getTitleForComparison(@Nullable FilePath path1, @Nullable FilePath path2);
/**
* Title for 'path1 was changed into path2' diffs. Ex: "show file history for commit".
*/
@NlsContexts.DialogTitle
@NotNull
public abstract String getTitleForModification(@Nullable FilePath path1, @Nullable FilePath path2);
// //
// Merge // Merge

View File

@@ -2746,6 +2746,7 @@ f:com.intellij.diff.util.DiffUtil
- s:addActionBlock(com.intellij.openapi.actionSystem.DefaultActionGroup,java.util.List,Z):V - s:addActionBlock(com.intellij.openapi.actionSystem.DefaultActionGroup,java.util.List,Z):V
- s:addActionBlock(com.intellij.openapi.actionSystem.DefaultActionGroup,com.intellij.openapi.actionSystem.AnAction[]):V - s:addActionBlock(com.intellij.openapi.actionSystem.DefaultActionGroup,com.intellij.openapi.actionSystem.AnAction[]):V
- s:addNotification(com.intellij.diff.util.DiffNotificationProvider,com.intellij.openapi.util.UserDataHolder):V - s:addNotification(com.intellij.diff.util.DiffNotificationProvider,com.intellij.openapi.util.UserDataHolder):V
- s:addTitleCustomizers(com.intellij.diff.merge.MergeRequest,java.util.List):com.intellij.diff.merge.MergeRequest
- s:addTitleCustomizers(com.intellij.diff.requests.DiffRequest,java.util.List):com.intellij.diff.requests.DiffRequest - s:addTitleCustomizers(com.intellij.diff.requests.DiffRequest,java.util.List):com.intellij.diff.requests.DiffRequest
- s:applyModification(com.intellij.openapi.editor.Document,I,I,com.intellij.openapi.editor.Document,I,I):V - s:applyModification(com.intellij.openapi.editor.Document,I,I,com.intellij.openapi.editor.Document,I,I):V
- s:applyModification(com.intellij.openapi.editor.Document,I,I,java.util.List):V - s:applyModification(com.intellij.openapi.editor.Document,I,I,java.util.List):V

View File

@@ -22,10 +22,7 @@ import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.LocalFilePath; import com.intellij.openapi.vcs.LocalFilePath;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.Consumer; import com.intellij.util.Consumer;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.*;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -60,7 +57,7 @@ public class DiffRequestFactoryImpl extends DiffRequestFactory {
String title1 = getContentTitle(file1); String title1 = getContentTitle(file1);
String title2 = getContentTitle(file2); String title2 = getContentTitle(file2);
String title = getTitle(file1, file2); String title = getTitleForComparison(file1, file2);
return new SimpleDiffRequest(title, content1, content2, title1, title2); return new SimpleDiffRequest(title, content1, content2, title1, title2);
} }
@@ -104,21 +101,23 @@ public class DiffRequestFactoryImpl extends DiffRequestFactory {
@Override @Override
public String getContentTitle(@Nullable VirtualFile file) { public String getContentTitle(@Nullable VirtualFile file) {
if (file == null) return null; if (file == null) return null;
return getContentTitle(new LocalFilePath(file.getPath(), file.isDirectory())); return getContentTitle(toFilePath(file));
} }
@NotNull
@Override @Override
public String getTitle(@Nullable VirtualFile file1, @Nullable VirtualFile file2) { public @NotNull String getTitleForModification(@Nullable VirtualFile file1, @Nullable VirtualFile file2) {
FilePath path1 = file1 != null ? new LocalFilePath(file1.getPath(), file1.isDirectory()) : null; return getTitleForModification(toFilePath(file1), toFilePath(file2));
FilePath path2 = file2 != null ? new LocalFilePath(file2.getPath(), file2.isDirectory()) : null; }
return getTitle(path1, path2, DIFF_TITLE_SEPARATOR);
@Override
public @NotNull String getTitleForComparison(@Nullable VirtualFile file1, @Nullable VirtualFile file2) {
return getTitleForComparison(toFilePath(file1), toFilePath(file2));
} }
@NotNull @NotNull
@Override @Override
public String getTitle(@NotNull VirtualFile file) { public String getTitle(@NotNull VirtualFile file) {
return getTitle(file, null); return getTitleForComparison(file, null);
} }
@Nls @Nls
@@ -129,10 +128,27 @@ public class DiffRequestFactoryImpl extends DiffRequestFactory {
return getContentTitle(path.getName(), path.getPresentableUrl(), parent != null ? parent.getPresentableUrl() : null); return getContentTitle(path.getName(), path.getPresentableUrl(), parent != null ? parent.getPresentableUrl() : null);
} }
@Override
public @NotNull String getTitle(@NotNull FilePath path) {
return getTitleForComparison(path, null);
}
@Override
public @NotNull String getTitleForComparison(@Nullable FilePath path1, @Nullable FilePath path2) {
return getTitle(path1, path2, DIFF_TITLE_SEPARATOR);
}
@Override
public @NotNull String getTitleForModification(@Nullable FilePath path1, @Nullable FilePath path2) {
return getTitle(path1, path2, DIFF_TITLE_RENAME_SEPARATOR);
}
@Nls @Nls
@NotNull @NotNull
public static String getTitle(@Nullable FilePath path1, @Nullable FilePath path2, @NotNull @Nls String separator) { public static String getTitle(@Nullable FilePath path1, @Nullable FilePath path2, @NotNull @Nls String separator) {
assert path1 != null || path2 != null; if (path1 == null && path2 == null) {
return DiffBundle.message("diff.files.dialog.title");
}
if (path1 == null || path2 == null) { if (path1 == null || path2 == null) {
return getContentTitle(chooseNotNull(path1, path2)); return getContentTitle(chooseNotNull(path1, path2));
@@ -453,4 +469,10 @@ public class DiffRequestFactoryImpl extends DiffRequestFactory {
throw new InvalidDiffRequestException("Can't read from file", e); throw new InvalidDiffRequestException("Can't read from file", e);
} }
} }
@Contract("!null -> !null; null -> null")
private static @Nullable LocalFilePath toFilePath(@Nullable VirtualFile file) {
if (file == null) return null;
return new LocalFilePath(file.getPath(), file.isDirectory());
}
} }

View File

@@ -88,7 +88,7 @@ public abstract class BaseShowDiffAction extends DumbAwareAction {
chain.setWindowTitle(requestFactory.getTitle(baseFile)); chain.setWindowTitle(requestFactory.getTitle(baseFile));
} }
else { else {
chain.setWindowTitle(requestFactory.getTitle(file1, file2)); chain.setWindowTitle(requestFactory.getTitleForComparison(file1, file2));
} }
return chain; return chain;
} }

View File

@@ -87,7 +87,7 @@ public class CompareClipboardWithSelectionAction extends BaseShowDiffAction {
VirtualFile editorFile = FileDocumentManager.getInstance().getFile(editor.getDocument()); VirtualFile editorFile = FileDocumentManager.getInstance().getFile(editor.getDocument());
String editorContentTitle = editorFile != null String editorContentTitle = editorFile != null
? DiffRequestFactory.getInstance().getContentTitle(editorFile) ? DiffRequestFactory.getInstance().getTitle(editorFile)
: DiffBundle.message("diff.content.editor.content.title"); : DiffBundle.message("diff.content.editor.content.title");
if (editor.getSelectionModel().hasSelection()) { if (editor.getSelectionModel().hasSelection()) {
editorContentTitle = DiffBundle.message("diff.content.selection.from.file.content.title", editorContentTitle); editorContentTitle = DiffBundle.message("diff.content.selection.from.file.content.title", editorContentTitle);

View File

@@ -88,7 +88,7 @@ private class MyDiffRequestProducer(private val project: Project?, private val f
DiffRequestFactory.getInstance().getTitle(base) DiffRequestFactory.getInstance().getTitle(base)
} }
else { else {
DiffRequestFactory.getInstance().getTitle(files[0], files[1]) DiffRequestFactory.getInstance().getTitleForComparison(files[0], files[1])
} }
} }

View File

@@ -428,7 +428,7 @@ public class DirDiffTableModel extends AbstractTableModel implements DirDiffMode
myTarget instanceof VirtualFileDiffElement) { myTarget instanceof VirtualFileDiffElement) {
VirtualFile srcFile = ((VirtualFileDiffElement)mySource).getValue(); VirtualFile srcFile = ((VirtualFileDiffElement)mySource).getValue();
VirtualFile trgFile = ((VirtualFileDiffElement)myTarget).getValue(); VirtualFile trgFile = ((VirtualFileDiffElement)myTarget).getValue();
return DiffRequestFactory.getInstance().getTitle(srcFile, trgFile); return DiffRequestFactory.getInstance().getTitleForComparison(srcFile, trgFile);
} }
return IdeBundle.message("diff.dialog.title", mySource.getPresentablePath(), myTarget.getPresentablePath()); return IdeBundle.message("diff.dialog.title", mySource.getPresentablePath(), myTarget.getPresentablePath());
} }

View File

@@ -46,7 +46,6 @@ import org.jetbrains.annotations.Nullable;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import static com.intellij.diff.DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR;
import static com.intellij.util.ObjectUtils.tryCast; import static com.intellij.util.ObjectUtils.tryCast;
import static com.intellij.vcsUtil.VcsUtil.getShortRevisionString; import static com.intellij.vcsUtil.VcsUtil.getShortRevisionString;
@@ -379,7 +378,7 @@ public final class ChangeDiffRequestProducer implements DiffRequestProducer, Cha
public static @NotNull @Nls String getRequestTitle(@NotNull Change change) { public static @NotNull @Nls String getRequestTitle(@NotNull Change change) {
FilePath bPath = ChangesUtil.getBeforePath(change); FilePath bPath = ChangesUtil.getBeforePath(change);
FilePath aPath = ChangesUtil.getAfterPath(change); FilePath aPath = ChangesUtil.getAfterPath(change);
return DiffRequestFactoryImpl.getTitle(bPath, aPath, DIFF_TITLE_RENAME_SEPARATOR); return DiffRequestFactory.getInstance().getTitleForModification(bPath, aPath);
} }
public static @NotNull @Nls String getRevisionTitle(@Nullable ContentRevision revision, @NotNull @Nls String defaultValue) { public static @NotNull @Nls String getRevisionTitle(@Nullable ContentRevision revision, @NotNull @Nls String defaultValue) {

View File

@@ -3,7 +3,7 @@ package com.intellij.openapi.vcs.history;
import com.intellij.diff.DiffContentFactoryEx; import com.intellij.diff.DiffContentFactoryEx;
import com.intellij.diff.DiffManager; import com.intellij.diff.DiffManager;
import com.intellij.diff.DiffRequestFactoryImpl; import com.intellij.diff.DiffRequestFactory;
import com.intellij.diff.DiffVcsDataKeys; import com.intellij.diff.DiffVcsDataKeys;
import com.intellij.diff.contents.DiffContent; import com.intellij.diff.contents.DiffContent;
import com.intellij.diff.requests.DiffRequest; import com.intellij.diff.requests.DiffRequest;
@@ -28,8 +28,6 @@ import org.jetbrains.annotations.Nullable;
import java.io.IOException; import java.io.IOException;
import static com.intellij.diff.DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR;
public final class VcsHistoryUtil { public final class VcsHistoryUtil {
private static final Logger LOG = Logger.getInstance(VcsHistoryUtil.class); private static final Logger LOG = Logger.getInstance(VcsHistoryUtil.class);
@@ -74,13 +72,7 @@ public final class VcsHistoryUtil {
FilePath path1 = getRevisionPath(revision1); FilePath path1 = getRevisionPath(revision1);
FilePath path2 = getRevisionPath(revision2); FilePath path2 = getRevisionPath(revision2);
String title; String title = path1 != null || path2 != null ? DiffRequestFactory.getInstance().getTitleForModification(path1, path2) : null;
if (path1 != null && path2 != null) {
title = DiffRequestFactoryImpl.getTitle(path1, path2, DIFF_TITLE_RENAME_SEPARATOR);
}
else {
title = DiffRequestFactoryImpl.getContentTitle(path);
}
DiffContent diffContent1 = loadContentForDiff(project, path, revision1); DiffContent diffContent1 = loadContentForDiff(project, path, revision1);
DiffContent diffContent2 = loadContentForDiff(project, path, revision2); DiffContent diffContent2 = loadContentForDiff(project, path, revision2);

View File

@@ -18,7 +18,7 @@ package com.intellij.openapi.vcs.update;
import com.intellij.diff.DiffContentFactoryEx; import com.intellij.diff.DiffContentFactoryEx;
import com.intellij.diff.DiffDialogHints; import com.intellij.diff.DiffDialogHints;
import com.intellij.diff.DiffManager; import com.intellij.diff.DiffManager;
import com.intellij.diff.DiffRequestFactoryImpl; import com.intellij.diff.DiffRequestFactory;
import com.intellij.diff.chains.DiffRequestChain; import com.intellij.diff.chains.DiffRequestChain;
import com.intellij.diff.chains.DiffRequestProducer; import com.intellij.diff.chains.DiffRequestProducer;
import com.intellij.diff.chains.DiffRequestProducerException; import com.intellij.diff.chains.DiffRequestProducerException;
@@ -174,7 +174,7 @@ public class ShowUpdatedDiffActionProvider implements AnActionExtensionProvider
content2 = contentFactory.createFromBytes(myProject, bytes2, myFilePath); content2 = contentFactory.createFromBytes(myProject, bytes2, myFilePath);
} }
String title = DiffRequestFactoryImpl.getContentTitle(myFilePath); String title = DiffRequestFactory.getInstance().getTitle(myFilePath);
return new SimpleDiffRequest(title, return new SimpleDiffRequest(title,
content1, content1,
content2, content2,

View File

@@ -2,8 +2,7 @@
package git4idea.diff package git4idea.diff
import com.intellij.diff.DiffContentFactory import com.intellij.diff.DiffContentFactory
import com.intellij.diff.DiffRequestFactoryImpl import com.intellij.diff.DiffRequestFactory
import com.intellij.diff.DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR
import com.intellij.diff.chains.DiffRequestProducerException import com.intellij.diff.chains.DiffRequestProducerException
import com.intellij.diff.requests.DiffRequest import com.intellij.diff.requests.DiffRequest
import com.intellij.diff.requests.SimpleDiffRequest import com.intellij.diff.requests.SimpleDiffRequest
@@ -51,7 +50,7 @@ class GitSubmoduleDiffRequestProvider : ChangeDiffRequestProvider {
val factory = DiffContentFactory.getInstance() val factory = DiffContentFactory.getInstance()
val beforeContent = beforeRevision?.content?.let { factory.create(it) } ?: factory.createEmpty() val beforeContent = beforeRevision?.content?.let { factory.create(it) } ?: factory.createEmpty()
val afterContent = afterRevision?.content?.let { factory.create(it) } ?: factory.createEmpty() val afterContent = afterRevision?.content?.let { factory.create(it) } ?: factory.createEmpty()
val title = DiffRequestFactoryImpl.getTitle(beforeRevision?.file, afterRevision?.file, DIFF_TITLE_RENAME_SEPARATOR) val title = DiffRequestFactory.getInstance().getTitleForModification(beforeRevision?.file, afterRevision?.file)
return SimpleDiffRequest(GitBundle.message("label.diff.content.title.submodule.suffix", title), return SimpleDiffRequest(GitBundle.message("label.diff.content.title.submodule.suffix", title),
beforeContent, beforeContent,
afterContent, afterContent,

View File

@@ -3,7 +3,7 @@ package git4idea.index
import com.intellij.diff.DiffContentFactory import com.intellij.diff.DiffContentFactory
import com.intellij.diff.DiffContentFactoryEx import com.intellij.diff.DiffContentFactoryEx
import com.intellij.diff.DiffRequestFactoryImpl import com.intellij.diff.DiffRequestFactory
import com.intellij.diff.DiffVcsDataKeys import com.intellij.diff.DiffVcsDataKeys
import com.intellij.diff.chains.DiffRequestProducerException import com.intellij.diff.chains.DiffRequestProducerException
import com.intellij.diff.contents.DiffContent import com.intellij.diff.contents.DiffContent
@@ -49,7 +49,6 @@ import git4idea.repo.GitRepositoryManager
import git4idea.util.GitFileUtils import git4idea.util.GitFileUtils
import org.jetbrains.annotations.Nls import org.jetbrains.annotations.Nls
import java.io.IOException import java.io.IOException
import java.util.*
fun createTwoSidesDiffRequestProducer(project: Project, fun createTwoSidesDiffRequestProducer(project: Project,
statusNode: GitFileStatusNode, statusNode: GitFileStatusNode,
@@ -417,11 +416,10 @@ private fun GitFileStatusNode.has(contentVersion: ContentVersion): Boolean = sta
@Nls @Nls
private fun getTitle(status: GitFileStatus, kind: NodeKind): String { private fun getTitle(status: GitFileStatus, kind: NodeKind): String {
return DiffRequestFactoryImpl.getTitle(status.path, kind.origPath(status), return DiffRequestFactory.getInstance().getTitleForModification(status.path, kind.origPath(status))
DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR)
} }
@Nls @Nls
private fun getTitle(status: GitFileStatus): String { private fun getTitle(status: GitFileStatus): String {
return DiffRequestFactoryImpl.getTitle(status.path, status.origPath, DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR) return DiffRequestFactory.getInstance().getTitleForModification(status.path, status.origPath)
} }

View File

@@ -1,10 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package git4idea.log; package git4idea.log;
import com.intellij.diff.DiffContentFactoryEx; import com.intellij.diff.*;
import com.intellij.diff.DiffDialogHints;
import com.intellij.diff.DiffManager;
import com.intellij.diff.DiffVcsDataKeys;
import com.intellij.diff.chains.DiffRequestProducer; import com.intellij.diff.chains.DiffRequestProducer;
import com.intellij.diff.chains.SimpleDiffRequestChain; import com.intellij.diff.chains.SimpleDiffRequestChain;
import com.intellij.diff.chains.SimpleDiffRequestProducer; import com.intellij.diff.chains.SimpleDiffRequestProducer;
@@ -39,8 +36,6 @@ import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import static com.intellij.diff.DiffRequestFactoryImpl.DIFF_TITLE_RENAME_SEPARATOR;
import static com.intellij.diff.DiffRequestFactoryImpl.getTitle;
import static com.intellij.util.ObjectUtils.chooseNotNull; import static com.intellij.util.ObjectUtils.chooseNotNull;
public class GitLogDiffHandler implements VcsLogDiffHandler { public class GitLogDiffHandler implements VcsLogDiffHandler {
@@ -70,7 +65,7 @@ public class GitLogDiffHandler implements VcsLogDiffHandler {
DiffContent leftDiffContent = createDiffContent(root, leftPath, leftHash); DiffContent leftDiffContent = createDiffContent(root, leftPath, leftHash);
DiffContent rightDiffContent = createDiffContent(root, rightPath, rightHash); DiffContent rightDiffContent = createDiffContent(root, rightPath, rightHash);
return new SimpleDiffRequest(getTitle(leftPath, rightPath, DIFF_TITLE_RENAME_SEPARATOR), return new SimpleDiffRequest(DiffRequestFactory.getInstance().getTitleForModification(leftPath, rightPath),
leftDiffContent, rightDiffContent, leftDiffContent, rightDiffContent,
leftHash.asString(), rightHash.asString()); leftHash.asString(), rightHash.asString());
}); });
@@ -89,7 +84,7 @@ public class GitLogDiffHandler implements VcsLogDiffHandler {
DiffRequestProducer requestProducer = SimpleDiffRequestProducer.create(localPath, () -> { DiffRequestProducer requestProducer = SimpleDiffRequestProducer.create(localPath, () -> {
DiffContent leftDiffContent = createDiffContent(root, revisionPath, revisionHash); DiffContent leftDiffContent = createDiffContent(root, revisionPath, revisionHash);
DiffContent rightDiffContent = createCurrentDiffContent(localPath); DiffContent rightDiffContent = createCurrentDiffContent(localPath);
return new SimpleDiffRequest(getTitle(revisionPath, localPath, DIFF_TITLE_RENAME_SEPARATOR), return new SimpleDiffRequest(DiffRequestFactory.getInstance().getTitleForModification(revisionPath, localPath),
leftDiffContent, rightDiffContent, leftDiffContent, rightDiffContent,
revisionHash.asString(), revisionHash.asString(),
GitBundle.message("git.log.diff.handler.local.version.content.title")); GitBundle.message("git.log.diff.handler.local.version.content.title"));