aboutsummaryrefslogtreecommitdiffstats
path: root/oni-org
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-04-24 02:53:43 -0700
committerGravatar Tom Willemse2022-04-24 02:53:43 -0700
commitaaa5b89d0ad4bb8be0b42c873ede359e2ed651e8 (patch)
tree2030fc5453cd36cb01383c3c92e11ba67da8eeed /oni-org
parent297df3579d5f321de194683c92e958736037247f (diff)
downloademacs-config-aaa5b89d0ad4bb8be0b42c873ede359e2ed651e8.tar.gz
emacs-config-aaa5b89d0ad4bb8be0b42c873ede359e2ed651e8.zip
[oni-org] Add commands to move subtrees relative to others
Diffstat (limited to 'oni-org')
-rw-r--r--oni-org/oni-org.el23
1 files changed, 22 insertions, 1 deletions
diff --git a/oni-org/oni-org.el b/oni-org/oni-org.el
index 3948aea..9a728be 100644
--- a/oni-org/oni-org.el
+++ b/oni-org/oni-org.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2022.0401.183938
+;; Version: 2022.0424.025154
;; Package-Requires: (oni-yasnippet oni-alert oni-hydra org org-contrib org-bullets org-edna diminish all-the-icons olivetti mixed-pitch)
;; This program is free software; you can redistribute it and/or modify
@@ -858,5 +858,26 @@ This is an around advice for ‘org-html--svg-image’ as FUN."
(defalias 'org-dblock-write:oni-project-steps 'oni-org-dblock-write-project-steps)
+;;; Moving subtrees
+
+(defun oni-move-subtree-above ()
+ (interactive)
+ (let ((target (org-refile-get-location "Move subtree above")))
+ (org-cut-subtree)
+ (goto-char (nth 3 target))
+ (org-paste-subtree)))
+
+(defun oni-move-subtree-below ()
+ (interactive)
+ (let* ((components (org-heading-components))
+ (target (org-refile-get-location "Move subtree below"))
+ (marker (copy-marker (nth 3 target))))
+ (org-cut-subtree)
+ (goto-char marker)
+ (org-forward-heading-same-level 1)
+ (when (= (point) (marker-position marker))
+ (goto-char (point-max)))
+ (org-paste-subtree (car components))))
+
(provide 'oni-org)
;;; oni-org.el ends here