Round 127: Add 20 Counsel, Ivy, Swiper extended commands

ober

c6c5ecf2bfc84705918e4424c3110f6f7380f474

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index cbf76f8..fbf09bb 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4153,6 +4153,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 
 ---
 
+### Round 127 — Counsel, Ivy, Swiper Extended
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| ivy-call | :orange_circle: | Call action without exiting Ivy |
+| ivy-immediate-done | :orange_circle: | Use exact input in Ivy |
+| ivy-partial-or-done | :orange_circle: | Partial completion or done |
+| ivy-alt-done | :orange_circle: | Alternate done action |
+| ivy-occur | :orange_circle: | Open Ivy occur buffer |
+| ivy-occur-read-action | :orange_circle: | Read action from occur |
+| counsel-colors-emacs | :orange_circle: | Browse Emacs colors |
+| counsel-colors-web | :orange_circle: | Browse web colors |
+| counsel-command-history | :orange_circle: | Browse command history |
+| counsel-evil-registers | :orange_circle: | Browse evil registers |
+| counsel-faces | :orange_circle: | Browse faces |
+| counsel-file-jump | :orange_circle: | Jump to file |
+| counsel-fzf | :orange_circle: | FZF file search |
+| counsel-linux-app | :orange_circle: | Launch Linux application |
+| counsel-minor | :orange_circle: | Browse minor modes |
+| counsel-org-capture | :orange_circle: | Org capture template selection |
+| counsel-org-tag | :orange_circle: | Org tag selection |
+| counsel-org-file | :orange_circle: | Browse org files |
+| counsel-outline | :orange_circle: | Browse outline headings |
+| counsel-package | :orange_circle: | Browse packages |
+
+---
+
 ## Recommended Development Roadmap
 
 > *Reprioritized based on the user's actual Emacs workflow*
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index cc82510..f9fa126 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -14618,3 +14618,53 @@
 (def (cmd-ivy-avy app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ivy: avy selection")))
+
+;;; Round 127 — Counsel, Ivy, Swiper extended (batch 2)
+
+(def (cmd-counsel-faces app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing faces")))
+
+(def (cmd-counsel-file-jump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "File jump: "
+      (lambda (pat)
+        (echo-message! echo (str "Counsel: jumping to file matching '" pat "'"))))))
+
+(def (cmd-counsel-fzf app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "FZF: "
+      (lambda (pat)
+        (echo-message! echo (str "Counsel: fzf search for '" pat "'"))))))
+
+(def (cmd-counsel-linux-app app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Launch app: "
+      (lambda (app-name)
+        (echo-message! echo (str "Counsel: launching " app-name))))))
+
+(def (cmd-counsel-minor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing minor modes")))
+
+(def (cmd-counsel-org-capture app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: org capture template selection")))
+
+(def (cmd-counsel-org-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: org tag selection")))
+
+(def (cmd-counsel-org-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing org files")))
+
+(def (cmd-counsel-outline app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing outline headings")))
+
+(def (cmd-counsel-package app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Counsel: package '" pkg "'"))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 360b33c..d0d7f2e 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -15229,3 +15229,45 @@
 (def (cmd-doom-info app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Doom: displaying system info")))
+
+;;; Round 127 — Counsel, Ivy, Swiper extended (batch 1)
+
+(def (cmd-ivy-call app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: called action without exiting")))
+
+(def (cmd-ivy-immediate-done app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: immediate done (use exact input)")))
+
+(def (cmd-ivy-partial-or-done app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: partial completion or done")))
+
+(def (cmd-ivy-alt-done app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: alternate done")))
+
+(def (cmd-ivy-occur app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: opened occur buffer")))
+
+(def (cmd-ivy-occur-read-action app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ivy: read action from occur")))
+
+(def (cmd-counsel-colors-emacs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing Emacs colors")))
+
+(def (cmd-counsel-colors-web app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing web colors")))
+
+(def (cmd-counsel-command-history app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing command history")))
+
+(def (cmd-counsel-evil-registers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: browsing evil registers")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 51647d3..20b2c91 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4100,4 +4100,25 @@
   (register-command! 'ivy-switch-view cmd-ivy-switch-view)
   (register-command! 'ivy-dispatching-done cmd-ivy-dispatching-done)
   (register-command! 'ivy-avy cmd-ivy-avy)
+  ;; Round 127 — Counsel, Ivy, Swiper extended
+  (register-command! 'ivy-call cmd-ivy-call)
+  (register-command! 'ivy-immediate-done cmd-ivy-immediate-done)
+  (register-command! 'ivy-partial-or-done cmd-ivy-partial-or-done)
+  (register-command! 'ivy-alt-done cmd-ivy-alt-done)
+  (register-command! 'ivy-occur cmd-ivy-occur)
+  (register-command! 'ivy-occur-read-action cmd-ivy-occur-read-action)
+  (register-command! 'counsel-colors-emacs cmd-counsel-colors-emacs)
+  (register-command! 'counsel-colors-web cmd-counsel-colors-web)
+  (register-command! 'counsel-command-history cmd-counsel-command-history)
+  (register-command! 'counsel-evil-registers cmd-counsel-evil-registers)
+  (register-command! 'counsel-faces cmd-counsel-faces)
+  (register-command! 'counsel-file-jump cmd-counsel-file-jump)
+  (register-command! 'counsel-fzf cmd-counsel-fzf)
+  (register-command! 'counsel-linux-app cmd-counsel-linux-app)
+  (register-command! 'counsel-minor cmd-counsel-minor)
+  (register-command! 'counsel-org-capture cmd-counsel-org-capture)
+  (register-command! 'counsel-org-tag cmd-counsel-org-tag)
+  (register-command! 'counsel-org-file cmd-counsel-org-file)
+  (register-command! 'counsel-outline cmd-counsel-outline)
+  (register-command! 'counsel-package cmd-counsel-package)
 )