Round 242: Org-roam, Artist-mode (20 commands, gerbil-emacs parity)

ober

21092a72212d8a53efa930d48d970bb3722017e3

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 6e6ce4d..a195bdd 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 242 — Org-roam, Artist-mode (gerbil-emacs parity)
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| org-roam-buffer-toggle | :orange_circle: | Toggle org-roam backlinks buffer |
+| org-roam-dailies-today | :orange_circle: | Open today's daily note |
+| org-roam-db-sync | :orange_circle: | Sync org-roam database |
+| org-roam-find-file | :orange_circle: | Find org-roam file |
+| org-roam-node-find | :orange_circle: | Find org-roam node |
+| org-roam-node-insert | :orange_circle: | Insert org-roam node link |
+| org-roam-set-directory | :orange_circle: | Set org-roam directory |
+| artist-draw-arrow | :orange_circle: | Draw arrow in artist mode |
+| artist-draw-ellipse | :orange_circle: | Draw ellipse in artist mode |
+| artist-draw-line | :orange_circle: | Draw line in artist mode |
+| artist-draw-rectangle | :orange_circle: | Draw rectangle in artist mode |
+| artist-draw-text | :orange_circle: | Place text in artist mode |
+| artist-erase-rect | :orange_circle: | Erase rectangle in artist mode |
+| artist-select-tool | :orange_circle: | Select artist mode tool |
+| artist-set-char | :orange_circle: | Set drawing character |
+| auto-dim-other-buffers | :orange_circle: | Toggle dimming of other buffers |
+| bug-reference-goto | :orange_circle: | Go to bug reference at point |
+| bug-reference-list | :orange_circle: | List all bug references |
+| bug-reference-set-project | :orange_circle: | Set bug reference project |
+| bug-reference-set-url-format | :orange_circle: | Set bug reference URL format |
+
 ### Round 241 — Ido ext, Smex, Ibuffer ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index eca7f6b..9bde111 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20140,3 +20140,57 @@
 (def (cmd-ibuffer-mark-help-buffers app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ibuffer: marked help buffers")))
+
+;; Round 242 — Artist-mode ext (10 in final)
+(def (cmd-artist-draw-rectangle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Artist: draw rectangle mode")))
+
+(def (cmd-artist-draw-text app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Text: "
+      (lambda (txt)
+        (echo-message! echo (str "Artist: placing text '" txt "'"))))))
+
+(def (cmd-artist-erase-rect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Artist: erased rectangle")))
+
+(def (cmd-artist-select-tool app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tool (line/rect/ellipse/text/erase): "
+      (lambda (tool)
+        (echo-message! echo (str "Artist: selected tool " tool))))))
+
+(def (cmd-artist-set-char app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Drawing character: "
+      (lambda (ch)
+        (echo-message! echo (str "Artist: drawing char set to " ch))))))
+
+(def (cmd-auto-dim-other-buffers app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'auto-dim-other-buffers)
+    (if (mode-enabled? app 'auto-dim-other-buffers)
+      (echo-message! echo "Auto-dim other buffers enabled")
+      (echo-message! echo "Auto-dim other buffers disabled"))))
+
+(def (cmd-bug-reference-goto app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bug reference: opening bug at point")))
+
+(def (cmd-bug-reference-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bug reference: listing all references")))
+
+(def (cmd-bug-reference-set-project app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Project: "
+      (lambda (proj)
+        (echo-message! echo (str "Bug reference: project set to " proj))))))
+
+(def (cmd-bug-reference-set-url-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "URL format: "
+      (lambda (fmt)
+        (echo-message! echo (str "Bug reference: URL format set to " fmt))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index a40357b..76a802d 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20800,3 +20800,52 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ido: toggled case sensitivity")))
 
+;; Round 242 — Org-roam, Artist-mode (10 in modes)
+(def (cmd-org-roam-buffer-toggle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: toggled backlinks buffer")))
+
+(def (cmd-org-roam-dailies-today app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: opening today's daily note")))
+
+(def (cmd-org-roam-db-sync app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: syncing database")))
+
+(def (cmd-org-roam-find-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Org-roam file: "
+      (lambda (file)
+        (echo-message! echo (str "Org-roam: finding " file))))))
+
+(def (cmd-org-roam-node-find app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Node: "
+      (lambda (node)
+        (echo-message! echo (str "Org-roam: finding node " node))))))
+
+(def (cmd-org-roam-node-insert app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Insert node link: "
+      (lambda (node)
+        (echo-message! echo (str "Org-roam: inserted link to " node))))))
+
+(def (cmd-org-roam-set-directory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Org-roam directory: "
+      (lambda (dir)
+        (echo-message! echo (str "Org-roam: directory set to " dir))))))
+
+(def (cmd-artist-draw-arrow app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Artist: draw arrow mode")))
+
+(def (cmd-artist-draw-ellipse app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Artist: draw ellipse mode")))
+
+(def (cmd-artist-draw-line app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Artist: draw line mode")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 0dde5ce..ac51787 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6515,4 +6515,25 @@
   (register-command! 'ibuffer-unmark-all-marks cmd-ibuffer-unmark-all-marks)
   (register-command! 'ibuffer-mark-compressed-file-buffers cmd-ibuffer-mark-compressed-file-buffers)
   (register-command! 'ibuffer-mark-help-buffers cmd-ibuffer-mark-help-buffers)
+  ;; Round 242 — Org-roam, Artist-mode
+  (register-command! 'org-roam-buffer-toggle cmd-org-roam-buffer-toggle)
+  (register-command! 'org-roam-dailies-today cmd-org-roam-dailies-today)
+  (register-command! 'org-roam-db-sync cmd-org-roam-db-sync)
+  (register-command! 'org-roam-find-file cmd-org-roam-find-file)
+  (register-command! 'org-roam-node-find cmd-org-roam-node-find)
+  (register-command! 'org-roam-node-insert cmd-org-roam-node-insert)
+  (register-command! 'org-roam-set-directory cmd-org-roam-set-directory)
+  (register-command! 'artist-draw-arrow cmd-artist-draw-arrow)
+  (register-command! 'artist-draw-ellipse cmd-artist-draw-ellipse)
+  (register-command! 'artist-draw-line cmd-artist-draw-line)
+  (register-command! 'artist-draw-rectangle cmd-artist-draw-rectangle)
+  (register-command! 'artist-draw-text cmd-artist-draw-text)
+  (register-command! 'artist-erase-rect cmd-artist-erase-rect)
+  (register-command! 'artist-select-tool cmd-artist-select-tool)
+  (register-command! 'artist-set-char cmd-artist-set-char)
+  (register-command! 'auto-dim-other-buffers cmd-auto-dim-other-buffers)
+  (register-command! 'bug-reference-goto cmd-bug-reference-goto)
+  (register-command! 'bug-reference-list cmd-bug-reference-list)
+  (register-command! 'bug-reference-set-project cmd-bug-reference-set-project)
+  (register-command! 'bug-reference-set-url-format cmd-bug-reference-set-url-format)
 )