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.