Round 221: Tags/Citre/ggtags (20 commands)

ober

5c0055c1b561b02baf3e321d906c8c930a870ec2

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index b11ac3c..4b8891d 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 221 — Tags/Citre/ggtags
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| counsel-etags-find-tag | :orange_circle: | Find tag via counsel |
+| counsel-etags-find-tag-at-point | :orange_circle: | Find tag at point |
+| counsel-etags-list-tag | :orange_circle: | List tags |
+| counsel-etags-recent-tag | :orange_circle: | Recent tags |
+| counsel-etags-grep | :orange_circle: | Grep via counsel-etags |
+| counsel-etags-virtual-update-tags | :orange_circle: | Virtually update tags |
+| citre-jump | :orange_circle: | Jump to definition |
+| citre-peek | :orange_circle: | Peek definition |
+| citre-ace-peek | :orange_circle: | Ace peek definition |
+| citre-jump-back | :orange_circle: | Jump back |
+| citre-update-this-tags-file | :orange_circle: | Update tags file |
+| citre-create-tags-file | :orange_circle: | Create tags file |
+| citre-edit-tags-file-recipe | :orange_circle: | Edit tags recipe |
+| citre-global-find-reference | :orange_circle: | Find references via global |
+| citre-global-find-definition | :orange_circle: | Find definition via global |
+| citre-global-update-database | :orange_circle: | Update global database |
+| ggtags-find-tag-dwim | :orange_circle: | Find tag DWIM |
+| ggtags-find-reference | :orange_circle: | Find references |
+| ggtags-find-definition | :orange_circle: | Find definition |
+| ggtags-create-tags | :orange_circle: | Create tags |
+
 ### Round 220 — EMMS ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index b324774..3482f31 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19166,3 +19166,45 @@
 (def (cmd-emms-cache-set-from-mpd-all app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EMMS: caching from MPD")))
+
+;;; Round 221 — Tags/Citre/ggtags (batch 2)
+
+(def (cmd-citre-update-this-tags-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: updating tags file")))
+
+(def (cmd-citre-create-tags-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: creating tags file")))
+
+(def (cmd-citre-edit-tags-file-recipe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: editing tags file recipe")))
+
+(def (cmd-citre-global-find-reference app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: finding references via global")))
+
+(def (cmd-citre-global-find-definition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: finding definition via global")))
+
+(def (cmd-citre-global-update-database app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: updating global database")))
+
+(def (cmd-ggtags-find-tag-dwim app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ggtags: find tag DWIM")))
+
+(def (cmd-ggtags-find-reference app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ggtags: finding references")))
+
+(def (cmd-ggtags-find-definition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ggtags: finding definition")))
+
+(def (cmd-ggtags-create-tags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ggtags: creating tags")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index d719d7d..4b3d8d0 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -19811,3 +19811,49 @@
 (def (cmd-emms-shuffle app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EMMS: shuffled playlist")))
+
+;;; Round 221 — Tags/Citre/ggtags (batch 1)
+
+(def (cmd-counsel-etags-find-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tag: "
+      (lambda (tag)
+        (echo-message! echo (str "counsel-etags: finding tag " tag))))))
+
+(def (cmd-counsel-etags-find-tag-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "counsel-etags: finding tag at point")))
+
+(def (cmd-counsel-etags-list-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "counsel-etags: listing tags")))
+
+(def (cmd-counsel-etags-recent-tag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "counsel-etags: showing recent tags")))
+
+(def (cmd-counsel-etags-grep app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Grep: "
+      (lambda (pat)
+        (echo-message! echo (str "counsel-etags: grepping " pat))))))
+
+(def (cmd-counsel-etags-virtual-update-tags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "counsel-etags: virtually updated tags")))
+
+(def (cmd-citre-jump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: jumping to definition")))
+
+(def (cmd-citre-peek app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: peeking definition")))
+
+(def (cmd-citre-ace-peek app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: ace peeking definition")))
+
+(def (cmd-citre-jump-back app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Citre: jumped back")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 3da07f9..f24ad75 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6074,4 +6074,25 @@
   (register-command! 'emms-playlist-save cmd-emms-playlist-save)
   (register-command! 'emms-metaplaylist-mode-go cmd-emms-metaplaylist-mode-go)
   (register-command! 'emms-cache-set-from-mpd-all cmd-emms-cache-set-from-mpd-all)
+  ;; Round 221
+  (register-command! 'counsel-etags-find-tag cmd-counsel-etags-find-tag)
+  (register-command! 'counsel-etags-find-tag-at-point cmd-counsel-etags-find-tag-at-point)
+  (register-command! 'counsel-etags-list-tag cmd-counsel-etags-list-tag)
+  (register-command! 'counsel-etags-recent-tag cmd-counsel-etags-recent-tag)
+  (register-command! 'counsel-etags-grep cmd-counsel-etags-grep)
+  (register-command! 'counsel-etags-virtual-update-tags cmd-counsel-etags-virtual-update-tags)
+  (register-command! 'citre-jump cmd-citre-jump)
+  (register-command! 'citre-peek cmd-citre-peek)
+  (register-command! 'citre-ace-peek cmd-citre-ace-peek)
+  (register-command! 'citre-jump-back cmd-citre-jump-back)
+  (register-command! 'citre-update-this-tags-file cmd-citre-update-this-tags-file)
+  (register-command! 'citre-create-tags-file cmd-citre-create-tags-file)
+  (register-command! 'citre-edit-tags-file-recipe cmd-citre-edit-tags-file-recipe)
+  (register-command! 'citre-global-find-reference cmd-citre-global-find-reference)
+  (register-command! 'citre-global-find-definition cmd-citre-global-find-definition)
+  (register-command! 'citre-global-update-database cmd-citre-global-update-database)
+  (register-command! 'ggtags-find-tag-dwim cmd-ggtags-find-tag-dwim)
+  (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)
 )