DiffRequest (@NotNull UserDataHolder context, @NotNull ProgressIndicator indicator) { String windowTitle = myHyperlink.getDiffTitle(); AbstractTestProxy testProxy = myHyperlink.getTestProxy(); String text1 = myHyperlink.getLeft(); String text2 = myHyperlink.getRight(); VirtualFile file1 = findFile(myHyperlink.getFilePath()); VirtualFile file2 = findFile(myHyperlink.getActualFilePath()); DiffContent content1 = null; if (file1 == null && testProxy != null) { TestDiffProvider provider = ReadAction.compute(() -> getTestDiffProvider(testProxy)); if (provider != null) { PsiElement expected = ReadAction.compute(() -> getExpected(provider, testProxy)); if (expected != null) { file1 = ReadAction.compute(() -> PsiUtilCore.getVirtualFile(expected)); content1 = ReadAction.compute(() -> createPsiDiffContent(expected, text1)); } } } if (content1 == null) { content1 = createContentWithTitle(myProject, text1, file1, file2); } DiffContent content2 = createContentWithTitle(myProject, text2, file2, file1); String title1 = file1 != null ? ExecutionBundle.message("diff.content.expected.title.with.file.url", file1.getPresentableUrl()) : ExecutionBundle.message("diff.content.expected.title"); String title2 = file2 != null ? ExecutionBundle.message("diff.content.actual.title.with.file.url", file2.getPresentableUrl()) : ExecutionBundle.message("diff.content.actual.title"); return new SimpleDiffRequest(windowTitle, content1, content2, title1, title2); }