Round 156: Add 20 Popper, Shackle, Hydra, Transient extended commands
ober
f19d681afc55f7a2a26d97783704592968730aa5
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 156 — Popper, Shackle, Hydra, Transient Extended + +| Feature | Status | Notes | +|---|---|---| +| `popper-toggle-latest` | :orange_circle: | Toggle latest popup | +| `popper-cycle` | :orange_circle: | Cycle popups | +| `popper-toggle-type` | :orange_circle: | Toggle popup type | +| `popper-kill-latest-popup` | :orange_circle: | Kill latest popup | +| `popper-raise-popup` | :orange_circle: | Raise popup to window | +| `popper-lower-popup` | :orange_circle: | Lower window to popup | +| `shackle-mode` | :orange_circle: | Window rule enforcement | +| `shackle-last-popup-buffer` | :orange_circle: | Show last popup buffer | +| `ace-popup-menu-mode` | :orange_circle: | Ace popup menu mode | +| `hydra-zoom/body` | :orange_circle: | Zoom hydra menu | +| `hydra-window/body` | :orange_circle: | Window hydra menu | +| `hydra-navigate/body` | :orange_circle: | Navigation hydra menu | +| `hydra-toggle/body` | :orange_circle: | Toggle hydra menu | +| `hydra-apropos/body` | :orange_circle: | Apropos hydra menu | +| `hydra-buffer-menu/body` | :orange_circle: | Buffer hydra menu | +| `transient-history-prev` | :orange_circle: | Previous transient history | +| `transient-history-next` | :orange_circle: | Next transient history | +| `transient-suffix-put` | :orange_circle: | Modify suffix property | +| `transient-toggle-level-limit` | :orange_circle: | Toggle level limit | +| `transient-set-level` | :orange_circle: | Set transient level | + ### Round 155 — Embark, Consult, Vertico, Corfu, Cape Extended | Feature | Status | Notes | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -16027,3 +16027,49 @@ (def (cmd-vertico-quick-insert app) (let* ((echo (app-state-echo app))) (echo-message! echo "Vertico: quick insert candidate"))) + +;; ============================================================ +;; Round 156 — Hydra, Transient extended (batch 2) +;; ============================================================ + +(def (cmd-hydra-window/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: window management menu"))) + +(def (cmd-hydra-navigate/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: navigation menu"))) + +(def (cmd-hydra-toggle/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: toggle features menu"))) + +(def (cmd-hydra-apropos/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: apropos menu"))) + +(def (cmd-hydra-buffer-menu/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: buffer menu"))) + +(def (cmd-transient-history-prev app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Transient: previous history entry"))) + +(def (cmd-transient-history-next app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Transient: next history entry"))) + +(def (cmd-transient-suffix-put app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Transient: modified suffix property"))) + +(def (cmd-transient-toggle-level-limit app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Transient: toggled level limit"))) + +(def (cmd-transient-set-level app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Set transient level: " + (lambda (lvl) + (echo-message! echo (str "Transient: set level to " lvl)))))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -16654,3 +16654,53 @@ (echo-read-string echo "Load from register: " (lambda (reg) (echo-message! echo (str "Consult: loaded register " reg)))))) + +;; ============================================================ +;; Round 156 — Popper, Shackle, Hydra, Transient extended (batch 1) +;; ============================================================ + +(def (cmd-popper-toggle-latest app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: toggled latest popup"))) + +(def (cmd-popper-cycle app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: cycled to next popup"))) + +(def (cmd-popper-toggle-type app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: toggled popup type"))) + +(def (cmd-popper-kill-latest-popup app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: killed latest popup"))) + +(def (cmd-popper-raise-popup app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: raised popup to regular window"))) + +(def (cmd-popper-lower-popup app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Popper: lowered window to popup"))) + +(def (cmd-shackle-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'shackle) + (if (mode-enabled? app 'shackle) + (echo-message! echo "Shackle mode enabled (window rule enforcement)") + (echo-message! echo "Shackle mode disabled")))) + +(def (cmd-shackle-last-popup-buffer app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Shackle: showing last popup buffer"))) + +(def (cmd-ace-popup-menu-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'ace-popup-menu) + (if (mode-enabled? app 'ace-popup-menu) + (echo-message! echo "Ace-popup-menu mode enabled") + (echo-message! echo "Ace-popup-menu mode disabled")))) + +(def (cmd-hydra-zoom/body app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Hydra: zoom menu (+/-/0)"))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -4709,4 +4709,25 @@ (register-command! 'cape-ispell cmd-cape-ispell) (register-command! 'vertico-quick-jump cmd-vertico-quick-jump) (register-command! 'vertico-quick-insert cmd-vertico-quick-insert) + ;; Round 156 + (register-command! 'popper-toggle-latest cmd-popper-toggle-latest) + (register-command! 'popper-cycle cmd-popper-cycle) + (register-command! 'popper-toggle-type cmd-popper-toggle-type) + (register-command! 'popper-kill-latest-popup cmd-popper-kill-latest-popup) + (register-command! 'popper-raise-popup cmd-popper-raise-popup) + (register-command! 'popper-lower-popup cmd-popper-lower-popup) + (register-command! 'shackle-mode cmd-shackle-mode) + (register-command! 'shackle-last-popup-buffer cmd-shackle-last-popup-buffer) + (register-command! 'ace-popup-menu-mode cmd-ace-popup-menu-mode) + (register-command! 'hydra-zoom/body cmd-hydra-zoom/body) + (register-command! 'hydra-window/body cmd-hydra-window/body) + (register-command! 'hydra-navigate/body cmd-hydra-navigate/body) + (register-command! 'hydra-toggle/body cmd-hydra-toggle/body) + (register-command! 'hydra-apropos/body cmd-hydra-apropos/body) + (register-command! 'hydra-buffer-menu/body cmd-hydra-buffer-menu/body) + (register-command! 'transient-history-prev cmd-transient-history-prev) + (register-command! 'transient-history-next cmd-transient-history-next) + (register-command! 'transient-suffix-put cmd-transient-suffix-put) + (register-command! 'transient-toggle-level-limit cmd-transient-toggle-level-limit) + (register-command! 'transient-set-level cmd-transient-set-level) )