Add %< expansion. This tells org-remember to add the item to the currently clocked task. Often while I'm working on something I find other related things which need to be done and this makes it possible to use a remember template to add a TODO item in the right place.
Add %l expansion for the current clock string. Add %L expansion for a link to the currently clocked task. --- lisp/ChangeLog | 7 ++++++- lisp/org-remember.el | 38 ++++++++++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d072d40..b591f32 100755 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2008-07-25 James TD Smith <[EMAIL PROTECTED]> + * org-remember.el (org-remember-apply-template): Add new + expansions: %k, %K for currently clocked task and a link to the + currently clocked task, and %< to file notes in the currently + clocked task. + * org.el (org-get-refile-targets): Replace links with their descriptions (org-imenu-get-tree): Replace links with their descriptions @@ -18,7 +23,7 @@ set-text-properties to remove text properties from the clipboard value. - * lisp/org-clock.el (org-update-mode-line): Support limiting the + * org-clock.el (org-update-mode-line): Support limiting the modeline clock string, and display the full todo value in the tooltip. Set a local keymap so mouse-3 on the clock string goes to the currently clocked task. diff --git a/lisp/org-remember.el b/lisp/org-remember.el index 8399f3d..80b5896 100644 --- a/lisp/org-remember.el +++ b/lisp/org-remember.el @@ -135,11 +135,15 @@ Furthermore, the following %-escapes will be replaced with content: %^L Like %^C, but insert as link %^g prompt for tags, with completion on tags in target file %^G prompt for tags, with completion all tags in all agenda files + %k currently clocked task + %K link to currently clocked task + %:keyword specific information for certain link types, see below %[pathname] insert the contents of the file given by `pathname' %(sexp) evaluate elisp `(sexp)' and replace with the result %! Store this note immediately after filling the template %& Visit note immediately after storing it + %< file note under currently clocked task %? After completing the template, position cursor here. @@ -346,11 +350,33 @@ to be run from that hook to function properly." (replace-match "[\\1[%^{Link description}]]" nil nil v-a) v-a)) (v-n user-full-name) + (v-k (if (marker-buffer org-clock-marker) + (substring-no-properties org-clock-heading))) + (v-K (if (marker-buffer org-clock-marker) + (org-make-link-string + (buffer-file-name (marker-buffer org-clock-marker)) + org-clock-heading))) + v-I (org-startup-folded nil) org-time-was-given org-end-time-was-given x prompt completions char time pos default histvar) (when (and file (not (file-name-absolute-p file))) (setq file (expand-file-name file org-directory))) + + ;;handle the %^K file to clocked task indicator + (if (and v-k (string-match "%<" tpl)) + (setq file (buffer-file-name (marker-buffer org-clock-marker)) + headline (with-current-buffer + (get-buffer (marker-buffer org-clock-marker)) + (goto-char (marker-position org-clock-marker)) + (org-back-to-heading t) + (if (looking-at org-complex-heading-regexp) + (concat (match-string 2) + (if (match-string 2) " ") + (match-string 3) + (if (match-string 3) " ") + (match-string 4)))))) + (setq org-store-link-plist (append (list :annotation v-a :initial v-i) org-store-link-plist)) @@ -369,9 +395,14 @@ to be run from that hook to function properly." (or headline "") (or (car org-remember-previous-location) "???") (or (cdr org-remember-previous-location) "???")))) - (insert tpl) (goto-char (point-min)) + (insert tpl) + (goto-char (point-min)) + ;;Get rid of %< if present + (while (re-search-forward "%<" nil t) + (replace-match "")) + (goto-char (point-min)) ;; Simple %-escapes - (while (re-search-forward "%\\([tTuUaiAcx]\\)" nil t) + (while (re-search-forward "%\\([tTuUaiAcxkKI]\\)" nil t) (when (and initial (equal (match-string 0) "%i")) (save-match-data (let* ((lead (buffer-substring @@ -380,8 +411,7 @@ to be run from that hook to function properly." (org-split-string initial "\n") (concat "\n" lead)))))) (replace-match - (or (eval (intern (concat "v-" (match-string 1)))) "") - t t)) + (or (eval (intern (concat "v-" (match-string 1)))) "") t t)) ;; %[] Insert contents of a file. (goto-char (point-min)) _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode