I am supremely confident that
#1093, Add pyzo features to Leo, is worth doing and will complete successfully. This post explains why.
Background
Recent work demonstrates that Leo can load pyzo while maintaining complete control. That is, while loading (importing) pyzo, Leo can patch any part of pyzo so as to "bend pyzo to Leo's will". This guarantees the success of the project from a coding point of view.
There are also design issues to consider! I am confident that all such issues can be resolved elegantly. You'll have to take my word for it ;-)
Opportunities
I have just now closed two pyzo-related issues and marked them Won'tDo. They are:
#1095:Stand-alone pyzo file browser, and
#1110: Replace the Easter Egg interface.
Killing these issues represents new opportunities. Their replacements are, respectively:
#1149: Improve Leo's file browser.
#1150: Base Leo on QDockWidget.
These issues are related to pyzo, but they will be done independently of the pyzo project. There are important design issues involved with #1150, and my intention is to resolve before integrating the work with pyzo. Don't panic. You will have plenty of time to discuss this project.
Setting boundaries
Pyzo's debugger and shell windows go far beyond anything that Leo presently offers. Integrating pyzo's code will present at least the following technical challenges:
- Using pyzo's settings machinery only when needed.
- Replacing pyzo's key-handling with Leo's.
- Connecting pyzo-related menu items (in Leo) with the proper methods in pyzo.
- Having the pyzo file browser open Leo outlines in a Leonine manner.
These all involve setting boundaries between pyzo and Leo. Some have already been done.
Summary
The pyzo project is large, and will consist of many steps, some unknown at this time. But I am sure that each step will be worth the effort and that each step will, ultimately, improve Leo.
For example, yesterday's work killed
#1095 (stand-
alone pyzo file browser) because it showed that all the benefits could be easily added to Leo's existing file browser. Note: the pyzo project
will use pyzo's file browser. Why wouldn't it?
#1150: Base Leo on QDockWidget, will likely be done next. It's worth doing regardless of the pyzo project, and it is, in effect, a precondition for the pyzo project. I'll say more about #1150 in a another post later today.
Edward