Function: hui-menu-of-buffers
hui-menu-of-buffers is an autoloaded and byte-compiled function
defined in hui-jmenu.el.
Signature
(hui-menu-of-buffers)
Documentation
Buffer menu.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hui-jmenu.el
;;; ************************************************************************
;;; Public functions
;;; ************************************************************************
;;;###autoload
(defun hui-menu-of-buffers ()
"Buffer menu."
(let* ((buf-name)
(buffer-and-mode-name-list
;; Remove internal buffers whose names begin with a space
;; and killed buffers which have no name.
(delq nil
(mapcar (lambda (buffer)
(setq buf-name (buffer-name buffer))
(and (stringp buf-name)
(/= (length buf-name) 0)
(not (eq (aref buf-name 0) ?\ ))
(cons buf-name
(hui-menu-buffer-mode-name buffer))))
(buffer-list)))))
(setq buffer-and-mode-name-list
(hui-menu-sort-buffers buffer-and-mode-name-list))
(if (and (equal hui-menu-buffer-and-mode-list-cache buffer-and-mode-name-list)
hui-menu-of-buffers-cache)
hui-menu-of-buffers-cache
;; Create sub-menus grouping buffers by mode-name.
(let ((menu) (mode-menu) (prev-mode-name) mode-name buf-name)
(mapc (lambda (name-and-mode)
(setq buf-name (car name-and-mode)
mode-name (cdr name-and-mode))
(if (not (equal mode-name prev-mode-name))
;; Save previous mode-menu and begin a new one.
(progn (if mode-menu
(setq menu (cons (cons prev-mode-name
mode-menu) menu)
mode-menu nil))
(setq prev-mode-name mode-name)))
;; Add current buffer to mode-menu.
(setq mode-menu (cons
(vector buf-name
(list 'switch-to-buffer buf-name)
t)
mode-menu)))
buffer-and-mode-name-list)
;; Save previous mode-menu.
(if mode-menu
(setq menu (cons (cons prev-mode-name mode-menu) menu)))
;; Uncomment if you want to limit category menu length to `hui-menu-max-list-length'.
;; (and (integerp hui-menu-max-list-length)
;; (> hui-menu-max-list-length 0)
;; (hui-menu-cutoff-list menu))
;; Cache menus for next display.
(setq hui-menu-buffer-and-mode-list-cache buffer-and-mode-name-list
hui-menu-of-buffers-cache (cons "Buffers" menu))))))