]> git.eshelyaron.com Git - emacs.git/commitdiff
Do not rely on package.el
authorEshel Yaron <me@eshelyaron.com>
Thu, 24 Oct 2024 12:08:12 +0000 (14:08 +0200)
committerEshel Yaron <me@eshelyaron.com>
Thu, 24 Oct 2024 12:23:36 +0000 (14:23 +0200)
lisp/emacs-lisp/lisp-mnt.el
lisp/progmodes/eglot.el

index d48ee1f2ca4c956255a976e06fd4c05b88b05947..0e3650b9e5611828059544378ead7a8b33e9d031 100644 (file)
@@ -453,18 +453,21 @@ is wrapped around any parts requiring it."
                  (t dep)))
               deps))))
 
-(declare-function package-read-from-string "package" (str))
-
 (defun lm-package-requires (&optional file)
   "Return dependencies listed in file FILE, or current buffer if FILE is nil.
 The return value is a list of elements of the form (PACKAGE VERSION)
 where PACKAGE is the package name (a symbol) and VERSION is the
 package version (a string)."
-  (require 'package)
   (lm-with-file file
     (and-let* ((require-lines (lm-header-multiline "package-requires")))
       (lm--prepare-package-dependencies
-       (package-read-from-string (mapconcat #'identity require-lines " "))))))
+       (let ((str (string-join require-lines " ")))
+         (pcase-let ((`(,expr . ,offset) (read-from-string str)))
+           (condition-case ()
+               ;; The call to `ignore' suppresses a compiler warning.
+               (progn (ignore (read-from-string str offset))
+                      (error "Can't read whole string"))
+             (end-of-file expr))))))))
 
 (defun lm-package-needs-footer-line (&optional file)
   "Return non-nil if package in current buffer needs a footer line.
index 72a4549aa8d07817fda94b03ec597c76d3599669..66ee2749b51b017a21e63515a02996d4b1a48a02 100644 (file)
   'eglot-move-to-column-function 'eglot-move-to-linepos-function "1.12")
 (define-obsolete-variable-alias 'eglot-ignored-server-capabilites
   'eglot-ignored-server-capabilities "1.8")
-;;;###autoload
-(define-obsolete-function-alias 'eglot-update #'eglot-upgrade-eglot "29.1")
 
 \f
 ;;; User tweakable stuff
@@ -1615,7 +1613,7 @@ This docstring appeases checkdoc, that's all."
                             :clientInfo
                             (append
                              '(:name "Eglot")
-                             (let ((v (package-get-version)))
+                             (let ((v "1.17"))
                                (and v (list :version v))))
                             ;; Maybe turn trampy `/ssh:foo@bar:/path/to/baz.py'
                             ;; into `/path/to/baz.py', so LSP groks it.
@@ -2160,16 +2158,6 @@ If it is activated, also signal textDocument/didOpen."
        (declare (obsolete info "1.10"))
        (interactive) (info "(eglot)"))
 
-;;;###autoload
-(defun eglot-upgrade-eglot (&rest _) "Update Eglot to latest version."
-  (interactive)
-  (with-no-warnings
-    (require 'package)
-    (unless package-archive-contents (package-refresh-contents))
-    (when-let ((existing (cadr (assoc 'eglot package-alist))))
-      (package-delete existing t))
-    (package-install (cadr (assoc 'eglot package-archive-contents)))))
-
 (easy-menu-define eglot-menu nil "Eglot"
   `("Eglot"
     ;; Commands for getting information and customization.