~ubuntu-elisp/emacs/+git/master:scratch/backend-completion

Last commit made on 2022-12-06
Get this branch:
git clone -b scratch/backend-completion https://git.launchpad.net/~ubuntu-elisp/emacs/+git/master

Branch merges

Branch information

Name:
scratch/backend-completion
Repository:
lp:~ubuntu-elisp/emacs/+git/master

Recent commits

a03bc3e... by Stefan Monnier

external-completion.el: Minor changes

* lisp/external-completion.el (external-completion-table): Tweak docstring.
Explicitly handle `lambda`.

* lisp/progmodes/eglot.el (xref-backend-identifier-completion-table):
Rename category to `eglot-xref`.

18e7909... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Update eglot.el to use the new external-completion-table

* lisp/progmodes/eglot.el
(xref-backend-identifier-completion-table): Update.

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.

* lisp/icomplete.el (icomplete--fido-mode-setup): Don't override
completion-category-defaults.

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.

d34fc7b... by dannyfreeman <email address hidden>

Eglot: don't confuse URLs and windows file paths

bug#59338

* lisp/progmodes/eglot.el (eglot--path-to-uri): Check for windows path

fcd5fde... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Remove fboundp check in eglot--connect

project.el is a GNU ELPA :core package, so this kind of trick isn't
needed.

* lisp/progmodes/eglot.el (eglot--connect): Don't fboundp
project-name.