Function: package-menu--set-mode-line-format

package-menu--set-mode-line-format is a byte-compiled function defined in package.el.gz.

Signature

(package-menu--set-mode-line-format)

Documentation

Display package-menu mode-line.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-menu--set-mode-line-format ()
  "Display package-menu mode-line."
  (when-let* ((buf (get-buffer "*Packages*"))
              ((buffer-live-p buf)))
    (with-current-buffer buf
      (setq package-menu-mode-line-info
            (let ((installed 0)
                  (new 0)
                  (total (length package-archive-contents))
                  (to-upgrade (length (package-menu--find-upgrades)))
                  (total-help "Total number of packages of all package archives")
                  (installed-help "Total number of packages installed")
                  (upgrade-help "Total number of packages to upgrade")
                  (new-help "Total number of packages added recently"))

              (save-excursion
                (goto-char (point-min))
                (while (not (eobp))
                  (let ((status (package-menu-get-status)))
                    (cond
                     ((member status
                              '("installed" "dependency" "unsigned"))
                      (setq installed (1+ installed)))
                     ((equal status "new")
                      (setq new (1+ new)))))
                  (forward-line)))

              (setq installed (number-to-string installed))
              (setq total (number-to-string total))
              (setq to-upgrade (number-to-string to-upgrade))

              (list
               " ["
               (propertize "Total: " 'help-echo total-help)
               (propertize total
                           'help-echo total-help
                           'face 'package-mode-line-total)
               " / "
               (propertize "Installed: " 'help-echo installed-help)
               (propertize installed
                           'help-echo installed-help
                           'face 'package-mode-line-installed)
               " / "
               (propertize "To Upgrade: " 'help-echo upgrade-help)
               (propertize to-upgrade
                           'help-echo upgrade-help
                           'face 'package-mode-line-to-upgrade)
               (when (> new 0)
                 (concat
                  " / "
                  (propertize "New: " 'help-echo new-help)
                  (propertize (number-to-string new)
                              'help-echo new-help
                              'face 'package-mode-line-new)))
               "] "))))))