Subject: bug#70217: [PATCH] Add substring-partial-completion style

From: Eli Zaretskii <[email-masked]>
Date: Tue, 28 May 2024 22:21:02 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Tue, 28 May 2024 14:51:37 -0400
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> From: Spencer Baugh <[email-masked]>
> >> Cc: [email-masked],  [email-masked]
> >> Date: Tue, 28 May 2024 14:16:30 -0400
> >> 
> >> > and (b) please do not use examples with repeated characters, because
> >> > they can lead readers to make the wrong conclusions due to accidental
> >> > situations.  For example, AFAIU valid candidates for "b*/c*" include
> >> > "bcdxyz/c1234" and also "b/x/y/z/c/1/2/3", but readers might
> >> > mistakenly think that "b*" stands for a string made only of "b", or
> >> > that there can be only one slash and it must precede "c".  Avoiding
> >> > repeated characters prevents such misunderstandings.
> >> 
> >> Excellent point, fixed.
> >
> > Thanks.
> >
> >> > But please (a) don't use "glob" and file wildcard notation, use
> >> > regexps instead;
> >> 
> >> True, I removed the word "glob", I agree that's confusing since
> >> e.g. [a-z] or {foo,bar} are valid globs but not valid in
> >> partial-completion.
> >> 
> >> Note however that "*" is literally valid syntax with partial-completion,
> >> where as the regexp notation (".*") is not.  The partial-completion
> >> documentation already mentions this in (info "(emacs) Completion
> >> Styles").  So I slightly reworded it and continued using "*".
> >
> > Please don't.  I really meant what I wrote: "glob" is confusing to
> > users, because of the file-name wildcards connotation.
> >
> > The natural way of describing string patterns in Emacs is regular
> > expressions, not globs.
> 
> Just to be clear, if you type C-h v ffap-*-path TAB it will complete to
> variables whose name starts with "ffap-" and end with "-path".  This is
> a partial-completion feature which has nothing to do with globs.
> 
> I agree that the natural way of describing string patterns in Emacs is
> regular expressions, not globs.  There are no globs in this docstring.
> I am mentioning only * which is what partial-completion natively
> supports.  * has nothing to do with globs, it is a feature of
> partial-completion which is similar but distinct from shell globs.
> 
> partial-completion works in terms of * not regular expressions, so it
> would be confusing to use a regular expression here.

I know.  But you are not talking about partial completion in that
text, you are talking about strings that match or don't match.  The
natural way of describing those is regular expressions.

If you don't want to use regular expressions here, you will need to
explain them in words.  That's fine by me, but it will make the job
harder for you, and the text will be longer.  That's why I suggested
to use regexps.