@Override
    public void scrollAndShow(@NotNull Editor editor, @NotNull com.intellij.openapi.vcs.ex.Range range) {
      if (!myTracker.isValid()) return;
      final Document document = myTracker.getDocument();
      int line = Math.min(!range.hasLines() ? range.getLine2() : range.getLine2() - 1, getLineCount(document) - 1);

      int[] startLines = new int[]{
        transferPosition(ThreeSide.BASE, ThreeSide.LEFT, new LogicalPosition(line, 0)).line,
        line,
        transferPosition(ThreeSide.BASE, ThreeSide.RIGHT, new LogicalPosition(line, 0)).line
      };

      for (ThreeSide side : ThreeSide.values()) {
        DiffUtil.moveCaret(getEditor(side), side.select(startLines));
      }

      getEditor().getScrollingModel().scrollToCaret(ScrollType.CENTER);
      showAfterScroll(editor, range);
    }
@Override
    public void scrollAndShow(@NotNull Editor editor, @NotNull com.intellij.openapi.vcs.ex.Range range)