Function: hydra--normalize-body

hydra--normalize-body is a byte-compiled function defined in hydra.el.

Signature

(hydra--normalize-body BODY)

Documentation

Put BODY in a normalized format.

Add :exit and :foreign-keys if they are not there. Remove :color key. And sort the plist alphabetically.

Source Code

;; Defined in ~/.emacs.d/elpa/hydra-20250316.1254/hydra.el
(defun hydra--normalize-body (body)
  "Put BODY in a normalized format.
Add :exit and :foreign-keys if they are not there.
Remove :color key. And sort the plist alphabetically."
  (let ((plist (cddr body)))
    (plist-put plist :exit (hydra--body-exit body))
    (plist-put plist :foreign-keys (hydra--body-foreign-keys body))
    (let* ((alist0 (cl-loop for (k v) on plist
                      by #'cddr collect (cons k v)))
           (alist1 (assq-delete-all :color alist0))
           (alist2 (cl-sort alist1 #'string<
                            :key (lambda (x) (symbol-name (car x))))))
      (append (list (car body) (cadr body))
              (cl-mapcan (lambda (x) (list (car x) (cdr x))) alist2)))))