@Override
  public @NonNls String toString() {
    return "CaretState{" +
           "caretPosition=" + caretPosition +
           (visualColumnAdjustment == 0 ? "" : (", visualColumnAdjustment=" + visualColumnAdjustment)) +
           ", selectionStart=" + selectionStart +
           ", selectionEnd=" + selectionEnd +
           '}';
  }
@Override
  public @NonNls String toString()