Function: org-promote
org-promote is a byte-compiled function defined in org.el.gz.
Signature
(org-promote)
Documentation
Promote the current heading higher up the tree.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-promote ()
"Promote the current heading higher up the tree."
(org-with-wide-buffer
(org-back-to-heading t)
(let* ((after-change-functions (remq 'flyspell-after-change-function
after-change-functions))
(level (save-match-data (funcall outline-level)))
(up-head (concat (make-string (org-get-valid-level level -1) ?*) " "))
(diff (abs (- level (length up-head) -1))))
(cond
((and (= level 1) org-allow-promoting-top-level-subtree)
(replace-match "# " nil t))
((= level 1)
(user-error "Cannot promote to level 0. UNDO to recover if necessary"))
(t (replace-match (apply #'propertize up-head (text-properties-at (match-beginning 0))) t)))
(unless (= level 1)
(when org-auto-align-tags (org-align-tags))
(when org-adapt-indentation (org-fixup-indentation (- diff))))
(run-hooks 'org-after-promote-entry-hook))))