@Override
  public @NotNull LogicalPosition getLogicalPosition() {
    assertNotUpdating();
    updateCachedStateIfNeeded();
    return myLogicalCaret;
  }
@Override
  public @NotNull LogicalPosition getLogicalPosition()