Subject: bug#38476: 27.0.50; substring completion feature request

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 20 May 2022 14:34:16 +0200

Stephen Berman <[email-masked]> 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