|
@@ -306,13 +306,15 @@ be replaced with content and expanded:
|
|
current template.
|
|
current template.
|
|
%(sexp) Evaluate elisp `(sexp)' and replace it with the results.
|
|
%(sexp) Evaluate elisp `(sexp)' and replace it with the results.
|
|
Only placeholders pre-existing within the template, or
|
|
Only placeholders pre-existing within the template, or
|
|
- introduced with %[pathname] are expanded this way. Since this
|
|
|
|
- happens after expanding non-interactive %-escapes, those can
|
|
|
|
- be used to fill the expression.
|
|
|
|
- %<...> The result of format-time-string on the ... format specification.
|
|
|
|
- %t Time stamp, date only. The time stamp is the current time,
|
|
|
|
- except when called from agendas with `\\[org-agenda-capture]' or
|
|
|
|
- with `org-capture-use-agenda-date' set.
|
|
|
|
|
|
+ introduced with %[pathname] are expanded this way.
|
|
|
|
+ Since this happens after expanding non-interactive
|
|
|
|
+ %-escapes, those can be used to fill the expression.
|
|
|
|
+ %<...> The result of `format-time-string' on the ... format
|
|
|
|
+ specification.
|
|
|
|
+ %t Time stamp, date only. The time stamp is the current
|
|
|
|
+ time, except when called from agendas with
|
|
|
|
+ `\\[org-agenda-capture]' or with
|
|
|
|
+ `org-capture-use-agenda-date' set.
|
|
%T Time stamp as above, with date and time.
|
|
%T Time stamp as above, with date and time.
|
|
%u, %U Like the above, but inactive time stamps.
|
|
%u, %U Like the above, but inactive time stamps.
|
|
%i Initial content, copied from the active region. If
|
|
%i Initial content, copied from the active region. If
|
|
@@ -328,7 +330,7 @@ be replaced with content and expanded:
|
|
%k Title of currently clocked task.
|
|
%k Title of currently clocked task.
|
|
%K Link to currently clocked task.
|
|
%K Link to currently clocked task.
|
|
%n User name (taken from the variable `user-full-name').
|
|
%n User name (taken from the variable `user-full-name').
|
|
- %f File visited by current buffer when org-capture was called.
|
|
|
|
|
|
+ %f File visited by current buffer when `org-capture' was called.
|
|
%F Full path of the file or directory visited by current buffer.
|
|
%F Full path of the file or directory visited by current buffer.
|
|
%:keyword Specific information for certain link types, see below.
|
|
%:keyword Specific information for certain link types, see below.
|
|
%^g Prompt for tags, with completion on tags in target file.
|
|
%^g Prompt for tags, with completion on tags in target file.
|
|
@@ -497,17 +499,17 @@ is copied to this variable, which is local in the indirect buffer.")
|
|
"Local variable to store the value of the :clock-keep parameter.
|
|
"Local variable to store the value of the :clock-keep parameter.
|
|
This is needed in case `org-capture-finalize' is called interactively.")
|
|
This is needed in case `org-capture-finalize' is called interactively.")
|
|
|
|
|
|
-(defun org-capture-put (&rest stuff)
|
|
|
|
- "Add properties to the capture property list `org-capture-plist'."
|
|
|
|
- (while stuff
|
|
|
|
|
|
+(defun org-capture-put (&rest elements)
|
|
|
|
+ "Add ELEMENTS to the capture property list `org-capture-plist'."
|
|
|
|
+ (while elements
|
|
(setq org-capture-plist (plist-put org-capture-plist
|
|
(setq org-capture-plist (plist-put org-capture-plist
|
|
- (pop stuff) (pop stuff)))))
|
|
|
|
-(defun org-capture-get (prop &optional local)
|
|
|
|
- "Get properties from the capture property list `org-capture-plist'.
|
|
|
|
|
|
+ (pop elements) (pop elements)))))
|
|
|
|
+(defun org-capture-get (property &optional local)
|
|
|
|
+ "Get PROPERTY from the capture property list `org-capture-plist'.
|
|
When LOCAL is set, use the local variable `org-capture-current-plist',
|
|
When LOCAL is set, use the local variable `org-capture-current-plist',
|
|
this is necessary after initialization of the capture process,
|
|
this is necessary after initialization of the capture process,
|
|
to avoid conflicts with other active capture processes."
|
|
to avoid conflicts with other active capture processes."
|
|
- (plist-get (if local org-capture-current-plist org-capture-plist) prop))
|
|
|
|
|
|
+ (plist-get (if local org-capture-current-plist org-capture-plist) property))
|
|
|
|
|
|
;;; The minor mode
|
|
;;; The minor mode
|
|
|
|
|
|
@@ -1119,7 +1121,7 @@ FILE is a generalized file location, as handled by
|
|
|
|
|
|
(defun org-capture-place-template (&optional inhibit-wconf-store)
|
|
(defun org-capture-place-template (&optional inhibit-wconf-store)
|
|
"Insert the template at the target location, and display the buffer.
|
|
"Insert the template at the target location, and display the buffer.
|
|
-When `inhibit-wconf-store', don't store the window configuration, as it
|
|
|
|
|
|
+When INHIBIT-WCONF-STORE is non-nil, don't store the window configuration, as it
|
|
may have been stored before."
|
|
may have been stored before."
|
|
(unless inhibit-wconf-store
|
|
(unless inhibit-wconf-store
|
|
(org-capture-put :return-to-wconf (current-window-configuration)))
|
|
(org-capture-put :return-to-wconf (current-window-configuration)))
|
|
@@ -1414,21 +1416,21 @@ Of course, if exact position has been required, just put it there."
|
|
(org-capture--position-cursor beg end)))))
|
|
(org-capture--position-cursor beg end)))))
|
|
|
|
|
|
(defun org-capture-mark-kill-region (beg end)
|
|
(defun org-capture-mark-kill-region (beg end)
|
|
- "Mark the region that will have to be killed when aborting capture."
|
|
|
|
|
|
+ "Mark region between BEG and END to be killed on aborted capture."
|
|
(let ((m1 (copy-marker beg))
|
|
(let ((m1 (copy-marker beg))
|
|
(m2 (copy-marker end t)))
|
|
(m2 (copy-marker end t)))
|
|
(org-capture-put :begin-marker m1)
|
|
(org-capture-put :begin-marker m1)
|
|
(org-capture-put :end-marker m2)))
|
|
(org-capture-put :end-marker m2)))
|
|
|
|
|
|
-(defun org-capture-position-for-last-stored (where)
|
|
|
|
- "Memorize the position that should later become the position of last capture."
|
|
|
|
|
|
+(defun org-capture-position-for-last-stored (position)
|
|
|
|
+ "Put POSITION on `org-capture-plist' for future use as `last capture`."
|
|
(cond
|
|
(cond
|
|
- ((integerp where)
|
|
|
|
|
|
+ ((integerp position)
|
|
(org-capture-put :position-for-last-stored
|
|
(org-capture-put :position-for-last-stored
|
|
- (move-marker (make-marker) where
|
|
|
|
|
|
+ (move-marker (make-marker) position
|
|
(or (buffer-base-buffer (current-buffer))
|
|
(or (buffer-base-buffer (current-buffer))
|
|
(current-buffer)))))
|
|
(current-buffer)))))
|
|
- ((eq where 'table-line)
|
|
|
|
|
|
+ ((eq position 'table-line)
|
|
(org-capture-put :position-for-last-stored
|
|
(org-capture-put :position-for-last-stored
|
|
(list 'table-line
|
|
(list 'table-line
|
|
(org-table-current-dline))))
|
|
(org-table-current-dline))))
|
|
@@ -1455,7 +1457,8 @@ Of course, if exact position has been required, just put it there."
|
|
(move-marker org-capture-last-stored-marker (point))))))
|
|
(move-marker org-capture-last-stored-marker (point))))))
|
|
|
|
|
|
(defun org-capture-narrow (beg end)
|
|
(defun org-capture-narrow (beg end)
|
|
- "Narrow, unless configuration says not to narrow."
|
|
|
|
|
|
+ "Possibly narrow to region between BEG and END.
|
|
|
|
+If configuration contains non-nil :unnarrowed property, do not narrow."
|
|
(unless (org-capture-get :unnarrowed)
|
|
(unless (org-capture-get :unnarrowed)
|
|
(narrow-to-region beg end)))
|
|
(narrow-to-region beg end)))
|
|
|
|
|
|
@@ -1468,8 +1471,9 @@ of the template."
|
|
(replace-match "")))
|
|
(replace-match "")))
|
|
|
|
|
|
(defun org-capture-empty-lines-before (&optional n)
|
|
(defun org-capture-empty-lines-before (&optional n)
|
|
- "Set the correct number of empty lines before the insertion point.
|
|
|
|
-Point will be after the empty lines, so insertion can directly be done."
|
|
|
|
|
|
+ "Insert N empty lines before the insertion point.
|
|
|
|
+Point will be after the empty lines, so insertion can directly be done.
|
|
|
|
+If N is nil, :empty-lines-before or :empty-lines are considered."
|
|
(setq n (or n (org-capture-get :empty-lines-before)
|
|
(setq n (or n (org-capture-get :empty-lines-before)
|
|
(org-capture-get :empty-lines) 0))
|
|
(org-capture-get :empty-lines) 0))
|
|
(let ((pos (point)))
|
|
(let ((pos (point)))
|
|
@@ -1479,7 +1483,8 @@ Point will be after the empty lines, so insertion can directly be done."
|
|
|
|
|
|
(defun org-capture-empty-lines-after (&optional n)
|
|
(defun org-capture-empty-lines-after (&optional n)
|
|
"Set the correct number of empty lines after the inserted string.
|
|
"Set the correct number of empty lines after the inserted string.
|
|
-Point will remain at the first line after the inserted text."
|
|
|
|
|
|
+Point will remain at the first line after the inserted text.
|
|
|
|
+If N is nil, :empty-lines-after or :empty-lines are considered."
|
|
(setq n (or n (org-capture-get :empty-lines-after)
|
|
(setq n (or n (org-capture-get :empty-lines-after)
|
|
(org-capture-get :empty-lines) 0))
|
|
(org-capture-get :empty-lines) 0))
|
|
(org-back-over-empty-lines)
|
|
(org-back-over-empty-lines)
|
|
@@ -1491,7 +1496,7 @@ Point will remain at the first line after the inserted text."
|
|
(defvar org-clock-marker) ; Defined in org.el
|
|
(defvar org-clock-marker) ; Defined in org.el
|
|
|
|
|
|
(defun org-capture-set-plist (entry)
|
|
(defun org-capture-set-plist (entry)
|
|
- "Initialize the property list from the template definition."
|
|
|
|
|
|
+ "Initialize the property list for ENTRY from the template definition."
|
|
(setq org-capture-plist (copy-sequence (nthcdr 5 entry)))
|
|
(setq org-capture-plist (copy-sequence (nthcdr 5 entry)))
|
|
(org-capture-put :key (car entry) :description (nth 1 entry)
|
|
(org-capture-put :key (car entry) :description (nth 1 entry)
|
|
:target (nth 3 entry))
|
|
:target (nth 3 entry))
|
|
@@ -1508,7 +1513,7 @@ Point will remain at the first line after the inserted text."
|
|
|
|
|
|
(defun org-capture-goto-target (&optional template-key)
|
|
(defun org-capture-goto-target (&optional template-key)
|
|
"Go to the target location of a capture template.
|
|
"Go to the target location of a capture template.
|
|
-The user is queried for the template."
|
|
|
|
|
|
+If TEMPLATE-KEY is nil, the user is queried for the template."
|
|
(interactive)
|
|
(interactive)
|
|
(let ((entry (org-capture-select-template template-key)))
|
|
(let ((entry (org-capture-select-template template-key)))
|
|
(unless entry (error "No capture template selected"))
|
|
(unless entry (error "No capture template selected"))
|
|
@@ -1518,7 +1523,7 @@ The user is queried for the template."
|
|
(goto-char (org-capture-get :pos))))
|
|
(goto-char (org-capture-get :pos))))
|
|
|
|
|
|
(defun org-capture-get-indirect-buffer (&optional buffer prefix)
|
|
(defun org-capture-get-indirect-buffer (&optional buffer prefix)
|
|
- "Make an indirect buffer for a capture process.
|
|
|
|
|
|
+ "Make an indirect BUFFER for a capture process.
|
|
Use PREFIX as a prefix for the name of the indirect buffer."
|
|
Use PREFIX as a prefix for the name of the indirect buffer."
|
|
(setq buffer (or buffer (current-buffer)))
|
|
(setq buffer (or buffer (current-buffer)))
|
|
(let ((n 1) (base (buffer-name buffer)) bname)
|
|
(let ((n 1) (base (buffer-name buffer)) bname)
|
|
@@ -1560,8 +1565,10 @@ Lisp programs can force the template by setting KEYS to a string."
|
|
"List various clipboards values.")
|
|
"List various clipboards values.")
|
|
|
|
|
|
(defun org-capture-fill-template (&optional template initial annotation)
|
|
(defun org-capture-fill-template (&optional template initial annotation)
|
|
- "Fill a template and return the filled template as a string.
|
|
|
|
-The template may still contain \"%?\" for cursor positioning."
|
|
|
|
|
|
+ "Fill a TEMPLATE and return the filled template as a string.
|
|
|
|
+The template may still contain \"%?\" for cursor positioning.
|
|
|
|
+INITIAL content and/or ANNOTATION may be specified, but will be overridden
|
|
|
|
+by their respective `org-store-link-plist' properties if present."
|
|
(let* ((template (or template (org-capture-get :template)))
|
|
(let* ((template (or template (org-capture-get :template)))
|
|
(buffer (org-capture-get :buffer))
|
|
(buffer (org-capture-get :buffer))
|
|
(file (buffer-file-name (or (buffer-base-buffer buffer) buffer)))
|
|
(file (buffer-file-name (or (buffer-base-buffer buffer) buffer)))
|
|
@@ -1848,7 +1855,7 @@ The template may still contain \"%?\" for cursor positioning."
|
|
|
|
|
|
(defun org-capture-escaped-% ()
|
|
(defun org-capture-escaped-% ()
|
|
"Non-nil if % was escaped.
|
|
"Non-nil if % was escaped.
|
|
-If yes, unescape it now. Assume match-data contains the
|
|
|
|
|
|
+If yes, unescape it now. Assume `match-data' contains the
|
|
placeholder to check."
|
|
placeholder to check."
|
|
(save-excursion
|
|
(save-excursion
|
|
(goto-char (match-beginning 0))
|
|
(goto-char (match-beginning 0))
|