Leo ( L eonine E ditor with O utlines) es un editor / esquematizador de texto de código abierto que presenta clones (copias virtuales de los nodos de esquema) como una herramienta central de organización, navegación, personalización y scripting.
![]() | |
Desarrollador (es) | Edward K. Ream y col. |
---|---|
Lanzamiento estable | 6.3 / 6 de noviembre de 2020 |
Repositorio | ![]() |
Escrito en | Pitón |
Sistema operativo | Multiplataforma |
Tamaño | ~ 9 MB |
Tipo | Editor de texto , Outliner , IDE |
Licencia | Licencia MIT |
Sitio web | leoeditor |
Idiomas
Leo puede manipular texto o código en cualquier lenguaje de programación humano o de computadora (por ejemplo, Python, C, C ++, Java), ya que Leo es un "LPE adaptable" ( entorno de programación alfabetizado ) independiente del lenguaje o "adaptable" . [1] Se proporciona resaltado de sintaxis para muchos lenguajes de programación diferentes. [2] Leo está escrito en Python y se puede ampliar con complementos escritos en Python. La GUI usa el kit de herramientas Qt ; el editor de sintaxis se basa en Scintilla . Los esquemas de Leo se almacenan como archivos XML .
Árboles, clones y vistas
La principal funcionalidad de Leo, además de la edición de texto, es la de un delineador , con una "amplia gama de funciones de conveniencia para estructurar y administrar los contornos" tanto mediante la función de arrastrar y soltar a través de la GUI como mediante los comandos del teclado. [2] El panel de esquema de Leo muestra un árbol de nodos de datos. Los nodos contienen titulares, texto del cuerpo y otra información. Los titulares, naturalmente, sirven como descripciones del cuerpo del texto. Por ejemplo, los nodos @file son nodos cuyo título comienza con @file. Los árboles de Leo son de hecho gráficos acíclicos dirigidos ; los nodos pueden tener más de un padre. Leo llama a estos nodos clones . Los clones aparecen en varios lugares del panel de esquema. Las vistas son simplemente nodos cuyos hijos contienen clones. Un solo esquema puede contener arbitrariamente muchas vistas de los nodos que contiene.
Archivos externos
Los nodos @file representan archivos externos , archivos en el sistema de archivos de la computadora que no son el archivo de esquema. Al guardar un esquema, Leo escribe automáticamente todos los árboles de @file cambiados en los archivos externos. Los comentarios, llamados líneas centinela , en archivos externos representan la estructura del esquema. Cuando Leo lee un esquema, estos comentarios le permiten recrear los árboles de @file utilizando solo los datos del archivo externo. Los nodos @auto representan archivos externos sin utilizar comentarios centinela. Al leer los nodos @auto, Leo usa la estructura del programa del archivo externo para crear el árbol @auto.
Scripting
El esquema o estructura jerárquica de Leo es distinto de la red de programas intercalados y "fragmentos" de documentación asociados con las herramientas clásicas de programación alfabetizada . [3] [4] El cuerpo del texto de cualquier nodo Leo puede contener una secuencia de comandos de Leo , una secuencia de comandos de Python ejecutada en el contexto de un esquema de Leo. Una API simple brinda a los scripts de Leo acceso completo a todos los datos en esquemas cargados, así como acceso completo al código fuente de Leo. La API incluye iteradores de Python que permiten que los scripts atraviesen los contornos fácilmente. Los scripts pueden estar compuestos por cualquier árbol de nodos. Un lenguaje de marcado similar a noweb le dice a Leo cómo crear guiones a partir de (partes de) un esquema. Control de titulares y guiones de guiones. Algunos ejemplos son:
- Los nodos @test crean pruebas unitarias. Leo ejecuta el cuerpo de un nodo @test como una prueba unitaria, sin que el cuerpo tenga que crear una subclase explícita de la clase UnitTest.TestCase de Python.
- Los nodos @button crean comandos definidos por el usuario. Leo ejecuta el script de un nodo @button en el contexto de cualquier otro nodo de esquema.
Referencias
- ^ Pieterse, Vreda; Kourie, Derrick G .; Boake, Andrew (2004). "Un caso para la programación alfabetizada contemporánea" . SAICSIT '04: Actas . República de Sudáfrica: Instituto Sudafricano de Informáticos y Tecnólogos de la Información: 111–118. Archivado desde el original (PDF) en 2004.Tabla 2: "Algunos LPE adaptables", pág. 113. Versión abreviada de los mismos autores en forma de libro: Eckstein, Jutta; Baumeister, Hubert, eds. (Junio de 2004). "Programación alfabetizada para mejorar los métodos ágiles" . Programación extrema y procesos ágiles en ingeniería de software . Berlina; Heidelberg; Nueva York: Springer-Verlag. págs. 250-253. ISBN 3-540-22137-9.Tabla 2: "Algunos LPE independientes del idioma", pág. 251
- ^ a b Vestdam, Thomas; Nørmark, Kurt (septiembre de 2004). "Mantener la comprensión del programa: problemas, herramientas y direcciones futuras" . Revista Nórdica de Computación . Finlandia. 11 (3): 303–320. ISSN 1236-6064 . Archivado desde el original (PDF) en 2004 . Consultado el 18 de noviembre de 2014 . Leo discutió en las páginas 12-13 de la copia del autor del artículo publicado.
- ^ Palmer, James Dean; Hillenbrand, Eddie (2009). "Reimaginar la programación alfabetizada". OOPSLA '09: Actas de la 24ª Conferencia ACM SIGPLAN Companion sobre lenguajes y aplicaciones de sistemas de programación orientados a objetos . Nueva York: ACM. págs. 1007–1014. doi : 10.1145 / 1639950.1640072 . ISBN 9781605587684.
Algunos sistemas de programación alfabetizados han tomado un rumbo muy diferente basado en interfaces de usuario novedosas. Leo, el editor alfabetizado de Edward Ream, utiliza esquemas visuales que permiten a los usuarios adjuntar metadatos y descripciones a las descripciones y datos del programa. Desafortunadamente, los programas verdaderamente alfabetizados pueden romper el paradigma basado en el esquema jerárquico de Leo.
(pág.1009) - ^ Swaine, Michael (julio de 1998). "Paradigmas de programación" . Diario del Dr. Dobb . Archivado desde el original el 15 de abril de 2016.Compara la versión anterior de LEO con la WEB de Donald Knuth .
enlaces externos
- Página web oficial
- Leo-editor en GitHub
- "LeoVue, una versión web de Leo, por Joe Orr" .
- Leo (editor de texto) en SourceForge.net , el anfitrión de Leo para descargas binarias de versiones estables
- "Programación alfabetizada y Leo" . Slashdot . 2002-08-28.
- James Tauber (15 de mayo de 2004). "Usando el Leo Outliner como PIM" .