;;; lang/org/autoload/org-refile.el -*- lexical-binding: t; -*- ;; REVIEW These are all proof-of-concept. Refactor me! ;;;###autoload (defun +org/refile-to-current-file (arg) "TODO" (interactive "P") (let ((org-refile-targets `((nil :maxlevel . 10))) (org-refile-use-outline-path nil) (org-refile-keep arg) current-prefix-arg) (call-interactively #'org-refile))) ;;;###autoload (defun +org/refile-to-other-window (arg) "TODO" (interactive "P") (let ((org-refile-keep arg) org-refile-targets current-prefix-arg) (dolist (win (delq (selected-window) (window-list))) (with-selected-window win (and (eq major-mode 'org-mode) buffer-file-name (cl-pushnew (cons buffer-file-name (cons :maxlevel 10)) org-refile-targets)))) (call-interactively #'org-refile))) ;;;###autoload (defun +org/refile-to-other-buffer (arg) "TODO" (interactive "P") (let ((org-refile-keep arg) org-refile-targets current-prefix-arg) (dolist (buf (delq (current-buffer) (doom-buffers-in-mode 'org-mode))) (with-current-buffer buf (and buffer-file-name (cl-pushnew (cons buffer-file-name (cons :maxlevel 10)) org-refile-targets)))) (call-interactively #'org-refile))) ;;;###autoload (defun +org/refile-to-running-clock (arg) "TODO" (interactive "P") (unless (bound-and-true-p org-clock-current-task) (user-error "No active clock to refile to")) (let ((org-refile-keep arg)) (org-refile 2))) ;;;###autoload (defun +org/refile-to-last-location (arg) "TODO" (interactive "P") (or (assoc (plist-get org-bookmark-names-plist :last-refile) bookmark-alist) (user-error "No saved location to refile to")) (let ((org-refile-keep arg) (completing-read-function (lambda (_p coll _pred _rm _ii _h default &rest _) default))) (org-refile)))