@Override
  public @NotNull VisualPosition getVisualPosition() {
    assertNotUpdating();
    updateCachedStateIfNeeded();
    return myVisibleCaret;
  }
@Override
  public @NotNull VisualPosition getVisualPosition()