On Mon, 14 Jul 2014 06:48:18 -0700 (PDT)
"Edward K. Ream" <edream...@gmail.com> wrote:

> As of rev 25101ddf3b0c... Leo now saves and restores clone links and
> uA's in @auto trees!
> 
> For example, use the todo plugin to add an icon to a node in an @auto 
> file.  Save the file and reload.  The icon will still be there.
> 
> Ditto for clones links for between node a node C inside an @auto file
> and a cloned node C outside the @auto file.
> 
> Such links should persist *provided* you don't change the outline
> structure (including headlines) of the @auto file outside of Leo.

Ok, this took me a while to parse (haha), but Kent's got it well
clarified now :-)

So how hard does the new code try to recover from breakage?  Does it
use the new indexed UNLs to fall-back on position index when headlines
fail?  I guess it's a more sensitive case than bookmarks, where Leo can
basically say "I can't find that, but it used to be here, if that
helps", and let the user decide.  In the import case you could only
fall back on the position index when the matched node was not also
matched by a headline list.  I.e.

    class Foo
       def __init__
       def otters
       def recieve_data
       def send_data

if it's simply a change from recieve_data to receive_data, falling back
on position index would be great.  But if the change was to

    class Foo
       def __init__
       def otters
       def send_data
       def receive_data

then headline search would fail and index search should fail because of
the competing headline search match for send_data.

Also, does the new code use the new UNL's repeated headline count to
match the right headline when headlines are repeated?  Repeated
headlines in python code would be contrived, e.g.

    def fooble(arg1):
        "this doesn't work, retained for historical interest"
        code
        code
    
    def fooble(arg1):
        "working version"
        code
        code

although this is dumb but valid:

    PROCESSORS = []
    
    def processor(args, args):
        code
    
    PROCESSORS.append(processor)
    
    def processor(args, args):
        different code
    
    PROCESSORS.append(processor)

but repeated headlines in other languages might be entirely reasonable,
"div" in parsed HTML being a trivial example.

So when breakage does occur, does the new code make a list of nodes not
found with their uA data still attached?  Because that could be really
useful when valuable uA data was involved.

Final questions:

Are gnxs persisted?

What are the differences between this and @shadow?

Cheers -Terry


> All changes are *lightly* tested.  Please report any problems
> immediately. To disable the new code, set new_auto = False at the
> start of leoAtFile.py.
> 
> Edward
> 

-- 
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 leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to