forked from Github/emacs
Eglot: load built-in GNU ELPA dependencies explicitly
Because of outstanding bug#62576, it's way to easy for users to get confused by the M-x package-install process for Eglot. Whenever an Eglot release depends on a new version of a GNU ELPA :core package which is _also_ provided built-in, M-x package-install will install that dependency, but will not always load it on top of the built-in one. The solution is to not use "require" for now. This may potentially lead to double "loads", but that should in principle be idempotent. * lisp/progmodes/eglot.el (project, eldoc, seq, flymake, xref, jsonrpc) (external-completion): Load, don't require.
This commit is contained in:
parent
ad1efe5e67
commit
bdb400912e
1 changed files with 13 additions and 17 deletions
|
|
@ -97,34 +97,30 @@
|
|||
|
||||
(require 'imenu)
|
||||
(require 'cl-lib)
|
||||
(require 'project)
|
||||
|
||||
(require 'url-parse)
|
||||
(require 'url-util)
|
||||
(require 'pcase)
|
||||
(require 'compile) ; for some faces
|
||||
(require 'warnings)
|
||||
(require 'flymake)
|
||||
(require 'xref)
|
||||
(eval-when-compile
|
||||
(require 'subr-x))
|
||||
(require 'jsonrpc)
|
||||
(require 'filenotify)
|
||||
(require 'ert)
|
||||
(require 'array)
|
||||
(require 'external-completion)
|
||||
|
||||
;; ElDoc is preloaded in Emacs, so `require'-ing won't guarantee we are
|
||||
;; using the latest version from GNU Elpa when we load eglot.el. Use an
|
||||
;; heuristic to see if we need to `load' it in Emacs < 28.
|
||||
(if (and (< emacs-major-version 28)
|
||||
(not (boundp 'eldoc-documentation-strategy)))
|
||||
(load "eldoc")
|
||||
(require 'eldoc))
|
||||
|
||||
;; Similar issue as above for Emacs 26.3 and seq.el.
|
||||
(if (< emacs-major-version 27)
|
||||
(load "seq")
|
||||
(require 'seq))
|
||||
;; These dependencies are also GNU ELPA core packages. Because of
|
||||
;; bug#62576, since there is a risk that M-x package-install, despite
|
||||
;; having installed them, didn't correctly re-load them over the
|
||||
;; built-in versions.
|
||||
(eval-and-compile
|
||||
(load "project")
|
||||
(load "eldoc")
|
||||
(load "seq")
|
||||
(load "flymake")
|
||||
(load "xref")
|
||||
(load "jsonrpc")
|
||||
(load "external-completion"))
|
||||
|
||||
;; forward-declare, but don't require (Emacs 28 doesn't seem to care)
|
||||
(defvar markdown-fontify-code-blocks-natively)
|
||||
|
|
|
|||
Loading…
Reference in a new issue