Function: project-list-buffers-buffer-menu

project-list-buffers-buffer-menu is a byte-compiled function defined in project.el.gz.

Signature

(project-list-buffers-buffer-menu PROJECT &optional FILES-ONLY)

Documentation

List buffers for PROJECT in Buffer-menu mode.

If FILES-ONLY is non-nil, only show the file-visiting buffers.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/project.el.gz
(defun project-list-buffers-buffer-menu (project &optional files-only)
  "List buffers for PROJECT in Buffer-menu mode.
If FILES-ONLY is non-nil, only show the file-visiting buffers."
  (let ((buffer-list-function
         (lambda ()
           (seq-filter
            (lambda (buffer)
              (let ((name (buffer-name buffer))
                    (file (buffer-file-name buffer)))
                (and (or Buffer-menu-show-internal
                         (not (string= (substring name 0 1) " "))
                         file)
                     (not (eq buffer (current-buffer)))
                     (or file (not Buffer-menu-files-only)))))
            (project-buffers project)))))
    (display-buffer
     (if (version< emacs-version "29.0.50")
         (let ((buf (list-buffers-noselect
                     files-only (with-current-buffer
                                    (get-buffer-create "*Buffer List*")
                                  (setq-local Buffer-menu-show-internal nil)
                                  (let ((Buffer-menu-files-only files-only))
                                    (funcall buffer-list-function))))))
           (with-current-buffer buf
             (setq-local revert-buffer-function
                         (lambda (&rest _ignored)
                           (list-buffers--refresh
                            (funcall buffer-list-function))
                           (tabulated-list-print t))))
           buf)
       (list-buffers-noselect files-only buffer-list-function)))))