[O] Re: [Orgmode] using (id Name) target in org-capture-templates

2011-03-06 Thread Bastien
Hi Sullivan,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 The way I understood your patch is that I can use (currentfile) as
 _the_ target expression in a capture template.  What I was requesting
 was to use 'capturefile' _within_ a file+headline target
 expressions. Let me re-include a motivating example - as your citation
 didn't include it:

Sorry, I overlooked your request.

  (setq org-capture-templates
'((j Journal entry (file+headline currentfile Journal) * %a\n\n%i))
  (t To Do entry (file+headline currentfile Tasks) * TODO %? 
 %i\n)))

Actually, you can already do this:

(setq org-capture-templates
   '((j Journal entry (file+headline buffer-file-name Journal) * 
%a\n\n%i))
 (t To Do entry (file+headline buffer-file-name Tasks) * TODO %? 
%i\n)))

See the documentation about file specification.

So I removed (currentfile), which is simply (file buffer-file-name)).

HTH,

-- 
 Bastien



[O] RE: [Orgmode] using (id Name) target in org-capture-templates

2011-03-06 Thread Sullivan, Gregory (US SSA)
Perfect.  Thanks very much!

-- Greg
-- 
Greg Sullivan  gregory.sulli...@baesystems.com
(781)262-4553 (office) (978)430-3461 (cell)

-Original Message-
From: Bastien Guerry [mailto:bastiengue...@googlemail.com] On Behalf Of Bastien
Sent: Sunday, March 06, 2011 12:08 PM
To: Sullivan, Gregory (US SSA)
Cc: Giovanni Ridolfi; Emacs-orgmode@gnu.org
Subject: Re: [Orgmode] using (id Name) target in org-capture-templates

Hi Sullivan,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 The way I understood your patch is that I can use (currentfile) as
 _the_ target expression in a capture template.  What I was requesting
 was to use 'capturefile' _within_ a file+headline target
 expressions. Let me re-include a motivating example - as your citation
 didn't include it:

Sorry, I overlooked your request.

  (setq org-capture-templates
'((j Journal entry (file+headline currentfile Journal) * %a\n\n%i))
  (t To Do entry (file+headline currentfile Tasks) * TODO %? 
 %i\n)))

Actually, you can already do this:

(setq org-capture-templates
   '((j Journal entry (file+headline buffer-file-name Journal) * 
%a\n\n%i))
 (t To Do entry (file+headline buffer-file-name Tasks) * TODO %? 
%i\n)))

See the documentation about file specification.

So I removed (currentfile), which is simply (file buffer-file-name)).

HTH,

-- 
 Bastien



Re: [Orgmode] using (id Name) target in org-capture-templates

2011-02-27 Thread Bastien
Hi Gregory,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 It would be quite useful if I could use currentfile in place of
 path/to/file in the various Target patterns.  That is, it would be
 nice to write something like:

This is already implemented in Org's git version.  See the email you're
replying to, I gave the explanations.

Thanks,

-- 
 Bastien

___
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


RE: [Orgmode] using (id Name) target in org-capture-templates

2011-02-27 Thread Sullivan, Gregory (US SSA)
The way I understood your patch is that I can use (currentfile) as _the_ target 
expression in a capture template.  What I was requesting was to use 
'capturefile' _within_ a file+headline target expressions. Let me re-include a 
motivating example - as your citation didn't include it:

 (setq org-capture-templates
   '((j Journal entry (file+headline currentfile Journal) * %a\n\n%i))
 (t To Do entry (file+headline currentfile Tasks) * TODO %? %i\n)))

which does not seem to be implemented in the current git version, unless I've 
completely messed up my orgmode git checkout.

Possibly this could be done by checking for the symbol 'currentfile in 
org-capture-target-buffer, and using (buffer-file-name).
Do you think that would work?

Thanks again.
-- Greg
-- 
Greg Sullivan  gregory.sulli...@baesystems.com
(781)262-4553 (office) (978)430-3461 (cell)


-Original Message-
From: Bastien Guerry [mailto:bastiengue...@googlemail.com] On Behalf Of Bastien
Sent: Sunday, February 27, 2011 6:37 AM
To: Sullivan, Gregory (US SSA)
Cc: Giovanni Ridolfi; Emacs-orgmode@gnu.org
Subject: Re: [Orgmode] using (id Name) target in org-capture-templates

