diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-10 02:43:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-10 02:43:58 -0500 |
| commit | 2afb005af6272b1b4229b377db0423dca045732f (patch) | |
| tree | 907b6c0dbb369b8f79be02617544bced4ed268c8 /modules | |
| parent | 0248afe222a0722ec336e8c09269612eb773702b (diff) | |
| download | dotemacs-2afb005af6272b1b4229b377db0423dca045732f.tar.gz dotemacs-2afb005af6272b1b4229b377db0423dca045732f.zip | |
Clean up Org keymap ownership
Remove the duplicate Org cache keymap and keep C-; O owned by the shared Org map. The cache clear command now clears all Org buffers by default, with a prefix argument for the current buffer.
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/org-config.el | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/modules/org-config.el b/modules/org-config.el index c817f3e0..caac29fd 100644 --- a/modules/org-config.el +++ b/modules/org-config.el @@ -276,21 +276,19 @@ with a file, the function will throw an error." (defun cj/org-clear-element-cache () "Clear the org-element cache for the current buffer or all buffers. -With prefix argument, clear cache for all org buffers. Otherwise, clear only +By default, clear cache for all org buffers. With prefix argument, clear only the current buffer's cache. Useful when encountering parsing errors like 'wrong-type-argument stringp nil' during agenda generation." (interactive) (if current-prefix-arg - (progn - (org-element-cache-reset 'all) - (message "Cleared org-element cache for all buffers")) - (if (derived-mode-p 'org-mode) + (if (derived-mode-p 'org-mode) (progn (org-element-cache-reset) (message "Cleared org-element cache for current buffer")) - (user-error "Current buffer is not in org-mode")))) + (user-error "Current buffer is not in org-mode")) + (org-element-cache-reset 'all) + (message "Cleared org-element cache for all buffers"))) -;; Add to org keymap (keymap-set cj/org-map "c" #'cj/org-clear-element-cache) ;; ----------------------- Org Multi-Level Sorting ----------------------------- @@ -316,28 +314,8 @@ status to preserve priority ordering within TODO groups." (user-error nil))) (message "Sorted entries by TODO status and priority")) -;; ----------------------- Org Element Cache Reset ----------------------------- - -(defun cj/org-element-cache-reset-all () - "Reset the org-element cache in all org-mode buffers." - (interactive) - (let ((count 0)) - (dolist (buf (buffer-list)) - (with-current-buffer buf - (when (derived-mode-p 'org-mode) - (org-element-cache-reset) - (cl-incf count)))) - (message "Reset org-element cache in %d buffer%s" count (if (= count 1) "" "s")))) - ;; ------------------------------ Org Keybindings ------------------------------ -(defvar cj/org-keymap (make-sparse-keymap) - "Keymap for org commands under C-; O.") - -(global-set-key (kbd "C-; O") cj/org-keymap) - -(define-key cj/org-keymap (kbd "c") #'cj/org-element-cache-reset-all) - ;; which-key labels for org keymaps (with-eval-after-load 'which-key (which-key-add-key-based-replacements |
