Function: org-inlinetask-promote

org-inlinetask-promote is an interactive and byte-compiled function defined in org-inlinetask.el.gz.

Signature

(org-inlinetask-promote)

Documentation

Promote the inline task at point.

If the task has an end part, promote it. Also, prevents level from going below org-inlinetask-min-level.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-inlinetask.el.gz
(defun org-inlinetask-promote ()
  "Promote the inline task at point.
If the task has an end part, promote it.  Also, prevents level from
going below `org-inlinetask-min-level'."
  (interactive)
  (if (not (org-inlinetask-in-task-p))
      (user-error "Not in an inline task")
    (save-excursion
      (let* ((lvl (org-inlinetask-get-task-level))
	     (next-lvl (org-get-valid-level lvl -1))
	     (diff (- next-lvl lvl))
	     (down-task (concat (make-string next-lvl ?*)))
	     beg)
	(if (< next-lvl org-inlinetask-min-level)
	    (user-error "Cannot promote an inline task at minimum level")
	  (org-inlinetask-goto-beginning)
	  (setq beg (point))
	  (replace-match down-task nil t nil 1)
	  (org-inlinetask-goto-end)
          (if (and (eobp) (looking-back "END\\s-*" (line-beginning-position)))
              (beginning-of-line)
            (forward-line -1))
	  (unless (= (point) beg)
            (looking-at (org-inlinetask-outline-regexp))
	    (replace-match down-task nil t nil 1)
	    (when (eq org-adapt-indentation t)
	      (goto-char beg)
	      (org-fixup-indentation diff))))))))