A design decision was made in Leo that if you alter the heading/body of any
parent of an @<file> node that this node will be marked dirty, ie it will
be written to disk when saving the .leo file. After discussion I agree it's
the safest option.
However, when using chapters and organizational nodes this can be
troublesome because adding @chapter to an organizer node at a high level
will mark any files in that subtree dirty. If you have tens, hundreds, or
even thousands of @<file> nodes under a single organizer node it could be
painful to have to resave all those files unnecessarily. In my case I
access files over a slow VPN and renaming a chapter could result in a 10
minute wait while hundreds of files get saved.
I don't have an elegant solution but I do a simple one which I think is a
good demonstration for teaching Leo scripting as well. My solution is a
button:
Headline:
@button mark_subtree_clean
Body:
for node in c.p.self_and_subtree():
node.clearDirty()
c.redraw()
Hitting the script-button on this node will create a button on the toolbar.
This small script does a simple thing, but satisfies an important function
for me. It took me a few minutes to write (I spent most of that time trying
to guess the name of the function which provided the list of all nodes in a
subtree) but it saves me time whenever modify the names of my @chapter and
organization nodes.
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.