Документация Engee

Редактор скриптов

Редактор скриптов interactive script icon — это инструмент рабочего пространства Engee, предназначенный для работы с интерактивными скриптами.

Интерактивный скрипт (или просто скрипт) — это файл, содержащий несколько последовательно выполняющихся команд.

Чтобы открыть Редактор скриптов, нажмите на иконку interactive script icon в рабочем пространстве:

img36a

Работа со скриптами

Создание скрипта

Чтобы создать скрипт, нажмите + в редакторе скриптов и выберите нужный формат:

img36cimg36c 1

По умолчанию скрипты Engee имеют формат ngscript, однако можно работать и с форматом jl и ipynb:

  • jl — формат скриптов на языке Julia. Редактор скриптов поддерживает рефакторинг и запуск скриптов в этом формате;

  • ipynb — универсальный формат написания скриптов на языке Python. Редактор скриптов поддерживает весь доступный функционал на уровне с ngscript.

Можно создать скрипт с помощью файлового браузера file browser 7. Для этого кликните правой кнопкой мыши в пустой области окна файлового браузера для вызова контекстного меню, затем выберите Создать и Скрипт:

script saving

Открытие существующего скрипта

Чтобы открыть уже существующий скрипт в окне файлового браузера:

  • Дважды нажмите по скрипту левой кнопкой мыши;

  • Правой кнопкой мыши нажмите по скрипту и в контекстном меню выберите Открыть:

    img36b

Секции редактора скриптов

В редакторе скриптов можно создать кодовую или текстовую ячейки.

Для создания ячеек подведите указатель мыши к верхней кромке окна редактора скриптов для появления кнопки выбора ячейки:

  • + Код — создает новую секцию с кодом (кодовую ячейку). В этой ячейке доступны все возможности написания кода на языке программирования Engee.

  • + Текст — создает новую секцию с текстом (текстовая ячейка). В этой секции можно добавлять и форматировать любое описание, картинки, таблицы, ссылки и т.д.

    script editor 1

Новые секции можно добавлять в любом месте рабочей области редактора скриптов (например, в начале, конце или между двумя другими секциями).

Секция с кодом

Создадим секцию с кодом и рассмотрим ее интерфейс:

img52

  1. Выполнить и перейти — выполняет код в данной секции.

  2. Выполнить до конца — выполняет все секции с кодом ниже выбранной секции.

  3. Выполнить до ячейки — выполняет все секции с кодом выше выбранной секции.

  4. Поменять положение результата работы кода — выбирает позицию для вывода. Имеет два варианта:

    1. 4.1. Вывод результата справа — выводит результат справа для конкретной секции.

    2. 4.2. Спрятать вывод результата — прячет выбор результата для конкретной секции.

  5. Маска — добавляет маску для выбранной кодовой ячейки (подробнее см. Маски кодовых ячеек).

  6. Переместить ниже — перемещает секцию на одну вниз.

  7. Переместить выше — перемещает секцию на одну вверх.

  8. Копировать — копирует секцию.

  9. Вставить — вставляет секцию.

  10. Удалить — удаляет секцию.

В кодовой ячейке также можно:

  • Выполнить выделенный участок кода (ПКМ по выделенной строке или горячая клавиша Shift+F7):

    code sting completion

  • Выполнить текущую строку с курсором (Ctrl+Shift+F5 на Windows/Linux или Shift++F5 на macOS).

Секция с текстом

Для работы с текстовыми ячейками по умолчанию используется редактор WYSIWYG («Что видишь, то и получишь»). Подробнее о разметке текста с помощью редактора читайте по ссылке.

Создадим секцию с текстом:

img44

Дважды кликнем по секции для открытия поля ввода, теперь можно вводить нужный текст в появившейся ячейке.

img44 1

Для форматирования текста используются языки разметки Markdown с возможностью расширения функциональности с помощью HTML и LaTeX. Подробнее о разметке в текстовой ячейке читайте на странице Разметка текста в Engee.

Рассмотрим интерфейс текстовой секции:

