default void addCaretListener(@NotNull CaretListener listener, @NotNull Disposable parentDisposable) {
    addCaretListener(listener);
    Disposer.register(parentDisposable, () -> removeCaretListener(listener));
  }
default void addCaretListener(@NotNull CaretListener listener, @NotNull Disposable parentDisposable)