emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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

  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

  List information: https://www.orgmode.org/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).