text interface script

  1. script editor text 1 — отменяет последнее действие

  2. script editor text 2 — повторяет последнее отмененное действие

  3. script editor text 3 — применяет жирное начертание к выделенному тексту

  4. script editor text 4 — делает выделенный текст курсивом

  5. script editor text 5 — применяет эффект зачеркивания к тексту

  6. script editor text 6 — задает уровень заголовка (H1-H6)

  7. script editor text 7 — создает маркированный или нумерованный список

  8. script editor text 8 — вставляет гиперссылку

  9. script editor text 9 — оформляет текст как цитату

  10. script editor text 10 — выделяет текст как фрагмент кода

  11. script editor text 11 — добавляет чекбокс для отслеживания задач

  12. script editor text 12 — подчеркивает выделенный фрагмент

  13. script editor text 13 — применяет моноширинный шрифт

  14. script editor text 14 — подсвечивает фон текста

  15. script editor text 15 — меняет цвет текста

  16. script editor text 16 — добавляет блок примечания

  17. script editor text 17 — добавляет скрывающуюся секцию

  18. script editor text 18 — вставляет изображение

  19. script editor text 19 — добавляет таблицу

  20. script editor text 20 — режим редактирования, выбор одного из трех режимов:

    • script editor text 20 — визуальный редактор WYSIWYG, сразу отображает форматирование без языков разметки (используется по умолчанию, рекомендуется)

    • script editor text 21 — разметка Markdown, ручное редактирование исходного текста

    • script editor text 22 — отображение результата (превью) без возможности редактирования

Аналогично секциям кода в текстовых ячейках используются следующие команды: перемещение, копирование, вставка и удаление.

Скрытие ячеек и содержание

