Лео (текстовый редактор)
Разработчик(и) | Эдвард К. Рим и др. |
---|---|
Стабильная версия | 6.7.7 / 18 января 2024 г. |
Репозиторий | |
Написано в | Питон |
Операционная система | Кросс-платформенный |
Размер | ~9 МБ |
Тип | Текстовый редактор , Outliner , IDE |
Лицензия | С |
Веб-сайт | лев-редактор |
Leo — это с открытым исходным кодом текстовый редактор / структурный редактор , в котором используются клоны (виртуальные копии узлов схемы) в качестве центрального инструмента организации, навигации, настройки и создания сценариев.
Языки
[ редактировать ]Leo может манипулировать текстом или кодом на любом человеческом или компьютерном языке программирования (например, Python, C, C++, Java), поскольку Leo является независимой от языка или «адаптируемой LPE» ( грамотной средой программирования). [1] Подсветка синтаксиса предусмотрена для многих различных языков программирования. [2] Leo написан на Python и может быть расширен с помощью плагинов, написанных на Python. Графический интерфейс использует набор инструментов Qt ; редактор с учетом синтаксиса основан на Scintilla . Контуры Leo хранятся в виде файлов XML .
Деревья, клоны и виды
[ редактировать ]Основная функциональность Leo, помимо редактирования текста, — это планировщик с «огромным набором удобных функций для структурирования и управления контурами» как с помощью перетаскивания через графический интерфейс, так и с помощью команд с клавиатуры. [2] Панель структуры Leo показывает дерево узлов данных. Узлы содержат заголовки, основной текст и другую информацию. Заголовки, естественно, служат описанием основного текста. Например, узлы @file — это узлы, заголовок которых начинается с @file. Деревья Лео на самом деле представляют собой ориентированные ациклические графы ; узлы могут иметь более одного родителя. Лео называет такие узлы клонами . Клоны появляются в нескольких местах на панели структуры. Представления — это просто узлы, дочерние элементы которых содержат клоны. Один контур может содержать произвольное количество представлений содержащихся в нем узлов.
Внешние файлы
[ редактировать ]Узлы @file представляют собой внешние файлы , файлы в файловой системе компьютера, отличной от файла структуры. При сохранении схемы Leo автоматически записывает все измененные деревья @file обратно во внешние файлы. Комментарии, называемые сторожевыми строками , во внешних файлах представляют собой структуру структуры. Когда Лео читает схему, эти комментарии позволяют Лео воссоздать деревья @file, используя только данные из внешнего файла. Узлы @auto и @clean представляют внешние файлы без использования дозорных комментариев. При чтении узлов @auto Лео использует программную структуру внешнего файла для создания дерева @auto. Читая узлы @clean, Лео использует структуру схемы для создания дерева @clean.
Сценарии
[ редактировать ]Схема или иерархическая структура Лео отличается от сети чередующихся «кусков» программ и документации, связанных с классическими грамотными инструментами программирования . [3] [4] Основной текст любого узла Leo может содержать скрипт Leo — скрипт Python, выполняемый в контексте структуры Leo. Простой API предоставляет сценариям Leo полный доступ ко всем данным в загруженных структурах, а также полный доступ к собственному исходному коду Leo. API включает в себя итераторы Python , которые позволяют сценариям легко перемещаться по контурам. Сценарии могут состоять из любого дерева узлов. Язык разметки, похожий на noweb, сообщает Лео, как создавать сценарии из (частей) схемы. Заголовки контролируют и направляют сценарии. Например, узлы @button создают определяемые пользователем команды. Leo выполняет сценарий узла @button в контексте любого другого узла структуры.
Ссылки
[ редактировать ]- ^ Питерс, Вреда; Кури, Деррик Г.; Боаке, Эндрю (2004). «Аргументы в пользу современного грамотного программирования» (PDF) . SAICSIT '04: Материалы . Южно-Африканская Республика: Южноафриканский институт компьютерных наук и информационных технологов: 111–118. Архивировано из оригинала 4 марта 2016 г. Проверено 18 ноября 2014 г.
{{cite journal}}
: CS1 maint: bot: original URL status unknown (link) Table 2: "Some Adaptable LPEs", p. 113. Same authors' abridged version in book form: Экстайн, Ютта; Баумейстер, Хьюберт, ред. (июнь 2004 г.). «Грамотное программирование для улучшения гибких методов» . Экстремальное программирование и гибкие процессы в разработке программного обеспечения . Берлин; Гейдельберг; Нью-Йорк: Springer-Verlag. стр. 250–253. ISBN 3-540-22137-9 . Таблица 2: «Некоторые языконезависимые LPE», стр. 251 - ^ Jump up to: а б Вестдам, Томас; Нормарк, Курт (сентябрь 2004 г.). «Поддержание понимания программы: проблемы, инструменты и будущие направления» (PDF) . Северный журнал вычислительной техники . 11 (3). Финляндия: 303–320. ISSN 1236-6064 . Архивировано из оригинала 29 ноября 2014 года . Проверено 18 ноября 2014 г.
{{cite journal}}
: CS1 maint: bot: статус исходного URL неизвестен ( ссылка ) Лео обсуждал на стр. 12-13 авторскую копию опубликованной статьи. - ^ Палмер, Джеймс Дин; Хилленбранд, Эдди (2009). «Переосмысление грамотного программирования». OOPSLA '09: Материалы 24-й конференции ACM SIGPLAN по языкам и приложениям систем объектно-ориентированного программирования . Нью-Йорк: ACM. стр. 1007–1014. дои : 10.1145/1639950.1640072 . ISBN 9781605587684 . S2CID 17591332 .
Некоторые грамотные системы программирования пошли по совершенно иному пути, основанному на новых пользовательских интерфейсах. Грамотный редактор Эдварда Рима, Лео, использует визуальные схемы, которые позволяют пользователям прикреплять метаданные и описания к описаниям программ и данным. К сожалению, по-настоящему грамотные программы могут сломать парадигму Лео, основанную на иерархической схеме.
(стр. 1009) - ^ Суэйн, Майкл (июль 1998 г.). «Парадигмы программирования» . Журнал доктора Добба . Архивировано из оригинала 15 апреля 2016 г. Сравнивает раннюю версию LEO с Дональда Кнута WEB .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Leo-редактор на GitHub
- «LeoVue, веб-версия Leo, автор Джо Орр» .
- «LeoInteg, расширение VSCode, интегрирующее Leo, автор Феликс Мальбёф» . Гитхаб .
- «ЛеоJS» . Гитхаб .
- «Грамотное программирование и Лео» . Слэшдот . 28 августа 2002 г.
- Джеймс Таубер (15 мая 2004 г.). «Использование Leo Outliner в качестве PIM» .