all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Gregory Heytings via "Emacs development discussions." <emacs-devel@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: A solution to display completion candidates after point in a minibuffer
Date: Sat, 03 Oct 2020 06:59:16 +0000	[thread overview]
Message-ID: <alpine.NEB.2.22.394.2010030820130453.22922@sdf.lonestar.org> (raw)
In-Reply-To: <jwveemggoov.fsf-monnier+emacs@gnu.org>


>>> [ FWIW, I just tried it in my local Emacs where I replaced the ad-hoc 
>>> `resize_mini_window` scrolling with the use of 
>>> `scroll-conservatively`, and I get the behavior that you seem to 
>>> prefer. ]
>>
>> Yes, that's not surprising, what your code does is essentially (or very 
>> close to) what I suggested to do in bug#43519 and bug#43572,
>
> Not really, because with my code, the window start is not explicitly set 
> to BOB unless the buffer's content is small enough to be completely 
> visible (the first version of my patch did, but not the current one).
>

That's correct indeed, but setting window start explicitly in 
resize_mini_window() is only a hint for redisplay, that can ignore this 
setting in particular when when point would become invisible.  So in 
effect it's (very close to) what I suggested to do.

>> Thank you, now I see what you mean.  IMO (and I would be extremely 
>> surprised if I were the only one with that opinion) seeing the current 
>> directory disappearing is disturbing (and from a newcomer point of 
>> view: very disturbing), so the prompt an user input should always be 
>> displayed (unless the miniwindow is too small of course).
>
> I agree it's suboptimal when entering the minibuffer.  OTOH it's a 
> perfectly acceptable behavior while editing the minibuffer's content and 
> can even be preferable in some cases to what you propose.
>

I don't think so, IMO the minibuffer prompt should be visible at all 
times.  A rough equivalent of what you propose in a GUI would be, for 
example, for the Windows File Explorer or the macOS Finder to suddenly 
become fullscreen when the directory entered contains more files than it 
can display with its current size.  But I will not argue further.

Anyway, what you think could be a preferable behavior (showing the first 
line(s) when entering the minibuffer, and hiding it/them when the user has 
already entered some data) is easy to do with the minibuffer-local 
variable solution I propose.  It suffices to (setq 
start-display-at-beginning-of-minibuffer nil) at some point.  It could 
become a user preference, something like icomplete-always-display-prompt 
with a default value t.

>>> IIRC the reason it won't scroll the second time around is because 
>>> point should be visible (and redisplay would only scroll in order to 
>>> move point within view).
>>
>> I don't know, but I'm not sure about that.  If you (set-window-start 
>> nil 1) unconditionally in window-scroll-functions, this setting will be 
>> obeyed by redisplay, even if point is not visible anymore.
>
> Oh, indeed, in that case it would move point instead.
>

No, that's not what I meant.  In that case redisplay does not scroll and 
does not move point.  Point simply becomes invisible.  It becomes visible 
again after the next redisplay, a second or two later.



  reply	other threads:[~2020-10-03  6:59 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-02 15:36 A solution to display completion candidates after point in a minibuffer Gregory Heytings via Emacs development discussions.
2020-10-02 16:04 ` Eli Zaretskii
2020-10-02 16:14   ` Gregory Heytings via Emacs development discussions.
2020-10-02 16:20     ` Eli Zaretskii
2020-10-02 16:32 ` Stefan Monnier
2020-10-02 17:17   ` Gregory Heytings via Emacs development discussions.
2020-10-02 19:24     ` Stefan Monnier
2020-10-02 20:18       ` Drew Adams
2020-10-02 21:30       ` Gregory Heytings via Emacs development discussions.
2020-10-02 22:44         ` Stefan Monnier
2020-10-02 23:11           ` Gregory Heytings via Emacs development discussions.
2020-10-03  0:10             ` Stefan Monnier
2020-10-03  6:59               ` Gregory Heytings via Emacs development discussions. [this message]
2020-10-03  9:04                 ` Eli Zaretskii
2020-10-04 16:11                   ` Gregory Heytings via Emacs development discussions.
2020-10-04 16:21                     ` Eli Zaretskii
2020-10-04 16:52                       ` Gregory Heytings via Emacs development discussions.
2020-10-04 17:00                         ` Eli Zaretskii
2020-10-03  8:25               ` Eli Zaretskii
2020-10-03  8:07         ` Eli Zaretskii
2020-10-02 22:40       ` Gregory Heytings via Emacs development discussions.
2020-10-03 12:31       ` Gregory Heytings via Emacs development discussions.

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

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

  git send-email \
    --in-reply-to=alpine.NEB.2.22.394.2010030820130453.22922@sdf.lonestar.org \
    --to=emacs-devel@gnu.org \
    --cc=ghe@sdf.org \
    --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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.