unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#38476: 27.0.50; substring completion feature request
@ 2019-12-03 19:32 Stephen Berman
  2022-05-20 11:39 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Berman @ 2019-12-03 19:32 UTC (permalink / raw)
  To: 38476; +Cc: Stefan Monnier

The placement of point in substring completion is sometimes suboptimal.
E.g. if there two files (or buffers) file1test and file2test and you
enter `fi TAB' then it completes to `file' with point after the `e',
which is fine for further input; but if you enter `te TAB' then it
completes to `test' with point after the second `t', so you have to move
point to complete the name.  It would be nice if in such cases point
were placed at the start rather than the end of the partial match.

Steve Berman





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

* bug#38476: 27.0.50; substring completion feature request
  2019-12-03 19:32 bug#38476: 27.0.50; substring completion feature request Stephen Berman
@ 2022-05-20 11:39 ` Lars Ingebrigtsen
  2022-05-20 12:28   ` Stephen Berman
  0 siblings, 1 reply; 4+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-20 11:39 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Stefan Monnier, 38476

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

> The placement of point in substring completion is sometimes suboptimal.
> E.g. if there two files (or buffers) file1test and file2test and you
> enter `fi TAB' then it completes to `file' with point after the `e',
> which is fine for further input; but if you enter `te TAB' then it
> completes to `test' with point after the second `t', so you have to move
> point to complete the name.  It would be nice if in such cases point
> were placed at the start rather than the end of the partial match.

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I'm not able to reproduce this in Emacs 29 -- it just says "no match"
with "te TAB".

With "*te TAB" it completes to file*test with point after *, which seems
correct, too.

Perhaps you're using a different completion system than the default?  If
not, do you have a recipe to reproduce the problem, starting from "emacs -Q"?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#38476: 27.0.50; substring completion feature request
  2022-05-20 11:39 ` Lars Ingebrigtsen
@ 2022-05-20 12:28   ` Stephen Berman
  2022-05-20 12:34     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Berman @ 2022-05-20 12:28 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Monnier, 38476

On Fri, 20 May 2022 13:39:58 +0200 Lars Ingebrigtsen <larsi@gnus.org> wrote:

> Stephen Berman <stephen.berman@gmx.net> writes:
>
>> The placement of point in substring completion is sometimes suboptimal.
>> E.g. if there two files (or buffers) file1test and file2test and you
>> enter `fi TAB' then it completes to `file' with point after the `e',
>> which is fine for further input; but if you enter `te TAB' then it
>> completes to `test' with point after the second `t', so you have to move
>> point to complete the name.  It would be nice if in such cases point
>> were placed at the start rather than the end of the partial match.
>
> (I'm going through old bug reports that unfortunately weren't resolved
> at the time.)
>
> I'm not able to reproduce this in Emacs 29 -- it just says "no match"
> with "te TAB".

Sorry, my bug report was woefully incomplete.  It was filed as a
followup to bug bug#38458 at the request of Stefan Monnier, but I should
have made it self-contained.  Here's the recipe:

0. $ mkdir /tmp/test; touch /tmp/test/{file1test,file2test}
1. $ emacs-master -Q --eval "(setq completion-category-overrides
     '((buffer (styles substring)) (file (styles substring))))"
2. Type `C-x C-f /tmp/test/te TAB'
=> The minibuffer displays the following, with point at the end of the line:

Find file: /tmp/test/test

Typing TAB a second time pops up a the *Completions* buffer showing
file1test and file2test as the two possible completions.  But to
complete either of these in the minibuffer you have to move point.
That's the bug (or feature request).

> With "*te TAB" it completes to file*test with point after *, which seems
> correct, too.

Yes, that input didn't occur to me when I filed the report.  I just now
scrolled through the Completion node of the Emacs manual and didn't see
a reference to it; is it documented?  If not, perhaps it should be.
Anyway, using * comes close to satisfying the feature request, so if
it's too hard to make it work without the *, I can live with having to
use *.

Steve Berman





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

* bug#38476: 27.0.50; substring completion feature request
  2022-05-20 12:28   ` Stephen Berman
@ 2022-05-20 12:34     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-20 12:34 UTC (permalink / raw)
  To: Stephen Berman; +Cc: Stefan Monnier, 38476

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

> 0. $ mkdir /tmp/test; touch /tmp/test/{file1test,file2test}
> 1. $ emacs-master -Q --eval "(setq completion-category-overrides
>      '((buffer (styles substring)) (file (styles substring))))"
> 2. Type `C-x C-f /tmp/test/te TAB'
> => The minibuffer displays the following, with point at the end of the line:
>
> Find file: /tmp/test/test

Thanks.  With that recipe, I can reproduce the behaviour.

> Typing TAB a second time pops up a the *Completions* buffer showing
> file1test and file2test as the two possible completions.  But to
> complete either of these in the minibuffer you have to move point.
> That's the bug (or feature request).

Yeah, that doesn't seem like the best place to put point.

>> With "*te TAB" it completes to file*test with point after *, which seems
>> correct, too.
>
> Yes, that input didn't occur to me when I filed the report.  I just now
> scrolled through the Completion node of the Emacs manual and didn't see
> a reference to it; is it documented?  If not, perhaps it should be.

I think I've learned about * through osmosis -- perhaps it isn't
documented?  But it definitely should be.

> Anyway, using * comes close to satisfying the feature request, so if
> it's too hard to make it work without the *, I can live with having to
> use *.

It'd be nice if `substring' placed point where the * thing does, but
perhaps there are reasons for the current behaviour...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2022-05-20 12:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-03 19:32 bug#38476: 27.0.50; substring completion feature request Stephen Berman
2022-05-20 11:39 ` Lars Ingebrigtsen
2022-05-20 12:28   ` Stephen Berman
2022-05-20 12:34     ` Lars Ingebrigtsen

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).