From: Carsten Dominik <carsten.dominik@gmail.com>
To: Samuel Wales <samologist@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: agenda restriction locks and searching all nodes quickly
Date: Sat, 6 Nov 2010 17:36:03 -0400 [thread overview]
Message-ID: <5CE901B0-EAF4-4C71-8F13-8FB788784411@gmail.com> (raw)
In-Reply-To: <AANLkTiki6ZOHTh41zHg+PrYQM9a-wcw90_N5N-cjYy3R@mail.gmail.com>
Hi SAmuel,
On Nov 6, 2010, at 12:47 AM, Samuel Wales wrote:
> Having trouble with setting a restriction lock and also with
> searching quickly.
>
> Can somebody kindly respond to the questions in the comments below?
>
>
> (defun alpha-org-agenda-parent-subtree ()
> "Show agenda for all tasks in subtree above point. This means
> all /siblings/ of point and everything beneath them.
>
> If the region is active, operate only on the region.
>
> You can get a fast sorted view with this command. In this
> example, the agenda will show tasks under my subtree.
>
> * top level 1 -- not shown
> * my subtree -- shown
> * TODO a
> * some other headline | (<- point is here)
> * TODO [#A] b
> * top level 2 -- not shown
>
> If you sort by priority, b will sort above a.
>
> This allows you to organize nodes hierarchically instead of
> keeping things at the same level merely to allow sorting.
> "
> (interactive)
> (save-excursion
> ;;unwind-protect
> (if (not (org-up-heading-safe))
> (message "top level is nyi")
> ;;is this the right way to do it? i tried
> ;;(let (org-agenda-overriding-restriction ...
> ;;
> ;;how do i make this work for the active region?
> (org-agenda-set-restriction-lock 'subtree)
> ;;is there a less kludgey way to specify all tasks in the
> restriction?
> ;;more importantly, what is the absolutely /fastest/ way?
I guess you could remember start and end of the region
and the implement a skipping function the checks if the
match is in the range. If you are in a large file, this
would still be somewhat wasteful.
The fastest way for a region would be (untested)
(setq org-agenda-restrict t)
(setq org-agenda-overriding-restriction 'region)
(put 'org-agenda-files 'org-restrict
(list (buffer-file-name (buffer-base-buffer))))
(move-marker org-agenda-restrict-begin (region-beginning))
(move-marker org-agenda-restrict-end (region-end))
> ;;
> ;;this seems to take forever even for a single node
> (org-search-view nil "{.}"))))
Try a tags/property match with "LEVEL>0", that
should be more efficient.
>
> Thanks.
>
> Samuel
>
> --
> Q: How many CDC "scientists" does it take to change a lightbulb?
> A: "You only think it's dark." [CDC has denied a deadly serious
> disease for 25 years]
> ==========
> HIV-like virus: http://www.wpinstitute.org/xmrv/index.html -- PLEASE
> DONATE
> ===
> I want to see the original (pre-hold) Lo et al. 2010 NIH/FDA/Harvard
> MLV paper.
>
> _______________________________________________
> 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
next prev parent reply other threads:[~2010-11-06 21:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-05 23:47 agenda restriction locks and searching all nodes quickly Samuel Wales
2010-11-06 21:36 ` Carsten Dominik [this message]
2010-11-10 0:05 ` Samuel Wales
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5CE901B0-EAF4-4C71-8F13-8FB788784411@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=samologist@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.