@Override
  public boolean canGoPrev() {
    List<? extends T> changes = getChanges();
    if (changes.isEmpty()) return false;

    int line = getEditor().getCaretModel().getLogicalPosition().line;
    if (line == 0) return false;

    T firstChange = changes.get(0);
    if (getEndLine(firstChange) > line) return false;
    if (getStartLine(firstChange) >= line) return false;

    return true;
  }
@Override
  public boolean canGoPrev()