Round 264: Leiningen ext, Boot ext, Clojure ext, Racket ext, Guile ext (20 commands)

ober

dd5706327848440621a7c7a0ea53c32b8ccc18e1

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 3e6fe88..ce6d04b 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 264 — Leiningen ext, Boot ext, Clojure ext, Racket ext, Guile ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| lein-repl | :orange_circle: | Start Leiningen REPL |
+| lein-deps | :orange_circle: | List Leiningen dependencies |
+| lein-jar | :orange_circle: | Build Leiningen JAR |
+| lein-uberjar | :orange_circle: | Build Leiningen uberjar |
+| boot-build | :orange_circle: | Build with Boot |
+| boot-test | :orange_circle: | Test with Boot |
+| boot-repl | :orange_circle: | Start Boot REPL |
+| boot-dev | :orange_circle: | Start Boot dev environment |
+| clojure-eval-buffer | :orange_circle: | Evaluate Clojure buffer |
+| clojure-eval-region | :orange_circle: | Evaluate Clojure region |
+| clojure-find-def | :orange_circle: | Find Clojure definition |
+| clojure-doc-at-point | :orange_circle: | Show Clojure doc at point |
+| racket-doc | :orange_circle: | Show Racket documentation |
+| racket-expand-macro | :orange_circle: | Expand Racket macro |
+| racket-profile | :orange_circle: | Profile Racket buffer |
+| racket-check-syntax | :orange_circle: | Check Racket syntax |
+| guile-eval-buffer | :orange_circle: | Evaluate Guile buffer |
+| guile-repl | :orange_circle: | Start Guile REPL |
+| guile-load-file | :orange_circle: | Load Guile file |
+| guile-compile-file | :orange_circle: | Compile Guile file |
+
 ### Round 263 — Gradle ext, Maven ext, sbt ext, Mill ext, Leiningen ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bfc9045..ed2e857 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21175,4 +21175,48 @@
 
 (def (cmd-lein-test app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Leiningen: running tests")))
\ No newline at end of file
+    (echo-message! echo "Leiningen: running tests")))
+
+;;; Round 264 — Clojure ext, Racket ext, Guile ext (batch 2)
+
+(def (cmd-clojure-find-def app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Clojure: finding definition at point")))
+
+(def (cmd-clojure-doc-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Clojure: showing doc for symbol at point")))
+
+(def (cmd-racket-doc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Symbol: "
+      (lambda (sym)
+        (echo-message! echo (str "Racket: documentation for " sym))))))
+
+(def (cmd-racket-expand-macro app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Racket: expanding macro at point")))
+
+(def (cmd-racket-profile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Racket: profiling buffer")))
+
+(def (cmd-racket-check-syntax app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Racket: checking syntax")))
+
+(def (cmd-guile-eval-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guile: evaluating buffer")))
+
+(def (cmd-guile-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guile: starting REPL")))
+
+(def (cmd-guile-load-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guile: loading file")))
+
+(def (cmd-guile-compile-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guile: compiling file")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 416f3a5..4074087 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21796,3 +21796,45 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "sbt: compiling project")))
 
+;;; Round 264 — Leiningen ext, Boot ext, Clojure ext, Racket ext, Guile ext (batch 1)
+
+(def (cmd-lein-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Leiningen: starting REPL")))
+
+(def (cmd-lein-deps app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Leiningen: listing dependencies")))
+
+(def (cmd-lein-jar app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Leiningen: building JAR")))
+
+(def (cmd-lein-uberjar app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Leiningen: building uberjar")))
+
+(def (cmd-boot-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Boot: building project")))
+
+(def (cmd-boot-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Boot: running tests")))
+
+(def (cmd-boot-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Boot: starting REPL")))
+
+(def (cmd-boot-dev app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Boot: starting dev environment")))
+
+(def (cmd-clojure-eval-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Clojure: evaluating buffer")))
+
+(def (cmd-clojure-eval-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Clojure: evaluating region")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 022066e..d3dc2a8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6961,4 +6961,25 @@
   (register-command! 'mill-clean cmd-mill-clean)
   (register-command! 'lein-run cmd-lein-run)
   (register-command! 'lein-test cmd-lein-test)
+  ;; Round 264
+  (register-command! 'lein-repl cmd-lein-repl)
+  (register-command! 'lein-deps cmd-lein-deps)
+  (register-command! 'lein-jar cmd-lein-jar)
+  (register-command! 'lein-uberjar cmd-lein-uberjar)
+  (register-command! 'boot-build cmd-boot-build)
+  (register-command! 'boot-test cmd-boot-test)
+  (register-command! 'boot-repl cmd-boot-repl)
+  (register-command! 'boot-dev cmd-boot-dev)
+  (register-command! 'clojure-eval-buffer cmd-clojure-eval-buffer)
+  (register-command! 'clojure-eval-region cmd-clojure-eval-region)
+  (register-command! 'clojure-find-def cmd-clojure-find-def)
+  (register-command! 'clojure-doc-at-point cmd-clojure-doc-at-point)
+  (register-command! 'racket-doc cmd-racket-doc)
+  (register-command! 'racket-expand-macro cmd-racket-expand-macro)
+  (register-command! 'racket-profile cmd-racket-profile)
+  (register-command! 'racket-check-syntax cmd-racket-check-syntax)
+  (register-command! 'guile-eval-buffer cmd-guile-eval-buffer)
+  (register-command! 'guile-repl cmd-guile-repl)
+  (register-command! 'guile-load-file cmd-guile-load-file)
+  (register-command! 'guile-compile-file cmd-guile-compile-file)
 )