org-capture.el: Give a default value when prompting for a property

* lisp/org-capture.el (org-capture-templates)
(org-capture-fill-template): Enable declaring a default value
when prompting for a property during capture.

* lisp/org.el (org-read-property-value): Add parameter DEFAULT
for an initial/default/suggested property value.

* doc/org-manual.org: Document declaring a default value for a
prompted property during capture.
This commit is contained in:
Phil Hudson 2020-09-23 14:09:49 +02:00 committed by Bastien
parent e2bb60581b
commit 83c93e6fed
3 changed files with 11 additions and 5 deletions

View File

@ -7858,7 +7858,8 @@ here:
- =%^{PROP}p= ::
Prompt the user for a value for property {{{var(PROP)}}}.
Prompt the user for a value for property {{{var(PROP)}}}. You may
specify a default value with =%^{PROP|default}=.
- =%^{PROMPT}= ::

View File

@ -332,6 +332,8 @@ be replaced with content and expanded:
%^C Interactive selection of which kill or clip to use.
%^L Like %^C, but insert as link.
%^{prop}p Prompt the user for a value for property `prop'.
A default value can be specified like this:
%^{prop|default}p.
%^{prompt} Prompt the user for a string and replace this sequence with it.
A default value and a completion table can be specified like this:
%^{prompt|default|completion2|completion3|...}.
@ -1787,7 +1789,8 @@ The template may still contain \"%?\" for cursor positioning."
(setq l (org-up-heading-safe)))
(if l (point-marker)
(point-min-marker)))))))
(value (org-read-property-value prompt pom)))
(value
(org-read-property-value prompt pom default)))
(org-set-property prompt value)))
((or "t" "T" "u" "U")
;; These are the date/time related ones.

View File

@ -13300,11 +13300,12 @@ This is computed according to `org-property-set-functions-alist'."
(or (cdr (assoc property org-property-set-functions-alist))
'org-completing-read))
(defun org-read-property-value (property &optional pom)
(defun org-read-property-value (property &optional pom default)
"Read value for PROPERTY, as a string.
When optional argument POM is non-nil, completion uses additional
information, i.e., allowed or existing values at point or marker
POM."
POM.
Optional argument DEFAULT provides a default value for PROPERTY."
(let* ((completion-ignore-case t)
(allowed
(or (org-property-get-allowed-values nil property 'table)
@ -13320,7 +13321,8 @@ POM."
(if allowed
(funcall set-function
prompt allowed nil
(not (get-text-property 0 'org-unrestricted (caar allowed))))
(not (get-text-property 0 'org-unrestricted (caar allowed)))
default nil default)
(let ((all (mapcar #'list
(append (org-property-values property)
(and pom