On Aug 20, 2010, at 1:49 AM, Ilya Shlyakhter wrote:
The problem here is that I would have to insert a call to the hook in
many different places as there are many different functions that
collect entries for the agenda.
in org-finalize-agenda-entries, when you call
org-agenda-before-sorting-filter-function, could you
save-excursion and move to the original org entry before each call?
I could. But some applications of this hook will not need this
overhead,
so it is better to put this overhead into the function itself.
We can make it easier, like a single macro for going there and back
again...
Something like (untested):
(defmacro org-agenda-with-point-at-orig-entry (string &rest body)
"Execute BODY with point at location given by `org-hd-marker'
property.
If STRING is non-nil, the text property will be fetched from position 0
in that string. If STRING is nil, it will be fetched from the beginning
of the current line."
`(let ((marker (get-text-property (if string 0 (point-at-bol))
'org-hd-marker string)))
(with-current-buffer (marker-buffer marker)
(save-excursion
(goto-char marker)
,@body))))
And in your setup you would hen define the filter function like
(defun my-before-sorting-filter (line-string)
(org-agenda-with-point-at-orig-entry line-string
....
....
))
- Carsten
It might be, but there is a possibility that updating the line after
say a TODO state change will not work exactly like you wanted.
that's ok in my case, the agenda items i'm collecting aren't todo
items.
thanks! maybe, document this in the docstring of
org-agenda-before-sorting-filter-function .
On Wed, Aug 18, 2010 at 3:35 AM, Carsten Dominik
<carsten.domi...@gmail.com> wrote:
On Aug 17, 2010, at 6:40 PM, Ilya Shlyakhter wrote:
Thanks Carsten, org-agenda-before-sorting-filter-function does
what I
need.
It would be better if it was called with the point already on the
corresponding headline in the corresponding buffer.
This would also be faster as you could call it for all entries in
one
buffer at a time, avoiding a separate excursion for each entry.
The problem here is that I would have to insert a call to the hook in
many different places as there are many different functions that
collect entries for the agenda.
It seems that _appending_ text to the agenda line should be safe.
Is
that correct?
It might be, but there is a possibility that updating the line after
say a TODO state change will not work exactly like you wanted.
- Carsten
thanks,
ilya
On Mon, Aug 16, 2010 at 9:40 AM, Carsten Dominik
<carsten.domi...@gmail.com> wrote:
On Aug 16, 2010, at 2:59 PM, Ilya Shlyakhter wrote:
Thanks! Would things work faster if there was a user-defined
hook
that was called at each agenda entry at the same time
the 'org-hd-marker property gets stored, so it could store any
other
things it needs from the entry as text properties for later
use by user-defined entry sorting routine?
Please pull and take a look at the new variable
`org-agenda-before-sorting-filter-function'.
Martin, I think you could use this variable also for your
"filtering" application.
- Carsten
ilya
On Mon, Aug 16, 2010 at 8:54 AM, Carsten Dominik
<carsten.domi...@gmail.com> wrote:
On Aug 5, 2010, at 1:01 AM, Ilya Shlyakhter wrote:
When giving a user-defined function for org-agenda-cmp-user-
defined,
the function gets two agenda entries. Is there a way from an
agenda
entry
to get to the original org entry?
Yes, the marker that points to the original entry is stored in
text
properties.
You can take it and then go to the entry, for example with
(org-with-point-at (org-get-at-bol 'org-hd-marker)
;; do here what you need to do at the location of the entry
)
You could do this in org-finalize-agenda-hook for all entries,
for
example.
Might slow things down, of cause.
HTH
- Carsten
Best would be if, besides a user-defined sort function, you
could also
provide
a function that takes the org entry and the agenda item (i.e.
is run
with
point
on the org entry and is passed the agenda item), and can then
store
anything
it wants about the org entry as text properties on the agenda
item.
The companion user-defined sorting function could then use these
stored
text properties for ordering the agenda items. Could you add
such a
hook?
thanks,
ilya
On Wed, Aug 4, 2010 at 6:51 PM, Bastien <bastien.gue...@wikimedia.fr
>
wrote:
Hi Ilya,
Ilya Shlyakhter <ilya_...@alum.mit.edu> writes:
I'd like to sort agenda entries in a custom agenda view by
the value
of a text property that I put on the headlines.
Is there a way to do that?
Well, no.
Maybe playing around with org-map-entries could yield some
result.
--
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
- Carsten
- Carsten
- Carsten
- Carsten
_______________________________________________
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