[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Hotlist agenda view: how to simplify its expression?
From: |
Sebastien Vauban |
Subject: |
[O] Hotlist agenda view: how to simplify its expression? |
Date: |
Fri, 09 Aug 2013 16:56:20 +0200 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3 (windows-nt) |
Hello,
Suppose I want a convenient way to see my most important tasks, the ones
which:
- are due soon (in the next 7 days), or
- have a high priority (#A), or
- are FLAGGED.
If I don't mind having the entries mixed, this is quite simple and short:
#+begin_src emacs-lisp
(add-to-list 'org-agenda-custom-commands
'("H" "Hotlist"
tags-todo "DEADLINE<=\"<+1w>\"|PRIORITY=\"A\"|FLAGGED"
((org-agenda-todo-ignore-scheduled 'future))) t)
#+end_src
Though, if I want 3 different blocks (in the above order) with *no repetition*
of entries, I need to write such a monster expression:
#+begin_src emacs-lisp
(add-to-list 'org-agenda-custom-commands
'("I" "Hotlist"
((tags-todo "DEADLINE<=\"<+1w>\""
((org-agenda-overriding-header "Due in next 7
days")))
(tags-todo
"PRIORITY=\"A\"+DEADLINE=\"\"|PRIORITY=\"A\"+DEADLINE>\"<+1w>\""
((org-agenda-overriding-header "High priority")))
(tags-todo
"FLAGGED+PRIORITY=\"\"+DEADLINE=\"\"|FLAGGED+PRIORITY=\"\"+DEADLINE>\"<+1w>\"|FLAGGED+PRIORITY<>\"A\"+DEADLINE=\"\"|FLAGGED+PRIORITY<>\"A\"+DEADLINE>\"<+1w>\""
((org-agenda-overriding-header "Starred"))))
((org-agenda-todo-ignore-scheduled 'future))) t)
#+end_src
Do you see a way to optimize it (make it shorter)? On the problems relies in
the fact that the inverse of
DEADLINE<="<+1w>"
is
DEADLINE=""|DEADLINE>"<+1w>"
that is 2 tests to be done.
The same applies for the priorities: the inverse of
PRIORITY=\"A\"
is
PRIORITY=""|PRIORITY<>"A"
Hence, an exponential number of checks every time you want to remove
duplicated entries (which would have been displayed in the previous block):
you double the number of subexpressions in the next block...
Any better idea?
Best regards,
Seb
--
Sebastien Vauban
- [O] Hotlist agenda view: how to simplify its expression?,
Sebastien Vauban <=