Hi, On 15.05.2010 08:42, Carsten Dominik wrote: > On May 14, 2010, at 5:42 AM, Samuel Wales wrote: >> On 2010-05-13, Martin Pohlack<m...@os.inf.tu-dresden.de> wrote: >>> Is there interest to define remember targets via paths or via ID? >> >> ID would be useful, I think. > > ID certainly - path could be useful to avoid ambiguities.
Please find attached a first version of a patch adding support for IDs as remember targets. Feedback welcome. Cheers, Martin
This patch adds support for specifying the ID of a target headline. Open issues: * Using a cons cell seems a bit ugly. A string would be fine too but this is already used by the headline itself in the choice element. * The visual appearance of the ID choice is suboptimal. Is there any way to hide the const visually? * The comments in the remember buffer seems to be setup wrong, where must I hook in to support IDs there? diff --git a/home/mpohlack/src/org-mode/lisp/org-remember.el b/org-remember.el index 59e015f..a0dbac4 100644 --- a/home/mpohlack/src/org-mode/lisp/org-remember.el +++ b/org-remember.el @@ -108,7 +108,8 @@ An optional fifth element can specify the headline in that file that should be offered first when the user is asked to file the entry. The default headline is given in the variable `org-remember-default-headline'. When this element is `top' or `bottom', the note will be placed as a level-1 -entry at the beginning or end of the file, respectively. +entry at the beginning or end of the file, respectively. You can also specify +the `ID' of a target headline. An optional sixth element specifies the contexts in which the template will be offered to the user. This element can be a list of major modes @@ -195,7 +196,8 @@ calendar | %:type %:date" (const :tag "Use `org-remember-default-headline'" nil) (const :tag "At beginning of file" top) (const :tag "At end of file" bottom) - (const :tag "In a date tree" date-tree)) + (const :tag "In a date tree" date-tree) + (cons :tag "ID" (const :tag "" ID) (string :tag "ID"))) (choice :tag "Context" (const :tag "Use in all contexts" nil) (const :tag "Use in all contexts" t) @@ -974,6 +976,10 @@ See also the variable `org-reverse-note-order'." (org-datetree-find-date-create reference-date) (setq reversed nil) (setq org-goto-start-pos (point))) + ((consp heading) + (setq org-goto-start-pos (org-find-entry-with-id (cdr heading))) + (when (not org-goto-start-pos) + (error "Target headline with ID '%s' not found" (cdr heading)))) ((and (stringp heading) (string-match "\\S-" heading)) (goto-char (point-min)) (if (re-search-forward
_______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode