Function: tab-bar-format-tabs-groups
tab-bar-format-tabs-groups is a byte-compiled function defined in
tab-bar.el.gz.
Signature
(tab-bar-format-tabs-groups)
Documentation
Produce tabs for the tab bar grouped according to their groups.
Probably introduced at or before Emacs version 28.1.
Source Code
;; Defined in /usr/src/emacs/lisp/tab-bar.el.gz
(defun tab-bar-format-tabs-groups ()
"Produce tabs for the tab bar grouped according to their groups."
(let* ((tabs (funcall tab-bar-tabs-function))
(current-group (funcall tab-bar-tab-group-function
(tab-bar--current-tab-find tabs)))
(previous-group nil)
(i 0))
(mapcan
(lambda (tab)
(let ((tab-group (funcall tab-bar-tab-group-function tab)))
(setq i (1+ i))
(prog1 (cond
;; Show current group tabs and ungrouped tabs
((or (equal tab-group current-group) (not tab-group))
(append
;; Prepend current group name before first tab
(when (and (not (equal previous-group tab-group))
tab-group)
(tab-bar--format-tab-group tab i t))
;; Override default tab faces to use group faces
(let ((tab-bar-tab-face-function
tab-bar-tab-group-face-function))
(tab-bar--format-tab tab i))))
;; Show first tab of other groups with a group name
((not (equal previous-group tab-group))
(append
(tab-bar--format-tab-group tab i)
(when tab-bar-show-inactive-group-tabs
(let ((tab-bar-tab-face-function
tab-bar-tab-group-face-function))
(tab-bar--format-tab tab i)))))
;; Hide other group tabs
(t (when tab-bar-show-inactive-group-tabs
(let ((tab-bar-tab-face-function
tab-bar-tab-group-face-function))
(tab-bar--format-tab tab i)))))
(setq previous-group tab-group))))
tabs)))