Round 201: Notmuch-ext, Mu4e-ext, Message-ext, SMTP, MML commands

ober

02a1cbf4f1b54141065740fcd86803b72251e153

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 0013f77..82eb055 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 201 — Notmuch-ext, Mu4e-ext, Message-ext, SMTP, MML
+
+| Feature | Status | Notes |
+|---|---|---|
+| notmuch-show-apply-tag-macro | :orange_circle: | Apply tag macro |
+| notmuch-show-stash-mlarchive-link | :orange_circle: | Stash mailing list archive link |
+| notmuch-tree-archive-message-then-next | :orange_circle: | Archive and move to next |
+| notmuch-unthreaded | :orange_circle: | Unthreaded search |
+| mu4e-compose-wide-reply | :orange_circle: | Compose wide reply |
+| mu4e-compose-supersede | :orange_circle: | Compose supersede message |
+| mu4e-action-view-in-browser | :orange_circle: | View message in browser |
+| mu4e-action-retag-message | :orange_circle: | Retag message |
+| message-elide-region | :orange_circle: | Elide region in message |
+| message-caesar-buffer-body | :orange_circle: | ROT13 message body |
+| message-fill-yanked-message | :orange_circle: | Fill yanked message |
+| smtpmail-send-it | :orange_circle: | Send via SMTP |
+| mail-source-fetch | :orange_circle: | Fetch from mail source |
+| mail-abbrevs-setup | :orange_circle: | Set up mail abbreviations |
+| supercite-cite-original | :orange_circle: | Cite original with Supercite |
+| mml-attach-file | :orange_circle: | Attach file to message |
+| mml-insert-multipart | :orange_circle: | Insert multipart section |
+| mml-preview | :orange_circle: | Preview MIME message |
+| mml-secure-message-sign | :orange_circle: | Sign message |
+| mml-secure-message-encrypt | :orange_circle: | Encrypt message |
+
 ### Round 200 — Pomodoro, Focus, Activities, Burly, Bufler, IBuffer-ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index a7e2f52..49ebe27 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -18235,3 +18235,46 @@
 (def (cmd-ibuffer-nesting-filter-groups app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "IBuffer: nesting filter groups")))
+
+;; Round 201 — Message-ext, SMTP, Mail, MML
+(def (cmd-message-fill-yanked-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Message: filled yanked message")))
+
+(def (cmd-smtpmail-send-it app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SMTP: sending message...")))
+
+(def (cmd-mail-source-fetch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mail: fetching from source...")))
+
+(def (cmd-mail-abbrevs-setup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mail: set up abbreviations")))
+
+(def (cmd-supercite-cite-original app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Supercite: cited original message")))
+
+(def (cmd-mml-attach-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Attach file: "
+      (lambda (f)
+        (echo-message! echo (str "MML: attached " f))))))
+
+(def (cmd-mml-insert-multipart app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MML: inserted multipart section")))
+
+(def (cmd-mml-preview app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MML: previewing MIME message")))
+
+(def (cmd-mml-secure-message-sign app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MML: signed message")))
+
+(def (cmd-mml-secure-message-encrypt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MML: encrypted message")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 1bc69fc..4c8e85d 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -18865,3 +18865,48 @@
 (def (cmd-activities-suspend app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Activities: suspended current activity")))
+
+;; Round 201 — Notmuch-ext, Mu4e-ext, Message-mode-ext
+(def (cmd-notmuch-show-apply-tag-macro app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: applied tag macro")))
+
+(def (cmd-notmuch-show-stash-mlarchive-link app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed mailing list archive link")))
+
+(def (cmd-notmuch-tree-archive-message-then-next app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: archived message, moving to next")))
+
+(def (cmd-notmuch-unthreaded app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Notmuch unthreaded search: "
+      (lambda (q)
+        (echo-message! echo (str "Notmuch: unthreaded search for '" q "'"))))))
+
+(def (cmd-mu4e-compose-wide-reply app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mu4e: composing wide reply")))
+
+(def (cmd-mu4e-compose-supersede app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mu4e: composing supersede message")))
+
+(def (cmd-mu4e-action-view-in-browser app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mu4e: viewing message in browser")))
+
+(def (cmd-mu4e-action-retag-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Retag message: "
+      (lambda (tags)
+        (echo-message! echo (str "Mu4e: retagged with " tags))))))
+
+(def (cmd-message-elide-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Message: elided region")))
+
+(def (cmd-message-caesar-buffer-body app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Message: ROT13 applied to body")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 61fb5ef..eb6bf3b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -5654,4 +5654,25 @@
   (register-command! 'ibuffer-filter-by-predicate cmd-ibuffer-filter-by-predicate)
   (register-command! 'ibuffer-decompose-filter cmd-ibuffer-decompose-filter)
   (register-command! 'ibuffer-nesting-filter-groups cmd-ibuffer-nesting-filter-groups)
+  ;; Round 201
+  (register-command! 'notmuch-show-apply-tag-macro cmd-notmuch-show-apply-tag-macro)
+  (register-command! 'notmuch-show-stash-mlarchive-link cmd-notmuch-show-stash-mlarchive-link)
+  (register-command! 'notmuch-tree-archive-message-then-next cmd-notmuch-tree-archive-message-then-next)
+  (register-command! 'notmuch-unthreaded cmd-notmuch-unthreaded)
+  (register-command! 'mu4e-compose-wide-reply cmd-mu4e-compose-wide-reply)
+  (register-command! 'mu4e-compose-supersede cmd-mu4e-compose-supersede)
+  (register-command! 'mu4e-action-view-in-browser cmd-mu4e-action-view-in-browser)
+  (register-command! 'mu4e-action-retag-message cmd-mu4e-action-retag-message)
+  (register-command! 'message-elide-region cmd-message-elide-region)
+  (register-command! 'message-caesar-buffer-body cmd-message-caesar-buffer-body)
+  (register-command! 'message-fill-yanked-message cmd-message-fill-yanked-message)
+  (register-command! 'smtpmail-send-it cmd-smtpmail-send-it)
+  (register-command! 'mail-source-fetch cmd-mail-source-fetch)
+  (register-command! 'mail-abbrevs-setup cmd-mail-abbrevs-setup)
+  (register-command! 'supercite-cite-original cmd-supercite-cite-original)
+  (register-command! 'mml-attach-file cmd-mml-attach-file)
+  (register-command! 'mml-insert-multipart cmd-mml-insert-multipart)
+  (register-command! 'mml-preview cmd-mml-preview)
+  (register-command! 'mml-secure-message-sign cmd-mml-secure-message-sign)
+  (register-command! 'mml-secure-message-encrypt cmd-mml-secure-message-encrypt)
 )