emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Annoying paren match messages in minibuffer


From: Drew Adams
Subject: RE: Annoying paren match messages in minibuffer
Date: Wed, 14 Jan 2009 14:22:24 -0800

> > As a general solution it would be better to change `message'
> > to take care about the minibuffer's case.
> 
> I see 3 solutions:
> 1 - change `message' to use minibuffer-message when in the minibuffer.
>     As pointed out, the delay can be problematic.

Not just the delay. You need to be _able_, somehow, to specifically get the
normal `message' behavior even when a minibuffer read is in progress. See my
reply to Juri.

> 2 - change minibuffer-message to call `message' when not in 
>     minibuffer.
>     This is easy to do and shouldn't suffer from those same problems
>     but won't catch as many cases.

Again, the simple test of "in the minibuffer" (or even whether the minibuffer is
active, which is more appropriate) is not appropriate for all cases. You need to
be _able_, somehow, to specifically get the normal `minibuffer-message' behavior
even when  not in the minibuffer (or even when it's not active).

Currently, a programmer can get any of the behaviors discussed, including the
conditional behaviors. Please don't replace that flexibility with a single
one-size-fits-all behavior.

> 3 - introduce a new function that uses one or the other depending
>     on `minibufferp'.  This won't catch any case until we 
>     start changing code to use it.  But it's the safest and easiest 
>     solution.  The only hard part would be agreeing on its name.

If change there must be, please choose #3. Any name you like.

> > I think `active-minibuffer-window' is not suitable for this.
> 
> Indeed, we have `minibufferp' for that.

See my reply to Juri. `minibufferp' returns non-nil for every minibuffer,
whether active or not, and it returns non-nil for a minibuffer even if _none_ of
the minibuffers are active. That is, it returns non-nil even if there is no
user-input interaction going on. That is the wrong condition.

The proper test, IMO, is whether the minibuffer is active, that is, whether some
minibuffer is active. It has nothing (necessarily) to do with the current
window/buffer.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]