emacs-devel
[Top][All Lists]
Advanced

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

RE: [External] : Re: Indicate better the current use of the echo area /


From: Drew Adams
Subject: RE: [External] : Re: Indicate better the current use of the echo area / minibuffer [was: Controlling Isearch from minibuffer]
Date: Thu, 13 May 2021 19:36:00 +0000

> > This thread is about the current (longstanding)
> > design of Isearch, which is NOT minibuffer-based.
> >
> > And it's also about the echo area and minibuffer
> > (independently of any concern with Isearch).
> 
> Of course, my intention was to hijack "your" thread.

No, of course not.  But the fact is that there was
a flood of immediate responses that had nothing to
do with the question this thread posed.  Those
contributions are welcome elsewhere.

> Just to make it clear - my mail is related to your colorful
> echo/minibuffer proposal as follows: If Isearch would not use the echo
> area as it currently does, there would not even exist a need for an
> indicator to make anything more clear.

Isearch does use the echo area.  That's the point.
There's a separate thread about a proposal to not
have it do so, as a user choice.  But given that it
does, and it will (at least as a user choice), any
ideas?

And no, there's still the same need to distinguish
the double use of the same area for echo/output and
minibuffer/input.

Users have been at least as confused about those two
sharing the same area as they have been about Isearch
sharing it.  We have some hacks (`minibuffer-message'
for example) that try to finesse that problem.  The
problem exists independently of Isearch.

> But please tell me about the different indication modes you have
> implemented in your packages. You have a color for the minibuffer and a
> color if Isearch is active? Then you change color based on the
> recursion level. Are there indicators for other states?

I described what I do, and I mentioned that it's used
with a standalone minibuffer frame.  I mentioned the
possibility of changing the background in some way
only as one way to indicate state change in the area
itself; that's all.

But what I do or don't do is irrelevant.  I posed an
open question: how might we make more clear to users
which state that area is in, to help them?  That
question is what's raised in this thread.  Ideas?

> I have written a tiny package, which displays a 
> "recursion indicator" in the mode line...

Great!  Welcome.

> Currently it displays an arrow per recursion level and a
> special symbol if a recursive minibuffer session is active.

I mentioned what I have that helps wrt recursive
edit levels (library rec-edit.el) - there's no need
to repeat that description.

And I mentioned what I use to distinguish recursive
minibuffer levels - with a standalone minibuffer
frame.

I suggested that Emacs might do something similar in
that screen area somehow (without a standalone frame).
I specifically asked for other suggestions.  I'm not
aware that the problem has been posed or considered
directly before.

> It makes sense to extend this with more states, like Isearch.
> For Isearch I am using a separate indicator in the mode line:
> ...

That's relevant to this discussion.  I gave some
reasons why I think it's better to put an indication
in the area itself, rather than the mode-line.  But
your suggestion is appropriate.

We of course already have an Isearch indicator in
the mode-line.  But it's relatively simple (just a
minor-mode lighter).

For the particular _state_ of Isearch (not just the
fact that Isearch is in progress, which I think is
better shown somehow in the area itself), and FWIW,
I change the mode-line lighter and parts of the
prompt in various ways to show that too:

* Case-sensitivity is indicated by the lighter changing
  between all uppercase (insensitive) and capitalized
  (sensitive).  For non-regexp search that's `ISEARCH'
  versus `Isearch'.

* Whether search is literal or regexp is also indicated
  with the lighter.  `R*SEARCH' versus `R*search', for
  regexp search (instead of `ISEARCH' versus `Isearch').
  (`R*' to suggest regexp by `*'.  Only 1 char more.)

* Wraparound is indicated by the lighter changing face:
  faces `isearchp-wrapped' and `isearchp-overwrapped'.

  By default the wrapped face just adds a blue overline,
  and the overwrapped face uses a red overline and
  underline, the latter being wavy.  (The same faces are
  used in the prompt.)

* Multi-search is indicated by face `isearchp-multi' in
  the prompt.

(Different pieces of the search prompt get different
faces.  E.g. `failing', `pending', `over', `wrapped',
`regexp', `multi'.)

None of those mode-line indications is super prominent.
They're more there as a reminder, if you bother to look
at the mode-line to see the state.

reply via email to

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