I have just updated the #325 
<https://github.com/leo-editor/leo-editor/issues/325> to emphasize that I 
now view the entire project as completely misguided.

Here, I want to say a few more words for emphasis.  The key principle is 
stated in the comment that closes the issue:

The fundamental problem with this project is compatibility with existing 
code. Existing code includes Leo's core and plugins. But existing code also 
includes user scripts and plugins, *including scripts and plugins that we 
know nothing of*. Breaking *any* existing code *must not be allowed*.

As a result, all legacy commands must remain exactly *as *they are and *where 
*they are.  No, this is not they way I would have done things if I were 
starting over.  But remember, decorators did not exist in 2001.  So we are 
"stuck" with the present organization of existing commands.  *We should 
learn to live with, even appreciate, such legacy code*.  Trying to clean up 
this code is asking for big trouble.

Happily, there is an easy way forward.  We simply say that all *new* 
commands should be created using @g.command.  This implies that top-level 
functions will define all new commands. Like this:

@g.command('command-name')def aCommand(event):
    c = event.get('c')
    ...


In practice, this is never a problem.

Your comments, please.

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 https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to