1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-26 07:00:35 -08:00
emacs/etc
João Távora ad1efe5e67 Eglot: improve caching in eglot-completion-at-point
When answering the :textDocument/completion request, LSP servers
provide a :isIncomplete flag in the response, which allows Eglot to
know if "further typing should result in recomputing [the completions]
list.

If :isIncomplete is false (i.e. the full set was returned), Eglot
caches the response in a global variable eglot--capf-cache that
persists for the duration of the "completion session", taken to be the
interval between two calls to completion-in-region-mode.

If the cache has been set, and Eglot detects that "further typing" has
happened, it is safe to use the cache instead of making a request to
the server.

Thus eglot--capf-cache-flush, added to completion-in-region-mode-hook,
is used to flush this cache.  Since the popular Company completion
package doesn't use completion-in-region-mode, eglot--capf-cache-flush
is also added to its company-after-completion-hook.

* lisp/progmodes/eglot.el (eglot--managed-mode): Set
'completion-in-region-mode-hook and company-after-completion-hook.
(eglot--capf-cache): New variable.
(eglot--capf-cache-flush): New function.
(eglot-completion-at-point): Rework.

* etc/EGLOT-NEWS: Update.
2023-04-02 23:40:46 +01:00
..
charsets ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
e
forms ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
gnus
images Add some icons (bug#62562) 2023-04-01 11:36:11 -07:00
nxml
org ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
refcards Merge from origin/emacs-29 2023-03-27 17:16:59 -04:00
schema ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
srecode ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
themes Update Modus themes to version 4.1.0 2023-02-22 20:00:13 +02:00
tutorials ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
AUTHORS Merge from origin/emacs-29 2023-02-21 09:44:57 +01:00
CALC-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ChangeLog.1 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
compilation.txt Tighten and simplify typescript compilation-mode regexps (bug#61104) 2023-02-06 17:47:00 +01:00
COPYING
DEBUG Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
DEVEL.HUMOR
DISTRIB ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edt-user.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
EGLOT-NEWS Eglot: improve caching in eglot-completion-at-point 2023-04-02 23:40:46 +01:00
emacs-buffer.gdb ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs-mail.desktop
emacs.desktop
emacs.icon
emacs.metainfo.xml ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs.service
emacs_lldb.py ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacsclient-mail.desktop Avoid using bash in the emacsclient desktop file 2023-03-08 19:37:27 +01:00
emacsclient.desktop Fix quoted argument in emacsclient-mail.desktop Exec key 2022-12-24 09:19:40 +02:00
enriched.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ERC-NEWS ; * etc/ERC-NEWS: Mention more deprecations. 2023-03-03 05:33:33 -08:00
ETAGS.EBNF ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ETAGS.README ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
future-bug
gnus-tut.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
grep.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
HELLO ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
HISTORY Update HISTORY for Emacs 28.3 2023-02-17 11:22:19 +01:00
JOKES
MACHINES ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
MH-E-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS lisp/simple.el (inhibit-auto-fill): New var 2023-04-02 17:54:02 -04:00
NEWS.1-17 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.18 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.19 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.20 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.21 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.22 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.23 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.24 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.25 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.26 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.27 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.28 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.29 Merge commit '1bc9dfc5be' 2023-03-27 17:14:27 -04:00
NEXTSTEP ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NXML-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ORG-NEWS Update to Org 9.6.1-48-g92471e 2023-03-18 21:41:22 -04:00
org.gnu.emacs.defaults.gschema.xml ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package-keyring.gpg * etc/package-keyring.gpg: Update with new key 2022-12-28 12:19:02 -05:00
PROBLEMS Merge commit '1bc9dfc5be' 2023-03-27 17:14:27 -04:00
ps-prin0.ps ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ps-prin1.ps ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
publicsuffix.txt Update publicsuffix.txt from upstream 2023-04-01 06:00:47 +02:00
README ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rgb.txt
ses-example.ses ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
spook.lines
TERMS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
TODO ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
w32-feature.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
yow.lines

This directory contains the architecture-independent files used by or
with Emacs.  This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.

COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES

File: emacs.icon
  Author: Sun Microsystems, Inc
  Copyright (C) 1999, 2001-2023 Free Software Foundation, Inc.
  License: GNU General Public License version 3 or later (see COPYING)