From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Leo Liu <sdl.web@gmail.com>, 11906@debbugs.gnu.org
Subject: bug#11906: 24.1; completion-at-point failures
Date: Wed, 22 May 2013 15:16:01 -0400 [thread overview]
Message-ID: <jwv8v36kf3y.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87li776gym.fsf@yandex.ru> (Dmitry Gutov's message of "Wed, 22 May 2013 03:39:13 +0400")
>>>> The difference between 2 and 3 calls shouldn't be sufficiently large to
>>>> go from "acceptable" to "terrible delay".
>>> It is a difference between 1 and 3 calls because a user can also run
>>> octave in terminal and find that how responsive it actually is.
>> But the generic completion code can't easily go down to a single call in
>> the general case.
> Why not?
Because the first call is for try-completion (i.e. "give me the
completion") and the second is for all-completions (i.e. "give me all
matching candidates"), so the info returned by the first call is not
sufficient to avoid the second call.
As you've seen there can be a second call (to try-completion with the
result of the first call to try-completion) to check if the completion
is unique. Plus another call (to test-completion) to check if the
result of the first try-completion was complete.
> So, suppose we do provide a caching function. Would it cache more than
> just one pair?
Probably, yes. It would turn test-completion and try-completion into
calls to all-completions and then cache one "arg+result" of
all-completions (this pair would be sufficient to cover all calls to
test/try/all-completion for any argument string which has `arg' as its
prefix).
> If not, it won't be too hard to do in
> `completion-table-dynamic', or in an additional function that would wrap
> FUN and then pass it to `completion-table-dynamic'.
Right, that's the idea.
Stefan
next prev parent reply other threads:[~2013-05-22 19:16 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-11 5:54 bug#11906: 24.1; completion-at-point failures Leo
2012-07-12 14:00 ` Stefan Monnier
2013-05-10 6:38 ` Leo Liu
2013-05-10 20:36 ` Stefan Monnier
2013-05-11 1:50 ` Leo Liu
2013-05-11 3:40 ` Stefan Monnier
2013-05-11 4:47 ` Leo Liu
2013-05-11 14:51 ` Stefan Monnier
2013-05-13 1:28 ` Leo Liu
2013-05-13 15:27 ` Stefan Monnier
2013-05-14 0:56 ` Leo Liu
2013-05-14 2:53 ` Stefan Monnier
2013-05-14 3:30 ` Leo Liu
2013-05-11 20:18 ` Andreas Röhler
2013-05-11 23:11 ` Daimrod
2013-05-13 15:28 ` Stefan Monnier
2013-05-21 23:39 ` Dmitry Gutov
2013-05-22 19:16 ` Stefan Monnier [this message]
2013-12-05 3:23 ` Dmitry Gutov
2013-12-05 4:33 ` Stefan Monnier
2013-12-06 1:02 ` Dmitry Gutov
2013-12-06 4:00 ` Leo Liu
2013-12-06 4:32 ` Dmitry Gutov
2013-12-06 5:36 ` Leo Liu
2013-12-06 13:15 ` Dmitry Gutov
2013-12-06 14:04 ` Leo Liu
2013-12-06 17:35 ` Stefan Monnier
2013-12-07 2:05 ` Leo Liu
2013-12-07 22:45 ` Stefan Monnier
2013-12-06 17:36 ` Stefan Monnier
2013-12-07 2:02 ` Dmitry Gutov
2013-12-07 2:40 ` Leo Liu
2013-12-07 16:13 ` Dmitry Gutov
2013-12-09 2:27 ` Leo Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwv8v36kf3y.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=11906@debbugs.gnu.org \
--cc=dgutov@yandex.ru \
--cc=sdl.web@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).