Round 255: Web-mode ext, YAML ext, TOML, Terraform ext (20 commands)

ober

cd5451fdf6c52dc0650db54f05492285c892c6bc

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index d84e623..1737e73 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 255 — Web-mode ext, YAML ext, TOML, Terraform ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| web-mode-element-wrap | :orange_circle: | Wrap element with tag |
+| web-mode-element-kill | :orange_circle: | Kill HTML element |
+| web-mode-element-select | :orange_circle: | Select HTML element |
+| web-mode-element-parent | :orange_circle: | Navigate to parent element |
+| web-mode-element-children | :orange_circle: | Show element children |
+| web-mode-fold-or-unfold | :orange_circle: | Toggle element folding |
+| web-mode-comment-or-uncomment | :orange_circle: | Toggle HTML comment |
+| web-mode-indent-buffer | :orange_circle: | Indent entire buffer |
+| web-mode-whitespaces-show | :orange_circle: | Show whitespace |
+| web-mode-set-engine | :orange_circle: | Set template engine |
+| yaml-narrow-to-block | :orange_circle: | Narrow to YAML block |
+| toml-mode-goto-section | :orange_circle: | Jump to TOML section |
+| terraform-workspace-list | :orange_circle: | List Terraform workspaces |
+| terraform-state-show | :orange_circle: | Show Terraform resource state |
+| terraform-import | :orange_circle: | Import Terraform resource |
+| terraform-taint | :orange_circle: | Taint Terraform resource |
+| terraform-untaint | :orange_circle: | Untaint Terraform resource |
+| terraform-refresh | :orange_circle: | Refresh Terraform state |
+| terraform-console | :orange_circle: | Open Terraform console |
+| terraform-graph | :orange_circle: | Generate Terraform graph |
+
 ### Round 254 — LaTeX ext, SQL ext, Org ext, Markdown ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index f067176..ee920a9 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20753,3 +20753,54 @@
 (def (cmd-markdown-edit-code-block app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Markdown: editing code block in indirect buffer")))
+
+;; Round 255 — YAML ext, TOML, Terraform ext (10 in final)
+(def (cmd-yaml-narrow-to-block app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YAML: narrowed to block")))
+
+(def (cmd-toml-mode-goto-section app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Section: "
+      (lambda (sec)
+        (echo-message! echo (str "TOML: jumped to section " sec))))))
+
+(def (cmd-terraform-workspace-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terraform: listing workspaces")))
+
+(def (cmd-terraform-state-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Resource: "
+      (lambda (res)
+        (echo-message! echo (str "Terraform: showing state for " res))))))
+
+(def (cmd-terraform-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Import resource: "
+      (lambda (res)
+        (echo-message! echo (str "Terraform: importing " res))))))
+
+(def (cmd-terraform-taint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Taint resource: "
+      (lambda (res)
+        (echo-message! echo (str "Terraform: tainted " res))))))
+
+(def (cmd-terraform-untaint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Untaint resource: "
+      (lambda (res)
+        (echo-message! echo (str "Terraform: untainted " res))))))
+
+(def (cmd-terraform-refresh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terraform: refreshing state")))
+
+(def (cmd-terraform-console app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terraform: opening console")))
+
+(def (cmd-terraform-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terraform: generating graph")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index aa2ecfe..843380c 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21383,3 +21383,48 @@
       (lambda (buf)
         (echo-message! echo (str "IELM: working buffer set to " buf))))))
 
+;; Round 255 — Web-mode ext, YAML ext, TOML, Terraform ext (10 in modes)
+(def (cmd-web-mode-element-wrap app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wrap with tag: "
+      (lambda (tag)
+        (echo-message! echo (str "Web-mode: wrapped with <" tag ">"))))))
+
+(def (cmd-web-mode-element-kill app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: killed element")))
+
+(def (cmd-web-mode-element-select app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: selected element")))
+
+(def (cmd-web-mode-element-parent app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: moved to parent element")))
+
+(def (cmd-web-mode-element-children app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: showing children")))
+
+(def (cmd-web-mode-fold-or-unfold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: toggled fold")))
+
+(def (cmd-web-mode-comment-or-uncomment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: toggled comment")))
+
+(def (cmd-web-mode-indent-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: indented buffer")))
+
+(def (cmd-web-mode-whitespaces-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Web-mode: showing whitespace")))
+
+(def (cmd-web-mode-set-engine app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Engine: "
+      (lambda (engine)
+        (echo-message! echo (str "Web-mode: engine set to " engine))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 771ecf2..221044b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6772,4 +6772,25 @@
   (register-command! 'markdown-complete-buffer cmd-markdown-complete-buffer)
   (register-command! 'markdown-insert-foldable-block cmd-markdown-insert-foldable-block)
   (register-command! 'markdown-edit-code-block cmd-markdown-edit-code-block)
+  ;; Round 255 — Web-mode ext, YAML ext, TOML, Terraform ext
+  (register-command! 'web-mode-element-wrap cmd-web-mode-element-wrap)
+  (register-command! 'web-mode-element-kill cmd-web-mode-element-kill)
+  (register-command! 'web-mode-element-select cmd-web-mode-element-select)
+  (register-command! 'web-mode-element-parent cmd-web-mode-element-parent)
+  (register-command! 'web-mode-element-children cmd-web-mode-element-children)
+  (register-command! 'web-mode-fold-or-unfold cmd-web-mode-fold-or-unfold)
+  (register-command! 'web-mode-comment-or-uncomment cmd-web-mode-comment-or-uncomment)
+  (register-command! 'web-mode-indent-buffer cmd-web-mode-indent-buffer)
+  (register-command! 'web-mode-whitespaces-show cmd-web-mode-whitespaces-show)
+  (register-command! 'web-mode-set-engine cmd-web-mode-set-engine)
+  (register-command! 'yaml-narrow-to-block cmd-yaml-narrow-to-block)
+  (register-command! 'toml-mode-goto-section cmd-toml-mode-goto-section)
+  (register-command! 'terraform-workspace-list cmd-terraform-workspace-list)
+  (register-command! 'terraform-state-show cmd-terraform-state-show)
+  (register-command! 'terraform-import cmd-terraform-import)
+  (register-command! 'terraform-taint cmd-terraform-taint)
+  (register-command! 'terraform-untaint cmd-terraform-untaint)
+  (register-command! 'terraform-refresh cmd-terraform-refresh)
+  (register-command! 'terraform-console cmd-terraform-console)
+  (register-command! 'terraform-graph cmd-terraform-graph)
 )