GNU bug report logs - #38476
27.0.50; substring completion feature request

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Tue, 3 Dec 2019 19:34:02 UTC

Severity: wishlist

Found in version 27.0.50

Full log


Message #13 received at 38476 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 38476 <at> debbugs.gnu.org
Subject: Re: bug#38476: 27.0.50; substring completion feature request
Date: Fri, 20 May 2022 14:28:23 +0200
On Fri, 20 May 2022 13:39:58 +0200 Lars Ingebrigtsen <larsi <at> gnus.org> wrote:

> Stephen Berman <stephen.berman <at> 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




This bug report was last modified 3 years and 86 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.