Round 133: Add 20 Paredit, Smartparens, Lispy extended commands

ober

5b6acec0d5cc54864c923507f7f35154ade83d4b

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index b860fc5..85e8533 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4315,6 +4315,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 
 ---
 
+### Round 133 — Paredit, Smartparens, Lispy Extended
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| paredit-add-to-next-list | :orange_circle: | Add sexp to next list |
+| paredit-add-to-previous-list | :orange_circle: | Add sexp to previous list |
+| paredit-join-with-next-list | :orange_circle: | Join with next list |
+| paredit-join-with-previous-list | :orange_circle: | Join with previous list |
+| sp-swap-enclosing | :orange_circle: | Swap enclosing delimiters |
+| sp-splice-sexp-killing-around | :orange_circle: | Splice killing around |
+| sp-emit-sexp | :orange_circle: | Emit sexp |
+| sp-absorb-sexp | :orange_circle: | Absorb sexp |
+| sp-convolute-sexp | :orange_circle: | Convolute sexp |
+| sp-transpose-sexp | :orange_circle: | Transpose sexps |
+| sp-split-sexp | :orange_circle: | Split sexp |
+| sp-join-sexp | :orange_circle: | Join sexps |
+| sp-select-next-thing-exchange | :orange_circle: | Select next thing (exchange) |
+| sp-highlight-current-sexp | :orange_circle: | Highlight current sexp |
+| sp-show-enclosing-pair | :orange_circle: | Show enclosing pair |
+| lispy-ace-paren | :orange_circle: | Ace jump to paren |
+| lispy-ace-char | :orange_circle: | Ace jump to char |
+| lispy-ace-symbol | :orange_circle: | Ace jump to symbol |
+| lispy-ace-subword | :orange_circle: | Ace jump to subword |
+| lispy-different | :orange_circle: | Jump to different position |
+
+---
+
 ## 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 027ca6e..7c5e325 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -14898,3 +14898,45 @@
 (def (cmd-minions-minor-modes-menu app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Minions: showing minor modes menu")))
+
+;;; Round 133 — Paredit, Smartparens, Lispy extended (batch 2)
+
+(def (cmd-sp-split-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: split sexp")))
+
+(def (cmd-sp-join-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: joined sexps")))
+
+(def (cmd-sp-select-next-thing-exchange app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: selected next thing (exchange)")))
+
+(def (cmd-sp-highlight-current-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: highlighted current sexp")))
+
+(def (cmd-sp-show-enclosing-pair app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: showing enclosing pair")))
+
+(def (cmd-lispy-ace-paren app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lispy: ace jump to paren")))
+
+(def (cmd-lispy-ace-char app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lispy: ace jump to char")))
+
+(def (cmd-lispy-ace-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lispy: ace jump to symbol")))
+
+(def (cmd-lispy-ace-subword app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lispy: ace jump to subword")))
+
+(def (cmd-lispy-different app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lispy: jumped to different position")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 1d30d7c..aa74b07 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -15509,3 +15509,45 @@
 (def (cmd-copilot-accept-completion-by-line app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Copilot: accepted completion by line")))
+
+;;; Round 133 — Paredit, Smartparens, Lispy extended (batch 1)
+
+(def (cmd-paredit-add-to-next-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Paredit: added sexp to next list")))
+
+(def (cmd-paredit-add-to-previous-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Paredit: added sexp to previous list")))
+
+(def (cmd-paredit-join-with-next-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Paredit: joined with next list")))
+
+(def (cmd-paredit-join-with-previous-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Paredit: joined with previous list")))
+
+(def (cmd-sp-swap-enclosing app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: swapped enclosing delimiters")))
+
+(def (cmd-sp-splice-sexp-killing-around app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: spliced sexp killing around")))
+
+(def (cmd-sp-emit-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: emitted sexp")))
+
+(def (cmd-sp-absorb-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: absorbed sexp")))
+
+(def (cmd-sp-convolute-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: convoluted sexp")))
+
+(def (cmd-sp-transpose-sexp app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Smartparens: transposed sexps")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 7d7285f..c8fdeef 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4226,4 +4226,25 @@
   (register-command! 'ellama-code-add cmd-ellama-code-add)
   (register-command! 'ellama-code-edit cmd-ellama-code-edit)
   (register-command! 'minions-minor-modes-menu cmd-minions-minor-modes-menu)
+  ;; Round 133 — Paredit, Smartparens, Lispy extended
+  (register-command! 'paredit-add-to-next-list cmd-paredit-add-to-next-list)
+  (register-command! 'paredit-add-to-previous-list cmd-paredit-add-to-previous-list)
+  (register-command! 'paredit-join-with-next-list cmd-paredit-join-with-next-list)
+  (register-command! 'paredit-join-with-previous-list cmd-paredit-join-with-previous-list)
+  (register-command! 'sp-swap-enclosing cmd-sp-swap-enclosing)
+  (register-command! 'sp-splice-sexp-killing-around cmd-sp-splice-sexp-killing-around)
+  (register-command! 'sp-emit-sexp cmd-sp-emit-sexp)
+  (register-command! 'sp-absorb-sexp cmd-sp-absorb-sexp)
+  (register-command! 'sp-convolute-sexp cmd-sp-convolute-sexp)
+  (register-command! 'sp-transpose-sexp cmd-sp-transpose-sexp)
+  (register-command! 'sp-split-sexp cmd-sp-split-sexp)
+  (register-command! 'sp-join-sexp cmd-sp-join-sexp)
+  (register-command! 'sp-select-next-thing-exchange cmd-sp-select-next-thing-exchange)
+  (register-command! 'sp-highlight-current-sexp cmd-sp-highlight-current-sexp)
+  (register-command! 'sp-show-enclosing-pair cmd-sp-show-enclosing-pair)
+  (register-command! 'lispy-ace-paren cmd-lispy-ace-paren)
+  (register-command! 'lispy-ace-char cmd-lispy-ace-char)
+  (register-command! 'lispy-ace-symbol cmd-lispy-ace-symbol)
+  (register-command! 'lispy-ace-subword cmd-lispy-ace-subword)
+  (register-command! 'lispy-different cmd-lispy-different)
 )