On Friday, February 26, 2016 at 11:31:13 AM UTC-6, Edward K. Ream wrote:
>
>
> 1. OMG: Jake's python_terminal plugin paves the way for *system* terminal
> windows in Leo. Imagine dozens of terminals open, organized, as always, by
> outline structure. Great for web development.
>
The basis of a terminal window would be this working code:
from subprocess import check_output
s = check_output(<<a system command>>, shell=True)
s = g.toUnicode(s)
print(s)
Python's cmd or sh.py module might extend this basic code.
*The bigger picture*
We want *any* body text to be able to contain such a shell. To do this, we
want to allow an easier way to have the body pane to contain any *kind* of
window. The viewrendered plugin kinda allows this, but it is complex and
inflexible.
At the user interface level, I think what is needed is something like the
emacs status line that shows the "modes" of the selected pane. At the code
level, I want a way to *decouple panes*. Right now, the outline and body
panes (and the huge Commander class) are too closely joined. This makes it
tricky to "swap" Qt panes in and out of the body pane. In particular,
supporting multiple body panes is way too complex.
Terry has been talking about supporting multiple body panes using the
nested_splitter machinery he has created. I think this is the correct
approach. Furthermore, I would like to see a simple, published, api for
inserting, deleting panes programmatically. There should be a set of
commands for doing this, if there isn't already. The goal is to emulate the
emacs windowing commands and api. We are very close already.
2. The concept of *watcher pane* (inspired by the coffee -w option)
> suggests creating a framework for *communicating Leo panes*. Panes would
> watch for events, and broadcast other events.
>
This would be the way to decouple the body pane from the leo outline.
>
> 3. Our recent discussions show that soon we will a way to show attributes
> visually. Much more intuitive. Non-flattened searches become more useful
> if we instantly see which descendant nodes matched.
>
A little more work will make a huge difference. Again, we want a simple,
published, api for inserting icons and attributes, along with corresponding
user commands. They may already exist, but they must be well documented.
One thing I want to do yesterday is to add optional icon and attributes
lists to c.cloneFindByAttribute. This "unifies" clone-find commands with
attributes and icons. This will use the (to-be-created?) api's for icons
and attributes.
*Summary*It would be straightforward to create a system pane in yet another
tab in the log pane. But it would be totally cool to allow any node to
have a system shell in the body pane. That's a longer term project to do
cleanly, although it would be possible to hack the viewrendered plugin to
do that now.
In the nearer term, adding api's and commands for icons, attributes and
panes will give Richard and Terry more of what they want. This is probably
next, after Pyinstaller stuff.
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.