Round 185: Mermaid, PlantUML-ext, Graphviz, D2, Ditaa, Gnuplot commands

ober

02a5a00c664bcedb91c363fb5131b90584faa4ce

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index e83498b..a792924 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 185 — Mermaid, PlantUML-ext, Graphviz, D2, Ditaa, Gnuplot
+
+| Feature | Status | Notes |
+|---|---|---|
+| mermaid-compile | :orange_circle: | Compile Mermaid diagram |
+| mermaid-open-browser | :orange_circle: | Open Mermaid in browser |
+| mermaid-open-doc | :orange_circle: | Open Mermaid documentation |
+| plantuml-preview-buffer | :orange_circle: | Preview PlantUML buffer |
+| plantuml-preview-region | :orange_circle: | Preview PlantUML region |
+| plantuml-complete-symbol | :orange_circle: | Complete PlantUML symbol |
+| plantuml-set-output-type | :orange_circle: | Set PlantUML output type |
+| graphviz-dot-mode | :orange_circle: | Toggle Graphviz-dot mode |
+| graphviz-dot-preview | :orange_circle: | Preview Graphviz graph |
+| graphviz-compile | :orange_circle: | Compile Graphviz graph |
+| graphviz-set-layout | :orange_circle: | Set Graphviz layout engine |
+| d2-mode | :orange_circle: | Toggle D2 diagram mode |
+| d2-compile | :orange_circle: | Compile D2 diagram |
+| d2-open-browser | :orange_circle: | Open D2 in browser |
+| d2-set-theme | :orange_circle: | Set D2 theme |
+| ditaa-mode | :orange_circle: | Toggle Ditaa mode |
+| ditaa-compile | :orange_circle: | Compile Ditaa diagram |
+| gnuplot-mode | :orange_circle: | Toggle Gnuplot mode |
+| gnuplot-send-buffer | :orange_circle: | Send buffer to Gnuplot |
+| gnuplot-send-region | :orange_circle: | Send region to Gnuplot |
+
 ### Round 184 — Geiser, SLIME-ext, Cider-ext, Sly
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 3cbbcac..e1d59f7 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -17447,3 +17447,57 @@
 (def (cmd-sly-db-abort app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Sly: aborted debugger")))
+
+;; Round 185 — Mermaid, Plantuml-ext, Graphviz, D2, Ditaa, Gnuplot (batch 2)
+(def (cmd-graphviz-set-layout app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Layout (dot/neato/circo): "
+      (lambda (layout)
+        (echo-message! echo (str "Graphviz: layout set to " layout))))))
+
+(def (cmd-d2-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'd2)
+    (if (mode-enabled? app 'd2)
+      (echo-message! echo "D2 mode enabled")
+      (echo-message! echo "D2 mode disabled"))))
+
+(def (cmd-d2-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "D2: compiling diagram...")))
+
+(def (cmd-d2-open-browser app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "D2: opening in browser")))
+
+(def (cmd-d2-set-theme app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Theme: "
+      (lambda (theme)
+        (echo-message! echo (str "D2: theme set to " theme))))))
+
+(def (cmd-ditaa-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'ditaa)
+    (if (mode-enabled? app 'ditaa)
+      (echo-message! echo "Ditaa mode enabled")
+      (echo-message! echo "Ditaa mode disabled"))))
+
+(def (cmd-ditaa-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ditaa: compiling diagram...")))
+
+(def (cmd-gnuplot-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'gnuplot)
+    (if (mode-enabled? app 'gnuplot)
+      (echo-message! echo "Gnuplot mode enabled")
+      (echo-message! echo "Gnuplot mode disabled"))))
+
+(def (cmd-gnuplot-send-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gnuplot: sent buffer to gnuplot")))
+
+(def (cmd-gnuplot-send-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Gnuplot: sent region to gnuplot")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index de18076..2fe4f6d 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -18082,3 +18082,49 @@
     (echo-read-string echo "Who macroexpands: "
       (lambda (name)
         (echo-message! echo (str "SLIME: finding macroexpansions of " name))))))
+
+;; Round 185 — Mermaid, Plantuml-ext, Graphviz, D2, Ditaa, Gnuplot (batch 1)
+(def (cmd-mermaid-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mermaid: compiling diagram...")))
+
+(def (cmd-mermaid-open-browser app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mermaid: opening in browser")))
+
+(def (cmd-mermaid-open-doc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mermaid: opening documentation")))
+
+(def (cmd-plantuml-preview-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PlantUML: previewing buffer...")))
+
+(def (cmd-plantuml-preview-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PlantUML: previewing region...")))
+
+(def (cmd-plantuml-complete-symbol app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PlantUML: completing symbol")))
+
+(def (cmd-plantuml-set-output-type app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Output type (png/svg): "
+      (lambda (type)
+        (echo-message! echo (str "PlantUML: output set to " type))))))
+
+(def (cmd-graphviz-dot-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'graphviz-dot)
+    (if (mode-enabled? app 'graphviz-dot)
+      (echo-message! echo "Graphviz-dot mode enabled")
+      (echo-message! echo "Graphviz-dot mode disabled"))))
+
+(def (cmd-graphviz-dot-preview app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Graphviz: previewing graph...")))
+
+(def (cmd-graphviz-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Graphviz: compiling graph...")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 76dc666..90b4ff2 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -5318,4 +5318,25 @@
   (register-command! 'sly-stickers-toggle cmd-sly-stickers-toggle)
   (register-command! 'sly-mrepl-new cmd-sly-mrepl-new)
   (register-command! 'sly-db-abort cmd-sly-db-abort)
+  ;; Round 185 — Mermaid, Plantuml-ext, Graphviz, D2, Ditaa, Gnuplot
+  (register-command! 'mermaid-compile cmd-mermaid-compile)
+  (register-command! 'mermaid-open-browser cmd-mermaid-open-browser)
+  (register-command! 'mermaid-open-doc cmd-mermaid-open-doc)
+  (register-command! 'plantuml-preview-buffer cmd-plantuml-preview-buffer)
+  (register-command! 'plantuml-preview-region cmd-plantuml-preview-region)
+  (register-command! 'plantuml-complete-symbol cmd-plantuml-complete-symbol)
+  (register-command! 'plantuml-set-output-type cmd-plantuml-set-output-type)
+  (register-command! 'graphviz-dot-mode cmd-graphviz-dot-mode)
+  (register-command! 'graphviz-dot-preview cmd-graphviz-dot-preview)
+  (register-command! 'graphviz-compile cmd-graphviz-compile)
+  (register-command! 'graphviz-set-layout cmd-graphviz-set-layout)
+  (register-command! 'd2-mode cmd-d2-mode)
+  (register-command! 'd2-compile cmd-d2-compile)
+  (register-command! 'd2-open-browser cmd-d2-open-browser)
+  (register-command! 'd2-set-theme cmd-d2-set-theme)
+  (register-command! 'ditaa-mode cmd-ditaa-mode)
+  (register-command! 'ditaa-compile cmd-ditaa-compile)
+  (register-command! 'gnuplot-mode cmd-gnuplot-mode)
+  (register-command! 'gnuplot-send-buffer cmd-gnuplot-send-buffer)
+  (register-command! 'gnuplot-send-region cmd-gnuplot-send-region)
 )