summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-14 08:30:47 -0500
committerCraig Jennings <c@cjennings.net>2026-05-14 08:30:47 -0500
commitfcdea7f0fcc20b1980ee0ee3fc0ba6159c0cf86e (patch)
tree6e14eda9ed6dd467327ebb741650fd5ae5ee2d01 /modules
parent623f45f2781ed6c489672dcfb09d877657dbe1da (diff)
downloaddotemacs-fcdea7f0fcc20b1980ee0ee3fc0ba6159c0cf86e.tar.gz
dotemacs-fcdea7f0fcc20b1980ee0ee3fc0ba6159c0cf86e.zip
refactor(org-config): flatten table ops directly under the org menu
Drop the `T' sub-prefix so table operations sit directly under `C-; O': `O r i' / `O r d' for rows, `O c i' / `O c d' for columns. Move `cj/org-clear-element-cache' from `c' (which now hosts the table-column sub-prefix) to capital `C'. Single-key org commands under this menu live on capitals from here on so the lowercase letters stay free for table sub-prefixes. Drop `cj/org-table-map' entirely -- its bindings now live directly on `cj/org-map'. Three tests in `test-org-config-keymap-ownership.el' updated/added: `C' for clear-cache, plus row and column binding assertions.
Diffstat (limited to 'modules')
-rw-r--r--modules/org-config.el31
1 files changed, 14 insertions, 17 deletions
diff --git a/modules/org-config.el b/modules/org-config.el
index e13dc59f..8c2dc646 100644
--- a/modules/org-config.el
+++ b/modules/org-config.el
@@ -126,15 +126,13 @@
:ensure nil ;; use the built-in package
:pin manual ;; never upgrade from the version built-into Emacs
:init
- (defvar-keymap cj/org-table-map
- :doc "org table operations.")
-
(defvar-keymap cj/org-map
:doc "General org-mode operations and utilities.")
(keymap-set cj/custom-keymap "O" cj/org-map)
- ;; Table operations live under the org menu (was at top-level "T",
- ;; which collided silently with `cj/transcribe-map').
- (keymap-set cj/org-map "T" cj/org-table-map)
+ ;; Table operations live directly under the org menu: `r' for row,
+ ;; `c' for column. Single-key org commands under this prefix use
+ ;; capitals (e.g. `C' for clear element cache) to leave the
+ ;; lowercase letters free as table sub-prefixes.
:bind
("C-c c" . org-capture)
("C-c a" . org-agenda)
@@ -152,7 +150,7 @@
("<f2>" . org-reveal)
("C-c <ESC>" . widen)
("C-c C-a" . cj/org-appear-toggle))
- (:map cj/org-table-map
+ (:map cj/org-map
("r i" . org-table-insert-row)
("r d" . org-table-kill-row)
("c i" . org-table-insert-column)
@@ -291,7 +289,7 @@ the current buffer's cache. Useful when encountering parsing errors like
(org-element-cache-reset 'all)
(message "Cleared org-element cache for all buffers")))
-(keymap-set cj/org-map "c" #'cj/org-clear-element-cache)
+(keymap-set cj/org-map "C" #'cj/org-clear-element-cache)
;; ----------------------- Org Multi-Level Sorting -----------------------------
@@ -323,15 +321,14 @@ status to preserve priority ordering within TODO groups."
(which-key-add-key-based-replacements
;; org general operations
"C-; O" "org menu"
- "C-; O c" "clear element cache"
- ;; org table operations (under the org menu)
- "C-; O T" "org table menu"
- "C-; O T r" "table row"
- "C-; O T r i" "insert row"
- "C-; O T r d" "delete row"
- "C-; O T c" "table column"
- "C-; O T c i" "insert column"
- "C-; O T c d" "delete column"
+ "C-; O C" "clear element cache"
+ ;; org table operations (live directly under the org menu)
+ "C-; O r" "table row"
+ "C-; O r i" "insert row"
+ "C-; O r d" "delete row"
+ "C-; O c" "table column"
+ "C-; O c i" "insert column"
+ "C-; O c d" "delete column"
;; org global bindings
"C-c a" "org agenda"
"C-c c" "org capture"