Hi Gregory,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 It would be quite useful if I could use currentfile in place of
 path/to/file in the various Target patterns.  That is, it would be
 nice to write something like:

This is already implemented in Org's git version.  See the email you're
replying to, I gave the explanations.

Thanks,

-- 
 Bastien

___
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


RE: [Orgmode] using (id Name) target in org-capture-templates

2011-02-22 Thread Sullivan, Gregory (US SSA)
It would be quite useful if I could use currentfile in place of path/to/file 
in the various Target patterns.  That is, it would be nice to write something 
like:

(setq org-capture-templates
   '((j Journal entry (file+headline currentfile Journal) * %a\n\n%i))
 (t To Do entry (file+headline currentfile Tasks) * TODO %? %i\n)))

Thanks.

-- Greg
-- 
Greg Sullivan  gregory.sulli...@baesystems.com
(781)262-4553 (office) (978)430-3461 (cell)


-Original Message-
From: Bastien Guerry [mailto:bastiengue...@googlemail.com] On Behalf Of Bastien
Sent: Friday, February 11, 2011 5:22 AM
To: Sullivan, Gregory (US SSA)
Cc: Giovanni Ridolfi; Emacs-orgmode@gnu.org
Subject: Re: [Orgmode] using (id Name) target in org-capture-templates

Hi Gregory,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 Thanks for the note.  I did indeed mean to use headings.

 I think it would be nice to be able to have the file dynamic but the 
 heading static in capture templates.  In my case, I always want to 
 find a particular heading in the buffer that the capture originated 
 from. So I had to put the whole target spec in a function, as in:

I like the idea of being able to tell capture to use the current file.

This patch against latest Org allows you to use (currentfile) like this:

,
| (setq org-capture-templates
|   '((j Journal entry (currentfile) * %a\n\n%i)))
`

Let me know if you find this useful.


___
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


Re: [Orgmode] using (id Name) target in org-capture-templates

2011-02-11 Thread Bastien
Hi Gregory,

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 Thanks for the note.  I did indeed mean to use headings.

 I think it would be nice to be able to have the file dynamic but the
 heading static in capture templates.  In my case, I always want to
 find a particular heading in the buffer that the capture originated
 from. So I had to put the whole target spec in a function, as in:

I like the idea of being able to tell capture to use the current file.

This patch against latest Org allows you to use (currentfile) like this:

,
| (setq org-capture-templates
|   '((j Journal entry (currentfile) * %a\n\n%i)))
`

Let me know if you find this useful.

From a276dc40c860e636be7c8d743bd01b401461a8f5 Mon Sep 17 00:00:00 2001
From: Bastien Guerry b...@altern.org
Date: Fri, 11 Feb 2011 11:17:16 +0100
Subject: [PATCH] Allow (currentfile) for capture templates.

* org-capture.el (org-capture-templates): document currentfile
for capture template.
(org-capture-templates): Allow to use currentfile for capture
templates.
(org-capture-set-target-location): Handle currentfile as a way
to setting the capture buffer.

* org.texi (Template elements): document currentfile for
capture templates.
---
 doc/org.texi|4 
 lisp/org-capture.el |   12 
 2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/doc/org.texi b/doc/org.texi
index f8a7493..be66b75 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -6314,6 +6314,10 @@ Valid values are:
 @item (file path/to/file)
 Text will be placed at the beginning or end of that file.
 
+@item (currentfile)
+Text will be placed at the beginning or end of the file 
+@code{org-capture} is called from.
+
 @item (id id of existing org entry)
 Filing as child of this entry, or in the body of the entry.
 
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index e258308..2f9b379 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -120,6 +120,10 @@ target   Specification of where the captured item should be placed.
  (file \path/to/file\)
  Text will be placed at the beginning or end of that file
 
+ (currentfile)
+ Text will be placed at the beginning or end of the file
+ org-capture is called from
+
  (id \id of existing org entry\)
  File as child of this entry, or in the body of the entry
 
@@ -266,6 +270,8 @@ calendar|  %:type %:date
 		   (list :tag File
 			 (const :format  file)
 			 (file :tag   File))
+		   (list :tag Current file
+			 (const :format  currentfile))
 		   (list :tag ID
 			 (const :format  id)
 			 (string :tag   ID))
@@ -632,6 +638,12 @@ already gone.  Any prefix argument will be passed to the refile comand.
 	(set-buffer (org-capture-target-buffer (nth 1 target)))
 	(setq target-entry-p nil))
 
