diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2026-03-03 20:41:01 +0100 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2026-03-03 20:41:01 +0100 |
| commit | 8ee92853e4f0b4d3c7be9744bd6e37e91680c044 (patch) | |
| tree | 612e6ce49e988a12d0e0767f949521843f074753 /lisp/transient.el | |
| parent | 63fca1f6517c5fc6a9b528c39996a2ce48a33a96 (diff) | |
transient-{argument,value}-face: New functions
Diffstat (limited to 'lisp/transient.el')
| -rw-r--r-- | lisp/transient.el | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/lisp/transient.el b/lisp/transient.el index 04377f2..f76e254 100644 --- a/lisp/transient.el +++ b/lisp/transient.el @@ -4993,19 +4993,13 @@ apply the face `transient-unreachable' to the complete string." "Format OBJ's value for display and return the result.") (cl-defmethod transient-format-value ((obj transient-suffix)) - (propertize (oref obj argument) - 'face (if (oref obj value) - (if (oref obj inapt) - 'transient-inapt-argument - 'transient-argument) - 'transient-inactive-argument))) + (propertize (oref obj argument) 'face (transient-argument-face obj))) (cl-defmethod transient-format-value ((obj transient-option)) (let ((argument (prin1-to-string (oref obj argument) t))) (if-let ((value (oref obj value))) - (let* ((inapt (oref obj inapt)) - (aface (if inapt 'transient-inapt-argument 'transient-argument)) - (vface (if inapt 'transient-inapt-argument 'transient-value))) + (let* ((aface (transient-argument-face obj)) + (vface (transient-value-face obj))) (pcase-exhaustive (oref obj multi-value) ('nil (concat (propertize argument 'face aface) @@ -5026,20 +5020,15 @@ apply the face `transient-unreachable' to the complete string." (cl-defmethod transient-format-value ((obj transient-switches)) (with-slots (value argument-format choices) obj - (format (propertize argument-format - 'face (if value - 'transient-argument - 'transient-inactive-argument)) + (format (propertize argument-format 'face (transient-argument-face obj)) (format (propertize "[%s]" 'face 'transient-delimiter) (mapconcat (lambda (choice) (propertize choice 'face - (if (equal (format argument-format choice) value) - (if (oref obj inapt) - 'transient-inapt-argument - 'transient-value) - 'transient-inactive-value))) + (transient-value-face + obj + (equal (format argument-format choice) value)))) choices (propertize "|" 'face 'transient-delimiter)))))) @@ -5047,6 +5036,21 @@ apply the face `transient-unreachable' to the complete string." "If OBJ is currently inapt, return \"inapt \", else the empty string." (if (oref obj inapt) "inapt " "")) +(defun transient-argument-face (obj) + (if (oref obj value) + (if (oref obj inapt) + 'transient-inapt-argument + 'transient-argument) + 'transient-inactive-argument)) + +(cl-defun transient-value-face (obj &optional (active nil sactive)) + (if (if sactive active (oref obj value)) + (if (oref obj inapt) + ;; transient-inapt-value does not exist + 'transient-inapt-argument + 'transient-value) + 'transient-inactive-value)) + (cl-defmethod transient--get-format ((obj transient-suffix)) (if transient-use-accessible-formats (oref obj accessible-format) @@ -5684,8 +5688,8 @@ as stand-in for elements of exhausted lists." (cl-defmethod transient-format-value ((obj transient-cons-option)) (let ((value (oref obj value))) - (propertize (prin1-to-string value t) 'face - (if value 'transient-value 'transient-inactive-value)))) + (propertize (prin1-to-string value t) + 'face (transient-value-face obj)))) ;;; _ (provide 'transient) |
