]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/buff-menu.el: Improve 'Buffer-menu-group-by-mode' (bug#70150).
authorJuri Linkov <juri@linkov.net>
Fri, 12 Apr 2024 16:39:49 +0000 (19:39 +0300)
committerEshel Yaron <me@eshelyaron.com>
Sun, 14 Apr 2024 17:09:27 +0000 (19:09 +0200)
(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)

lisp/buff-menu.el

index ec5337e3fda6d8085446413f450411cbed42927d..d59c5b6cf213b2269da75af109d9e8ab6da09d59 100644 (file)
@@ -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)