Function: package-menu-filter-by-status
package-menu-filter-by-status is an interactive and byte-compiled
function defined in package.el.gz.
Signature
(package-menu-filter-by-status STATUS)
Documentation
Filter the "*Packages*" buffer by STATUS.
Display only packages with specified STATUS. STATUS can be a single status, a string, or a list of strings. If STATUS is nil or the empty string, show all packages.
When called interactively, prompt for STATUS. To specify several possible status values, type them separated by commas.
Probably introduced at or before Emacs version 28.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-menu-filter-by-status (status)
"Filter the \"*Packages*\" buffer by STATUS.
Display only packages with specified STATUS.
STATUS can be a single status, a string, or a list of strings.
If STATUS is nil or the empty string, show all packages.
When called interactively, prompt for STATUS. To specify
several possible status values, type them separated by commas."
(interactive (list (completing-read "Filter by status: "
'("avail-obso"
"available"
"built-in"
"dependency"
"disabled"
"external"
"held"
"incompat"
"installed"
"source"
"new"
"unsigned")))
package-menu-mode)
(package--ensure-package-menu-mode)
(if (or (not status) (string-empty-p status))
(package-menu--generate t t)
(let ((status-list
(if (listp status)
status
(split-string status ","))))
(package-menu--filter-by
(lambda (pkg-desc)
(member (package-desc-status pkg-desc) status-list))
(format "status:%s" (string-join status-list ","))))))