Лео (текстовый редактор)

Leo: редактор Leonine с контурами
Разработчик(и)Эдвард К. Рим и др.
Стабильный релиз
6.7.7 / 18 января 2024 г.
Репозиторий
  • github.com/leo-editor/leo-editor
Написано вПитон
Операционная системаКроссплатформенный
Размер~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 в контексте любого другого узла схемы.

Ссылки

  1. ^ Pieterse, Vreda; Kourie, Derrick G.; Boake, Andrew (2004). "A Case for Contemporary Literate Programming" (PDF) . SAICSIT '04: Proceedings . Южно-Африканская Республика: Южно-Африканский институт компьютерных ученых и информационных технологов: 111–118. Архивировано из оригинала 2016-03-04 . Получено 2014-11-18 .{{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
  2. ^ ab Vestdam, Thomas; Nørmark, Kurt (сентябрь 2004 г.). «Поддержание понимания программ — проблемы, инструменты и будущие направления» (PDF) . Nordic Journal of Computing . 11 (3). Финляндия: 303–320. ISSN  1236-6064. Архивировано из оригинала 29 ноября 2014 г. . Получено 18 ноября 2014 г. .{{cite journal}}: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )Лео обсудил на стр. 12-13 авторского экземпляра опубликованной статьи.
  3. ^ Палмер, Джеймс Дин; Хилленбранд, Эдди (2009). «Переосмысление грамотного программирования». OOPSLA '09: Труды 24-й конференции ACM SIGPLAN Companion по языкам и приложениям объектно-ориентированных систем программирования . Нью-Йорк: ACM. С. 1007–1014. doi :10.1145/1639950.1640072. ISBN 9781605587684. S2CID  17591332. Несколько грамотных систем программирования пошли совсем другим путем, основываясь на новых пользовательских интерфейсах. Грамотный редактор Эдварда Рима Leo использует визуальные схемы, которые позволяют пользователям прикреплять метаданные и описания к описаниям и данным программ. К сожалению, по-настоящему грамотные программы могут нарушать иерархическую схему, основанную на парадигме Leo.(стр. 1009)
  4. ^ Свейн, Майкл (июль 1998). "Парадигмы программирования". Журнал доктора Добба . Архивировано из оригинала 2016-04-15.Сравнивает раннюю версию LEO с WEB Дональда Кнута .
  • Официальный сайт
  • Leo-editor на GitHub
  • «LeoVue, веб-версия Leo, Джо Орр».
  • «LeoInteg, расширение VSCode, интегрирующее Leo, автор Феликс Мальбёф». GitHub .
  • "LeoJS". GitHub .
  • «Грамотное программирование и Leo». Slashdot . 2002-08-28.
  • Джеймс Таубер (15.05.2004). «Использование Leo Outliner в качестве PIM».
Взято с "https://en.wikipedia.org/w/index.php?title=Leo_(text_editor)&oldid=1204404083"