From da1053e7211d8bb17769fe43650a9bcdd359aeab Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Mon, 21 Nov 2022 06:17:49 -0300 Subject: [PATCH 1/1] Make defvar's into defcustom's in tab-line * lisp/tab-line.el (tab-line-tabs-buffer-group-function) (tab-line-tabs-buffer-group-sort-function) (tab-line-tabs-buffer-groups-sort-function): Make into defcustom's. (Make defvar's into defcustom's in tab-line): Handle case when variable tab-line-tabs-buffer-groups-sort-function is nil. --- lisp/tab-line.el | 51 ++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 99a785ee3e..9b1c101718 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -341,16 +341,26 @@ tab-line-tabs-mode-buffers (derived-mode-p mode))) (funcall tab-line-tabs-buffer-list-function))))) -(defvar tab-line-tabs-buffer-group-function nil +(defcustom tab-line-tabs-buffer-group-function nil "Function to add a buffer to the appropriate group of tabs. -Takes a buffer as arg and should return a group name as a string. -If the return value is nil, the buffer should be filtered out.") +Takes a buffer as argument and should return a group name as a +string. If the return value is nil, the buffer should be + filtered out." + :type 'function + :group 'tab-line + :version "29.1") -(defvar tab-line-tabs-buffer-group-sort-function nil - "Function to sort buffers in a group.") +(defcustom tab-line-tabs-buffer-group-sort-function nil + "Function to sort buffers in a group." + :type 'function + :group 'tab-line + :version "29.1") -(defvar tab-line-tabs-buffer-groups-sort-function #'string< - "Function to sort group names.") +(defcustom tab-line-tabs-buffer-groups-sort-function #'string< + "Function to sort group names." + :type 'function + :group 'tab-line + :version "29.1") (defvar tab-line-tabs-buffer-groups mouse-buffer-menu-mode-groups "How to group various major modes together in the tab line. @@ -378,13 +388,14 @@ tab-line-tabs-buffer-groups generate the group name." (if (window-parameter nil 'tab-line-groups) (let* ((buffers (funcall tab-line-tabs-buffer-list-function)) - (groups - (seq-sort tab-line-tabs-buffer-groups-sort-function - (delq nil (mapcar #'car (seq-group-by - (lambda (buffer) - (tab-line-tabs-buffer-group-name - buffer)) - buffers))))) + (groups (delq nil + (mapcar #'car + (seq-group-by #'tab-line-tabs-buffer-group-name + buffers)))) + (sorted-groups (if (functionp tab-line-tabs-buffer-groups-sort-function) + (seq-sort tab-line-tabs-buffer-groups-sort-function + groups) + groups)) (selected-group (window-parameter nil 'tab-line-group)) (tabs (mapcar (lambda (group) @@ -395,9 +406,8 @@ tab-line-tabs-buffer-groups (set-window-parameter nil 'tab-line-groups nil) (set-window-parameter nil 'tab-line-group group) (set-window-parameter nil 'tab-line-hscroll nil))))) - groups))) - tabs) - + sorted-groups))) + tabs) (let* ((window-parameter (window-parameter nil 'tab-line-group)) (group-name (tab-line-tabs-buffer-group-name (current-buffer))) (group (prog1 (or window-parameter group-name "All") @@ -410,10 +420,9 @@ tab-line-tabs-buffer-groups (set-window-parameter nil 'tab-line-groups t) (set-window-parameter nil 'tab-line-group group) (set-window-parameter nil 'tab-line-hscroll nil))))) - (buffers - (seq-filter (lambda (b) - (equal (tab-line-tabs-buffer-group-name b) group)) - (funcall tab-line-tabs-buffer-list-function))) + (buffers (seq-filter (lambda (b) + (equal (tab-line-tabs-buffer-group-name b) group)) + (funcall tab-line-tabs-buffer-list-function))) (sorted-buffers (if (functionp tab-line-tabs-buffer-group-sort-function) (seq-sort tab-line-tabs-buffer-group-sort-function buffers) -- 2.34.1