Round 162: Add 20 Origami, Vimish-fold, Yafolding, Indirect-buffer commands

ober

07e42144ea0c96c260a7b21741e89cd3232dd394

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index a58d5f0..562cfd8 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 162 — Origami, Vimish-fold, Yafolding, Indirect-buffer
+
+| Feature | Status | Notes |
+|---|---|---|
+| `origami-previous-fold` | :orange_circle: | Previous fold |
+| `origami-undo` | :orange_circle: | Undo fold action |
+| `origami-redo` | :orange_circle: | Redo fold action |
+| `origami-reset` | :orange_circle: | Reset all folds |
+| `yafolding-toggle-all` | :orange_circle: | Toggle all folds |
+| `yafolding-toggle-element` | :orange_circle: | Toggle element fold |
+| `yafolding-show-all` | :orange_circle: | Show all folds |
+| `yafolding-hide-all` | :orange_circle: | Hide all folds |
+| `vimish-fold` | :orange_circle: | Create fold from region |
+| `vimish-fold-unfold` | :orange_circle: | Unfold at point |
+| `vimish-fold-unfold-all` | :orange_circle: | Unfold all |
+| `vimish-fold-delete` | :orange_circle: | Delete fold |
+| `vimish-fold-delete-all` | :orange_circle: | Delete all folds |
+| `vimish-fold-toggle` | :orange_circle: | Toggle fold |
+| `vimish-fold-toggle-all` | :orange_circle: | Toggle all folds |
+| `vimish-fold-next-fold` | :orange_circle: | Next fold |
+| `vimish-fold-previous-fold` | :orange_circle: | Previous fold |
+| `vimish-fold-avy` | :orange_circle: | Avy jump to fold |
+| `clone-indirect-buffer-other-window` | :orange_circle: | Clone indirect buffer |
+| `make-indirect-buffer` | :orange_circle: | Make indirect buffer |
+
 ### Round 161 — Ediff, Emerge, Compare-windows Extended
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 6b5e6e8..efb0239 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -16310,3 +16310,49 @@
 (def (cmd-ediff-copy-B-to-A app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ediff: copied region B to A")))
+
+;; ============================================================
+;; Round 162 — Vimish-fold, Yafolding, Indirect-buffer (batch 2)
+;; ============================================================
+
+(def (cmd-vimish-fold-delete-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: deleted all folds")))
+
+(def (cmd-vimish-fold-toggle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: toggled fold at point")))
+
+(def (cmd-vimish-fold-toggle-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: toggled all folds")))
+
+(def (cmd-vimish-fold-next-fold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: moved to next fold")))
+
+(def (cmd-vimish-fold-previous-fold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: moved to previous fold")))
+
+(def (cmd-clone-indirect-buffer-other-window app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cloned indirect buffer in other window")))
+
+(def (cmd-make-indirect-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Indirect buffer name: "
+      (lambda (name)
+        (echo-message! echo (str "Created indirect buffer '" name "'"))))))
+
+(def (cmd-vimish-fold-avy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: avy jump to fold")))
+
+(def (cmd-yafolding-show-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Yafolding: showed all folds")))
+
+(def (cmd-yafolding-hide-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Yafolding: hid all folds")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 8613edc..13995e7 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -16948,3 +16948,47 @@
 (def (cmd-diff-latest-backup-file app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Diff: comparing with latest backup file")))
+
+;; ============================================================
+;; Round 162 — Origami, Vimish-fold, Yafolding, Indirect-buffer (batch 1)
+;; ============================================================
+
+(def (cmd-origami-previous-fold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Origami: moved to previous fold")))
+
+(def (cmd-origami-undo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Origami: undone last fold action")))
+
+(def (cmd-origami-redo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Origami: redone fold action")))
+
+(def (cmd-origami-reset app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Origami: reset all folds")))
+
+(def (cmd-yafolding-toggle-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Yafolding: toggled all folds")))
+
+(def (cmd-yafolding-toggle-element app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Yafolding: toggled element fold")))
+
+(def (cmd-vimish-fold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: created fold from region")))
+
+(def (cmd-vimish-fold-unfold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: unfolded at point")))
+
+(def (cmd-vimish-fold-unfold-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: unfolded all")))
+
+(def (cmd-vimish-fold-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vimish-fold: deleted fold at point")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 8fa7b29..e322b42 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4835,4 +4835,25 @@
   (register-command! 'ediff-jump-to-difference cmd-ediff-jump-to-difference)
   (register-command! 'ediff-copy-A-to-B cmd-ediff-copy-A-to-B)
   (register-command! 'ediff-copy-B-to-A cmd-ediff-copy-B-to-A)
+  ;; Round 162
+  (register-command! 'origami-previous-fold cmd-origami-previous-fold)
+  (register-command! 'origami-undo cmd-origami-undo)
+  (register-command! 'origami-redo cmd-origami-redo)
+  (register-command! 'origami-reset cmd-origami-reset)
+  (register-command! 'yafolding-toggle-all cmd-yafolding-toggle-all)
+  (register-command! 'yafolding-toggle-element cmd-yafolding-toggle-element)
+  (register-command! 'vimish-fold cmd-vimish-fold)
+  (register-command! 'vimish-fold-unfold cmd-vimish-fold-unfold)
+  (register-command! 'vimish-fold-unfold-all cmd-vimish-fold-unfold-all)
+  (register-command! 'vimish-fold-delete cmd-vimish-fold-delete)
+  (register-command! 'vimish-fold-delete-all cmd-vimish-fold-delete-all)
+  (register-command! 'vimish-fold-toggle cmd-vimish-fold-toggle)
+  (register-command! 'vimish-fold-toggle-all cmd-vimish-fold-toggle-all)
+  (register-command! 'vimish-fold-next-fold cmd-vimish-fold-next-fold)
+  (register-command! 'vimish-fold-previous-fold cmd-vimish-fold-previous-fold)
+  (register-command! 'clone-indirect-buffer-other-window cmd-clone-indirect-buffer-other-window)
+  (register-command! 'make-indirect-buffer cmd-make-indirect-buffer)
+  (register-command! 'vimish-fold-avy cmd-vimish-fold-avy)
+  (register-command! 'yafolding-show-all cmd-yafolding-show-all)
+  (register-command! 'yafolding-hide-all cmd-yafolding-hide-all)
 )