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.