unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Eli Zaretskii <eliz@gnu.org>, Gregory Heytings <ghe@sdf.org>
Cc: acm@muc.de, emacs-devel@gnu.org, monnier@iro.umontreal.ca,
	juri@linkov.net
Subject: Where to show message output while inputting   [was: New multi-command facility displays in the wrong echo area]
Date: Tue, 13 Oct 2020 10:31:39 -0700 (PDT)	[thread overview]
Message-ID: <5f7af512-7951-4e10-a8a1-4f5d07ee6cda@default> (raw)

> > Would doing something like what eldoc-minibuffer-message does
> > possibly be a good solution?  It seems to me that this is safer than the
> > current situation, as it does not fiddle with the minibuffer contents.
> > If so, what do you (and others) think of the following...
> 
> I personally feel that moving echo-area messages to the mode line is
> too drastic a change to make it by default, and certainly in a minor
> release.  But let's hear wjat others think, and what other ideas will
> be brought up.

As I mentioned, the basic problem is due to sharing
the same area between minibuffer and echo area.

Ultimately, a good solution requires being able to
see both at the same time.  Juggling their content
wrt time, while sharing the same space, won't take
care of the problem in general.

The same problem will exist if you move output
(`message' echoes) to the mode-line: you won't be
able to see the mode-line info and the message at
the same time.

For simple interactions, there's no problem.  The
problem arises for more complex interactions, and
for that no "solution" that always uses the same
space can possibly be a real solution.

Do I think that using the mode-line makes more
sense than forcing `message' output to, in effect,
use `minibuffer-message', i.e., putting it at the
end of your minibuffer input?

Yes, probably the mode-line is usually better
than that, at least.  When you're responding to a
prompt, anything that's not directly related to
the prompt-&-response interaction doesn't belong
in the input area.

But we do need a real solution, assuming that we
think that bug #38457 is serious enough.  The fix
accepted for that bug isn't healthy, as I've said.

A real solution provides separate areas for echo
(output) and minibuffer input.

We could reserve some new area for echoing.  Or we
could choose to echo in a separate area only when
needed.  E.g., we might use the same area for echo
and minibuffer whenever there's no conflict (no
overlap in time), and show echoes in some other
place (e.g. pop-up) in the rarer cases when needed.

"Pop up" here could mean temporarily overwriting
the mode-line, as Gregory suggested.  Or it could
temporarily overwrite the last line(s) of the
window content. Or it could mean popping up a
window or frame.  Or...

The point is this:

1. For simple interactions, there's no problem.
   Most of the time there's no overlap in time
   between output and input.

2. For complex interactions, i.e., when output and
   input overlap in time, NO solution that shares
   the same space really takes care of the problem.

   At best, we end up showing the output for some
   brief period of time, and then return to showing
   the input.  And that doesn't really satisfy bug
   #38457.

3. To deal with #2, we need to use some separate
   space for output (echoes).  We could either (a)
   always have two separate spaces (e.g. a new area
   for `message' etc. echoes) or (b) show echoes in
   some other area only when needed ("pop up").

4. If we do choose to overwrite (hide) something
   in order to show output in a temporary way, then
   IMO it's better to overwrite/hide some buffer
   text, or the mode-line, than it is to do that
   to minibuffer input.

   The last thing we should hide or interfere with
   is the immediate user interaction (responding to
   a prompt by providing text input).

#4 is a personal opinion.  The rest should hopefully
be considered less controversial.
___


https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38457#104

(Completely ignored there.)



             reply	other threads:[~2020-10-13 17:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-13 17:31 Drew Adams [this message]
2020-10-13 18:39 ` Where to show message output while inputting Kévin Le Gouguec
2020-10-13 19:42 ` Where to show message output while inputting [was: New multi-command facility displays in the wrong echo area] Gregory Heytings via Emacs development discussions.
2020-10-13 20:38   ` Drew Adams
2020-10-13 20:59     ` Gregory Heytings via Emacs development discussions.
     [not found]       ` <2bedd6ef-c49a-4e0e-b0e4-4e3c6b8b79ce@default>
2020-10-13 21:55         ` Gregory Heytings via Emacs development discussions.
2020-10-14 14:39       ` Eli Zaretskii
2020-10-14 14:58         ` Gregory Heytings via Emacs development discussions.
2020-10-14 17:27           ` Stefan Monnier
2020-10-14 21:22             ` Gregory Heytings via Emacs development discussions.
2020-10-15  1:52               ` Stefan Monnier
     [not found] ` <87eelo6iio.fsf@blind.guru>
2020-10-24 17:31   ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5f7af512-7951-4e10-a8a1-4f5d07ee6cda@default \
    --to=drew.adams@oracle.com \
    --cc=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=ghe@sdf.org \
    --cc=juri@linkov.net \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).