Round 168: Add 20 Tempel, Yasnippet extended, Auto-yasnippet commands

ober

1d595ed446334dcb4a9c6b01f730fbed1ae35da1

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5a0c198..218ef8c 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 168 — Tempel, Yasnippet Extended, Auto-yasnippet
+
+| Feature | Status | Notes |
+|---|---|---|
+| `tempel-abort` | :orange_circle: | Abort template |
+| `tempel-done` | :orange_circle: | Done with template |
+| `yas-tryout-snippet` | :orange_circle: | Try snippet in scratch |
+| `yas-describe-tables` | :orange_circle: | Describe snippet tables |
+| `yas-load-snippet-buffer` | :orange_circle: | Load from buffer |
+| `yas-load-snippet-buffer-and-close` | :orange_circle: | Load and close |
+| `yas-skip-and-clear-field` | :orange_circle: | Skip and clear field |
+| `yas-clear-field` | :orange_circle: | Clear current field |
+| `yas-exit-all-snippets` | :orange_circle: | Exit all snippets |
+| `yas-abort-snippet` | :orange_circle: | Abort snippet |
+| `yas-minor-mode` | :orange_circle: | YAS minor mode |
+| `auto-yasnippet-create` | :orange_circle: | Create auto-snippet |
+| `auto-yasnippet-expand` | :orange_circle: | Expand auto-snippet |
+| `auto-yasnippet-persist` | :orange_circle: | Persist auto-snippet |
+| `yas-recompile-all` | :orange_circle: | Recompile all |
+| `yas-reload-all` | :orange_circle: | Reload all snippets |
+| `yas-activate-extra-mode` | :orange_circle: | Activate extra mode |
+| `yas-deactivate-extra-mode` | :orange_circle: | Deactivate extra mode |
+| `yas-visit-snippet-file` | :orange_circle: | Visit snippet file |
+| `yas-compile-directory` | :orange_circle: | Compile directory |
+
 ### Round 167 — Dirvish, Peep-dired, Fd-dired, Wdired
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 703cd68..bdbc3db 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -16604,3 +16604,58 @@
 (def (cmd-dirvish-subtree-toggle app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Dirvish: toggled subtree")))
+
+;; ============================================================
+;; Round 168 — YAS extended, Auto-yasnippet (batch 2)
+;; ============================================================
+
+(def (cmd-yas-minor-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'yas-minor)
+    (if (mode-enabled? app 'yas-minor)
+      (echo-message! echo "YAS minor mode enabled")
+      (echo-message! echo "YAS minor mode disabled"))))
+
+(def (cmd-auto-yasnippet-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auto-YAS: created snippet from current line")))
+
+(def (cmd-auto-yasnippet-expand app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auto-YAS: expanded auto-snippet")))
+
+(def (cmd-auto-yasnippet-persist app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Save auto-snippet as: "
+      (lambda (name)
+        (echo-message! echo (str "Auto-YAS: saved snippet as " name))))))
+
+(def (cmd-yas-recompile-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: recompiled all snippet directories")))
+
+(def (cmd-yas-reload-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: reloaded all snippets")))
+
+(def (cmd-yas-activate-extra-mode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Extra mode to activate: "
+      (lambda (mode)
+        (echo-message! echo (str "YAS: activated extra mode " mode))))))
+
+(def (cmd-yas-deactivate-extra-mode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Extra mode to deactivate: "
+      (lambda (mode)
+        (echo-message! echo (str "YAS: deactivated extra mode " mode))))))
+
+(def (cmd-yas-visit-snippet-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: visiting snippet definition file")))
+
+(def (cmd-yas-compile-directory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Directory to compile: "
+      (lambda (dir)
+        (echo-message! echo (str "YAS: compiled snippets in " dir))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 0bfa57b..1f7fbd5 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -17251,3 +17251,47 @@
     (if (mode-enabled? app 'dirvish-emerge)
       (echo-message! echo "Dirvish emerge mode enabled")
       (echo-message! echo "Dirvish emerge mode disabled"))))
+
+;; ============================================================
+;; Round 168 — Tempel, Yasnippet extended, Auto-yasnippet (batch 1)
+;; ============================================================
+
+(def (cmd-tempel-abort app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tempel: aborted template expansion")))
+
+(def (cmd-tempel-done app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tempel: done with template")))
+
+(def (cmd-yas-tryout-snippet app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: trying out snippet in scratch buffer")))
+
+(def (cmd-yas-describe-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: describing snippet tables")))
+
+(def (cmd-yas-load-snippet-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: loaded snippet from current buffer")))
+
+(def (cmd-yas-load-snippet-buffer-and-close app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: loaded snippet and closed buffer")))
+
+(def (cmd-yas-skip-and-clear-field app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: skipped and cleared field")))
+
+(def (cmd-yas-clear-field app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: cleared current field")))
+
+(def (cmd-yas-exit-all-snippets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: exited all active snippets")))
+
+(def (cmd-yas-abort-snippet app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAS: aborted current snippet")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index d228df0..5593296 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4961,4 +4961,25 @@
   (register-command! 'fd-find-dired cmd-fd-find-dired)
   (register-command! 'wdired-abort-changes cmd-wdired-abort-changes)
   (register-command! 'dirvish-subtree-toggle cmd-dirvish-subtree-toggle)
+  ;; Round 168
+  (register-command! 'tempel-abort cmd-tempel-abort)
+  (register-command! 'tempel-done cmd-tempel-done)
+  (register-command! 'yas-tryout-snippet cmd-yas-tryout-snippet)
+  (register-command! 'yas-describe-tables cmd-yas-describe-tables)
+  (register-command! 'yas-load-snippet-buffer cmd-yas-load-snippet-buffer)
+  (register-command! 'yas-load-snippet-buffer-and-close cmd-yas-load-snippet-buffer-and-close)
+  (register-command! 'yas-skip-and-clear-field cmd-yas-skip-and-clear-field)
+  (register-command! 'yas-clear-field cmd-yas-clear-field)
+  (register-command! 'yas-exit-all-snippets cmd-yas-exit-all-snippets)
+  (register-command! 'yas-abort-snippet cmd-yas-abort-snippet)
+  (register-command! 'yas-minor-mode cmd-yas-minor-mode)
+  (register-command! 'auto-yasnippet-create cmd-auto-yasnippet-create)
+  (register-command! 'auto-yasnippet-expand cmd-auto-yasnippet-expand)
+  (register-command! 'auto-yasnippet-persist cmd-auto-yasnippet-persist)
+  (register-command! 'yas-recompile-all cmd-yas-recompile-all)
+  (register-command! 'yas-reload-all cmd-yas-reload-all)
+  (register-command! 'yas-activate-extra-mode cmd-yas-activate-extra-mode)
+  (register-command! 'yas-deactivate-extra-mode cmd-yas-deactivate-extra-mode)
+  (register-command! 'yas-visit-snippet-file cmd-yas-visit-snippet-file)
+  (register-command! 'yas-compile-directory cmd-yas-compile-directory)
 )