FileAnnotationLoader (@NotNull Project project, @NotNull DiffRequest request, @NotNull Side side) { Change change = request.getUserData(ChangeDiffRequestProducer.CHANGE_KEY); if (change != null) { ContentRevision revision = side.select(change.getBeforeRevision(), change.getAfterRevision()); if (revision != null) { AbstractVcs vcs = ChangesUtil.getVcsForChange(change, project); if (revision instanceof CurrentContentRevision) { VirtualFile file = ((CurrentContentRevision)revision).getVirtualFile(); FileAnnotationLoader loader = doCreateAnnotationsLoader(project, vcs, file); if (loader != null) return loader; } else { FileAnnotationLoader loader = doCreateAnnotationsLoader(vcs, revision.getFile(), revision.getRevisionNumber()); if (loader != null) return loader; } } } if (request instanceof ContentDiffRequest requestEx) { if (requestEx.getContents().size() == 2) { DiffContent content = side.select(requestEx.getContents()); return createAnnotationsLoader(project, content); } } return null; }