Round 268: Verilog ext, VHDL ext, SystemVerilog ext, Tcl ext, Forth ext (20 commands)

ober

d0f108256b7110e41a2624b1bfdd36ab9843dd68

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index e624fe7..a80f76f 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 268 — Verilog ext, VHDL ext, SystemVerilog ext, Tcl ext, Forth ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| verilog-compile | :orange_circle: | Compile Verilog code |
+| verilog-simulate | :orange_circle: | Run Verilog simulation |
+| verilog-lint | :orange_circle: | Lint Verilog code |
+| verilog-auto | :orange_circle: | Run Verilog AUTO expansion |
+| vhdl-compile | :orange_circle: | Compile VHDL code |
+| vhdl-simulate | :orange_circle: | Run VHDL simulation |
+| vhdl-lint | :orange_circle: | Lint VHDL code |
+| vhdl-template | :orange_circle: | Insert VHDL template |
+| systemverilog-compile | :orange_circle: | Compile SystemVerilog code |
+| systemverilog-lint | :orange_circle: | Lint SystemVerilog code |
+| systemverilog-format | :orange_circle: | Format SystemVerilog code |
+| systemverilog-check | :orange_circle: | Check SystemVerilog syntax |
+| tcl-eval-buffer | :orange_circle: | Evaluate Tcl buffer |
+| tcl-eval-region | :orange_circle: | Evaluate Tcl region |
+| tcl-repl | :orange_circle: | Start Tcl REPL |
+| tcl-check | :orange_circle: | Check Tcl syntax |
+| forth-eval-buffer | :orange_circle: | Evaluate Forth buffer |
+| forth-load-file | :orange_circle: | Load Forth file |
+| forth-repl | :orange_circle: | Start Forth REPL |
+| forth-see | :orange_circle: | Decompile Forth word |
+
 ### Round 267 — Ada ext, Fortran ext, COBOL ext, Pascal ext, Prolog ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 0ea48c6..07d9a81 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21345,4 +21345,48 @@
 
 (def (cmd-prolog-debug app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Prolog: enabling debug mode")))
\ No newline at end of file
+    (echo-message! echo "Prolog: enabling debug mode")))
+
+;;; Round 268 — SystemVerilog ext, Tcl ext, Forth ext (batch 2)
+
+(def (cmd-systemverilog-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SystemVerilog: formatting code")))
+
+(def (cmd-systemverilog-check app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SystemVerilog: checking syntax")))
+
+(def (cmd-tcl-eval-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tcl: evaluating buffer")))
+
+(def (cmd-tcl-eval-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tcl: evaluating region")))
+
+(def (cmd-tcl-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tcl: starting tclsh REPL")))
+
+(def (cmd-tcl-check app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tcl: checking syntax")))
+
+(def (cmd-forth-eval-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Forth: evaluating buffer")))
+
+(def (cmd-forth-load-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Forth: loading file")))
+
+(def (cmd-forth-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Forth: starting REPL")))
+
+(def (cmd-forth-see app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Word: "
+      (lambda (word)
+        (echo-message! echo (str "Forth: decompiling " word))))))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index fc14bcf..bf664ad 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21970,3 +21970,47 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "COBOL: running program")))
 
+;;; Round 268 — Verilog ext, VHDL ext, SystemVerilog ext, Tcl ext, Forth ext (batch 1)
+
+(def (cmd-verilog-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Verilog: compiling")))
+
+(def (cmd-verilog-simulate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Verilog: running simulation")))
+
+(def (cmd-verilog-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Verilog: linting code")))
+
+(def (cmd-verilog-auto app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Verilog: running AUTO expansion")))
+
+(def (cmd-vhdl-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VHDL: compiling")))
+
+(def (cmd-vhdl-simulate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VHDL: running simulation")))
+
+(def (cmd-vhdl-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VHDL: linting code")))
+
+(def (cmd-vhdl-template app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Template: "
+      (lambda (tmpl)
+        (echo-message! echo (str "VHDL: inserting template " tmpl))))))
+
+(def (cmd-systemverilog-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SystemVerilog: compiling")))
+
+(def (cmd-systemverilog-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SystemVerilog: linting code")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 39a4b71..f471370 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7045,4 +7045,25 @@
   (register-command! 'prolog-run cmd-prolog-run)
   (register-command! 'prolog-trace cmd-prolog-trace)
   (register-command! 'prolog-debug cmd-prolog-debug)
+  ;; Round 268
+  (register-command! 'verilog-compile cmd-verilog-compile)
+  (register-command! 'verilog-simulate cmd-verilog-simulate)
+  (register-command! 'verilog-lint cmd-verilog-lint)
+  (register-command! 'verilog-auto cmd-verilog-auto)
+  (register-command! 'vhdl-compile cmd-vhdl-compile)
+  (register-command! 'vhdl-simulate cmd-vhdl-simulate)
+  (register-command! 'vhdl-lint cmd-vhdl-lint)
+  (register-command! 'vhdl-template cmd-vhdl-template)
+  (register-command! 'systemverilog-compile cmd-systemverilog-compile)
+  (register-command! 'systemverilog-lint cmd-systemverilog-lint)
+  (register-command! 'systemverilog-format cmd-systemverilog-format)
+  (register-command! 'systemverilog-check cmd-systemverilog-check)
+  (register-command! 'tcl-eval-buffer cmd-tcl-eval-buffer)
+  (register-command! 'tcl-eval-region cmd-tcl-eval-region)
+  (register-command! 'tcl-repl cmd-tcl-repl)
+  (register-command! 'tcl-check cmd-tcl-check)
+  (register-command! 'forth-eval-buffer cmd-forth-eval-buffer)
+  (register-command! 'forth-load-file cmd-forth-load-file)
+  (register-command! 'forth-repl cmd-forth-repl)
+  (register-command! 'forth-see cmd-forth-see)
 )