Round 237: Helm ext, Counsel ext (20 commands)

ober

9fbced175cffb5313b6462d11e4ee7c53f87ee42

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index ccbc1e7..8dddc37 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 237 — Helm ext, Counsel ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| helm-semantic-or-imenu | :orange_circle: | Helm semantic/imenu browser |
+| helm-colors | :orange_circle: | Helm color browser |
+| helm-calcul-expression | :orange_circle: | Helm expression calculator |
+| helm-top | :orange_circle: | Helm system process viewer |
+| helm-select-xfont | :orange_circle: | Helm font selector |
+| helm-run-external-command | :orange_circle: | Run external command via Helm |
+| helm-regexp | :orange_circle: | Helm regexp search |
+| helm-surfraw | :orange_circle: | Helm surfraw web search |
+| helm-info | :orange_circle: | Helm info browser |
+| helm-man-woman | :orange_circle: | Helm man page browser |
+| counsel-git-log | :orange_circle: | Browse git log via Counsel |
+| counsel-mark-ring | :orange_circle: | Browse mark ring via Counsel |
+| counsel-org-goto | :orange_circle: | Navigate org headings via Counsel |
+| counsel-locate | :orange_circle: | Locate files via Counsel |
+| counsel-compile | :orange_circle: | Compile via Counsel |
+| counsel-world-clock | :orange_circle: | World clock via Counsel |
+| counsel-descbinds | :orange_circle: | Describe bindings via Counsel |
+| counsel-rhythmbox | :orange_circle: | Rhythmbox browser via Counsel |
+| counsel-switch-to-shell-buffer | :orange_circle: | Switch to shell buffer via Counsel |
+| counsel-imenu | :orange_circle: | Imenu browser via Counsel |
+
 ### Round 236 — BBDB ext, Gnus ext, SLIME ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 443a508..ce15d37 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19905,3 +19905,48 @@
 (def (cmd-slime-profiled-functions app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "SLIME: listing profiled functions")))
+
+;; Round 237 — Helm ext, Counsel ext (10 in final)
+(def (cmd-counsel-git-log app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: git log browser")))
+
+(def (cmd-counsel-mark-ring app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: mark ring browser")))
+
+(def (cmd-counsel-org-goto app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: org heading navigator")))
+
+(def (cmd-counsel-locate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Locate: "
+      (lambda (pat)
+        (echo-message! echo (str "Counsel: locating " pat))))))
+
+(def (cmd-counsel-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Compile command: "
+      (lambda (cmd)
+        (echo-message! echo (str "Counsel: compiling with " cmd))))))
+
+(def (cmd-counsel-world-clock app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: world clock")))
+
+(def (cmd-counsel-descbinds app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: describe bindings")))
+
+(def (cmd-counsel-rhythmbox app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: rhythmbox browser")))
+
+(def (cmd-counsel-switch-to-shell-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: switch to shell buffer")))
+
+(def (cmd-counsel-imenu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Counsel: imenu browser")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 10c75cc..23bd6dc 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20567,3 +20567,54 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "SLIME: listing threads")))
 
+;; Round 237 — Helm ext, Counsel ext (10 in modes)
+(def (cmd-helm-semantic-or-imenu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: semantic/imenu browser")))
+
+(def (cmd-helm-colors app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: color browser")))
+
+(def (cmd-helm-calcul-expression app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Expression: "
+      (lambda (expr)
+        (echo-message! echo (str "Helm: calculated " expr))))))
+
+(def (cmd-helm-top app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: showing system processes")))
+
+(def (cmd-helm-select-xfont app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: font selector")))
+
+(def (cmd-helm-run-external-command app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "External command: "
+      (lambda (cmd)
+        (echo-message! echo (str "Helm: running " cmd))))))
+
+(def (cmd-helm-regexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Regexp: "
+      (lambda (re)
+        (echo-message! echo (str "Helm: regexp search " re))))))
+
+(def (cmd-helm-surfraw app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Surfraw query: "
+      (lambda (q)
+        (echo-message! echo (str "Helm: surfraw search " q))))))
+
+(def (cmd-helm-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: info browser")))
+
+(def (cmd-helm-man-woman app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Man page: "
+      (lambda (page)
+        (echo-message! echo (str "Helm: showing man page " page))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 69bad2a..746cb69 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6410,4 +6410,25 @@
   (register-command! 'slime-toggle-fancy-trace cmd-slime-toggle-fancy-trace)
   (register-command! 'slime-profile-package cmd-slime-profile-package)
   (register-command! 'slime-profiled-functions cmd-slime-profiled-functions)
+  ;; Round 237 — Helm ext, Counsel ext
+  (register-command! 'helm-semantic-or-imenu cmd-helm-semantic-or-imenu)
+  (register-command! 'helm-colors cmd-helm-colors)
+  (register-command! 'helm-calcul-expression cmd-helm-calcul-expression)
+  (register-command! 'helm-top cmd-helm-top)
+  (register-command! 'helm-select-xfont cmd-helm-select-xfont)
+  (register-command! 'helm-run-external-command cmd-helm-run-external-command)
+  (register-command! 'helm-regexp cmd-helm-regexp)
+  (register-command! 'helm-surfraw cmd-helm-surfraw)
+  (register-command! 'helm-info cmd-helm-info)
+  (register-command! 'helm-man-woman cmd-helm-man-woman)
+  (register-command! 'counsel-git-log cmd-counsel-git-log)
+  (register-command! 'counsel-mark-ring cmd-counsel-mark-ring)
+  (register-command! 'counsel-org-goto cmd-counsel-org-goto)
+  (register-command! 'counsel-locate cmd-counsel-locate)
+  (register-command! 'counsel-compile cmd-counsel-compile)
+  (register-command! 'counsel-world-clock cmd-counsel-world-clock)
+  (register-command! 'counsel-descbinds cmd-counsel-descbinds)
+  (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)
 )