+   ((eq (car target) 'currentfile)
+	(if (not (and (buffer-file-name) (org-mode-p)))
+	(error Cannot call this capture template outside of an Org buffer)
+	  (set-buffer (org-capture-target-buffer (buffer-file-name)))
+	  (setq target-entry-p nil)))
+
((eq (car target) 'id)
 	(let ((loc (org-id-find (nth 1 target
 	  (if (not loc)
-- 
1.7.4


-- 
 Bastien
___
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


RE: [Orgmode] using (id Name) target in org-capture-templates

2011-01-06 Thread Sullivan, Gregory (US SSA)
Thanks for the note.  I did indeed mean to use headings.

I think it would be nice to be able to have the file dynamic but the heading 
static in capture templates.  In my case, I always want to find a particular 
heading in the buffer that the capture originated from. So I had to put the 
whole target spec in a function, as in:

   (setq org-capture-templates
  `((t Todo (local) entry
 (function (lambda ()
 (set-buffer (org-capture-get :original-buffer))
 (let ((hd Tasks))
   (goto-char (point-min))
   (if (re-search-forward
(format org-complex-heading-regexp-format 
(regexp-quote hd))
nil t)
   (beginning-of-line 2)
 (goto-char (point-max))
 (or (bolp) (insert \n))
 (insert *  hd \n)
 (beginning-of-line 0)
  ...

most of which is copied from the file+heading case in org-capture.el

What I'd like to be able to write in an org-capture-template is something like:

   (setq org-capture-templates
  `((t Todo (local) entry 
 (function+heading 
 (lambda () (org-capture-get :original-buffer))
 Tasks))
 ...

Where the function sets the buffer, but org machinery is used to match the 
heading.

Another idiom would be to allow a string-returning function wherever a string 
is currently allowed for the file target, so the above would be instead:

   (setq org-capture-templates
  `((t Todo (local) entry 
 (file+heading 
 (lambda () (org-capture-get :original-buffer))
 Tasks))
 ...

The last is my preferred, as it would apply to all of the file+headline, 
file+olp, file+regexp, etc. target specifications in allowed for 
org-capture-templates.

Thanks.

-- Greg
-- 
Greg Sullivan  gregory.sulli...@baesystems.com
(781)262-4553 (office) (978)430-3461 (cell)

-Original Message-
From: Giovanni Ridolfi [mailto:giovanni.rido...@yahoo.it] 
Sent: Thursday, December 23, 2010 6:42 AM
To: Sullivan, Gregory (US SSA)
Cc: Emacs-orgmode@gnu.org
Subject: Re: [Orgmode] using (id Name) target in org-capture-templates

Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 I would like to have a template that will add a TODO below the Tasks
 heading in the current .org file.  From the documentation, I would
 think that 

 (setq org-capture-templates
   `((t Todo (local) entry (id Tasks)
* TODO %? %i\n%T\n :prepend t)
  ))

 would work, 

Be careful: heading is not id.

from the documentation of the variable in the file org-mode/lisp/org-capture.el

   target: (id \id of existing org entry\)
  File as child of this entry, or in the body of the entry


Do you have a tree like the following?

* Tasks
   :PROPERTIES:
   :ID: Tasks
:END:

If yes, then it works, if the :ID: value is unique.

cheers,
Giovanni

___
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


Re: [Orgmode] using (id Name) target in org-capture-templates

2010-12-23 Thread Giovanni Ridolfi
Sullivan, Gregory (US SSA) gregory.sulli...@baesystems.com writes:

 I would like to have a template that will add a TODO below the Tasks
 heading in the current .org file.  From the documentation, I would
 think that 

 (setq org-capture-templates
   `((t Todo (local) entry (id Tasks)
* TODO %? %i\n%T\n :prepend t)
  ))

 would work, 

Be careful: heading is not id.

from the documentation of the variable in the file org-mode/lisp/org-capture.el

   target: (id \id of existing org entry\)
  File as child of this entry, or in the body of the entry


Do you have a tree like the following?

* Tasks
   :PROPERTIES:
   :ID: Tasks
:END:

If yes, then it works, if the :ID: value is unique.

cheers,
Giovanni

___
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