branch: elpa/hyperdrive commit 7f8ff7f959fc1775347daa9273c489af15aa89f6 Author: Joseph Turner <jos...@ushin.org> Commit: Joseph Turner <jos...@ushin.org>
Change: (-menu-hyperdrive) Reorganize, remove hyperdrive-purge --- hyperdrive-menu.el | 81 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/hyperdrive-menu.el b/hyperdrive-menu.el index dc058e1d54..7153ecd3c2 100644 --- a/hyperdrive-menu.el +++ b/hyperdrive-menu.el @@ -235,13 +235,54 @@ (transient-define-prefix hyperdrive-menu-hyperdrive (hyperdrive) "Show menu for HYPERDRIVE." - [:description - (lambda () - (let ((hyperdrive (oref transient--prefix scope))) - (concat (propertize "Hyperdrive: " 'face 'transient-heading) - (hyperdrive--format-hyperdrive hyperdrive :formats '(public-key seed domain)) - (format " latest-version:%s" (hyperdrive-latest-version hyperdrive))))) - [("f" "Find file" + ["Hyperdrive" + :pad-keys t + ("d" "Describe" (lambda () + (interactive) + (hyperdrive-describe-hyperdrive (oref transient-current-prefix scope)))) + ;; FIXME: Is there a better way to intersperse lines of description and commands? + ("" "Public key" ignore + :description (lambda () + (concat "Public key: " (hyperdrive--format-host (oref transient--prefix scope) :format 'public-key)))) + ("" "Seed" ignore + :description (lambda () + (concat "Seed: " (hyperdrive--format-host (oref transient--prefix scope) :format 'seed))) + :if (lambda () + (hyperdrive-seed (oref transient--prefix scope)))) + ("p" "Petname" hyperdrive-menu-set-petname + :transient t + :description (lambda () + (format "Petname: %s" + (pcase (hyperdrive-petname + (oref transient--prefix scope)) + (`nil (propertize "none" + 'face 'transient-inactive-value)) + (it (propertize it + 'face 'transient-value)))))) + ("n" "set nickname" hyperdrive-menu-set-nickname + :transient t + :inapt-if-not (lambda () + (hyperdrive-writablep (oref transient--prefix scope))) + :description (lambda () + (format "Nickname: %s" + ;; TODO: Hyperdrive-metadata accessor (and maybe gv setter). + (pcase (alist-get 'name + (hyperdrive-metadata + (oref transient--prefix scope))) + ('nil (propertize "none" + 'face 'transient-inactive-value)) + (it (propertize it + 'face 'transient-value)))))) + ("" "Domain" ignore + :description (lambda () + (concat "Domain: " (hyperdrive--format-host (oref transient--prefix scope) :format 'domain))) + :if (lambda () + (hyperdrive-domains (oref transient--prefix scope)))) + ("" "Latest version" ignore + :description (lambda () + (format "Latest version: %s" (hyperdrive-latest-version (oref transient--prefix scope)))))] + [["Open" + ("f" "Find file" (lambda () (interactive) (hyperdrive-open @@ -254,32 +295,6 @@ (hyperdrive-read-entry :hyperdrive (oref transient-current-prefix scope) :read-version current-prefix-arg))))] - [("d" "Describe" hyperdrive-describe-hyperdrive) - ("C-M-P" "Purge" hyperdrive-purge)] - [("p" "Petname" hyperdrive-menu-set-petname - :transient t - :description (lambda () - (format "Petname: %s" - (pcase (hyperdrive-petname - (oref transient--prefix scope)) - (`nil (propertize "none" - 'face 'transient-inactive-value)) - (it (propertize it - 'face 'transient-value)))))) - ("n" "set nickname" hyperdrive-menu-set-nickname - :transient t - :inapt-if-not (lambda () - (hyperdrive-writablep (oref transient--prefix scope))) - :description (lambda () - (format "Nickname: %s" - ;; TODO: Hyperdrive-metadata accessor (and maybe gv setter). - (pcase (alist-get 'name - (hyperdrive-metadata - (oref transient--prefix scope))) - ('nil (propertize "none" - 'face 'transient-inactive-value)) - (it (propertize it - 'face 'transient-value))))))] ["Upload" ("u f" "File" hyperdrive-menu-upload-file :inapt-if-not (lambda ()