summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/package.el
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2020-10-19 20:30:52 +0200
committerStefan Kangas <stefan@marxist.se>2020-10-19 20:30:52 +0200
commit8c96c720fa5ee67b902778199ee35991779300dc (patch)
treeffee2a8cf97ade59d530dd44d0d72079e5c41378 /lisp/emacs-lisp/package.el
parentf831fa174425d3f945dcbd399290ce9cc68e8ea2 (diff)
downloademacs-8c96c720fa5ee67b902778199ee35991779300dc.tar.gz
emacs-8c96c720fa5ee67b902778199ee35991779300dc.tar.bz2
emacs-8c96c720fa5ee67b902778199ee35991779300dc.zip
Add command package-menu-filter-upgradable
* lisp/emacs-lisp/package.el (package-menu-filter-upgradable): New command. (Bug#41436) (package-menu-mode-map): Bind the new command. * doc/emacs/package.texi (Package Menu): Document the new command.
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r--lisp/emacs-lisp/package.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 7b192d640b2..23692aab32a 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -2708,6 +2708,7 @@ either a full name or nil, and EMAIL is a valid email address."
(define-key map (kbd "/ s") 'package-menu-filter-by-status)
(define-key map (kbd "/ v") 'package-menu-filter-by-version)
(define-key map (kbd "/ m") 'package-menu-filter-marked)
+ (define-key map (kbd "/ u") 'package-menu-filter-upgradable)
map)
"Local keymap for `package-menu-mode' buffers.")
@@ -3904,6 +3905,15 @@ Unlike other filters, this leaves the marks intact."
(tabulated-list-put-tag (char-to-string mark) t)))
(user-error "No packages found")))))
+(defun package-menu-filter-upgradable ()
+ "Filter \"*Packages*\" buffer to show only upgradable packages."
+ (interactive)
+ (let ((pkgs (mapcar #'car (package-menu--find-upgrades))))
+ (package-menu--filter-by
+ (lambda (pkg)
+ (memql (package-desc-name pkg) pkgs))
+ "upgradable")))
+
(defun package-menu-clear-filter ()
"Clear any filter currently applied to the \"*Packages*\" buffer."
(interactive)