Visão geral
Leo é um editor de texto/outliner de código aberto que apresenta clones (cópias virtuais de nós de outline) como ferramenta central de organização, navegação, personalização e scripting.
Idiomas
Leo pode manipular texto ou código em qualquer linguagem humana ou de programação de computadores (por exemplo, Python, C, C++, Java), já que Leo é independente de linguagem ou um "LPE adaptável" (ambiente de programação literária). O realce de sintaxe é fornecido para muitas linguagens de programação diferentes. Leo é escrito em Python e pode ser estendido com plugins escritos em Python. A GUI usa o toolkit Qt; o editor sensível à sintaxe é baseado no Scintilla. Os outlines do Leo são armazenados como arquivos XML.
Árvores, clones e visualizações
A principal funcionalidade do Leo, além da edição de texto, é a de um outliner, com uma "ampla gama de recursos de conveniência para estruturar e gerenciar outlines" tanto por arrastar e soltar via GUI quanto por comandos de teclado. O painel de outline do Leo mostra uma árvore de nós de dados. Os nós contêm títulos, texto do corpo e outras informações. Os títulos servem naturalmente como descrições do texto do corpo. Por exemplo, nós @file são nós cujo título começa com @file. As árvores do Leo são, na verdade, grafos acíclicos direcionados; os nós podem ter mais de um pai. Leo chama tais nós de clones. Os clones aparecem em vários lugares no painel de outline. As visualizações são simplesmente nós cujos filhos contêm clones. Um único outline pode conter arbitrariamente muitas visualizações dos nós nele contidos.
Arquivos externos
Nós @file representam arquivos externos, arquivos no sistema de arquivos do computador que não o arquivo de outline. Ao salvar um outline, Leo automaticamente grava todas as árvores @file alteradas de volta nos arquivos externos. Comentários, chamados de linhas sentinelas, nos arquivos externos representam a estrutura do outline. Quando Leo lê um outline, esses comentários permitem que Leo recrie árvores @file usando apenas os dados do arquivo externo. Nós @auto e nós @clean representam arquivos externos sem usar comentários sentinelas. Ao ler nós @auto, Leo usa a estrutura do programa do arquivo externo para criar a árvore @auto. Ao ler nós @clean, Leo usa a estrutura do outline para criar a árvore @clean.
Da Wikipédia (CC BY-SA 4.0).