Для скрытия ячеек в редакторе скриптов Engee, текстовая ячейка должна быть отмечена как параграф с помощью Markdown и иметь соответствующий уровень и расположение:

  • ячейка должна содержать заголовок в формате Markdown от 1 до 6 уровня (#, ## и т.д.).

  • под заголовком верхнего уровня должна находиться ячейка с заголовком более низкого уровня.

interactive par 01

В редакторе скриптов можно скрыть:

  • кодовые ячейки (имеют наименьший уровень заголовка);

  • текстовые ячейки без заголовков (также наименьший уровень);

  • текстовые ячейки с заголовками более низкого уровня.

    interactive scripts par 3

Если у текстовой ячейки с заголовком первого уровня под ней находится, например, 10 кодовых ячеек — это образует одну секцию, которая будет скрыта. Когда появляется 11-я ячейка — новый параграф с заголовком первого уровня или такого же уровня, что и первая текстовая ячейка, то начинается новая секция.

Заголовки текстовых ячеек с первого по шестой уровень образуют Содержание content button 1:

in scripts par

В содержании можно:

  • Добавить вложенный параграф content button 2 — добавляет текстовую ячейку с заголовком на уровень выше. Например, если вложенный параграф добавляется к текстовой ячейке первого уровня (#), то он станет ячейкой второго уровня (##). При достижении максимальной вложенности (последняя текстовая ячейка имеет заголовок шестого уровня) — кнопка недоступна.

  • Запустить параграф content button 3 — запускает исполнение всех ячеек с кодом выбранного параграфа. Если параграф не содержит кодовых ячеек — кнопка недоступна.

  • Удалить параграф content button 4 — удаляет выбранный параграф. Заголовки и ячейки с кодом, вложенные в секцию параграфа, удалены не будут.

Запуск/остановка скриптов

Для запуска или остановки скрипта нажмите кнопку Пуск или Стоп. Кнопки находятся на панели запуска скрипта:

img53

Чтобы запустить секцию с кодом, нажмите на кнопку Выполнить. Результат отобразится ниже под секцией:

img 49 1

Можно свернуть вывод исполнения кода в более компактную форму в случае, если он занимает слишком много места. Для этого воспользуйтесь кнопкой Ограничить вывод colapse button:

in long hide 1

Чтобы вернуть вывод в прежнее состояние используйте кнопку Раскрыть вывод colapse button 2.

Чтобы очистить результаты выполнения секций с кодом в скрипте, нажмите на иконку Очистить результаты на панели запуска скрипта.

img62

Сохранение скрипта

Чтобы сохранить скрипт, нажмите иконку Сохранить на панели запуска скрипта.

img5a

Если планируется открытие скриптов, написанных в Engee, в сторонних системах (например, Jupyter), то рекомендуется изменить расширение сохраненного скрипта при помощи файлового браузера Engee:

img5 1

Автосохранение

Функция автосохранения позволяет автоматически сохранять изменения в интерактивных скриптах, предотвращая потерю данных. Чтобы включить эту функцию, откройте окно редактора скриптов или любой интерактивный скрипт, нажмите на троеточие в правом верхнем углу и включите автосохранение:

scripts autosaving 1

В меню доступны три варианта автосохранения:

  1. afterDelay — скрипт автоматически сохраняется через определенное время задержки. При выборе этого параметра, задержка по умолчанию составляет 1000 мс.

  2. onFocusChange — скрипт автоматически сохраняется после потери фокуса редактором. Это означает, что при переключении на другое окно Engee, изменения в редакторе скриптов будут сохранены;

  3. onWindowChange — скрипт автоматически сохраняется при переключении с вкладки браузера, на которой открыт Engee, на другую вкладку. Это означает, что при смене вкладки браузера с Engee на любую другую, изменения в редакторе скриптов будут сохранены.

Маскирование кодовых ячеек

Редактор скриптов поддерживает возможность превращения переменных в кодовых ячейках в удобные интерактивные элементы — выпадающие списки, поля ввода, слайдеры и другие компоненты управления. Для этого используется механизм масок кодовых ячеек, позволяющий улучшить визуальное представление скриптов, скрыть технические детали реализации и упростить ввод данных.

Чтобы наложить маску, воспользуйтесь инструментом Маска masks script pool 1, который появляется при наведении курсора на кодовую ячейку:

masks script pool 2

Подробнее о типах масок, настройках и ручной работе с ними читайте в разделе Маски кодовых ячеек.

Точки останова

Редактор Engee поддерживает добавление точек останова в кодовые ячейки. Это удобно при отладке скриптов — выполнение кода приостанавливается в нужной строке, что позволяет пошагово исследовать поведение программы и находить ошибки.

Чтобы установить точку останова, наведите курсор на левую границу нужной строки и кликните левой кнопкой мыши:

adding breakpoints

Для настройки условий, удаления или временного отключения точки остановки можно воспользоваться контекстным меню (ПКМ по красной точке).

Engee предлагает различные типы точек останова: базовые, условные, с задержкой исполнения и другие. Условия срабатывания можно задавать через выражения, количество итераций или зависимость от других точек.

Подробнее о работе с точками останова читайте в разделе Точки останова редактора скриптов.

Методы программного управления

С помощью публичных методов (подробнее см. Публичные методы программного управления) можно управлять скриптами Engee не прибегая к интерфейсу редактора скриптов. Эти команды предназначены для работы с файлами редактора скриптов и вызываются через engee.script. Рассмотрим каждый из этих методов:

@include — включает (встраивает) код скрипта вместо вызова макроса.

Например, у нас есть скрипт с именем new.ngscript, в котором написан код — a = 1. Создадим другой скрипт new_1.ngscript, в котором обратимся к первому по абсолютному пути через @include:

engee.script.@include("/user/new.ngscript")

Результат выполнения кода первого скрипта a = 1 будет включен во второй скрипт и будет равен 1.

Команда @include и встраиваемый им код не должны находиться в одном скрипте. В ином случае возникнет ошибка циклической зависимости, когда @include должен вызвать сам себя.
edit — открывает скрипт на редактирование.

Открывает скрипт для редактирования по указанному пути. Если файла скрипта нет, то он создается автоматически.

engee.script.edit("/user/new.ngscript")
Если указано расширение иное от .ngscript, то выведет ошибку ErrorException("path should end with.ngscriptextension").
extract_code — извлекает код по указанному пути.

Извлекает код из скрипта по указанному пути. Например, для скрипта new.ngscript с кодом a = 1:

engee.script.extract_code("/user/new.ngscript")

Вывод:

:($(Expr(:toplevel, :(#= none:1 =#), :(a = 1))))

Подробнее о других публичных методах, применяемых в скриптах, читайте в статье Программное управление моделированием.