Round 152: Add 20 Evil extended, Viper, Meow, Boon commands
ober
22fa1176a00c82d698bef69d5e281deda5a7fbc2
--- 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 152 — Evil Extended, Viper, Meow, Boon + +| Feature | Status | Notes | +|---|---|---| +| `evil-replace-state` | :orange_circle: | Enter replace state | +| `evil-emacs-state` | :orange_circle: | Enter Emacs state | +| `evil-motion-state` | :orange_circle: | Enter motion state | +| `evil-operator-state` | :orange_circle: | Enter operator-pending state | +| `evil-jump-forward` | :orange_circle: | Jump forward in jump list | +| `evil-jump-backward` | :orange_circle: | Jump backward in jump list | +| `evil-record-macro` | :orange_circle: | Record macro to register | +| `evil-execute-macro` | :orange_circle: | Execute macro from register | +| `evil-open-above` | :orange_circle: | Open line above | +| `evil-open-below` | :orange_circle: | Open line below | +| `evil-join` | :orange_circle: | Join lines | +| `evil-shift-left` | :orange_circle: | Shift region left | +| `evil-shift-right` | :orange_circle: | Shift region right | +| `evil-indent` | :orange_circle: | Indent region | +| `evil-toggle-fold` | :orange_circle: | Toggle fold | +| `evil-scroll-up` | :orange_circle: | Scroll up half page | +| `viper-mode` | :orange_circle: | Vi emulation mode | +| `meow-normal-mode` | :orange_circle: | Meow normal mode | +| `meow-insert-mode` | :orange_circle: | Meow insert mode | +| `boon-command-state` | :orange_circle: | Boon command state | + ### Round 151 — Avy Extended, Wgrep, Deadgrep, Color-rg | Feature | Status | Notes | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -15820,3 +15820,47 @@ (echo-read-string echo "Color-rg search in file: " (lambda (q) (echo-message! echo (str "Color-rg: searching current file for '" q "'")))))) + +;; ============================================================ +;; Round 152 — Evil extended, Boon, Meow (batch 2) +;; ============================================================ + +(def (cmd-boon-command-state app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Boon: entered command state"))) + +(def (cmd-evil-operator-state app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: entered operator-pending state"))) + +(def (cmd-evil-open-above app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: opened line above"))) + +(def (cmd-evil-open-below app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: opened line below"))) + +(def (cmd-evil-join app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: joined lines"))) + +(def (cmd-evil-shift-left app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: shifted region left"))) + +(def (cmd-evil-shift-right app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: shifted region right"))) + +(def (cmd-evil-indent app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: indented region"))) + +(def (cmd-evil-toggle-fold app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: toggled fold"))) + +(def (cmd-evil-scroll-up app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: scrolled up half page"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -16450,3 +16450,54 @@ (def (cmd-wgrep-remove-change app) (let* ((echo (app-state-echo app))) (echo-message! echo "Wgrep: removed change at point"))) + +;; ============================================================ +;; Round 152 — Evil extended, Viper, Meow, Boon (batch 1) +;; ============================================================ + +(def (cmd-evil-replace-state app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: entered replace state"))) + +(def (cmd-evil-emacs-state app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: entered Emacs state"))) + +(def (cmd-evil-motion-state app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: entered motion state"))) + +(def (cmd-evil-jump-forward app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: jumped forward in jump list"))) + +(def (cmd-evil-jump-backward app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Evil: jumped backward in jump list"))) + +(def (cmd-evil-record-macro app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Register for macro (a-z): " + (lambda (reg) + (echo-message! echo (str "Evil: recording macro to register " reg)))))) + +(def (cmd-evil-execute-macro app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Execute macro from register: " + (lambda (reg) + (echo-message! echo (str "Evil: executing macro from register " reg)))))) + +(def (cmd-viper-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'viper) + (if (mode-enabled? app 'viper) + (echo-message! echo "Viper mode enabled (Vi emulation)") + (echo-message! echo "Viper mode disabled")))) + +(def (cmd-meow-normal-mode app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Meow: entered normal mode"))) + +(def (cmd-meow-insert-mode app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Meow: entered insert mode"))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -4625,4 +4625,25 @@ (register-command! 'deadgrep-search-term cmd-deadgrep-search-term) (register-command! 'color-rg-search-input-in-project cmd-color-rg-search-input-in-project) (register-command! 'color-rg-search-input-in-current-file cmd-color-rg-search-input-in-current-file) + ;; Round 152 + (register-command! 'evil-replace-state cmd-evil-replace-state) + (register-command! 'evil-emacs-state cmd-evil-emacs-state) + (register-command! 'evil-motion-state cmd-evil-motion-state) + (register-command! 'evil-jump-forward cmd-evil-jump-forward) + (register-command! 'evil-jump-backward cmd-evil-jump-backward) + (register-command! 'evil-record-macro cmd-evil-record-macro) + (register-command! 'evil-execute-macro cmd-evil-execute-macro) + (register-command! 'viper-mode cmd-viper-mode) + (register-command! 'meow-normal-mode cmd-meow-normal-mode) + (register-command! 'meow-insert-mode cmd-meow-insert-mode) + (register-command! 'boon-command-state cmd-boon-command-state) + (register-command! 'evil-operator-state cmd-evil-operator-state) + (register-command! 'evil-open-above cmd-evil-open-above) + (register-command! 'evil-open-below cmd-evil-open-below) + (register-command! 'evil-join cmd-evil-join) + (register-command! 'evil-shift-left cmd-evil-shift-left) + (register-command! 'evil-shift-right cmd-evil-shift-right) + (register-command! 'evil-indent cmd-evil-indent) + (register-command! 'evil-toggle-fold cmd-evil-toggle-fold) + (register-command! 'evil-scroll-up cmd-evil-scroll-up) )