emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/embark 28e1be702d 5/6: Add action keymap for org-headin


From: ELPA Syncer
Subject: [elpa] externals/embark 28e1be702d 5/6: Add action keymap for org-headings
Date: Sun, 5 Mar 2023 18:57:43 -0500 (EST)

branch: externals/embark
commit 28e1be702dd9ad96bff8d4fa580816f412d8212b
Author: Omar Antolín Camarena <omar.antolin@gmail.com>
Commit: Omar Antolín Camarena <omar.antolin@gmail.com>

    Add action keymap for org-headings
    
    Instead of using the org specific heading movement and
    demotion/promotion commands, we inherit from embark-heading-map. This
    has two advantages: (1) less code, (2) much better names! Org mode
    uses names like org-shiftmetaleft instead of outline-demote-heading,
    which is not very informative. And Org remaps the outline commands to
    the proper Org commands anyway.
---
 embark-org.el | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/embark-org.el b/embark-org.el
index 915ec843ac..7f66729498 100644
--- a/embark-org.el
+++ b/embark-org.el
@@ -337,6 +337,37 @@ bound to i."
 (add-to-list 'embark-keymap-alist
              '(org-expression-link embark-org-link-map embark-expression-map))
 
+;;; Org headings
+
+(defun embark-org--refine-heading (_type target)
+  "Refine type of heading TARGET in Org buffers."
+  (cons 'org-heading target))
+
+(add-to-list 'embark-transformer-alist '(heading . embark-org--refine-heading))
+
+(defvar-keymap embark-org-heading-map
+  :doc "Keymap for actions on Org headings."
+  :parent embark-heading-map
+  "RET" #'org-todo
+  "t" #'org-todo
+  "," #'org-priority
+  ":" #'org-set-tags-command
+  "k" #'org-cut-subtree
+  "N" #'org-narrow-to-subtree
+  "l" #'org-metaleft
+  "r" #'org-metaright
+  "S" #'org-sort
+  "R" #'org-refile
+  "a" #'org-archive-subtree-default-with-confirmation
+  "h" #'org-insert-heading-respect-content
+  "H" #'org-insert-todo-heading-respect-content)
+
+(dolist (cmd '(org-todo org-metaright org-metaleft org-metaup org-metadown
+               org-shiftmetaleft org-shiftmetaright org-cycle org-shifttab))
+  (cl-pushnew cmd embark-repeat-actions))
+
+(cl-pushnew '(org-heading . embark-org-heading-map) embark-keymap-alist)
+
 ;;; Source blocks and babel calls
 
 (defvar-keymap embark-org-src-block-map



reply via email to

[Prev in Thread] Current Thread [Next in Thread]