Subject: RE: bug#38519: minibuffer-depth-indicate-mode with enable-recursive-minibuffers

From: Drew Adams <[email-masked]>
Date: Sun, 8 Dec 2019 09:00:32 -0800 (PST)

> A recent discussion about enable-recursive-minibuffers reminded
> that minibuffer-depth-indicate-mode should be enabled when
> enable-recursive-minibuffers is non-nil.  It's unusable
> without the depth indication that is more error-prone.
> 
> It simultaneously enabling minibuffer-depth-indicate-mode
> after enable-recursive-minibuffers becomes non-nil is not easy
> to implement, then at least these two should mention each other
> in the manual.

It's a good question.

1. I agree that the docs should mention each other.
And the doc strings already do that:

`C-h v enable-recursive-minibuffers' says:
  Also see `minibuffer-depth-indicate-mode',
  which may be handy if this variable is non-nil.

`C-h f minibuffer-depth-indicate-mode' says:
  This is only useful if
  `enable-recursive-minibuffers' is non-nil.

But this hasn't yet been done in the manuals:
(elisp) `Recursive Mini' and (emacs) `Minibuffer
Edit' cover `enable-recursive-minibuffers', but
`minibuffer-depth-indicate-mode' is mentioned
nowhere, so far.

2. I agree that `minibuffer-depth-indicate-mode'
is useful when `enable-recursive-minibuffers'
is non-nil (generally and only).

3. I think I disagree that there should be
some kind of hard coupling between the two,
which would prevent users from getting
`enable-recursive-minibuffers' without
`minibuffer-depth-indicate-mode'.

It would be OK to automatically turn OFF
`minibuffer-depth-indicate-mode' when
`enable-recursive-minibuffers' is nil.  But
that's not necessary (it has no effect), so
it's not useful.

I don't think we should turn `m-d-i-m' ON
systematically when `e-r-m' is non-nil.  
That might be OK as a default behavior, but
we shouldn't impose it in a hard-coded way,
so that users have no recourse.