Round 238: Consult ext, Vertico ext, Speedbar ext, Neotree ext (20 commands)

ober

dea58504c70ea106f158a8081126350328817aad

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 8dddc37..cd249de 100644
--- 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 238 — Consult ext, Vertico ext, Speedbar ext, Neotree ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| consult-complex-command | :orange_circle: | Browse complex command history |
+| consult-completing-read-multiple | :orange_circle: | Complete multiple items |
+| consult-preview-at-point | :orange_circle: | Preview candidate at point |
+| vertico-repeat-last | :orange_circle: | Repeat last Vertico completion |
+| vertico-sort-alpha | :orange_circle: | Sort candidates alphabetically |
+| vertico-sort-history | :orange_circle: | Sort candidates by history |
+| vertico-sort-length | :orange_circle: | Sort candidates by length |
+| embark-cycle | :orange_circle: | Cycle through Embark targets |
+| calc-grab-rectangle | :orange_circle: | Grab rectangle into Calc |
+| calc-embedded-word | :orange_circle: | Calc embedded word mode |
+| bookmark-bmenu-edit-annotation | :orange_circle: | Edit bookmark annotation |
+| speedbar-edit-line | :orange_circle: | Edit current Speedbar line |
+| speedbar-item-info | :orange_circle: | Show Speedbar item info |
+| speedbar-item-copy | :orange_circle: | Copy Speedbar item |
+| speedbar-item-delete | :orange_circle: | Delete Speedbar item |
+| speedbar-item-rename | :orange_circle: | Rename Speedbar item |
+| speedbar-create-directory | :orange_circle: | Create directory in Speedbar |
+| neotree-collapse-all | :orange_circle: | Collapse all Neotree nodes |
+| neotree-copy-filepath-to-yank-ring | :orange_circle: | Copy filepath to kill ring |
+| neotree-select-up-node | :orange_circle: | Select parent node in Neotree |
+
 ### Round 237 — Helm ext, Counsel ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index ce15d37..7b2ca67 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19950,3 +19950,48 @@
 (def (cmd-counsel-imenu app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Counsel: imenu browser")))
+
+;; Round 238 — Speedbar ext, Neotree ext, Bookmark ext (10 in final)
+(def (cmd-bookmark-bmenu-edit-annotation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bookmark: editing annotation")))
+
+(def (cmd-speedbar-edit-line app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Speedbar: editing current line")))
+
+(def (cmd-speedbar-item-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Speedbar: item info")))
+
+(def (cmd-speedbar-item-copy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Speedbar: copied item")))
+
+(def (cmd-speedbar-item-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Speedbar: deleted item")))
+
+(def (cmd-speedbar-item-rename app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "New name: "
+      (lambda (name)
+        (echo-message! echo (str "Speedbar: renamed to " name))))))
+
+(def (cmd-speedbar-create-directory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Directory name: "
+      (lambda (dir)
+        (echo-message! echo (str "Speedbar: created directory " dir))))))
+
+(def (cmd-neotree-collapse-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neotree: collapsed all nodes")))
+
+(def (cmd-neotree-copy-filepath-to-yank-ring app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neotree: copied filepath to kill ring")))
+
+(def (cmd-neotree-select-up-node app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neotree: selected parent node")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 23bd6dc..d5b667e 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20618,3 +20618,44 @@
       (lambda (page)
         (echo-message! echo (str "Helm: showing man page " page))))))
 
+;; Round 238 — Consult ext, Vertico ext, Speedbar ext, Neotree ext (10 in modes)
+(def (cmd-consult-complex-command app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Consult: complex command history")))
+
+(def (cmd-consult-completing-read-multiple app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Consult: completing read multiple")))
+
+(def (cmd-consult-preview-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Consult: preview at point")))
+
+(def (cmd-vertico-repeat-last app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vertico: repeat last completion")))
+
+(def (cmd-vertico-sort-alpha app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vertico: sort alphabetically")))
+
+(def (cmd-vertico-sort-history app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vertico: sort by history")))
+
+(def (cmd-vertico-sort-length app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vertico: sort by length")))
+
+(def (cmd-embark-cycle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Embark: cycle through targets")))
+
+(def (cmd-calc-grab-rectangle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Calc: grabbed rectangle")))
+
+(def (cmd-calc-embedded-word app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Calc: embedded word calculation")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 746cb69..6c8bdd2 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6431,4 +6431,25 @@
   (register-command! 'counsel-rhythmbox cmd-counsel-rhythmbox)
   (register-command! 'counsel-switch-to-shell-buffer cmd-counsel-switch-to-shell-buffer)
   (register-command! 'counsel-imenu cmd-counsel-imenu)
+  ;; Round 238 — Consult ext, Vertico ext, Speedbar ext, Neotree ext
+  (register-command! 'consult-complex-command cmd-consult-complex-command)
+  (register-command! 'consult-completing-read-multiple cmd-consult-completing-read-multiple)
+  (register-command! 'consult-preview-at-point cmd-consult-preview-at-point)
+  (register-command! 'vertico-repeat-last cmd-vertico-repeat-last)
+  (register-command! 'vertico-sort-alpha cmd-vertico-sort-alpha)
+  (register-command! 'vertico-sort-history cmd-vertico-sort-history)
+  (register-command! 'vertico-sort-length cmd-vertico-sort-length)
+  (register-command! 'embark-cycle cmd-embark-cycle)
+  (register-command! 'calc-grab-rectangle cmd-calc-grab-rectangle)
+  (register-command! 'calc-embedded-word cmd-calc-embedded-word)
+  (register-command! 'bookmark-bmenu-edit-annotation cmd-bookmark-bmenu-edit-annotation)
+  (register-command! 'speedbar-edit-line cmd-speedbar-edit-line)
+  (register-command! 'speedbar-item-info cmd-speedbar-item-info)
+  (register-command! 'speedbar-item-copy cmd-speedbar-item-copy)
+  (register-command! 'speedbar-item-delete cmd-speedbar-item-delete)
+  (register-command! 'speedbar-item-rename cmd-speedbar-item-rename)
+  (register-command! 'speedbar-create-directory cmd-speedbar-create-directory)
+  (register-command! 'neotree-collapse-all cmd-neotree-collapse-all)
+  (register-command! 'neotree-copy-filepath-to-yank-ring cmd-neotree-copy-filepath-to-yank-ring)
+  (register-command! 'neotree-select-up-node cmd-neotree-select-up-node)
 )