Round 184: Geiser, SLIME-ext, Cider-ext, Sly commands

ober

d7dcb4a7ba40b59dd67556d4c8bd85852eba503c

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 6560389..e83498b 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 184 — Geiser, SLIME-ext, Cider-ext, Sly
+
+| Feature | Status | Notes |
+|---|---|---|
+| geiser-doc-symbol-at-point | :orange_circle: | Geiser docs at point |
+| geiser-expand-definition | :orange_circle: | Expand Geiser definition |
+| geiser-squarify | :orange_circle: | Toggle square brackets |
+| geiser-add-to-load-path | :orange_circle: | Add to Geiser load path |
+| slime-apropos | :orange_circle: | SLIME apropos search |
+| slime-hyperspec-lookup | :orange_circle: | HyperSpec lookup |
+| slime-who-calls | :orange_circle: | Find callers of function |
+| slime-who-references | :orange_circle: | Find references to symbol |
+| slime-inspect | :orange_circle: | SLIME inspector |
+| slime-who-macroexpands | :orange_circle: | Find macroexpansions |
+| slime-disassemble-symbol | :orange_circle: | Disassemble symbol |
+| cider-classpath | :orange_circle: | Show CIDER classpath |
+| cider-browse-ns | :orange_circle: | Browse Clojure namespace |
+| cider-browse-spec | :orange_circle: | Browse Clojure spec |
+| cider-enlighten-mode | :orange_circle: | CIDER enlighten mode |
+| cider-toggle-trace-var | :orange_circle: | Toggle var tracing |
+| cider-toggle-trace-ns | :orange_circle: | Toggle namespace tracing |
+| sly-stickers-toggle | :orange_circle: | Toggle Sly sticker |
+| sly-mrepl-new | :orange_circle: | Open new Sly MREPL |
+| sly-db-abort | :orange_circle: | Abort Sly debugger |
+
 ### Round 183 — Idris, PureScript, Elm, F#
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 529ea26..3cbbcac 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -17397,3 +17397,53 @@
 (def (cmd-fsharp-send-region app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "F#: sent region to REPL")))
+
+;; Round 184 — Geiser, SLIME-ext, Cider-ext, Sly (batch 2)
+(def (cmd-slime-disassemble-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Disassemble: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: disassembling " sym))))))
+
+(def (cmd-cider-classpath app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CIDER: showing classpath")))
+
+(def (cmd-cider-browse-ns app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Namespace: "
+      (lambda (ns)
+        (echo-message! echo (str "CIDER: browsing namespace " ns))))))
+
+(def (cmd-cider-browse-spec app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Spec: "
+      (lambda (spec)
+        (echo-message! echo (str "CIDER: browsing spec " spec))))))
+
+(def (cmd-cider-enlighten-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'cider-enlighten)
+    (if (mode-enabled? app 'cider-enlighten)
+      (echo-message! echo "CIDER enlighten mode enabled")
+      (echo-message! echo "CIDER enlighten mode disabled"))))
+
+(def (cmd-cider-toggle-trace-var app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CIDER: toggled var tracing")))
+
+(def (cmd-cider-toggle-trace-ns app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CIDER: toggled namespace tracing")))
+
+(def (cmd-sly-stickers-toggle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sly: toggled sticker at point")))
+
+(def (cmd-sly-mrepl-new app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sly: opened new MREPL")))
+
+(def (cmd-sly-db-abort app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sly: aborted debugger")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index f8ae4d1..de18076 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -18027,3 +18027,58 @@
 (def (cmd-purescript-goto-definition app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "PureScript: going to definition")))
+
+;; Round 184 — Geiser, SLIME-ext, Cider-ext, Sly (batch 1)
+(def (cmd-geiser-doc-symbol-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Geiser: showing documentation at point")))
+
+(def (cmd-geiser-expand-definition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Geiser: expanding definition")))
+
+(def (cmd-geiser-squarify app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Geiser: toggled square brackets")))
+
+(def (cmd-geiser-add-to-load-path app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Load path: "
+      (lambda (path)
+        (echo-message! echo (str "Geiser: added " path " to load path"))))))
+
+(def (cmd-slime-apropos app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Apropos: "
+      (lambda (query)
+        (echo-message! echo (str "SLIME: apropos " query))))))
+
+(def (cmd-slime-hyperspec-lookup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "HyperSpec symbol: "
+      (lambda (sym)
+        (echo-message! echo (str "SLIME: looking up " sym " in HyperSpec"))))))
+
+(def (cmd-slime-who-calls app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Who calls: "
+      (lambda (name)
+        (echo-message! echo (str "SLIME: finding callers of " name))))))
+
+(def (cmd-slime-who-references app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Who references: "
+      (lambda (name)
+        (echo-message! echo (str "SLIME: finding references to " name))))))
+
+(def (cmd-slime-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Inspect: "
+      (lambda (expr)
+        (echo-message! echo (str "SLIME: inspecting " expr))))))
+
+(def (cmd-slime-who-macroexpands app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Who macroexpands: "
+      (lambda (name)
+        (echo-message! echo (str "SLIME: finding macroexpansions of " name))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 8a3733d..76dc666 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -5297,4 +5297,25 @@
   (register-command! 'fsharp-run cmd-fsharp-run)
   (register-command! 'fsharp-format-buffer cmd-fsharp-format-buffer)
   (register-command! 'fsharp-send-region cmd-fsharp-send-region)
+  ;; Round 184 — Geiser, SLIME-ext, Cider-ext, Sly
+  (register-command! 'geiser-doc-symbol-at-point cmd-geiser-doc-symbol-at-point)
+  (register-command! 'geiser-expand-definition cmd-geiser-expand-definition)
+  (register-command! 'geiser-squarify cmd-geiser-squarify)
+  (register-command! 'geiser-add-to-load-path cmd-geiser-add-to-load-path)
+  (register-command! 'slime-apropos cmd-slime-apropos)
+  (register-command! 'slime-hyperspec-lookup cmd-slime-hyperspec-lookup)
+  (register-command! 'slime-who-calls cmd-slime-who-calls)
+  (register-command! 'slime-who-references cmd-slime-who-references)
+  (register-command! 'slime-inspect cmd-slime-inspect)
+  (register-command! 'slime-who-macroexpands cmd-slime-who-macroexpands)
+  (register-command! 'slime-disassemble-symbol cmd-slime-disassemble-symbol)
+  (register-command! 'cider-classpath cmd-cider-classpath)
+  (register-command! 'cider-browse-ns cmd-cider-browse-ns)
+  (register-command! 'cider-browse-spec cmd-cider-browse-spec)
+  (register-command! 'cider-enlighten-mode cmd-cider-enlighten-mode)
+  (register-command! 'cider-toggle-trace-var cmd-cider-toggle-trace-var)
+  (register-command! 'cider-toggle-trace-ns cmd-cider-toggle-trace-ns)
+  (register-command! 'sly-stickers-toggle cmd-sly-stickers-toggle)
+  (register-command! 'sly-mrepl-new cmd-sly-mrepl-new)
+  (register-command! 'sly-db-abort cmd-sly-db-abort)
 )