Function: activities--window-serialized
activities--window-serialized is a byte-compiled function defined in
activities.el.
Signature
(activities--window-serialized STATE)
Documentation
Return window STATE having serialized its parameters.
Source Code
;; Defined in ~/.emacs.d/elpa/activities-0.7.2/activities.el
(defun activities--window-serialized (state)
"Return window STATE having serialized its parameters."
(cl-labels ((translate-state (state)
"Set windows' buffers in STATE."
(pcase state
(`(leaf . ,_attrs) (translate-leaf state))
((pred atom) state)
(`(,_key . ,(pred atom)) state)
((pred list) (mapcar #'translate-state state))))
(translate-leaf (leaf)
"Translate window parameters in LEAF."
(pcase-let* ((`(leaf . ,attrs) leaf)
((map parameters ('buffer `(,buffer-or-buffer-name . ,_buffer-attrs))) attrs))
(setf (map-elt parameters 'activities-buffer)
(activity--serialize (get-buffer buffer-or-buffer-name)))
(pcase-dolist (`(,parameter . ,(map serialize))
activities-window-parameters-translators)
(when (map-elt parameters parameter)
(setf (map-elt parameters parameter)
(funcall serialize (map-elt parameters parameter)))))
(setf (map-elt attrs 'parameters) parameters)
(cons 'leaf attrs))))
(if-let ((leaf-pos (cl-position 'leaf state)))
;; A one-window frame: the elements following `leaf' are that window's params.
(append (cl-subseq state 0 leaf-pos)
(translate-leaf (cl-subseq state leaf-pos)))
;; Multi-window frame.
(translate-state state))))