Function: tabulated-list-groups-flatten

tabulated-list-groups-flatten is a byte-compiled function defined in tabulated-list.el.gz.

Signature

(tabulated-list-groups-flatten TREE)

Documentation

Flatten multi-level TREE to single level.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/tabulated-list.el.gz
(defun tabulated-list-groups-flatten (tree)
  "Flatten multi-level TREE to single level."
  (let ((header "") acc)
    (cl-labels
        ((flatten (tree level)
           (mapcar (lambda (elt)
                     (setq header (format "%s%s %s\n" header
                                          (make-string level ?*)
                                          (car elt)))
                     (cond
                      ((vectorp (cdr elt))
                       (setq acc (cons (cons (string-trim-right header)
                                             (append (cdr elt) nil))
                                       acc))
                       (setq header ""))
                      (t (flatten (cdr elt) (1+ level)))))
                   tree)))
      (flatten tree 1)
      (nreverse acc))))