Subject: Re: bug#11906: 24.1; completion-at-point failures

From: Stefan Monnier <[email-masked]>
Date: Thu, 12 Jul 2012 10:00:55 -0400

> Assume three candidates (ObjC selectors) for completion and
> completion-cycle-threshold is 5:

>   1. stringWithContentsOfFile:
>   2. stringWithContentsOfFile:encoding:error:
>   3. stringWithContentsOfFile:usedEncoding:error:

> After cycling a few times, I see:
> [NSString
> stringWithContentsOfFile:stringWithContentsOfFile:encoding:error:stringWithContentsOfFile:usedEncodin$

The behavior will surely depend on exactly how you do the above.  So,
could you give more details, such as which modes you're using and which
keys you pressed?

> Emacs.  It seems completion-at-point should be able to do its entire work
> after obtaining once the data from those functions. This would free
> users of completion-at-point-functions from worrying about caching.

Sometimes, you can't get the whole data at once (e.g. completion of
a file-name would have to return all the files in all directories if it
had to be done "a once").

So, this is not an option.  But we could provide a standard
completion-table constructor that provides caching.

> completion-at-point also invokes those functions in order to decide when
> to exit. This causes problems illustrated at the beginning of this
> report and, for example, I have also experienced delay in inserting
> space, dot, etc following a completion.

Can you explain how "this causes problems"?  What makes you think
it's related?

        Stefan