Subject: Re: bug#72705: 31.0.50; eglot--dumb-tryc Filters out too much

From: Dmitry Gutov <[email-masked]>
Date: Mon, 19 Aug 2024 14:39:13 +0300

On 19/08/2024 12:22, João Távora wrote:
> On Mon, Aug 19, 2024 at 2:52 AM Dmitry Gutov <[email-masked]> wrote:
> 
>> has more completions
>> (one can look at them by pressing TAB after "math.A")
> 
> That's not relevant.  LSP servers can make completely different
> decisions in each position.  What's relevant is to look at the completion
> list returned in the "math.As" case (via the events buffer, for example).

True, but it's hard to look at completions for "math.As" using 
completion-at-point because try-completion behaves this way.

You can also check out Company's completions popup for "math.As" - it 
shows the extra ones.

>> Not sure what's the best fix, but the patch below seems to address both
>> problems in my limited testing. WDYT?
> 
> I would be (pleasantly) surprised if your change doesn't break something
> else.  I tried many many variations in the fairly recent past and each
> of them seemed to break something. Be wary of :exit-function
> which is where things like snippet conversion and edits happen.
> So I'd say this need more testing, especially with more servers.

Here's hoping.

> I also don't understand why the "string-prefix" is being used.
> The "dumb" in eglot--dumb-try should be taken to heart.

string-prefix-p is being used because 'try-completion' will ignore 
non-prefix completions as if they weren't there. We need to make sure 
that the proposed "probe" is indeed a prefix for all completions.

> See logs of commits:
> d376462c7183752bf44b9bd20bf5020fe7eaf75a
> 4dcbf61c1518dc53061707aeff8887517e050003
> a6ef458e3831001b0acad57cf8fa75b77a4aff3f
> 
> You should also encode whatever decisions you make in
> tests in eglot-tests.el.

Thanks for the references, I'll dig in more.

Surprised to hear that exit-function can be affected.