Round 222: Denote ext, Avy ext, Ace ext (20 commands)

ober

b5ae9390d0ebb2c9dee68c783368f278f1ee77e0

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 4b8891d..6e3f76d 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 222 — Denote ext, Avy ext, Ace ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| denote-create-note | :orange_circle: | Create a new Denote note |
+| denote-explore-keywords | :orange_circle: | Explore Denote keywords |
+| denote-org-extras-link-to-heading | :orange_circle: | Link to Org heading |
+| denote-journal-extras-new-or-existing-entry | :orange_circle: | New or existing journal entry |
+| denote-link-dired-marked-notes | :orange_circle: | Link dired marked notes |
+| denote-backlinks-mode | :orange_circle: | Toggle backlinks mode |
+| denote-link-after-creating | :orange_circle: | Link after creating note |
+| consult-dir | :orange_circle: | Directory selection |
+| consult-dir-jump-file | :orange_circle: | Jump to file in directory |
+| avy-goto-whitespace-end | :orange_circle: | Goto whitespace end |
+| avy-goto-symbol-1-above | :orange_circle: | Goto symbol-1 above |
+| avy-goto-symbol-1-below | :orange_circle: | Goto symbol-1 below |
+| ace-delete-other-windows | :orange_circle: | Delete other windows via ace |
+| ace-window-one | :orange_circle: | Select window one |
+| ace-window-two | :orange_circle: | Select window two |
+| ace-link-org | :orange_circle: | Follow Org link via ace |
+| ace-link-info | :orange_circle: | Follow Info link via ace |
+| ace-link-eww | :orange_circle: | Follow EWW link via ace |
+| ace-link-help | :orange_circle: | Follow Help link via ace |
+| ace-link-compilation | :orange_circle: | Follow compilation link via ace |
+
 ### Round 221 — Tags/Citre/ggtags
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 3482f31..4115fdb 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19208,3 +19208,45 @@
 (def (cmd-ggtags-create-tags app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "ggtags: creating tags")))
+
+;;; Round 222 — Denote ext, Avy ext, Ace ext (batch 2)
+
+(def (cmd-avy-goto-symbol-1-above app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avy: goto symbol-1 above")))
+
+(def (cmd-avy-goto-symbol-1-below app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avy: goto symbol-1 below")))
+
+(def (cmd-ace-delete-other-windows app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: deleted other windows")))
+
+(def (cmd-ace-window-one app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: selected window one")))
+
+(def (cmd-ace-window-two app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: selected window two")))
+
+(def (cmd-ace-link-org app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: following Org link")))
+
+(def (cmd-ace-link-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: following Info link")))
+
+(def (cmd-ace-link-eww app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: following EWW link")))
+
+(def (cmd-ace-link-help app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: following Help link")))
+
+(def (cmd-ace-link-compilation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ace: following compilation link")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 4b3d8d0..a53491e 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -19857,3 +19857,50 @@
 (def (cmd-citre-jump-back app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Citre: jumped back")))
+
+;;; Round 222 — Denote ext, Avy ext, Ace ext (batch 1)
+
+(def (cmd-denote-create-note app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Title: "
+      (lambda (title)
+        (echo-message! echo (str "Denote: creating note " title))))))
+
+(def (cmd-denote-explore-keywords app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Denote: exploring keywords")))
+
+(def (cmd-denote-org-extras-link-to-heading app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Denote: linking to Org heading")))
+
+(def (cmd-denote-journal-extras-new-or-existing-entry app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Denote: journal new or existing entry")))
+
+(def (cmd-denote-link-dired-marked-notes app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Denote: linked dired marked notes")))
+
+(def (cmd-denote-backlinks-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'denote-backlinks)
+    (if (mode-enabled? app 'denote-backlinks)
+      (echo-message! echo "Denote: backlinks mode enabled")
+      (echo-message! echo "Denote: backlinks mode disabled"))))
+
+(def (cmd-denote-link-after-creating app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Denote: link after creating note")))
+
+(def (cmd-consult-dir app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Consult: directory selection")))
+
+(def (cmd-consult-dir-jump-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Consult: jump to file in directory")))
+
+(def (cmd-avy-goto-whitespace-end app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avy: goto whitespace end")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index f24ad75..af71fec 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6095,4 +6095,25 @@
   (register-command! 'ggtags-find-reference cmd-ggtags-find-reference)
   (register-command! 'ggtags-find-definition cmd-ggtags-find-definition)
   (register-command! 'ggtags-create-tags cmd-ggtags-create-tags)
+  ;; Round 222
+  (register-command! 'denote-create-note cmd-denote-create-note)
+  (register-command! 'denote-explore-keywords cmd-denote-explore-keywords)
+  (register-command! 'denote-org-extras-link-to-heading cmd-denote-org-extras-link-to-heading)
+  (register-command! 'denote-journal-extras-new-or-existing-entry cmd-denote-journal-extras-new-or-existing-entry)
+  (register-command! 'denote-link-dired-marked-notes cmd-denote-link-dired-marked-notes)
+  (register-command! 'denote-backlinks-mode cmd-denote-backlinks-mode)
+  (register-command! 'denote-link-after-creating cmd-denote-link-after-creating)
+  (register-command! 'consult-dir cmd-consult-dir)
+  (register-command! 'consult-dir-jump-file cmd-consult-dir-jump-file)
+  (register-command! 'avy-goto-whitespace-end cmd-avy-goto-whitespace-end)
+  (register-command! 'avy-goto-symbol-1-above cmd-avy-goto-symbol-1-above)
+  (register-command! 'avy-goto-symbol-1-below cmd-avy-goto-symbol-1-below)
+  (register-command! 'ace-delete-other-windows cmd-ace-delete-other-windows)
+  (register-command! 'ace-window-one cmd-ace-window-one)
+  (register-command! 'ace-window-two cmd-ace-window-two)
+  (register-command! 'ace-link-org cmd-ace-link-org)
+  (register-command! 'ace-link-info cmd-ace-link-info)
+  (register-command! 'ace-link-eww cmd-ace-link-eww)
+  (register-command! 'ace-link-help cmd-ace-link-help)
+  (register-command! 'ace-link-compilation cmd-ace-link-compilation)
 )