From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: v3, with support for narrowing Date: Thu, 28 Apr 2011 23:35:41 -0400 Message-ID: <17141.1304048141@alphaville.dokosmarshall.org> References: <867hal4a6t.wl%simon.guest@tesujimath.org> <87iptzoa5x.fsf@ucl.ac.uk> <86zknb9v1y.wl%simon.guest@tesujimath.org> <87oc3qg4f8.fsf@ucl.ac.uk> <86y62uxc90.wl%simon.guest@tesujimath.org> <86y62tyg2u.wl%simon.guest@tesujimath.org> <871v0leq3h.fsf@ericabrahamsen.net> Reply-To: nicholas.dokos@hp.com Return-path: Received: from eggs.gnu.org ([140.186.70.92]:39695) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QFeUt-0004qj-1Q for emacs-orgmode@gnu.org; Thu, 28 Apr 2011 23:36:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QFeUr-0003ha-82 for emacs-orgmode@gnu.org; Thu, 28 Apr 2011 23:36:03 -0400 Received: from vms173011pub.verizon.net ([206.46.173.11]:41479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QFeUq-0003hQ-Vz for emacs-orgmode@gnu.org; Thu, 28 Apr 2011 23:36:01 -0400 Received: from alphaville.dokosmarshall.org ([unknown] [173.76.32.106]) by vms173011.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0LKE00FBL9ZIT330@vms173011.mailsrvcs.net> for emacs-orgmode@gnu.org; Thu, 28 Apr 2011 22:35:48 -0500 (CDT) In-reply-to: Message from Eric Abrahamsen of "Fri, 29 Apr 2011 10:41:38 +0800." <871v0leq3h.fsf@ericabrahamsen.net> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Abrahamsen Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org Eric Abrahamsen wrote: > On Fri, Apr 29 2011, Simon Guest wrote: > > > At Thu, 28 Apr 2011 15:47:07 -0700, > > Samuel Wales wrote: > >> Is it possible to make it so that you can show the overlays for just a > >> subtree or region instead of the entire buffer? > > > > Hi Samuel, > > > > Good idea! So I just fixed it to handle narrowing properly, so narrow > > to your region or subtree of interest first, and then count as usual. > > > > Attached v3 which does this. I'm not normally this responsive, you > > just caught me at a good time. ;-) > > Is this still a good time? Because what I'd really like is > inclusion/exclusion tags, so that I can mark some subtrees to count, and > others to ignore. I tried doing this last night, based on other parts of > the export code, and my elisp failed. Perhaps just exclusion tags? > Here's hoping you still have a bit of time/interest for improvements! > > (I'm translating a novel, not writing one, and want to keep the original > text out of the count. Plus I've got a bunch of research/notes sections > that should be excluded.) > > If you're out of time, I'll have another whack at it, and maybe bring my > broken efforts to the list. > The mapping API allows you to walk through the entries, filter the ones you want and apply a function on each remaining entry. So cribbing heavily from Simon's code, the following should count all the entries with tag "foo": --8<---------------cut here---------------start------------->8--- (defun show-count () (let ((p (point)) wc) (when (setq wc (get-text-property p :org-wc)) (org-wc-put-overlay wc (funcall outline-level))) (when org-remove-highlights-with-change (org-add-hook 'before-change-functions 'org-wc-remove-overlays nil 'local)))) (defun count-foo () (interactive) (let (bmp (buffer-modified-p)) (org-wc-count-subtrees) (org-map-entries 'show-count "+foo" 'file) (set-buffer-modified-p bmp))) --8<---------------cut here---------------end--------------->8--- Nick