Round 236: BBDB ext, Gnus ext, SLIME ext (20 commands)

ober

73a8be82f165bcb018c826b7000b555f91814b53

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 295547a..ccbc1e7 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 236 — BBDB ext, Gnus ext, SLIME ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| bbdb-display-all | :orange_circle: | Display all BBDB records |
+| bbdb-delete-record | :orange_circle: | Delete current BBDB record |
+| bbdb-edit-field | :orange_circle: | Edit field in BBDB record |
+| bbdb-save | :orange_circle: | Save BBDB database |
+| gnus-summary-prev-unread-article | :orange_circle: | Previous unread article |
+| gnus-summary-move-article | :orange_circle: | Move article to group |
+| gnus-article-toggle-headers | :orange_circle: | Toggle article headers |
+| slime-who-binds | :orange_circle: | Find who binds a variable |
+| slime-who-sets | :orange_circle: | Find who sets a variable |
+| slime-list-threads | :orange_circle: | List Lisp threads |
+| slime-interrupt | :orange_circle: | Interrupt current evaluation |
+| slime-restart-inferior-lisp | :orange_circle: | Restart inferior Lisp |
+| slime-toggle-trace-fdefinition | :orange_circle: | Toggle trace on function |
+| slime-undefine-function | :orange_circle: | Undefine a function |
+| slime-export-symbol | :orange_circle: | Export symbol from package |
+| slime-unexport-symbol | :orange_circle: | Unexport symbol from package |
+| slime-sync-package-and-default-directory | :orange_circle: | Sync package and directory |
+| slime-toggle-fancy-trace | :orange_circle: | Toggle fancy trace output |
+| slime-profile-package | :orange_circle: | Profile a package |
+| slime-profiled-functions | :orange_circle: | List profiled functions |
+
 ### Round 235 — Wanderlust, mu4e ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 8798add..443a508 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19854,3 +19854,54 @@
 (def (cmd-mu4e-headers-mark-for-refile app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "mu4e: marked for refile")))
+
+;; Round 236 — BBDB ext, Gnus ext, SLIME ext (10 in final)
+(def (cmd-slime-interrupt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: interrupted evaluation")))
+
+(def (cmd-slime-restart-inferior-lisp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: restarting inferior Lisp")))
+
+(def (cmd-slime-toggle-trace-fdefinition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Trace function: "
+      (lambda (fn)
+        (echo-message! echo (str "SLIME: toggled trace on " fn))))))
+
+(def (cmd-slime-undefine-function app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Undefine function: "
+      (lambda (fn)
+        (echo-message! echo (str "SLIME: undefined " fn))))))
+
+(def (cmd-slime-export-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Export symbol: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: exported " sym))))))
+
+(def (cmd-slime-unexport-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Unexport symbol: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: unexported " sym))))))
+
+(def (cmd-slime-sync-package-and-default-directory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: synced package and directory")))
+
+(def (cmd-slime-toggle-fancy-trace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: toggled fancy trace")))
+
+(def (cmd-slime-profile-package app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Profile package: "
+      (lambda (pkg)
+        (echo-message! echo (str "SLIME: profiling package " pkg))))))
+
+(def (cmd-slime-profiled-functions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: listing profiled functions")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 30bca25..10c75cc 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20518,3 +20518,52 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "WL: draft killed")))
 
+;; Round 236 — BBDB ext, Gnus ext, SLIME ext (10 in modes)
+(def (cmd-bbdb-display-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BBDB: displaying all records")))
+
+(def (cmd-bbdb-delete-record app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BBDB: deleted current record")))
+
+(def (cmd-bbdb-edit-field app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Field to edit: "
+      (lambda (field)
+        (echo-message! echo (str "BBDB: editing field " field))))))
+
+(def (cmd-bbdb-save app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BBDB: database saved")))
+
+(def (cmd-gnus-summary-prev-unread-article app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gnus: previous unread article")))
+
+(def (cmd-gnus-summary-move-article app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Move to group: "
+      (lambda (group)
+        (echo-message! echo (str "Gnus: moved article to " group))))))
+
+(def (cmd-gnus-article-toggle-headers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gnus: toggled article headers")))
+
+(def (cmd-slime-who-binds app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Who binds: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: finding bindings of " sym))))))
+
+(def (cmd-slime-who-sets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Who sets: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: finding setters of " sym))))))
+
+(def (cmd-slime-list-threads app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLIME: listing threads")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 1fe6cc3..69bad2a 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6389,4 +6389,25 @@
   (register-command! 'mu4e-view-open-attachment cmd-mu4e-view-open-attachment)
   (register-command! 'mu4e-headers-mark-for-trash cmd-mu4e-headers-mark-for-trash)
   (register-command! 'mu4e-headers-mark-for-refile cmd-mu4e-headers-mark-for-refile)
+  ;; Round 236 — BBDB ext, Gnus ext, SLIME ext
+  (register-command! 'bbdb-display-all cmd-bbdb-display-all)
+  (register-command! 'bbdb-delete-record cmd-bbdb-delete-record)
+  (register-command! 'bbdb-edit-field cmd-bbdb-edit-field)
+  (register-command! 'bbdb-save cmd-bbdb-save)
+  (register-command! 'gnus-summary-prev-unread-article cmd-gnus-summary-prev-unread-article)
+  (register-command! 'gnus-summary-move-article cmd-gnus-summary-move-article)
+  (register-command! 'gnus-article-toggle-headers cmd-gnus-article-toggle-headers)
+  (register-command! 'slime-who-binds cmd-slime-who-binds)
+  (register-command! 'slime-who-sets cmd-slime-who-sets)
+  (register-command! 'slime-list-threads cmd-slime-list-threads)
+  (register-command! 'slime-interrupt cmd-slime-interrupt)
+  (register-command! 'slime-restart-inferior-lisp cmd-slime-restart-inferior-lisp)
+  (register-command! 'slime-toggle-trace-fdefinition cmd-slime-toggle-trace-fdefinition)
+  (register-command! 'slime-undefine-function cmd-slime-undefine-function)
+  (register-command! 'slime-export-symbol cmd-slime-export-symbol)
+  (register-command! 'slime-unexport-symbol cmd-slime-unexport-symbol)
+  (register-command! 'slime-sync-package-and-default-directory cmd-slime-sync-package-and-default-directory)
+  (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)
 )