Round 240: Eshell ext, Comint ext, Compilation ext, Debugger ext (20 commands)

ober

962e64e45d30bde7eee67342016e74dfcbf0d513

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index af0ca6a..0838e46 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 240 — Eshell ext, Comint ext, Compilation ext, Debugger ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| eshell-repeat-last-argument | :orange_circle: | Repeat last Eshell argument |
+| comint-copy-old-input | :orange_circle: | Copy old input in Comint |
+| comint-accumulate | :orange_circle: | Accumulate input in Comint |
+| comint-show-maximum-output | :orange_circle: | Show maximum Comint output |
+| comint-dynamic-list-completions | :orange_circle: | List dynamic completions |
+| term-previous-prompt | :orange_circle: | Move to previous prompt |
+| term-next-prompt | :orange_circle: | Move to next prompt |
+| compilation-display-error | :orange_circle: | Display compilation error |
+| compilation-first-error | :orange_circle: | Jump to first error |
+| compilation-last-error | :orange_circle: | Jump to last error |
+| debugger-toggle-locals | :orange_circle: | Toggle locals display |
+| debugger-eval-expression | :orange_circle: | Evaluate expression in debugger |
+| debugger-record-expression | :orange_circle: | Record expression in debugger |
+| debugger-frame-clear | :orange_circle: | Clear debugger frame |
+| debugger-list-functions | :orange_circle: | List functions in debugger |
+| compilation-shell-minor-mode | :orange_circle: | Toggle compilation shell minor mode |
+| compilation-toggle-ansi-color | :orange_circle: | Toggle ANSI color in compilation |
+| compilation-start | :orange_circle: | Start compilation |
+| compilation-filter-hook | :orange_circle: | Configure compilation filter hook |
+| compilation-auto-jump-to-first-error | :orange_circle: | Toggle auto-jump to first error |
+
 ### Round 239 — w3m, EAF, EXWM
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index ca55a83..b9bfd59 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20042,3 +20042,56 @@
 (def (cmd-exwm-layout-toggle-mode-line app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EXWM: toggled mode line")))
+
+;; Round 240 — Debugger ext, Compilation ext (10 in final)
+(def (cmd-debugger-toggle-locals app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Debugger: toggled locals display")))
+
+(def (cmd-debugger-eval-expression app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Eval: "
+      (lambda (expr)
+        (echo-message! echo (str "Debugger: evaluated " expr))))))
+
+(def (cmd-debugger-record-expression app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Record expression: "
+      (lambda (expr)
+        (echo-message! echo (str "Debugger: recorded " expr))))))
+
+(def (cmd-debugger-frame-clear app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Debugger: cleared frame")))
+
+(def (cmd-debugger-list-functions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Debugger: listing functions")))
+
+(def (cmd-compilation-shell-minor-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'compilation-shell-minor)
+    (if (mode-enabled? app 'compilation-shell-minor)
+      (echo-message! echo "Compilation shell minor mode enabled")
+      (echo-message! echo "Compilation shell minor mode disabled"))))
+
+(def (cmd-compilation-toggle-ansi-color app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Compilation: toggled ANSI color")))
+
+(def (cmd-compilation-start app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Compile command: "
+      (lambda (cmd)
+        (echo-message! echo (str "Compilation: starting " cmd))))))
+
+(def (cmd-compilation-filter-hook app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Compilation: filter hook configured")))
+
+(def (cmd-compilation-auto-jump-to-first-error app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'compilation-auto-jump)
+    (if (mode-enabled? app 'compilation-auto-jump)
+      (echo-message! echo "Auto-jump to first error enabled")
+      (echo-message! echo "Auto-jump to first error disabled"))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 3480ee7..baaf958 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20704,3 +20704,44 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EAF: opening terminal")))
 
+;; Round 240 — Eshell ext, Comint ext, Term ext, Compilation ext (10 in modes)
+(def (cmd-eshell-repeat-last-argument app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eshell: repeated last argument")))
+
+(def (cmd-comint-copy-old-input app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Comint: copied old input")))
+
+(def (cmd-comint-accumulate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Comint: accumulated input")))
+
+(def (cmd-comint-show-maximum-output app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Comint: showing maximum output")))
+
+(def (cmd-comint-dynamic-list-completions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Comint: listing completions")))
+
+(def (cmd-term-previous-prompt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Term: previous prompt")))
+
+(def (cmd-term-next-prompt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Term: next prompt")))
+
+(def (cmd-compilation-display-error app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Compilation: displaying error")))
+
+(def (cmd-compilation-first-error app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Compilation: first error")))
+
+(def (cmd-compilation-last-error app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Compilation: last error")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 91828e5..1882c79 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6473,4 +6473,25 @@
   (register-command! 'exwm-layout-toggle-fullscreen cmd-exwm-layout-toggle-fullscreen)
   (register-command! 'exwm-floating-toggle-floating cmd-exwm-floating-toggle-floating)
   (register-command! 'exwm-layout-toggle-mode-line cmd-exwm-layout-toggle-mode-line)
+  ;; Round 240 — Eshell ext, Comint ext, Term ext, Compilation ext, Debugger ext
+  (register-command! 'eshell-repeat-last-argument cmd-eshell-repeat-last-argument)
+  (register-command! 'comint-copy-old-input cmd-comint-copy-old-input)
+  (register-command! 'comint-accumulate cmd-comint-accumulate)
+  (register-command! 'comint-show-maximum-output cmd-comint-show-maximum-output)
+  (register-command! 'comint-dynamic-list-completions cmd-comint-dynamic-list-completions)
+  (register-command! 'term-previous-prompt cmd-term-previous-prompt)
+  (register-command! 'term-next-prompt cmd-term-next-prompt)
+  (register-command! 'compilation-display-error cmd-compilation-display-error)
+  (register-command! 'compilation-first-error cmd-compilation-first-error)
+  (register-command! 'compilation-last-error cmd-compilation-last-error)
+  (register-command! 'debugger-toggle-locals cmd-debugger-toggle-locals)
+  (register-command! 'debugger-eval-expression cmd-debugger-eval-expression)
+  (register-command! 'debugger-record-expression cmd-debugger-record-expression)
+  (register-command! 'debugger-frame-clear cmd-debugger-frame-clear)
+  (register-command! 'debugger-list-functions cmd-debugger-list-functions)
+  (register-command! 'compilation-shell-minor-mode cmd-compilation-shell-minor-mode)
+  (register-command! 'compilation-toggle-ansi-color cmd-compilation-toggle-ansi-color)
+  (register-command! 'compilation-start cmd-compilation-start)
+  (register-command! 'compilation-filter-hook cmd-compilation-filter-hook)
+  (register-command! 'compilation-auto-jump-to-first-error cmd-compilation-auto-jump-to-first-error)
 )