unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* emacs 29 expand command in minibuf
@ 2022-06-13  1:48 hx
  2022-06-13  4:57 ` Tassilo Horn
  2022-06-18  8:39 ` Andreas Röhler
  0 siblings, 2 replies; 12+ messages in thread
From: hx @ 2022-06-13  1:48 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 253 bytes --]

Hi developers and users,
In 28.1 when I execute M-x em-v, it will execute emacs-version immediately,
but in 29, it will expand to emacs-v in mini-buffer first, need to press
enter again.

Could you please tell me which option can make 29 work like 28 ?

[-- Attachment #2: Type: text/html, Size: 345 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-13  1:48 emacs 29 expand command in minibuf hx
@ 2022-06-13  4:57 ` Tassilo Horn
  2022-06-13 11:06   ` Stephen Berman
  2022-06-18  8:39 ` Andreas Röhler
  1 sibling, 1 reply; 12+ messages in thread
From: Tassilo Horn @ 2022-06-13  4:57 UTC (permalink / raw)
  To: hx; +Cc: emacs-devel

hx <silent2600@gmail.com> writes:

> In 28.1 when I execute M-x em-v, it will execute emacs-version
> immediately, but in 29, it will expand to emacs-v in mini-buffer
> first, need to press enter again.
>
> Could you please tell me which option can make 29 work like 28 ?

The "problem" is that in 29, there's a new command emacs-news-view-mode
which also happens to be a possible match for input "em-v" when
partial-completion is in completion-styles (which it is by default).
That emacs-version is matched by "em-v" is also due to the
partial-completion style, so removing that won't do either.

If you really need emacs-version so frequently that you need a
super-short and unambiguous name for it, define an alias:

  (defalias 'ev #'emacs-version)

Then you can do M-x ev RET.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-13  4:57 ` Tassilo Horn
@ 2022-06-13 11:06   ` Stephen Berman
  2022-06-17 22:15     ` Stephen Leake
  0 siblings, 1 reply; 12+ messages in thread
From: Stephen Berman @ 2022-06-13 11:06 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: hx, emacs-devel

On Mon, 13 Jun 2022 06:57:27 +0200 Tassilo Horn <tsdh@gnu.org> wrote:

> hx <silent2600@gmail.com> writes:
>
>> In 28.1 when I execute M-x em-v, it will execute emacs-version
>> immediately, but in 29, it will expand to emacs-v in mini-buffer
>> first, need to press enter again.
>>
>> Could you please tell me which option can make 29 work like 28 ?
>
> The "problem" is that in 29, there's a new command emacs-news-view-mode
> which also happens to be a possible match for input "em-v" when
> partial-completion is in completion-styles (which it is by default).
> That emacs-version is matched by "em-v" is also due to the
> partial-completion style, so removing that won't do either.

I think the real problem is that after `M-x em-v TAB' expands the input
to "emacs-v", typing TAB again completes it to "emacs-version" instead
of popping up a *Completions* buffer containing both
"emacs-news-view-mode" and "emacs-version".

Steve Berman



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-13 11:06   ` Stephen Berman
@ 2022-06-17 22:15     ` Stephen Leake
  2022-06-18  7:37       ` Tassilo Horn
  0 siblings, 1 reply; 12+ messages in thread
From: Stephen Leake @ 2022-06-17 22:15 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Tassilo Horn, hx, emacs-devel

Stephen Berman <stephen.berman@gmx.net> writes:

> On Mon, 13 Jun 2022 06:57:27 +0200 Tassilo Horn <tsdh@gnu.org> wrote:
>
>> hx <silent2600@gmail.com> writes:
>>
>>> In 28.1 when I execute M-x em-v, it will execute emacs-version
>>> immediately, but in 29, it will expand to emacs-v in mini-buffer
>>> first, need to press enter again.
>>>
>>> Could you please tell me which option can make 29 work like 28 ?
>>
>> The "problem" is that in 29, there's a new command emacs-news-view-mode
>> which also happens to be a possible match for input "em-v" when
>> partial-completion is in completion-styles (which it is by default).
>> That emacs-version is matched by "em-v" is also due to the
>> partial-completion style, so removing that won't do either.
>
> I think the real problem is that after `M-x em-v TAB' expands the input
> to "emacs-v", typing TAB again completes it to "emacs-version" instead
> of popping up a *Completions* buffer containing both
> "emacs-news-view-mode" and "emacs-version".

+1

This behavior (on different but similar cases) bytes me quite often.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-17 22:15     ` Stephen Leake
@ 2022-06-18  7:37       ` Tassilo Horn
  2022-06-18  7:58         ` Andreas Schwab
  2022-06-21 20:31         ` Stefan Monnier
  0 siblings, 2 replies; 12+ messages in thread
From: Tassilo Horn @ 2022-06-18  7:37 UTC (permalink / raw)
  To: Stephen Leake; +Cc: Stephen Berman, hx, emacs-devel

Stephen Leake <stephen_leake@stephe-leake.org> writes:

>> I think the real problem is that after `M-x em-v TAB' expands the
>> input to "emacs-v", typing TAB again completes it to "emacs-version"
>> instead of popping up a *Completions* buffer containing both
>> "emacs-news-view-mode" and "emacs-version".
>
> +1
>
> This behavior (on different but similar cases) bytes me quite often.

Indeed, that looks at least surprising.  When you do em-v<TAB> the basic
completion style cannot do anything and so the partial-completion style
completes to emacs-v which is the common prefix of both emacs-version
and emacs-news-view-mode for this style.  But when doing emacs-v<TAB>
afterwards, the basic style can complete and only to emacs-version.

Maybe there should be a way to "lock in" a completion style, i.e., when
a more fuzzy style has computed completions in a previous step, it
should not fall back to a more strict one later in the process.  Now of
course, there are more completion-styles than those in vanilla so the
level of fuzzyness is not known for all...

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-18  7:37       ` Tassilo Horn
@ 2022-06-18  7:58         ` Andreas Schwab
  2022-06-18  8:32           ` Stephen Berman
  2022-06-18 13:30           ` Stefan Monnier
  2022-06-21 20:31         ` Stefan Monnier
  1 sibling, 2 replies; 12+ messages in thread
From: Andreas Schwab @ 2022-06-18  7:58 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Stephen Leake, Stephen Berman, hx, emacs-devel

On Jun 18 2022, Tassilo Horn wrote:

> Indeed, that looks at least surprising.  When you do em-v<TAB> the basic
> completion style cannot do anything and so the partial-completion style
> completes to emacs-v which is the common prefix of both emacs-version
> and emacs-news-view-mode for this style.  But when doing emacs-v<TAB>
> afterwards, the basic style can complete and only to emacs-version.

Try moving basic after partial-completion in completion-styles.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-18  7:58         ` Andreas Schwab
@ 2022-06-18  8:32           ` Stephen Berman
  2022-06-21 14:39             ` Andreas Schwab
  2022-06-18 13:30           ` Stefan Monnier
  1 sibling, 1 reply; 12+ messages in thread
From: Stephen Berman @ 2022-06-18  8:32 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Tassilo Horn, Stephen Leake, hx, emacs-devel

On Sat, 18 Jun 2022 09:58:51 +0200 Andreas Schwab <schwab@linux-m68k.org> wrote:

> On Jun 18 2022, Tassilo Horn wrote:
>
>> Indeed, that looks at least surprising.  When you do em-v<TAB> the basic
>> completion style cannot do anything and so the partial-completion style
>> completes to emacs-v which is the common prefix of both emacs-version
>> and emacs-news-view-mode for this style.  But when doing emacs-v<TAB>
>> afterwards, the basic style can complete and only to emacs-version.
>
> Try moving basic after partial-completion in completion-styles.

That fixes this issue, thanks.  So the next question is: Is there a good
reason not to have that order by default?

Steve Berman



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-13  1:48 emacs 29 expand command in minibuf hx
  2022-06-13  4:57 ` Tassilo Horn
@ 2022-06-18  8:39 ` Andreas Röhler
  1 sibling, 0 replies; 12+ messages in thread
From: Andreas Röhler @ 2022-06-18  8:39 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 464 bytes --]


Am 13.06.22 um 03:48 schrieb hx:
> Hi developers and users,
> In 28.1 when I execute M-x em-v, it will execute emacs-version 
> immediately,
> but in 29, it will expand to emacs-v in mini-buffer first, need to 
> press enter again.
>
> Could you please tell me which option can make 29 work like 28 ?
>

You may also consider

(set 'frame-title-format '(multiple-frames "%b" ("" invocation-name "@" 
emacs-version)))


in order to get the version always visible.

[-- Attachment #2: Type: text/html, Size: 1197 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-18  7:58         ` Andreas Schwab
  2022-06-18  8:32           ` Stephen Berman
@ 2022-06-18 13:30           ` Stefan Monnier
  1 sibling, 0 replies; 12+ messages in thread
From: Stefan Monnier @ 2022-06-18 13:30 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Tassilo Horn, Stephen Leake, Stephen Berman, hx, emacs-devel

>> Indeed, that looks at least surprising.  When you do em-v<TAB> the basic
>> completion style cannot do anything and so the partial-completion style
>> completes to emacs-v which is the common prefix of both emacs-version
>> and emacs-news-view-mode for this style.  But when doing emacs-v<TAB>
>> afterwards, the basic style can complete and only to emacs-version.
>
> Try moving basic after partial-completion in completion-styles.

I think removing `basic` gives the same result, and is a bit
more efficient.


        Stefan




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-18  8:32           ` Stephen Berman
@ 2022-06-21 14:39             ` Andreas Schwab
  0 siblings, 0 replies; 12+ messages in thread
From: Andreas Schwab @ 2022-06-21 14:39 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Tassilo Horn, Stephen Leake, hx, emacs-devel

On Jun 18 2022, Stephen Berman wrote:

> That fixes this issue, thanks.  So the next question is: Is there a good
> reason not to have that order by default?

It breaks completion of "/foo/.." for file name completion.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: emacs 29 expand command in minibuf
  2022-06-18  7:37       ` Tassilo Horn
  2022-06-18  7:58         ` Andreas Schwab
@ 2022-06-21 20:31         ` Stefan Monnier
  2022-06-21 20:56           ` [External] : " Drew Adams
  1 sibling, 1 reply; 12+ messages in thread
From: Stefan Monnier @ 2022-06-21 20:31 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Stephen Leake, Stephen Berman, hx, emacs-devel

> Indeed, that looks at least surprising.  When you do em-v<TAB> the basic
> completion style cannot do anything and so the partial-completion style
> completes to emacs-v which is the common prefix of both emacs-version
> and emacs-news-view-mode for this style.  But when doing emacs-v<TAB>
> afterwards, the basic style can complete and only to emacs-version.

Indeed, the way most/all `completion-try-completion` functions are
designed such that the returned string results in the exact same set of
matching candidates *when using the same style*.

That can result in surprises when the returned string ends up suddenly
having matching candidates in styles with higher-priority, which thus
"capture" the completion.

For `partial-completion`, it might be possible to work around this
problem by making it try the higher-priority styles to detect such
captures and "neuter" them by adding appropriate `*` e.g. completing
`em-v` to `emacs*-v` instead of to `emacs-v`.

Not sure how easy/ugly it would be, but it doesn't sound impossible
(even more so if we limit ourselves to targetting the case of `basic`
completion).

> Maybe there should be a way to "lock in" a completion style, i.e., when
> a more fuzzy style has computed completions in a previous step, it
> should not fall back to a more strict one later in the process.  Now of
> course, there are more completion-styles than those in vanilla so the
> level of fuzzyness is not known for all...

That's another approach, indeed, tho "later in the process" is sadly
ill-defined, so we'd have to find a heuristic which works well enough.


        Stefan




^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [External] : Re: emacs 29 expand command in minibuf
  2022-06-21 20:31         ` Stefan Monnier
@ 2022-06-21 20:56           ` Drew Adams
  0 siblings, 0 replies; 12+ messages in thread
From: Drew Adams @ 2022-06-21 20:56 UTC (permalink / raw)
  To: Stefan Monnier, Tassilo Horn
  Cc: Stephen Leake, Stephen Berman, hx, emacs-devel

This is all a fundamental problem with the design,
which is to always fall back from one style to
another continuing to try to find a completion.

What's needed is to easily be able to choose one
or another style - during completion.

It's important to be able to know whether a given
style matches a candidate.  You may or you may not
want to try another style if the matches for one
style don't give you what you want/expect.

Better than that (being able to choose one style
at a time, on the fly) is to let you choose (again,
during completion) one or another such fallback 
list of styles.  Of course, that includes the case
of singleton fallback lists: one style at a time.

I argued for this decades ago.  And it's what
Icicles offers.

The choice to go with just one list of fallback
styles (per invocation or category of completion)
is, I think, based on the assumption that you
always want to maximize the possibility of getting
a match.  And that's far from the case, in many
contexts.



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-06-21 20:56 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-13  1:48 emacs 29 expand command in minibuf hx
2022-06-13  4:57 ` Tassilo Horn
2022-06-13 11:06   ` Stephen Berman
2022-06-17 22:15     ` Stephen Leake
2022-06-18  7:37       ` Tassilo Horn
2022-06-18  7:58         ` Andreas Schwab
2022-06-18  8:32           ` Stephen Berman
2022-06-21 14:39             ` Andreas Schwab
2022-06-18 13:30           ` Stefan Monnier
2022-06-21 20:31         ` Stefan Monnier
2022-06-21 20:56           ` [External] : " Drew Adams
2022-06-18  8:39 ` Andreas Röhler

Code repositories for project(s) associated with this 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).