@Override
    public boolean equals(Object o) {
      if (!(o instanceof CaretState caretState)) {
        return false;
      }

      if (COLUMN != caretState.COLUMN) return false;
      if (LINE != caretState.LINE) return false;
      if (VISUAL_COLUMN_ADJUSTMENT != caretState.VISUAL_COLUMN_ADJUSTMENT) return false;
      if (SELECTION_START_LINE != caretState.SELECTION_START_LINE) return false;
      if (SELECTION_START_COLUMN != caretState.SELECTION_START_COLUMN) return false;
      if (SELECTION_END_LINE != caretState.SELECTION_END_LINE) return false;
      return SELECTION_END_COLUMN == caretState.SELECTION_END_COLUMN;
    }
@Override
    public boolean equals(Object o)