Round 217: Notmuch ext (20 commands)

ober

95129c21f483fe7cf599cbc1cfb9110f2d09fd40

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 9a08ce8..6ef4838 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 217 — Notmuch ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| notmuch-search-archive-thread | :orange_circle: | Archive thread in search |
+| notmuch-search-tag | :orange_circle: | Tag thread in search |
+| notmuch-search-filter | :orange_circle: | Filter search results |
+| notmuch-search-filter-by-tag | :orange_circle: | Filter search by tag |
+| notmuch-show-save-attachments | :orange_circle: | Save message attachments |
+| notmuch-show-view-raw-message | :orange_circle: | View raw message |
+| notmuch-show-toggle-visibility-headers | :orange_circle: | Toggle header visibility |
+| notmuch-poll-and-refresh-this-buffer | :orange_circle: | Poll mail and refresh |
+| notmuch-tag-jump | :orange_circle: | Jump to tag operations |
+| notmuch-show-stash-cc | :orange_circle: | Stash CC field |
+| notmuch-show-stash-from | :orange_circle: | Stash From field |
+| notmuch-show-stash-to | :orange_circle: | Stash To field |
+| notmuch-show-stash-subject | :orange_circle: | Stash Subject field |
+| notmuch-show-stash-message-id | :orange_circle: | Stash Message-ID |
+| notmuch-show-stash-date | :orange_circle: | Stash Date field |
+| notmuch-show-stash-tags | :orange_circle: | Stash tags |
+| notmuch-show-stash-filename | :orange_circle: | Stash filename |
+| notmuch-search-stash-thread-id | :orange_circle: | Stash thread ID |
+| notmuch-show-next-thread-show | :orange_circle: | Show next thread |
+| notmuch-show-pipe-message | :orange_circle: | Pipe message to command |
+
 ### Round 216 — CIDER ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index b61a723..c7df034 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -18994,3 +18994,47 @@
 (def (cmd-cider-format-buffer app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "CIDER: formatted buffer")))
+
+;;; Round 217 — Notmuch ext (batch 2)
+
+(def (cmd-notmuch-show-stash-from app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed From")))
+
+(def (cmd-notmuch-show-stash-to app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed To")))
+
+(def (cmd-notmuch-show-stash-subject app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed Subject")))
+
+(def (cmd-notmuch-show-stash-message-id app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed Message-ID")))
+
+(def (cmd-notmuch-show-stash-date app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed Date")))
+
+(def (cmd-notmuch-show-stash-tags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed tags")))
+
+(def (cmd-notmuch-show-stash-filename app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed filename")))
+
+(def (cmd-notmuch-search-stash-thread-id app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed thread ID")))
+
+(def (cmd-notmuch-show-next-thread-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: showing next thread")))
+
+(def (cmd-notmuch-show-pipe-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Pipe to: "
+      (lambda (cmd)
+        (echo-message! echo (str "Notmuch: piped message to " cmd))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 59c5b37..0792eba 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -19615,3 +19615,51 @@
 (def (cmd-cider-switch-to-repl-buffer app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "CIDER: switched to REPL buffer")))
+
+;;; Round 217 — Notmuch ext (batch 1)
+
+(def (cmd-notmuch-search-archive-thread app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: archived thread")))
+
+(def (cmd-notmuch-search-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tags (+/-): "
+      (lambda (tags)
+        (echo-message! echo (str "Notmuch: tagged thread " tags))))))
+
+(def (cmd-notmuch-search-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Filter: "
+      (lambda (f)
+        (echo-message! echo (str "Notmuch: filtered search by " f))))))
+
+(def (cmd-notmuch-search-filter-by-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tag: "
+      (lambda (tag)
+        (echo-message! echo (str "Notmuch: filtered by tag " tag))))))
+
+(def (cmd-notmuch-show-save-attachments app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: saved attachments")))
+
+(def (cmd-notmuch-show-view-raw-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: viewing raw message")))
+
+(def (cmd-notmuch-show-toggle-visibility-headers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: toggled header visibility")))
+
+(def (cmd-notmuch-poll-and-refresh-this-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: polled and refreshed")))
+
+(def (cmd-notmuch-tag-jump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: tag jump")))
+
+(def (cmd-notmuch-show-stash-cc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Notmuch: stashed CC")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 4a6267b..169eb2f 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -5990,4 +5990,25 @@
   (register-command! 'cider-ns-reload-all cmd-cider-ns-reload-all)
   (register-command! 'cider-repl-clear-buffer cmd-cider-repl-clear-buffer)
   (register-command! 'cider-format-buffer cmd-cider-format-buffer)
+  ;; Round 217
+  (register-command! 'notmuch-search-archive-thread cmd-notmuch-search-archive-thread)
+  (register-command! 'notmuch-search-tag cmd-notmuch-search-tag)
+  (register-command! 'notmuch-search-filter cmd-notmuch-search-filter)
+  (register-command! 'notmuch-search-filter-by-tag cmd-notmuch-search-filter-by-tag)
+  (register-command! 'notmuch-show-save-attachments cmd-notmuch-show-save-attachments)
+  (register-command! 'notmuch-show-view-raw-message cmd-notmuch-show-view-raw-message)
+  (register-command! 'notmuch-show-toggle-visibility-headers cmd-notmuch-show-toggle-visibility-headers)
+  (register-command! 'notmuch-poll-and-refresh-this-buffer cmd-notmuch-poll-and-refresh-this-buffer)
+  (register-command! 'notmuch-tag-jump cmd-notmuch-tag-jump)
+  (register-command! 'notmuch-show-stash-cc cmd-notmuch-show-stash-cc)
+  (register-command! 'notmuch-show-stash-from cmd-notmuch-show-stash-from)
+  (register-command! 'notmuch-show-stash-to cmd-notmuch-show-stash-to)
+  (register-command! 'notmuch-show-stash-subject cmd-notmuch-show-stash-subject)
+  (register-command! 'notmuch-show-stash-message-id cmd-notmuch-show-stash-message-id)
+  (register-command! 'notmuch-show-stash-date cmd-notmuch-show-stash-date)
+  (register-command! 'notmuch-show-stash-tags cmd-notmuch-show-stash-tags)
+  (register-command! 'notmuch-show-stash-filename cmd-notmuch-show-stash-filename)
+  (register-command! 'notmuch-search-stash-thread-id cmd-notmuch-search-stash-thread-id)
+  (register-command! 'notmuch-show-next-thread-show cmd-notmuch-show-next-thread-show)
+  (register-command! 'notmuch-show-pipe-message cmd-notmuch-show-pipe-message)
 )