ANN: Leo 4.1 rc1 released

E

Edward K. Ream

Leo 4.1 release candidate 1 is now available at:
http://sourceforge.net/projects/leo/

The highlights of this release:
-------------------------------
- Leo runs in batch mode when invoked with --script aScriptFile.py
- Leo supports Unicode characters (e.g. Chinese) in path and file names.
- @directives and section references are now valid when executing scripts.
- @ignored and orphan nodes now valid in @file-nosent trees.
- Script-based find/change commands.
- Check Outline command.
- Hoist & DeHoist commands.
- A new gui-agnostic architecture: useful for batch mode and unit tests.
- Several new configuration settings.
- Many new unit tests.
- A host of bug fixes.

Quotes of the month
-------------------
"I like Leo more the more I use it...It's an unexpected pleasure to
see my (linearly written) code outlined in Leo. I can't wait to use
Leo to start a new project, going from outline to code...Thanks again
for providing the computing community with such a fine piece of
software." -- Jim Shapiro, Ph.D.

"If you think you have used all possible programmer's editors, but
have not yet tried Leo, you are wrong...I rate Leo as a 'must have'
for Python programmers. The code makes for a good read."
-- John Tobler http://weblogs.asp.net/Jtobler/

What is Leo?
------------
- A programmer's editor, an outlining editor and a flexible browser.
- A literate programming tool, compatible with noweb and CWEB.
- A data organizer and project manager. Leo provides multiple views
of projects within a single outline.
- Fully scriptable using Python. Leo saves its files in XML format.
- Portable. leo.py is 100% pure Python.
- Open Software, distributed under the Python License.

Leo requires Python 2.1 or above and tcl/tk 8.3 or above.
Leo works on Linux, Windows and MacOs X.

Links:
------
Leo: http://webpages.charter.net/edreamleo/front.html
Home: http://sourceforge.net/projects/leo/
Download: http://sourceforge.net/project/showfiles.php?group_id=3458
CVS: http://sourceforge.net/cvs/?group_id=3458
Wiki: http://leo.hd1.org/

Edward K. Ream
December 15, 2003
 
M

Miklós

Thanks, Edward for this really great piece of software!
A while back I managed to clean up (a bit at least) such a mess with Leo I
hadn't imagined I could ever...

Now my nagging:

While the edit pane is fine I do want my favourite Vim... Is this possible
somehow? I mean to embed Vim in the window..

Best and many thanks,
Miklós
 
E

Edward K. Ream

While the edit pane is fine I do want my favorite Vim... Is this possible
somehow? I mean to embed Vim in the window..

This is a reasonable thing to want to do. There are several possible
approaches:

1. Run Leo from Vim. This is now possible in Leo's batch mode. When
executed from the command line Leo uses a "null gui" so nothing gets put on
the screen. You can optionally turn off all of Leo's log output, which
would otherwise go to the console window.

2. Implement scintilla/scite using Leo's experimental wxPython plugin. Not
quite the same as Vim.

3. Use something like pymacs to communicate between Emacs and Leo. This is
in the daydream stage. Leo now has a Vim/Scite SIG and I welcome comments,
ideas and code there.

Edward
 
M

Miklós

Edward,

I've just downloaded v4.1-rc1 (I was running 4.0) and there's that new vim
plugin which talks to vim running as a server..
This will finely do for me now even though the options you suggested are
also nice. I will put up with that Vim is not running in the editor pane
proper but in a
seperate shell window.. That would be possibly even cooler but now I'm
really happy with this. :)
My Vim shortcuts + my syntax highlights + my Vim macros + power editing
capabilities in Vim + Leo outlines to get things organized and managable...
Vow!

I wish my other wishes were fulfilled in such a timely manner. ;)

Leo (and Edward, its father) rulez!!! Thanks a lot!

One more question: Where's the Leo file format documented? (say, with a DTD
but a semantic description would be possibly better) Have I missed this
somewhere?


Truly* yours,
Miklós

* and I mean it

PS: Hey, people out there, you can't imagine how neat and incredibly useful
this outlining editor thing, called Leo, is if you don't try it yourself...
 
E

Edward K. Ream

Where's the Leo file format documented? (say, with a DTD
but a semantic description would be possibly better) Have I missed this
somewhere?

Good question.

See Users Guide:Appendices:XML file format in LeoDocs.leo for a discussion
of Leo's file format. This is out-of-date, though it is a start. This also
contains a DTD, which a) is _way_ out-of-date and b) has never been checked
and so almost certainly has syntactic and/or semantic "bugs".

With these caveats, Leo's file format has remained pretty stable. The heart
of the format is the <vnodes> element containing possibly nested <v>
elements, and the <tnodes> element containing a list of (non-nested) <t>
elements. <v> elements refer to <t> elements using "t" attributes in <v>
elements corresponding to "tx" attributes in <t> elements.

The last time I looked (a long time ago) xml spy could properly associate
<t> elements with <v> elements.

N.B. <v> and <t> elements in .leo files correspond directly to vnodes and
tnodes in memory when Leo is running. For full information about these see
@file leoNodes.py in LeoPy.leo. For full information about exactly what Leo
is doing when reading and writing files, see @file leoFileCommands.py in
LeoPy.leo.

Oh yes, there is one more piece of the puzzle. <v> elements corresponding
to @file nodes now contain tnodeList attributes that are a list of gnx's.
The tnodeList attribute allows the read code in @file leoAtFile.py to
recreate the order in which nodes should appear in the outline. The
tnodeList attribute is a list of gnx's: global node indices. See the
nodeIndices class in leoNodes.py for details. A gnx has the form
id.timestamp.n where .n is elided unless two nodes would have the same
id.timestamp field.

The following sections of LeoDocs.leo Users Guide:Customizing Leo contain
new conventions that allow plugins to extend this format by adding
attributes to <v> and <t> elements:

- Extending the format of .leo files
- Attaching temporary attributes to vnodes and tnodes
- Recommended conventions for plugins

HTH. I should probably review the existing documentation. I would be glad
to answer any more questions you have here, or even better on Leo's
SourceForge forums.

Edward
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top