Leo (text editor)

From Wikipedia, the free encyclopedia

Leo: Literate Editor with Outlines
Screenshots
Developed by Edward K. Ream
Latest release 4.4.8 final / 2008-4-6
OS Cross-platform
Genre Text editor, Outliner
License Python License
Website Leo's home

Leo (Literate Editor with Outlines) is a text editor that features outlines with clones as its central tool of organization and navigation.

Contents

[edit] Language

Leo is written in Python and uses the Tk GUI toolkit. It is fully scriptable using Python and can be extended with plugins.

[edit] Leo outlines and clones

In Leo, outlines are hierarchical tree structures that are used to work with and manage text files -- including code.

Clones are outline nodes that are automatically kept identical throughout a Leo outline. They can be thought of as pointers to the same content: By editing one, all the other clones of that outline element update as well.

This feature turns the outline tree structure into a directed acyclic graph structure.

Outline nodes may be named or unnamed. Leo creates output files in a process called "tangling". Tangling starts at the top-level node of the output file. The contents of the top-level node are copied to the output file. Named nodes are inserted at the point of reference, as in macro languages; unnamed nodes are inserted as the result of Leo's @others directive. Tangling is a recursive process--inserted nodes may contain @other directives and references to named nodes, and so on.

[edit] Literate programming and Leo

Leo supports formats used in literate programming[1], and uses some ideas of the concept. The main idea is the concurrent development of code and documentation by keeping the two close together, while maintaining independence from the code sequence by using named outline elements called chunks.

[edit] External links

[edit] References

  1. ^ leo Documentation - Chapter 6: Leo and Literate Programming