Leo (text editor) 4138641 222285385 2008-06-28T14:42:37Z 75.133.87.12 {{Infobox Software | name = Leo: Literate Editor with Outlines | screenshot = [http://sourceforge.net/project/screenshots.php?group_id=3458&ssid=22298 Screenshots] | caption = | developer = Edward K. Ream | latest_release_version = 4.5 beta 1 | latest_release_date = 2008-6-28 | operating_system = [[Cross-platform]] | genre = [[Text editor]], [[Outliner]] | license = [[Python (programming language)|Python]] License | website = [http://webpages.charter.net/edreamleo/front.html Leo's home] }} '''Leo''' ('''L'''iterate '''E'''ditor with '''O'''utlines) is a [[text editor]] that features [[outliner|outlines]] with clones as its central tool of organization and navigation. == Language == Leo is written in [[Python (programming language)|Python]] and uses the [[Tk (computing)|Tk]] GUI toolkit. It is fully scriptable using Python and can be extended with plugins. == 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. == Literate programming and Leo == Leo supports formats used in [[literate programming]]<ref>[http://webpages.charter.net/edreamleo/design.html leo Documentation - Chapter 6: Leo and Literate Programming]</ref>, and uses some ideas of the concept. The main idea is the concurrent development of [[Source code|code]] and [[documentation]] by keeping the two close together, while maintaining independence from the code sequence by using named outline elements called chunks. == External links == {{portal|Free software|Free Software Portal Logo.svg}} *[http://webpages.charter.net/edreamleo/front.html Leo's homepage] *[http://sourceforge.net/projects/leo/ Leo at SourceForge] *[http://sourceforge.net/project/screenshots.php?group_id=3458&ssid=22298 Screenshots] == References == <references/> [[Category:Free text editors]] [[Category:Free software programmed in Python]] [[Category:SourceForge projects]] [[Category:Outliners]]