Round 150: Add 20 AUCTeX, RefTeX, CDLaTeX, Preview-latex commands

ober

52a4527b776359c7af5255c5b0a677579b5743cd

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5799756..c6569b1 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 150 — AUCTeX, RefTeX, CDLaTeX, Preview-latex
+
+| Feature | Status | Notes |
+|---|---|---|
+| `TeX-insert-macro` | :orange_circle: | Insert TeX macro |
+| `TeX-insert-quote` | :orange_circle: | Smart quote insertion |
+| `TeX-font` | :orange_circle: | Apply font command |
+| `LaTeX-fill-paragraph` | :orange_circle: | Fill LaTeX paragraph |
+| `LaTeX-mark-section` | :orange_circle: | Mark section |
+| `LaTeX-mark-environment` | :orange_circle: | Mark environment |
+| `reftex-citation` | :orange_circle: | Insert citation |
+| `reftex-reference` | :orange_circle: | Insert reference |
+| `reftex-label` | :orange_circle: | Insert label |
+| `reftex-toc` | :orange_circle: | Table of contents |
+| `reftex-index` | :orange_circle: | Insert index entry |
+| `reftex-view-crossref` | :orange_circle: | View cross-reference |
+| `cdlatex-mode` | :orange_circle: | CDLaTeX minor mode |
+| `cdlatex-tab` | :orange_circle: | CDLaTeX tab expansion |
+| `cdlatex-environment` | :orange_circle: | Insert environment |
+| `preview-buffer` | :orange_circle: | Preview buffer |
+| `preview-region` | :orange_circle: | Preview region |
+| `preview-at-point` | :orange_circle: | Preview at point |
+| `preview-clearout` | :orange_circle: | Clear previews |
+| `preview-document` | :orange_circle: | Preview entire document |
+
 ### Round 149 — Semantic, CEDET, EDE, Senator
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 35ffbed..d1cd638 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -15717,3 +15717,54 @@
 (def (cmd-ede-remove-file app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EDE: removed current file from target")))
+
+;; ============================================================
+;; Round 150 — RefTeX, CDLaTeX, Preview-latex (batch 2)
+;; ============================================================
+
+(def (cmd-reftex-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Index entry: "
+      (lambda (entry)
+        (echo-message! echo (str "RefTeX: inserted index entry '" entry "'"))))))
+
+(def (cmd-reftex-view-crossref app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RefTeX: viewing cross-reference")))
+
+(def (cmd-cdlatex-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'cdlatex)
+    (if (mode-enabled? app 'cdlatex)
+      (echo-message! echo "CDLaTeX mode enabled")
+      (echo-message! echo "CDLaTeX mode disabled"))))
+
+(def (cmd-cdlatex-tab app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDLaTeX: tab expansion")))
+
+(def (cmd-cdlatex-environment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Environment: "
+      (lambda (env)
+        (echo-message! echo (str "CDLaTeX: inserted environment " env))))))
+
+(def (cmd-preview-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Preview: generating previews for buffer")))
+
+(def (cmd-preview-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Preview: generating previews for region")))
+
+(def (cmd-preview-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Preview: toggling preview at point")))
+
+(def (cmd-preview-clearout app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Preview: cleared all previews")))
+
+(def (cmd-preview-document app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Preview: generating previews for entire document")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 125b2ff..81f8c26 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -16350,3 +16350,55 @@
 (def (cmd-ede-debug-target app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EDE: debugging target")))
+
+;; ============================================================
+;; Round 150 — AUCTeX, RefTeX, CDLaTeX, Preview-latex (batch 1)
+;; ============================================================
+
+(def (cmd-TeX-insert-macro app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "TeX macro: "
+      (lambda (mac)
+        (echo-message! echo (str "TeX: inserted macro \\" mac))))))
+
+(def (cmd-TeX-insert-quote app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TeX: inserted smart quote")))
+
+(def (cmd-TeX-font app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Font command (b/i/e/t/s/r): "
+      (lambda (f)
+        (echo-message! echo (str "TeX: applied font " f))))))
+
+(def (cmd-LaTeX-fill-paragraph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LaTeX: filled paragraph")))
+
+(def (cmd-LaTeX-mark-section app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LaTeX: marked section")))
+
+(def (cmd-LaTeX-mark-environment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LaTeX: marked environment")))
+
+(def (cmd-reftex-citation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Citation key: "
+      (lambda (key)
+        (echo-message! echo (str "RefTeX: inserted citation " key))))))
+
+(def (cmd-reftex-reference app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Reference label: "
+      (lambda (lbl)
+        (echo-message! echo (str "RefTeX: inserted reference to " lbl))))))
+
+(def (cmd-reftex-label app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RefTeX: inserted label")))
+
+(def (cmd-reftex-toc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RefTeX: showing table of contents")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 5b68541..7d8357c 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4583,4 +4583,25 @@
   (register-command! 'ede-edit-file-target cmd-ede-edit-file-target)
   (register-command! 'ede-add-file cmd-ede-add-file)
   (register-command! 'ede-remove-file cmd-ede-remove-file)
+  ;; Round 150
+  (register-command! 'TeX-insert-macro cmd-TeX-insert-macro)
+  (register-command! 'TeX-insert-quote cmd-TeX-insert-quote)
+  (register-command! 'TeX-font cmd-TeX-font)
+  (register-command! 'LaTeX-fill-paragraph cmd-LaTeX-fill-paragraph)
+  (register-command! 'LaTeX-mark-section cmd-LaTeX-mark-section)
+  (register-command! 'LaTeX-mark-environment cmd-LaTeX-mark-environment)
+  (register-command! 'reftex-citation cmd-reftex-citation)
+  (register-command! 'reftex-reference cmd-reftex-reference)
+  (register-command! 'reftex-label cmd-reftex-label)
+  (register-command! 'reftex-toc cmd-reftex-toc)
+  (register-command! 'reftex-index cmd-reftex-index)
+  (register-command! 'reftex-view-crossref cmd-reftex-view-crossref)
+  (register-command! 'cdlatex-mode cmd-cdlatex-mode)
+  (register-command! 'cdlatex-tab cmd-cdlatex-tab)
+  (register-command! 'cdlatex-environment cmd-cdlatex-environment)
+  (register-command! 'preview-buffer cmd-preview-buffer)
+  (register-command! 'preview-region cmd-preview-region)
+  (register-command! 'preview-at-point cmd-preview-at-point)
+  (register-command! 'preview-clearout cmd-preview-clearout)
+  (register-command! 'preview-document cmd-preview-document)
 )