From mboxrd@z Thu Jan 1 00:00:00 1970 From: James TD Smith Subject: [PATCH 7/7] Add some new interaction between remember and clocked tasks Date: Fri, 25 Jul 2008 00:46:39 +0100 Message-ID: <20080724234639.23478.94799.stgit@nyarlathotep.internal.mohorovi.cc> References: <20080724234608.23478.48564.stgit@nyarlathotep.internal.mohorovi.cc> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KMAWE-0003jf-Bl for emacs-orgmode@gnu.org; Thu, 24 Jul 2008 19:46:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KMAWC-0003hh-DJ for emacs-orgmode@gnu.org; Thu, 24 Jul 2008 19:46:45 -0400 Received: from [199.232.76.173] (port=33563 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KMAWB-0003hL-Qg for emacs-orgmode@gnu.org; Thu, 24 Jul 2008 19:46:43 -0400 Received: from 81-86-40-42.dsl.pipex.com ([81.86.40.42]:60256 helo=yog-sothoth.mohorovi.cc) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KMAWA-0005wC-Pz for emacs-orgmode@gnu.org; Thu, 24 Jul 2008 19:46:43 -0400 Received: from nyarlathotep.internal.mohorovi.cc (Debian-exim@nyarlathotep.internal.mohorovi.cc [10.0.0.5]) by yog-sothoth.mohorovi.cc (8.13.4/8.13.4) with ESMTP id m6ONleAE002369 for ; Fri, 25 Jul 2008 00:47:40 +0100 (BST) (envelope-from ahktenzero@mohorovi.cc) Received: from [127.0.0.1] (helo=nyarlathotep.internal.mohorovi.cc ident=ahktenzero) by nyarlathotep.internal.mohorovi.cc with esmtp (Exim 4.69) (envelope-from ) id 1KMAW7-0006AW-E1 for emacs-orgmode@gnu.org; Fri, 25 Jul 2008 00:46:39 +0100 In-Reply-To: <20080724234608.23478.48564.stgit@nyarlathotep.internal.mohorovi.cc> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org 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 + * 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))