This plugin used ancient coding technology, created menu items instead of 
minibuffer commands, did not report progress and was probably not thread 
safe.

All these defects have now been remedied.  It could be quite useful in some 
situations.

For example, suppose node P has this body text::

    @produce echo pylint commands
    @produce pylint -v
    @produce pylint -f core\leoAtFile.py
    @produce pylint -g

Selected node P and running the at-produce-selected command produces these 
messages in the log pane::

    @produce pylint -g
    @produce pylint -g
    @produce pylint -g
    @produce pylint -g
    at-produce done

And produces a node whose headline is::

    produce.log from Sun Sep 21 06:35:37 2014 

And whose body text is::

    produce: echo pylint commands
    pylint commands
    ===============
    produce: pylint -v
    
    c:\leo.repo\leo-editor>python27 pylint-leo.py -v 
    
    c:\leo.repo\leo-editor>c:\python27\python.exe pylint-leo.py -v 
    pylint-leo.py 1.1.0, 
    astroid 1.0.1, common 0.61.0
    Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit 
(Intel)]
    ===============
    produce: pylint -f core\leoAtFile.py
    
    c:\leo.repo\leo-editor>python27 pylint-leo.py -f core\leoAtFile.py 
    
    c:\leo.repo\leo-editor>c:\python27\python.exe pylint-leo.py -f 
core\leoAtFile.py 
    pylint-leo.py: core\leoAtFile.py
    time:  5.000 sec.
    ===============
    produce: pylint -g
    
    c:\leo.repo\leo-editor>python27 pylint-leo.py -g 
    
    c:\leo.repo\leo-editor>c:\python27\python.exe pylint-leo.py -g 
    pylint-leo.py: plugins\free_layout.py
    pylint-leo.py: plugins\nested_splitter.py
    pylint-leo.py: plugins\qt_commands.py
    pylint-leo.py: plugins\qt_events.py
    pylint-leo.py: plugins\qt_frame.py
    pylint-leo.py: plugins\qt_idle_time.py
    pylint-leo.py: plugins\qt_gui.py
    pylint-leo.py: plugins\qt_text.py
    pylint-leo.py: plugins\qt_tree.py
    time: 40.073 sec.
    ===============

(End of body text)

Here is the checkin log for 573c5ab, Leo build: 20140921062746:

QQQ
Virtually a complete rewrite of the at_produce plugin:
- Creates at-produce-all and at-produce-selected commands.
- Adds the log node and redraws in the main thread after the separate 
thread completes. The old code was not thread safe!
- Reports progress periodically using g.es_print.  This is safe because the 
timer executes in the main thread.
- Rewrote the code using positions, modern iterators, etc.
- Writes the log node as the last top-level node.
QQQ

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

Reply via email to