Лев (текстовый редактор) - Leo (text editor)

Лео: Леонин, редактор с очертаниями
Редактор LEO-Leonine Outliner-icon.png
Разработчики)Эдвард К. Рим и др.
Стабильный выпуск
6.3 / 6 ноября 2020 г.; 32 дней назад (2020-11-06)
Репозиторий Отредактируйте это в Викиданных
Написано вPython
Операционная системаКроссплатформенность
Размер~ 9 МБ
ТипТекстовый редактор, Outliner, IDE
ЛицензияЛицензия MIT
Интернет сайтлевредактор.com

Лео (Lэонин EДитор с Оutlines) является Открытый исходный код Текстовый редактор /планировщик в котором представлены клоны (виртуальные копии узлов схемы) в качестве центрального инструмента организации, навигации, настройки и написания сценариев.

Языки

Лео может манипулировать текстом или кодом на любом человеческом или компьютерном языке программирования (например, Python, C, C ++, Java), поскольку Лео является независимым от языка или «адаптируемым LPE» (грамотное программирование среда).[1] Подсветка синтаксиса предусмотрена для многих языков программирования.[2] Лев написан на Python и может быть расширен плагинами, написанными на Python. В графическом интерфейсе используется Qt Инструментарий; редактор с учетом синтаксиса основан на Сцинтилла. Очертания Льва хранятся как XML файлы.

Деревья, клоны и виды

Главной функциональностью Лео, помимо редактирования текста, является планировщик, с «широким набором удобных функций для структурирования и управления контурами» как путем перетаскивания через графический интерфейс, так и с помощью команд клавиатуры.[2] Панель схемы Льва показывает дерево узлов данных. Узлы содержат заголовки, основной текст и другую информацию. Заголовки, естественно, служат описанием основного текста. Например, узлы @file - это узлы, заголовок которых начинается с @file. Деревья Льва на самом деле ориентированные ациклические графы; узлы могут иметь более одного родителя. Лев называет такие узлы клоны. Клоны появляются в нескольких местах на панели структуры. Взгляды - это просто узлы, чьи дочерние элементы содержат клоны. Один контур может содержать произвольно много видов узлов, содержащихся в нем.

Внешние файлы

Узлы @file представляют внешние файлы, файлы в файловой системе компьютера, кроме файла схемы. При сохранении схемы Лео автоматически записывает все измененные деревья @file обратно во внешние файлы. Комментарии, называемые дозорные линии, во внешних файлах представляют собой структуру схемы. Когда Лео читает схему, эти комментарии позволяют Лео воссоздавать деревья @file, используя только данные из внешнего файла. Узлы @auto представляют внешние файлы без использования контрольных комментариев. При чтении узлов @auto Лео использует программную структуру внешнего файла для создания дерева @auto.

Сценарии

Схема или иерархическая структура Лео отличается от сети чередующихся программных "фрагментов" и документации, связанных с классическими грамотное программирование инструменты.[3][4] Основной текст любого узла Leo может содержать Лев сценарий, скрипт Python, выполняемый в контексте схемы Льва. Простой API дает скриптам Leo полный доступ ко всем данным в загруженных схемах, а также полный доступ к собственному исходному коду Leo. API включает Python итераторы которые позволяют скриптам легко перемещаться по контурам. Скрипты могут состоять из любого дерева узлов. А язык разметки похожий на Noweb говорит Лео, как создавать сценарии из (частей) схемы. Заголовки управления и сценарии руководства. Примеры:

  • @test узлы создавать модульные тесты. Leo выполняет тело узла @test как модульный тест без необходимости создания тела явного подкласса Python класса UnitTest.TestCase.
  • @button узлы создавать пользовательские команды. Лео выполняет сценарий узла @button в контексте любого другого узла схемы.

Рекомендации

  1. ^ Питерс, Вреда; Kourie, Derrick G .; Боаке, Эндрю (2004). «Дело в пользу современного грамотного программирования». SAICSIT '04: Материалы. Южно-Африканская Республика: Южноафриканский институт компьютерных ученых и информационных технологов: 111–118. Архивировано из оригинал (PDF) на 2004 г. Таблица 2: «Некоторые адаптируемые LPE», стр. 113. Сокращенная версия тех же авторов в виде книги: Экштейн, Ютта; Баумейстер, Хуберт, ред. (Июнь 2004 г.). «Грамотное программирование для улучшения гибких методов». Экстремальное программирование и гибкие процессы в разработке программного обеспечения. Берлин; Гейдельберг; Нью-Йорк: Springer-Verlag. С. 250–253. ISBN  3-540-22137-9. Таблица 2: «Некоторые независимые от языка LPE», стр. 251
  2. ^ а б Вестдам, Томас; Нёрмарк, Курт (сентябрь 2004 г.). «Поддержание понимания программы - проблемы, инструменты и направления на будущее». Северный вычислительный журнал. Финляндия. 11 (3): 303–320. ISSN  1236-6064. Архивировано из оригинал (PDF) 2004 г.. Получено 18 ноября 2014. Лев обсуждает на стр. 12-13 авторской копии опубликованной статьи.
  3. ^ Палмер, Джеймс Дин; Хилленбранд, Эдди (2009). «Переосмысление грамотного программирования». OOPSLA '09: Материалы 24-й конференции ACM SIGPLAN, посвященной языкам и приложениям систем объектно-ориентированного программирования. Нью-Йорк: ACM. С. 1007–1014. Дои:10.1145/1639950.1640072. ISBN  9781605587684. Некоторые системы грамотного программирования взяли совсем другой курс, основанный на новых пользовательских интерфейсах. Грамотный редактор Эдварда Рима, Лео, использует визуальные контуры, которые позволяют пользователям прикреплять метаданные и описания к описаниям и данным программ. К сожалению, действительно грамотные программы могут нарушить парадигму Лео, основанную на иерархических схемах. (стр. 1009)
  4. ^ Суэйн, Майкл (июль 1998 г.). «Парадигмы программирования». Журнал доктора Добба. В архиве из оригинала от 15.04.2016.Сравнивает раннюю версию LEO с Дональд Кнут с WEB.

внешняя ссылка