unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Gregory Heytings <ghe@sdf.org>
Cc: 43572@debbugs.gnu.org
Subject: bug#43572: Feature request: make it possible to choose whether the first lines of the minibuffer should be displayed instead of the last ones
Date: Wed, 23 Sep 2020 18:17:29 +0300	[thread overview]
Message-ID: <83h7rov7xy.fsf@gnu.org> (raw)
In-Reply-To: <alpine.NEB.2.22.394.2009222215560453.32542@sdf.lonestar.org> (bug-gnu-emacs@gnu.org)

> Date: Tue, 22 Sep 2020 20:57:13 +0000
> From: Gregory Heytings via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> In Emacs 27.1, the mini-window displays the last lines of the minibuffer.
> 
> This is, in general, the desired behavior, but in some cases it is not.
> 
> One case in which this behavior is not desirable is when completion 
> candidates are displayed with an overlay at the end of the buffer.  When 
> this overlay is taller than max-mini-window-height, the prompt and the 
> user input so far disappear.  A simple example: M-: (setq 
> max-mini-window-height 1), M-x icomplete-mode, M-x a.

Actually, on the current master this example does show the "M-x a"
part.

> This feature request follows the discussion in bug#43519.  The change 
> proposed there by Eli Zaretskii improves the behavior w.r.t. Emacs 27.1, 
> but it is still suboptimal to display completion candidates in a 
> user-friendly way.  For example:
> 
> Find file: <user input>|
> <completion candidates>
> 
> (where | represents the cursor) will become:
> 
> <user input>|
> <completion candidates>
> 
> when the user input becomes larger than a line.  That is, the "Find file:" 
> prompt and the user input on the first line will disappear.

I suggest to show a recipe for this, because the few I tried failed to
produce the described effect (with the current master).  Maybe I'm
missing something.

> The attached patch makes it possible to (selectively) choose to display 
> the _first_ lines of the minibuffer instead of its _last_ lines (which is 
> and remains the default behavior).  This means that displaying completion 
> candidates becomes a trivial task: it suffices to create an overlay with 
> completion candidates, without worrying at all about its size (or about 
> the size of the prompt and user input), and as many of these candidates as 
> possible will automatically be displayed.
> 
> For example, implementing vertical icomplete only requires:
> 
> (setq icomplete-separator "\n")
> (add-hook 'icomplete-minibuffer-setup-hook (lambda () (setq start-display-at-beginning-of-minibuffer t)))

I have a couple of comments regarding the proposed change:

 . How will Lisp programs decide when to set this flag and when not to
   set it?  What would be the criteria?  If you are saying that any
   Lisp program that reads from the minibuffer will want that, then
   (assuming that others agree), it would be better to do this
   automatically in the display code.

 . Binding the variable inside the minibuffer-setup-hook will affect
   all the subsequent calls to resize_mini_window, until the next call
   to read-from-minibuffer resets it, which may not be what the Lisp
   program wants, and could have unintended consequences.





  reply	other threads:[~2020-09-23 15:17 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-22 20:57 bug#43572: Feature request: make it possible to choose whether the first lines of the minibuffer should be displayed instead of the last ones Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 15:17 ` Eli Zaretskii [this message]
2020-09-23 19:15   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 19:37     ` Eli Zaretskii
2020-09-23 20:15       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 14:24         ` Eli Zaretskii
2020-09-24 14:41           ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 15:11             ` Eli Zaretskii
2020-09-24 16:09               ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 16:20                 ` Eli Zaretskii
2020-09-24 16:40                   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 17:03                     ` Eli Zaretskii
2020-09-24 21:51                       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-25  6:59                         ` Eli Zaretskii
2020-09-25  8:34                           ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-25  9:14                             ` Eli Zaretskii
2020-09-25 10:14                               ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-25 11:17                                 ` Eli Zaretskii
2020-09-25 11:34                                   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 22:59       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-25 18:31   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 18:33 ` Stefan Monnier
2020-09-23 18:47   ` Eli Zaretskii
2020-09-23 23:18     ` Stefan Monnier
2020-09-24 14:34       ` Eli Zaretskii
2020-09-24 16:44         ` Stefan Monnier
2020-09-24 16:59           ` Eli Zaretskii
2020-09-27 21:59             ` Stefan Monnier
2020-09-28  6:20               ` Eli Zaretskii
2020-09-28 13:30                 ` Stefan Monnier
2020-09-28 13:44                   ` Eli Zaretskii
2020-09-28 16:58                     ` Stefan Monnier
2020-10-02 15:40                       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-10-02 16:08                         ` Stefan Monnier
2020-10-02 16:11                         ` Eli Zaretskii
2020-10-02 16:25                           ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-10-02 19:30                             ` Eli Zaretskii
2020-10-02 21:49                               ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-04-29 14:02                         ` Lars Ingebrigtsen
2020-09-23 19:46   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 20:00     ` Stefan Monnier
2020-09-23 22:47       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 23:20         ` Stefan Monnier
2020-09-23 23:26           ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24  2:07             ` Stefan Monnier
2020-09-24  7:45               ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 16:26                 ` Stefan Monnier
2020-09-24  8:06               ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 14:43                 ` Eli Zaretskii
2020-09-24 14:52                   ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 15:20                     ` Eli Zaretskii
2020-09-24 14:26         ` Eli Zaretskii
2020-09-24 14:20     ` Eli Zaretskii
2020-09-24 14:27       ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-24 16:40       ` Stefan Monnier
2020-09-24 16:54         ` Eli Zaretskii
2020-09-27 16:11           ` Eli Zaretskii
2020-09-27 21:52             ` Stefan Monnier
2020-09-28  6:10               ` Eli Zaretskii
2020-09-28 13:24                 ` Stefan Monnier
2020-09-28 13:42                   ` Eli Zaretskii
2020-09-28 16:56                     ` Stefan Monnier
     [not found] <<alpine.NEB.2.22.394.2009222215560453.32542@sdf.lonestar.org>
     [not found] ` <<jwvwo0ktlge.fsf-monnier+emacs@gnu.org>
     [not found]   ` <<alpine.NEB.2.22.394.2009232116430453.29439@sdf.lonestar.org>
     [not found]     ` <<834knnuugm.fsf@gnu.org>
     [not found]       ` <<jwvimc3p2a0.fsf-monnier+emacs@gnu.org>
     [not found]         ` <<83h7rnt8s3.fsf@gnu.org>
     [not found]           ` <<833633nqru.fsf@gnu.org>
     [not found]             ` <<jwvwo0e6gcb.fsf-monnier+emacs@gnu.org>
     [not found]               ` <<83r1qmmnxu.fsf@gnu.org>
2020-09-28 15:53                 ` 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=83h7rov7xy.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=43572@debbugs.gnu.org \
    --cc=ghe@sdf.org \
    /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).