This topic has been percolating awhile due to comments from the usual
suspects.

I'm thinking that Leo might support @view nodes.  These nodes would,
in effect, support *temporary* clones.  The idea:

1. Within any external file (and especially files derived from @auto),
we might identify nodes with views using something like:

#...@leo-view: <gnx>

This is an unbreakable link to the view node, rather than
identification of the node within the external file.  Of course, such
a link will be "broken" if the indicated node does not exist in
the .leo file.  This is similar to what happens with clones now.

2. @view nodes would be illegal within any kind of @<file> tree.

3. When reading an external file, Leo would create a child clone for
every #...@leo-view sentinel in the external file.

4. Leo would never write cloned children of @view nodes to the .leo
file.  Thus, there is little to be gained by creating files (like
leoProjects.txt) just to hold @view nodes, and little to be lost by
banning @view nodes from any @<file> tree.

5. We might want a command that writes "clean" @auto external files,
without any @#leo-view sentinels.  That's actually a nit because the
links created by such sentinels are not essential.

This idea shows that cloned nodes are not essential in external files,
and particularly not essetial in @auto files.  In that case, we could
use @auto for *all* files, provided that we create a lightweight
markup for outline organization.  This can be done using the following
sentinels:

#...@leo+
#...@leo-

The first precedes the first child of a node with children, the second
follows the last child of a node with children.  These sentinels
properly nest.

It might be possible to elide these sentinels when the @auto import
code would create children anyway.  Details unclear at present, but if
this can be done we would need these sentinels only for organizer
nodes.

In short, @auto becomes more interesting if we can eliminate clones
within @auto trees.  @view nodes might be a way to do that.

Please note: this scheme does *not* eliminate clones from Leo and does
not change Leo's internal data structures in any way.  It merely makes
permanent clones less necessary.  If permanent clones are desired,
they can be used as at present.

As always, your comments are welcome.

Edward
-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.


Reply via email to