Subject: Re: bug#78719: 30.1; [PATCH] Add functions `string-common-prefix' and `string-try-completion'

From: Daniel Mendler <[email-masked]>
Date: Sat, 05 Jul 2025 17:29:12 +0200

Phil Sainty <[email-masked]> writes:

> On 2025-07-06 02:38, Daniel Mendler wrote:
>> A non-nil STRING is a special case, an optimization, which is also
>> covered by REGEXP-LIST by using a regexp with an anchor. It should
>> not come before IGNORE-CASE.
>
> That was also my initial preference for the argument sequence so that
> the filters were all together as a logical group, but Eli felt that it
> was more useful to have STRING before IGNORE-CASE, so I wrote the code
> with it that way around, and only grouped the filters in the docs.

Then we can maybe convince Eli that the following calling convention is
better, since the filtering arguments STRING and REGEXP-LIST are
deprioritized? The STRING and REGEXP-LIST arguments are
completion-related, while IGNORE-CASE is needed for basic
case-insensitive prefix computation.

(string-common-prefix LIST &optional IGNORE-CASE STRING REGEXP-LIST)

Alternatively we could go with the simplest form and suggest to use
`try-completion' if additional filtering is needed.

(string-common-prefix LIST &optional IGNORE-CASE)

Daniel