Round 219: SLY ext (20 commands)

ober

4feb72bb8a68decff01cadee4f15b12f9a7f7115

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 57c34c0..387b9e9 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 219 — SLY ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| sly-mrepl | :orange_circle: | Open SLY MREPL |
+| sly-compile-region | :orange_circle: | Compile region |
+| sly-eval-region | :orange_circle: | Evaluate region |
+| sly-describe-function | :orange_circle: | Describe function |
+| sly-apropos | :orange_circle: | Apropos search |
+| sly-hyperspec-lookup | :orange_circle: | HyperSpec lookup |
+| sly-who-macroexpands | :orange_circle: | Who macroexpands |
+| sly-stickers-dwim | :orange_circle: | Stickers DWIM |
+| sly-stickers-replay | :orange_circle: | Replay stickers |
+| sly-stickers-fetch | :orange_circle: | Fetch stickers |
+| sly-stickers-clear-defun-stickers | :orange_circle: | Clear defun stickers |
+| sly-stickers-clear-buffer-stickers | :orange_circle: | Clear buffer stickers |
+| sly-trace-dialog | :orange_circle: | Open trace dialog |
+| sly-trace-dialog-toggle-trace | :orange_circle: | Toggle trace |
+| sly-mrepl-sync | :orange_circle: | Sync MREPL package |
+| sly-mrepl-clear-repl | :orange_circle: | Clear MREPL |
+| sly-mrepl-indent-and-complete-symbol | :orange_circle: | Indent and complete symbol |
+| sly-db-continue | :orange_circle: | Debugger continue |
+| sly-db-restarts | :orange_circle: | Show debugger restarts |
+| sly-db-step | :orange_circle: | Debugger step |
+
 ### Round 218 — ERC ext, Elfeed ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bcce0af..f311597 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19080,3 +19080,45 @@
 (def (cmd-elfeed-score-print-entry-score app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Elfeed: printing entry score")))
+
+;;; Round 219 — SLY ext (batch 2)
+
+(def (cmd-sly-stickers-clear-defun-stickers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: cleared defun stickers")))
+
+(def (cmd-sly-stickers-clear-buffer-stickers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: cleared buffer stickers")))
+
+(def (cmd-sly-trace-dialog app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: opened trace dialog")))
+
+(def (cmd-sly-trace-dialog-toggle-trace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: toggled trace")))
+
+(def (cmd-sly-mrepl-sync app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: synced MREPL package")))
+
+(def (cmd-sly-mrepl-clear-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: cleared MREPL")))
+
+(def (cmd-sly-mrepl-indent-and-complete-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: indented and completed symbol")))
+
+(def (cmd-sly-db-continue app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: debugger continue")))
+
+(def (cmd-sly-db-restarts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: showing debugger restarts")))
+
+(def (cmd-sly-db-step app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: debugger step")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 4bdd465..1f09c4b 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -19717,3 +19717,49 @@
 (def (cmd-elfeed-show-visit app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Elfeed: visiting entry in browser")))
+
+;;; Round 219 — SLY ext (batch 1)
+
+(def (cmd-sly-mrepl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: opened MREPL")))
+
+(def (cmd-sly-compile-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: compiled region")))
+
+(def (cmd-sly-eval-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: evaluated region")))
+
+(def (cmd-sly-describe-function app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: describing function")))
+
+(def (cmd-sly-apropos app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Apropos: "
+      (lambda (pat)
+        (echo-message! echo (str "SLY: apropos " pat))))))
+
+(def (cmd-sly-hyperspec-lookup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Symbol: "
+      (lambda (sym)
+        (echo-message! echo (str "SLY: HyperSpec lookup " sym))))))
+
+(def (cmd-sly-who-macroexpands app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: who macroexpands")))
+
+(def (cmd-sly-stickers-dwim app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: stickers DWIM")))
+
+(def (cmd-sly-stickers-replay app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: replaying stickers")))
+
+(def (cmd-sly-stickers-fetch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SLY: fetching stickers")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index afcb001..b46051b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6032,4 +6032,25 @@
   (register-command! 'elfeed-tube-show cmd-elfeed-tube-show)
   (register-command! 'elfeed-score-enable cmd-elfeed-score-enable)
   (register-command! 'elfeed-score-print-entry-score cmd-elfeed-score-print-entry-score)
+  ;; Round 219
+  (register-command! 'sly-mrepl cmd-sly-mrepl)
+  (register-command! 'sly-compile-region cmd-sly-compile-region)
+  (register-command! 'sly-eval-region cmd-sly-eval-region)
+  (register-command! 'sly-describe-function cmd-sly-describe-function)
+  (register-command! 'sly-apropos cmd-sly-apropos)
+  (register-command! 'sly-hyperspec-lookup cmd-sly-hyperspec-lookup)
+  (register-command! 'sly-who-macroexpands cmd-sly-who-macroexpands)
+  (register-command! 'sly-stickers-dwim cmd-sly-stickers-dwim)
+  (register-command! 'sly-stickers-replay cmd-sly-stickers-replay)
+  (register-command! 'sly-stickers-fetch cmd-sly-stickers-fetch)
+  (register-command! 'sly-stickers-clear-defun-stickers cmd-sly-stickers-clear-defun-stickers)
+  (register-command! 'sly-stickers-clear-buffer-stickers cmd-sly-stickers-clear-buffer-stickers)
+  (register-command! 'sly-trace-dialog cmd-sly-trace-dialog)
+  (register-command! 'sly-trace-dialog-toggle-trace cmd-sly-trace-dialog-toggle-trace)
+  (register-command! 'sly-mrepl-sync cmd-sly-mrepl-sync)
+  (register-command! 'sly-mrepl-clear-repl cmd-sly-mrepl-clear-repl)
+  (register-command! 'sly-mrepl-indent-and-complete-symbol cmd-sly-mrepl-indent-and-complete-symbol)
+  (register-command! 'sly-db-continue cmd-sly-db-continue)
+  (register-command! 'sly-db-restarts cmd-sly-db-restarts)
+  (register-command! 'sly-db-step cmd-sly-db-step)
 )