Round 262: Turborepo ext, Nx ext, Buck2 ext, Pants ext, Gradle ext (20 commands)

ober

94c03b6506b9f3fc655169009c6b8dddf30abf84

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index d1e7bb3..35decd8 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 262 — Turborepo ext, Nx ext, Buck2 ext, Pants ext, Gradle ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| turbo-run | :orange_circle: | Run Turborepo task |
+| turbo-prune | :orange_circle: | Prune Turborepo for package |
+| turbo-graph | :orange_circle: | Generate Turborepo task graph |
+| turbo-lint | :orange_circle: | Lint Turborepo packages |
+| nx-run | :orange_circle: | Run Nx target |
+| nx-graph | :orange_circle: | Generate Nx dependency graph |
+| nx-affected | :orange_circle: | List Nx affected projects |
+| nx-migrate | :orange_circle: | Run Nx migrations |
+| buck2-build | :orange_circle: | Build with Buck2 |
+| buck2-test | :orange_circle: | Test with Buck2 |
+| buck2-run | :orange_circle: | Run Buck2 target |
+| buck2-targets | :orange_circle: | List Buck2 targets |
+| pants-run | :orange_circle: | Run Pants target |
+| pants-test | :orange_circle: | Run Pants tests |
+| pants-fmt | :orange_circle: | Format code with Pants |
+| pants-lint | :orange_circle: | Lint code with Pants |
+| pants-check | :orange_circle: | Type-check with Pants |
+| pants-package | :orange_circle: | Package artifacts with Pants |
+| gradle-build | :orange_circle: | Build with Gradle |
+| gradle-test | :orange_circle: | Test with Gradle |
+
 ### Round 261 — Railway ext, Render ext, Deno ext, Bun ext, pnpm ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 7980281..664618d 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21087,4 +21087,50 @@
   (let* ((echo (app-state-echo app)))
     (echo-read-string echo "Package: "
       (lambda (pkg)
-        (echo-message! echo (str "pnpm: adding " pkg))))))
\ No newline at end of file
+        (echo-message! echo (str "pnpm: adding " pkg))))))
+
+;;; Round 262 — Buck2 ext, Pants ext, Gradle ext (batch 2)
+
+(def (cmd-buck2-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Buck2: running " target))))))
+
+(def (cmd-buck2-targets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Buck2: listing targets")))
+
+(def (cmd-pants-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Pants: running " target))))))
+
+(def (cmd-pants-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pants: running tests")))
+
+(def (cmd-pants-fmt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pants: formatting code")))
+
+(def (cmd-pants-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pants: linting code")))
+
+(def (cmd-pants-check app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pants: checking types")))
+
+(def (cmd-pants-package app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pants: packaging artifacts")))
+
+(def (cmd-gradle-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gradle: building project")))
+
+(def (cmd-gradle-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gradle: running tests")))
\ 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 b71a417..334ac5a 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21700,3 +21700,55 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Deno: running tests")))
 
+;;; Round 262 — Turborepo ext, Nx ext, Buck2 ext, Pants ext, Gradle ext (batch 1)
+
+(def (cmd-turbo-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Task: "
+      (lambda (task)
+        (echo-message! echo (str "Turborepo: running " task))))))
+
+(def (cmd-turbo-prune app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Turborepo: pruning for " pkg))))))
+
+(def (cmd-turbo-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turborepo: generating task graph")))
+
+(def (cmd-turbo-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turborepo: linting packages")))
+
+(def (cmd-nx-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Nx: running " target))))))
+
+(def (cmd-nx-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nx: generating dependency graph")))
+
+(def (cmd-nx-affected app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nx: listing affected projects")))
+
+(def (cmd-nx-migrate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nx: running migrations")))
+
+(def (cmd-buck2-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Buck2: building " target))))))
+
+(def (cmd-buck2-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Buck2: testing " target))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 0272773..7b46492 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6919,4 +6919,25 @@
   (register-command! 'pnpm-install cmd-pnpm-install)
   (register-command! 'pnpm-run cmd-pnpm-run)
   (register-command! 'pnpm-add cmd-pnpm-add)
+  ;; Round 262
+  (register-command! 'turbo-run cmd-turbo-run)
+  (register-command! 'turbo-prune cmd-turbo-prune)
+  (register-command! 'turbo-graph cmd-turbo-graph)
+  (register-command! 'turbo-lint cmd-turbo-lint)
+  (register-command! 'nx-run cmd-nx-run)
+  (register-command! 'nx-graph cmd-nx-graph)
+  (register-command! 'nx-affected cmd-nx-affected)
+  (register-command! 'nx-migrate cmd-nx-migrate)
+  (register-command! 'buck2-build cmd-buck2-build)
+  (register-command! 'buck2-test cmd-buck2-test)
+  (register-command! 'buck2-run cmd-buck2-run)
+  (register-command! 'buck2-targets cmd-buck2-targets)
+  (register-command! 'pants-run cmd-pants-run)
+  (register-command! 'pants-test cmd-pants-test)
+  (register-command! 'pants-fmt cmd-pants-fmt)
+  (register-command! 'pants-lint cmd-pants-lint)
+  (register-command! 'pants-check cmd-pants-check)
+  (register-command! 'pants-package cmd-pants-package)
+  (register-command! 'gradle-build cmd-gradle-build)
+  (register-command! 'gradle-test cmd-gradle-test)
 )