9eae95a...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
Add caching and yet more doc to external-completion.el
* lisp/external-completion.el (cl-lib): Require cl-lib.
(external-completion-table): Rework for caching.
1af23aa...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
More tweaks to external-completion.el after Stefan's comments
* lisp/external-completion.el (Commentary): Update.
(completion-styles-alist): Name the style 'external'.
(external-completion-table): Change order of arguments. Use
double-dashed symbols.
(external-completion--try-completion)
(external-completion--all-completions): Use double-dashed symbols.
aaaa016...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
Speed it up
9a62da2...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
Integrate Stefan suggestions but rename it to "external-completion.el"
"External completion" is a much better name. There are already a
thousand in-Emacs meanings for "backend" and this new style is really
meant to be used for tools _outside_ of Emacs.
a049c8f...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
Don't override completion-category-defaults in fido-mode
Fido mode's mantra is to use the 'flex' completion style wherever
possible, but this clashes with some completion table categories that
can't use that style, such as the 'backend-completion' category, which
uses the backend-completion-backend-style style.
c807121...
by
=?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>
Add lisp/backend-completion.el
This completion style is meant to be used with a "programmable
completion" table that interfaces with an external providing
completions, such as a shell utility, an inferior process, an http
server. The table and external tool are tasked to do the matching of
the pattern string to the potential candidates of completion, and as
such it fully controls the style.
When this completion style is in use, the usual styles configured
by the user or other in `completion-styles' are completely
overriden. This can be seen as a drawback, but, on the other hand,
the regular the full data set to be available in Emacs' addressing
space, which is often not feasible.
* lisp/backend-completion.el: New file.
* lisp/progmodes/eglot.el (Package-Requires): Require
backend-completion.
(completion-styles-alist): Don't set it.
(eglot--lsp-backend-style-call)
(eglot--lsp-backend-style-try-completion)
(eglot--lsp-backend-style-all-completions): Delete.