emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: Wanrong Lin <wanrong.lin@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Highlighting Sparse Tree Leaves
Date: Fri, 22 Feb 2008 08:07:26 +0100	[thread overview]
Message-ID: <B3C167EC-7E58-4DEC-91EE-F0062AD15359@science.uva.nl> (raw)
In-Reply-To: <47BE00F2.9050703@gmail.com>

Hi Wanrong, thanks for the code. It looks good, I will put it into
my trickler to reconsider a some time in the future.

- Carsten

On Feb 21, 2008, at 11:53 PM, Wanrong Lin wrote:

>
> Hi, Carsten,
>
> I hacked a patch that does what I need. Just in case you change your  
> mind in the future, or anyone else has the same need as I, here is  
> the patch (against org.el in 5.22a. I did not get time to learn git  
> yet). Thanks.
>
> Wanrong
>
> --------------------------------
>
> 15082c15082,15085
> <         (org-highlight-new-match (match-beginning 0) (match-end 0)))
> ---
> >         ;; <WL: changed to highlight sparse tree leaves>
> >         (if (and org-highlight-sparse-tree-leaf (not (org-has- 
> match-in-subtree-p regexp)))
> >             (org-highlight-new-match (match-beginning 0) (match- 
> end 0) 'org-sparse-tree-leaf)
> >           (org-highlight-new-match (match-beginning 0) (match-end  
> 0))))
> 15141,15145c15144,15149
> < (defun org-highlight-new-match (beg end)
> <   "Highlight from BEG to END and mark the highlight is an occur  
> headline."
> <   (let ((ov (org-make-overlay beg end)))
> <     (org-overlay-put ov 'face 'secondary-selection)
> <     (push ov org-occur-highlights)))
> ---
> > ;;;; <WL> replaced with my own version to support highlighting  
> sparse tree leaves
> > ;; (defun org-highlight-new-match (beg end)
> > ;;   "Highlight from BEG to END and mark the highlight is an occur  
> headline."
> > ;;   (let ((ov (org-make-overlay beg end)))
> > ;;     (org-overlay-put ov 'face 'secondary-selection)
> > ;;     (push ov org-occur-highlights)))
> 28233a28238,28265
> > ;;;;;; <WL> my own extension to org to show sparse tree leaves in  
> different face ;;;;;
> >
> > ;; highlighting sparse tree leaves
> >
> > ;; <WL>
> > (defvar org-highlight-sparse-tree-leaf t
> >   "Whether to highlight sparse tree leaves")
> > (defface org-sparse-tree-leaf '((t (:background "#cdb38b")))
> >   "Face for highlighting sparse tree leaves.")
> >
> > ;; <WL: changed for highlighting sparse tree leaves>
> > (defun org-highlight-new-match (beg end &optional highlight-face)
> >   "Highlight from BEG to END and mark the highlight is an occur  
> headline."
> >   (let ((ov (org-make-overlay beg end)))
> >     (if highlight-face
> >         (org-overlay-put ov 'face highlight-face)
> >       (org-overlay-put ov 'face 'secondary-selection))
> >     (push ov org-occur-highlights)))
> >
> > ;; <WL: for highlighting sparse tree leaves>
> > (defun org-has-match-in-subtree-p(regexp)
> >   "Returns non-nil if there is a match for regexp in current  
> subtree."
> >   (save-match-data
> >     (save-excursion
> >       (let ((beg (point)) (end-of-tree (org-end-of-subtree t)))
> >         (goto-char beg)
> >         (re-search-forward regexp end-of-tree t)))))
> >
> 28240d28271
> <
>
> -------------------------------------------
>
> Carsten Dominik wrote:
>>
>> On Feb 18, 2008, at 4:19 PM, Wanrong Lin wrote:
>>
>>>
>>> Using "PROJECT" as a TODO keyword certainly can work, however, my  
>>> work flow usually is first quickly mark anything that needs action  
>>> with "TODO" and later I may add more sub-items to it. Following  
>>> this approach I will need to remember to change "TODO" to  
>>> "PROJECT" once a TODO item starts to have sub-items. Also, if all  
>>> sub-actions of a "PROJECT" are marked as "DONE", I need to  
>>> remember to turn the "PROJECT" back to "TODO", as I need the  
>>> sparse tree to remind me to double check this TODO/PROJECT item to  
>>> see whether it is really all done, or I need to add more sub- 
>>> actions to it (and turn it back to "PROJECT" again).
>>>
>>> As you can see, that is a lot of manually actions and mistakes can  
>>> be easily made. Maybe my workflow has some problem here, but I can  
>>> not think of anything else that works better. The difficulty to me  
>>> is, an item can be either PROJECT or TODO depending on how  
>>> detailed your plan is, which keeps changing.
>>>
>>> I think if we can have the *option* of selecting a different face  
>>> for highlighting sparse tree leaves, the above can be solved  
>>> elegantly. You can still see the whole sparse tree, but the leaves  
>>> will stand out.
>>>
>>> Just trying to push my case a little bit. :-)   Thanks a lot.
>>
>> That is fine, but it does not work in this case... :-(
>>
>> - Carsten
>>
>>>
>>>
>>> Wanrong
>>>
>>> Carsten Dominik wrote:
>>>> Hi Wanrong,
>>>>
>>>> No, I think you need to find a different way around this.
>>>> For example by using a different keyword for the headings that  
>>>> contain the true TODO items.  I use PROJECT or something similar.
>>>> When you then search for TODO, the true tasks will be highlighted.
>>>>
>>>> - Carsten
>>>>
>>>> On Feb 15, 2008, at 12:36 AM, Wanrong Lin wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Is it possible to highlighting only the sparse tree leaves, or  
>>>>> even better, highlighting the whole sparse tree but with leaves  
>>>>> in a special face?
>>>>>
>>>>> The motivation for such a feature is this:
>>>>>
>>>>> Suppose I have a task tree like this:
>>>>>
>>>>> * TODO Task A
>>>>> *** TODO Task A.1
>>>>> ***** TODO Task A.1.1
>>>>> * TODO Task B
>>>>> *** TODO Task B.1
>>>>> ***** TODO Task B.1.1
>>>>> ***** TODO Task B.1.2
>>>>>
>>>>> If I do a "org-sparse-tree", all those lines are highlighted,  
>>>>> giving an impression that I have a lot of open tasks, but in  
>>>>> reality I only have three tasks: A.1.1, B.1.1 and B.1.2, as the  
>>>>> higher level tasks are automatically done if those are done. So  
>>>>> it would be nice to highlight those leaves in a special face.  
>>>>> Also, suppose both B.1.1 and B.1.2 are done, then Task B.1  
>>>>> should be highlighted as a leaf.
>>>>>
>>>>> Hope the above makes some sense. Thank you very much for giving  
>>>>> it a thought.
>>>>>
>>>>> Wanrong
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Emacs-orgmode mailing list
>>>>> Remember: use `Reply All' to send replies to the list.
>>>>> Emacs-orgmode@gnu.org <mailto:Emacs-orgmode@gnu.org>
>>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Remember: use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org <mailto:Emacs-orgmode@gnu.org>
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

      reply	other threads:[~2008-02-22  7:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-14 23:36 Highlighting Sparse Tree Leaves Wanrong Lin
2008-02-18 11:18 ` Carsten Dominik
2008-02-18 15:19   ` Wanrong Lin
2008-02-21 16:42     ` Carsten Dominik
2008-02-21 22:53       ` Wanrong Lin
2008-02-22  7:07         ` Carsten Dominik [this message]

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=B3C167EC-7E58-4DEC-91EE-F0062AD15359@science.uva.nl \
    --to=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    --cc=wanrong.lin@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).