Разработчик(и) | Эдвард К. Рим и др. |
---|---|
Стабильный релиз | 6.7.7 / 18 января 2024 г. |
Репозиторий |
|
Написано в | Питон |
Операционная система | Кроссплатформенный |
Размер | ~9 МБ |
Тип | Текстовый редактор , Outliner , IDE |
Лицензия | Массачусетский технологический институт |
Веб-сайт | leo-editor.github.io/leo-editor/ |
Leo — это текстовый редактор / структуризатор с открытым исходным кодом , в котором клоны (виртуальные копии узлов структуры) являются центральным инструментом организации, навигации, настройки и написания сценариев.
Leo может манипулировать текстом или кодом на любом языке программирования (например, Python, C, C++, Java), поскольку Leo является независимой от языка или «адаптируемой LPE» ( грамотной средой программирования). [1] Подсветка синтаксиса предусмотрена для многих различных языков программирования. [2] Leo написан на Python и может быть расширен с помощью плагинов, написанных на Python. Графический интерфейс использует набор инструментов Qt ; редактор с поддержкой синтаксиса основан на Scintilla . Контуры Leo хранятся в виде XML- файлов.
Основная функциональность Leo, помимо редактирования текста, — это функция outliner с «широким набором удобных функций для структурирования и управления outlines» как с помощью перетаскивания через GUI, так и с помощью команд клавиатуры. [2] Панель outline Leo показывает дерево узлов данных. Узлы содержат заголовки, основной текст и другую информацию. Заголовки, естественно, служат описаниями основного текста. Например, узлы @file — это узлы, заголовок которых начинается с @file. Деревья Leo на самом деле являются направленными ациклическими графами ; узлы могут иметь более одного родителя. Leo называет такие узлы клонами . Клоны появляются в нескольких местах на панели outline. Представления — это просто узлы, дочерние элементы которых содержат клоны. Один outline может содержать произвольное количество представлений узлов, содержащихся в нем.
Узлы @file представляют внешние файлы , файлы в файловой системе компьютера, отличные от файла структуры. При сохранении структуры Leo автоматически записывает все измененные деревья @file обратно во внешние файлы. Комментарии, называемые контрольными линиями , во внешних файлах представляют структуру структуры. Когда Leo читает структуру, эти комментарии позволяют Leo воссоздавать деревья @file, используя только данные во внешнем файле. Узлы @auto и узлы @clean представляют внешние файлы без использования контрольных комментариев. При чтении узлов @auto Leo использует программную структуру внешнего файла для создания дерева @auto. При чтении узлов @clean Leo использует структуру структуры для создания дерева @clean.
Структура или иерархическая структура Leo отличается от сети чередующихся программ и «кусков» документации, связанных с классическими инструментами грамотного программирования . [3] [4] Основной текст любого узла Leo может содержать скрипт Leo , скрипт Python, выполняемый в контексте схемы Leo. Простой API предоставляет скриптам Leo полный доступ ко всем данным в загруженных схемах, а также полный доступ к собственному исходному коду Leo. API включает итераторы Python , которые позволяют скриптам легко проходить схемы. Скрипты могут состоять из любого дерева узлов. Язык разметки , похожий на noweb, сообщает Leo, как создавать скрипты из (частей) схемы. Заголовки управляют и направляют скрипты. Например, узлы @button создают определяемые пользователем команды. Leo выполняет скрипт узла @button в контексте любого другого узла схемы.
{{cite journal}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )Таблица 2: «Некоторые адаптивные LPE», стр. 113. Сокращенная версия тех же авторов в книжной форме: Eckstein, Jutta; Baumeister, Hubert, ред. (июнь 2004 г.). «Грамотное программирование для улучшения гибких методов». Extreme Programming and Agile Processes in Software Engineering . Berlin; Heidelberg; New York: Springer-Verlag. стр. 250–253. ISBN 3-540-22137-9.Таблица 2: «Некоторые независимые от языка LPE», стр. 251{{cite journal}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )Лео обсудил на стр. 12-13 авторского экземпляра опубликованной статьи.Несколько грамотных систем программирования пошли совсем другим путем, основываясь на новых пользовательских интерфейсах. Грамотный редактор Эдварда Рима Leo использует визуальные схемы, которые позволяют пользователям прикреплять метаданные и описания к описаниям и данным программ. К сожалению, по-настоящему грамотные программы могут нарушать иерархическую схему, основанную на парадигме Leo.(стр. 1009)