[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is intellisense features integration in Emacs technically possible?

From: Dmitry Gutov
Subject: Re: Is intellisense features integration in Emacs technically possible?
Date: Sun, 26 Jan 2014 01:42:42 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Stefan Monnier <address@hidden> writes:

> But maybe we can get by with only doing the first asynchronously.
> IOW the first level could return an :async property which is a function
> which you call with a continuation.  That function will contact some
> external process and when it's ready it will call the continuation,
> passing it the real completion-table.  And of course, we'd need to make
> sure that non-async uses can also just wait for the process to return
> the completion data.

Note that a backend that works asynchronously will probably fetch every
kind of data asynchronously, i.e. not only the list of completions, but
also their annotations, location, etc. (though completion-at-point only
supports :annotation, so I mostly mean :company- properties here).

This kind of API would easier to implement in the company-backends,
because all actions are treated equally there. So we could support
something like ('async . (lambda (cont) ...)) as return value for any
action. Except for `prefix', I guess, because that would be weird. And
most of the actions, except `candidates' would still work synchronously
to the user's eye, because they are triggered by explicit user actions.

Still, this would save backend implementers from writing code like
`(while (eq value 'trash) (sit-for 0.01))' each time.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]