From: Wanrong Lin <wanrong.lin@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Highlighting Sparse Tree Leaves
Date: Thu, 21 Feb 2008 17:53:38 -0500 [thread overview]
Message-ID: <47BE00F2.9050703@gmail.com> (raw)
In-Reply-To: <0D9FB1D7-E426-4F3D-8466-024D602863C8@science.uva.nl>
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
>
next prev parent reply other threads:[~2008-02-21 22:54 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 [this message]
2008-02-22 7:07 ` Carsten Dominik
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=47BE00F2.9050703@gmail.com \
--to=wanrong.lin@gmail.com \
--cc=emacs-orgmode@gnu.org \
/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).