boolean () { 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; }