unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Heime via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Eli Zaretskii <eliz@gnu.org>, 65459@debbugs.gnu.org
Subject: bug#65459: completing-read INITIAL-VALUE unaware of COLLECTION and REQUIRE-MATCH
Date: Wed, 23 Aug 2023 16:39:52 +0000	[thread overview]
Message-ID: <fvqSmekfcbFxYmnHMLbj8FTVXP7zY0afjAsxgtCMbZWeyhdTBWYa9g-R9nFxWBwZGeaZtUGJ9xYBIyYhdgAvqmrtY1G9w7dQnt6YAy2gGzs=@protonmail.com> (raw)
In-Reply-To: <jwv4jkpoj61.fsf-monnier+emacs@gnu.org>


------- Original Message -------
On Thursday, August 24th, 2023 at 4:05 AM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:

> > Then, repeatedly hit <down>. You get
> > 
> > alpha alpha beta gamma delta epsilon zeta eta alpha beta gamma and-so-on
> 
> Ah, OK, yes, that sounds like a problem (one I've heard before).
> I think it's a problem in the cycling code rather than in INITIAL-VALUE
> or COLLECTION. E.g. the same problem occurs if the initial input is
> empty and the user types `alpha C-n`.

That has been my assessment as well.  It is not a problem of INITIAL-VALUE,
but a problem in the cycling mechanism.
 
> > You do actually get that the consecutive entries appearing in the
> > minibuffer have direct correspondence to the order found in COLLECTION.
> 
> For that form of cycling, apparently so, yes. I don't categorize it as
> "completion" so I haven't looked very closely at that code :-)
> There are other ways to do cycling which use a different ordering.

Correct, it is not categorised as completion.
 
> The cycling through completions via `next-line-or-history-element` is
> not very configurable, AFAICT.
> 
> > Once INITIAL is inserted, I cannot instruct completing-read to continue
> > sequentially starting from a particular element.
> 
> Indeed.
> 
> > For instance, I cannot get the following result when using simple cycling
> > through collection options when repeatedly hitting the <down> key.
> > 
> > To achieve
> > 
> > alpha epsilon zeta eta alpha beta gamma delta epsilon and-so-on
> 
> Could you give a bit more context about why/where you'd want to do that
> so I can better imagine how to attack the problem?
> 
> Hopefully it would explain why you want "alpha epsilon ..." first but
> "alpha beta .." later. 

In such instance one considers collection as a cyclic list for the case of 
simple cycling.  But with possibility of starting from a particular index.

> Also for such uses of `completing-read` we usually recommend against a 
> non-nil value for INITIAL-INPUT, so that context should try to explain 
> why you use "alpha" as INITIAL-INPUT. - Stefan

Because using INITIAL is the only way available to pre-insert a value in 
the minibuffer.

Hence, if I want a pre-insertion candidate for the first element in collection
I get 'alpha' repeated twice.  First from the insertion via INITIAL, and then 
again through the simple cycling of collection (that starts from 'alpha').  

If one can instruct the starting position in collection and subsequently consider
collection as a cyclic list, the problem of ending with the following is solved.

alpha alpha beta gamma delta epsilon zeta eta alpha and-so-on

which means

INITIAL COLLECTION(0) COLLECTION(1) and-so-on.

--------

Starting from entry 1 of collection, you would get

alpha beta gamma delta epsilon zeta eta alpha and-so-on

which means

INITIAL COLLECTION(1) COLLECTION(2) and-so-on

--------

And in general

INITIAL COLLECTION(i) COLLECTION(i+1) ... COLLECTION(0) COLLECTION(1) and-so-on

















  reply	other threads:[~2023-08-23 16:39 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-22 22:04 bug#65459: completing-read INITIAL-VALUE unaware of COLLECTION and REQUIRE-MATCH Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 11:29 ` Eli Zaretskii
2023-08-23 11:57   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 13:07     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 15:29       ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 16:05         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 16:39           ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-08-23 16:58             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 18:12               ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 21:27                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-23 22:44                   ` Drew Adams
2023-08-23 23:06                   ` Gregory Heytings
2023-08-24  2:30                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 12:30                       ` Gregory Heytings
2023-08-24 13:19                         ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-25  6:59                           ` Juri Linkov
2023-08-24 13:46                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-26  8:06                           ` Gregory Heytings
2023-08-31  9:42                             ` Eli Zaretskii
2023-09-04 21:35                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-04 22:16                               ` Stefan Kangas
2023-09-05 11:05                               ` Eli Zaretskii
2023-09-05 12:59                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-05 13:14                                   ` Eli Zaretskii
2023-08-24  9:02                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 13:36                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 14:51                       ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 16:45                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 18:50                           ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 19:35                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 20:22                               ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 21:02                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-24 21:45                                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-26  8:10                                   ` Gregory Heytings
2023-08-26 14:27                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27  6:45                                       ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 14:40                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 16:21                                           ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 16:26                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 16:35                                               ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 18:01                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 21:11                                                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 21:48                                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 22:59                                                       ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28  3:12                                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28  9:14                                                           ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28 12:44                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28 12:50                                                               ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28 13:04                                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-28 13:13                                                                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 16:42                                               ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 18:02                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 20:54                                                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-27 21:26                                                   ` Heime via Bug reports for GNU Emacs, the Swiss army knife of text editors

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='fvqSmekfcbFxYmnHMLbj8FTVXP7zY0afjAsxgtCMbZWeyhdTBWYa9g-R9nFxWBwZGeaZtUGJ9xYBIyYhdgAvqmrtY1G9w7dQnt6YAy2gGzs=@protonmail.com' \
    --to=bug-gnu-emacs@gnu.org \
    --cc=65459@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=heimeborgia@protonmail.com \
    --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).