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.

Reply via email to