Mention package version in 'package-autoremove' prompt

* lisp/emacs-lisp/package.el (package--removable-packages):
Return package descriptors instead of names.
(package-autoremove): Adapt code to handle package descriptors
instead of names.
This commit is contained in:
Philip Kaludercic
2026-04-05 11:53:29 +02:00
parent 418319c155
commit 4473f76261

View File

@@ -1827,15 +1827,15 @@ control over."
(file-in-directory-p dir package-user-dir)))
(defun package--removable-packages ()
"Return a list of names of packages no longer needed.
"Return a list of `package-desc' objects that are longer needed.
These are packages which are neither contained in
`package-selected-packages' nor a dependency of one that is."
(let ((needed (package--get-deps package-selected-packages)))
(cl-loop for p in (mapcar #'car package-alist)
unless (or (memq p needed)
(cl-loop for (name . descs) in (package--alist)
unless (or (memq name needed)
;; Do not auto-remove external packages.
(not (package--user-installed-p p)))
collect p)))
(not (package--user-installed-p name)))
append descs)))
(defun package--used-elsewhere-p (pkg-desc &optional pkg-list all)
"Non-nil if PKG-DESC is a dependency of a package in PKG-LIST.
@@ -2511,10 +2511,9 @@ argument, don't ask for confirmation to install packages."
(y-or-n-p
(format "Packages to delete: %d (%s), proceed? "
(length removable)
(mapconcat #'symbol-name removable " "))))
(mapc (lambda (p)
(package-delete (cadr (assq p package-alist)) t))
removable))
(mapconcat #'package-desc-full-name
removable ", "))))
(mapc #'package-delete removable))
(message "Nothing to autoremove")))))
(defun package-isolate (packages &optional temp-init)