]> git.eshelyaron.com Git - emacs.git/commit
Add lisp/external-completion.el for completions from external tools
authorJoão Távora <joaotavora@gmail.com>
Fri, 25 Nov 2022 13:03:45 +0000 (13:03 +0000)
committerJoão Távora <joaotavora@gmail.com>
Wed, 7 Dec 2022 19:06:09 +0000 (19:06 +0000)
commit4bc9c8972ac0a3dfa237a9c5704de89ef24ad82b
treeed9f2936d718572fd45e77c37ed7f4b40defec1e
parentbfc00f1c12047ff431eaa9da3a744807c3f9e6e2
Add lisp/external-completion.el for completions from external tools

This table uses a new 'external' completion style which has been in
use in Eglot and other third-party extensions for a long time.  It's
meant for libraries that interface with an external tool which
provides completions, such as a shell utility, an inferior process, an
http server.

The new file lisp/external-completion.el provides a helper function,
external-completion-table which is given an interfacing function to
the external tool and returns a "programmed completion" table that is
bound to the 'external' completion style.  That table can then be used
with completing-read or any other facility expecting a completion
table.

When the 'external' is in use, the usual styles configured by the user
or other in 'completion-styles' are completely overriden.  This
relatively minor inconvenience is the price to pay for responsive
completion where the full set of completion candidates doesn't need to
be transfered into Emacs's address space.

* lisp/external-completion.el: New file.

* etc/NEWS: (Lisp Changes in Emacs 29.1): Mention
  external-completion-table.
etc/NEWS
lisp/external-completion.el [new file with mode: 0644]