Function: org-property-next-allowed-value
org-property-next-allowed-value is an interactive and byte-compiled
function defined in org.el.gz.
Signature
(org-property-next-allowed-value &optional PREVIOUS)
Documentation
Switch to the next allowed value for this property.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-property-next-allowed-value (&optional previous)
"Switch to the next allowed value for this property."
(interactive)
(unless (org-at-property-p)
(user-error "Not at a property"))
(let* ((prop (car (save-match-data (org-split-string (match-string 1) ":"))))
(key (match-string 2))
(value (match-string 3))
(allowed (or (org-property-get-allowed-values (point) key)
(and (member value '("[ ]" "[-]" "[X]"))
'("[ ]" "[X]"))))
(heading (save-match-data (nth 4 (org-heading-components))))
nval)
(unless allowed
(user-error "Allowed values for this property have not been defined"))
(when previous (setq allowed (reverse allowed)))
(when (member value allowed)
(setq nval (car (cdr (member value allowed)))))
(setq nval (or nval (car allowed)))
(when (equal nval value)
(user-error "Only one allowed value for this property"))
(org-at-property-p)
(replace-match (concat " :" key ": " nval) t t)
(org-indent-line)
(beginning-of-line 1)
(skip-chars-forward " \t")
(when (equal prop org-effort-property)
(unless (org-element--cache-active-p)
(org-refresh-property
'((effort . identity)
(effort-minutes . org-duration-to-minutes))
nval))
(when (string= org-clock-current-task heading)
(setq org-clock-effort nval)
(org-clock-update-mode-line)))
(run-hook-with-args 'org-property-changed-functions key nval)))