From: Juri Linkov Date: Fri, 12 Apr 2024 16:39:49 +0000 (+0300) Subject: * lisp/buff-menu.el: Improve 'Buffer-menu-group-by-mode' (bug#70150). X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6d7314481f935b96379650b58ea46d29ad634850;p=emacs.git * lisp/buff-menu.el: Improve 'Buffer-menu-group-by-mode' (bug#70150). (Buffer-menu-group-by): Replace function-item with const better suitable for Customization UI. (Buffer-menu-group-by-mode): Use 'mouse-buffer-menu-mode-groups' to group buffers by mode. (cherry picked from commit 5bd4d458676c458d6b534ea1c74cf6f0c1899ea6) --- diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index ec5337e3fda..d59c5b6cf21 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -107,10 +107,10 @@ The default options can group by a mode, and by a root directory of a project or just `default-directory'. If this is nil, buffers are not divided into groups." :type '(choice (const :tag "No grouping" nil) - (function-item :tag "Group by mode" - Buffer-menu-group-by-mode) - (function-item :tag "Group by project root or directory" - Buffer-menu-group-by-root) + (const :tag "Group by mode" + Buffer-menu-group-by-mode) + (const :tag "Group by project root or directory" + Buffer-menu-group-by-root) (function :tag "Custom function")) :group 'Buffer-menu :version "30.1") @@ -798,7 +798,11 @@ See more at `Buffer-menu-filter-predicate'." (t ""))) (defun Buffer-menu-group-by-mode (entry) - (concat "* " (aref (cadr entry) 5))) + (let ((mode (aref (cadr entry) 5))) + (concat "* " (or (cdr (seq-find (lambda (group) + (string-match-p (car group) mode)) + mouse-buffer-menu-mode-groups)) + mode)))) (declare-function project-root "project" (project)) (defun Buffer-menu-group-by-root (entry)