Actually. What I want, I think, is a function that sorts the whole buffer
and then collapses all nodes.

I think your my-hide-all-drawers-in-current-subtree thing will take care of
collapsing all nodes. But I'm now on StackOverflow trying to work out how
to sort the whole buffer.


On 17 April 2014 14:02, Noah Slater <nsla...@tumbolia.org> wrote:

> Okay, wow. Thanks for writing that. Do you have a Gittip or something? I
> would love to support your OSS work in some way or otherwise show my
> gratitude beyond words in an email!
>
> Anyway. I tried your function and it works. But afterwards, the node is
> completely folded. So I added (org-cycle) to the sequence of functions
> inside save-restriction. That seems to work, but I'm no elisp/Org pro. Is
> this how you would have done it?
>
>
> On 17 April 2014 13:55, Bastien <b...@gnu.org> wrote:
>
>> Noah Slater <nsla...@tumbolia.org> writes:
>>
>> > Okay, that seem to work.
>> >
>> > But I'm not able to get this work:
>> >
>> > (add-hook 'org-after-sorting-entries-or-items-hook
>> >           (lambda() (org-cycle-hide-drawers 'children)))
>> >
>> > After running the sort, all the LOGBOOK draws are still open.
>>
>> Try this:
>>
>> (defun my-hide-all-drawers-in-current-subtree ()
>>   "Hide all drawers in the current subtree."
>>   (save-restriction
>>     (org-narrow-to-subtree)
>>     (org-cycle-hide-drawers 'all)
>>     (org-cycle-internal-local)))
>>
>> (add-hook 'org-after-sorting-entries-or-items-hook
>>           'my-hide-all-drawers-in-current-subtree)
>>
>> > I'm also thinking: even if this closes the logbook draws, all the
>> > nodes will be unfolded. But my node tree is quite large. Is it be
>> > possible to refold all the nodes after n-levels?
>> >
>> > So let's say I have:
>> >
>> > * Level 1
>> > ** Level 2
>> > *** Level 3
>> >
>> > If I move the point to Level 1 and sort, I'd like it fold all Level 2
>> > items, but leave Level 1 unfolded.
>>
>> You can fix the cycling through the hook above.
>>
>> HTH,
>>
>> --
>>  Bastien
>>
>
>

Reply via email to