Round 226: Nix ext, Guix ext (20 commands)

ober

d66997f3b52c022821a19226dcb3b1c1d4902910

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 3da116a..71015a4 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 226 — Nix ext, Guix ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| nix-flake | :orange_circle: | Nix flake operations |
+| nix-indent-line | :orange_circle: | Indent Nix line |
+| nix-drv-mode | :orange_circle: | Nix derivation mode |
+| nix-update-fetch | :orange_circle: | Update fetch hash |
+| nix-env-uninstall | :orange_circle: | Uninstall Nix package |
+| guix-build | :orange_circle: | Build Guix package |
+| guix-edit | :orange_circle: | Edit Guix package definition |
+| guix-lint | :orange_circle: | Lint Guix package |
+| guix-graph | :orange_circle: | Show dependency graph |
+| guix-hash | :orange_circle: | Compute hash |
+| guix-refresh | :orange_circle: | Refresh package |
+| guix-download | :orange_circle: | Download URL |
+| guix-environment | :orange_circle: | Enter dev environment |
+| guix-deploy | :orange_circle: | Deploy system |
+| guix-import | :orange_circle: | Import package |
+| guix-pack | :orange_circle: | Create pack |
+| guix-gc | :orange_circle: | Garbage collect store |
+| guix-substitute | :orange_circle: | Manage substitutes |
+| guix-archive | :orange_circle: | Archive store items |
+| guix-copy | :orange_circle: | Copy store items |
+
 ### Round 225 — Transient ext, Cape ext, Tempel ext, Corfu ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index e5159a3..4773351 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19378,3 +19378,49 @@
 (def (cmd-corfu-prompt-end app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Corfu: moved to prompt end")))
+
+;;; Round 226 — Nix ext, Guix ext (batch 2)
+
+(def (cmd-guix-refresh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: refreshing package")))
+
+(def (cmd-guix-download app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "URL: "
+      (lambda (url)
+        (echo-message! echo (str "Guix: downloading " url))))))
+
+(def (cmd-guix-environment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: entering development environment")))
+
+(def (cmd-guix-deploy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: deploying system")))
+
+(def (cmd-guix-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Importer: "
+      (lambda (imp)
+        (echo-message! echo (str "Guix: importing via " imp))))))
+
+(def (cmd-guix-pack app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: creating pack")))
+
+(def (cmd-guix-gc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: garbage collecting store")))
+
+(def (cmd-guix-substitute app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: managing substitutes")))
+
+(def (cmd-guix-archive app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: archiving store items")))
+
+(def (cmd-guix-copy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: copying store items")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 4e69752..cb64d36 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20032,3 +20032,51 @@
 (def (cmd-cape-capf-inside-comment app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Cape: capf inside comment")))
+
+;;; Round 226 — Nix ext, Guix ext (batch 1)
+
+(def (cmd-nix-flake app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nix: flake operations")))
+
+(def (cmd-nix-indent-line app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nix: indented line")))
+
+(def (cmd-nix-drv-mode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nix: derivation mode")))
+
+(def (cmd-nix-update-fetch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nix: updated fetch hash")))
+
+(def (cmd-nix-env-uninstall app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Nix: uninstalling " pkg))))))
+
+(def (cmd-guix-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Guix: building " pkg))))))
+
+(def (cmd-guix-edit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Guix: editing definition for " pkg))))))
+
+(def (cmd-guix-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: linting package")))
+
+(def (cmd-guix-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: showing dependency graph")))
+
+(def (cmd-guix-hash app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Guix: computing hash")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 8a1a6b1..a528e60 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6179,4 +6179,25 @@
   (register-command! 'corfu-move-to-minibuffer cmd-corfu-move-to-minibuffer)
   (register-command! 'corfu-reset cmd-corfu-reset)
   (register-command! 'corfu-prompt-end cmd-corfu-prompt-end)
+  ;; Round 226
+  (register-command! 'nix-flake cmd-nix-flake)
+  (register-command! 'nix-indent-line cmd-nix-indent-line)
+  (register-command! 'nix-drv-mode cmd-nix-drv-mode)
+  (register-command! 'nix-update-fetch cmd-nix-update-fetch)
+  (register-command! 'nix-env-uninstall cmd-nix-env-uninstall)
+  (register-command! 'guix-build cmd-guix-build)
+  (register-command! 'guix-edit cmd-guix-edit)
+  (register-command! 'guix-lint cmd-guix-lint)
+  (register-command! 'guix-graph cmd-guix-graph)
+  (register-command! 'guix-hash cmd-guix-hash)
+  (register-command! 'guix-refresh cmd-guix-refresh)
+  (register-command! 'guix-download cmd-guix-download)
+  (register-command! 'guix-environment cmd-guix-environment)
+  (register-command! 'guix-deploy cmd-guix-deploy)
+  (register-command! 'guix-import cmd-guix-import)
+  (register-command! 'guix-pack cmd-guix-pack)
+  (register-command! 'guix-gc cmd-guix-gc)
+  (register-command! 'guix-substitute cmd-guix-substitute)
+  (register-command! 'guix-archive cmd-guix-archive)
+  (register-command! 'guix-copy cmd-guix-copy)
 )