Фрагменты
Фрагмент — это именованный набор шагов или скрипт, не привязанный ни к какому триггеру. Действия, скрипты «до» и «после», глобальные события и другие фрагменты выполняют его по имени. Напишите что-то один раз как фрагмент, и каждое вызывающее его действие использует одну и ту же копию: измените фрагмент, и изменятся все.
Список фрагментов
Список показывает все фрагменты библиотеки под заголовками категорий: категории по алфавиту, затем Без категории, а внутри каждой — по алфавиту имён. Фрагмент, который что-то вызывает, показывает Используется: и число вызывающих.
- + Создать добавляет фрагмент Новый фрагмент в категорию выбранного фрагмента, в формате шагов.
- Кнопка дублирования рядом с + Создать копирует выбранный фрагмент под новым уникальным именем.
- Кнопка удаления в строке удаляет фрагмент (Удаление фрагмента).
Имя и категория
- Имя ① — то, по чему вызывающие находят фрагмент. Оно должно быть уникальным во всей библиотеке, независимо от категории, а два имени, различающиеся только регистром, считаются одинаковыми. Оно не может содержать двойную кавычку, обратную косую черту или управляющий символ. Имя, нарушающее правило, отображается красным с причиной и возвращается к прежнему, когда вы покидаете поле.
- Переименование фрагмента переписывает все вызовы, указывающие его имя в кавычках, во всей конфигурации (Кто вызывает фрагмент).
- Категория ② только группирует список. На выполнение фрагмента она не влияет.
Что делает фрагмент
Формат выбирает Шаги или Скрипт, как и для действия (Шаги, скрипт и AutoHotkey). При переключении с шагов на скрипт предлагается перевести шаги, как на странице «Действия».
- В режиме шагов редактор такой же, как у действия (Редактор шагов).
- В режиме скрипта Проверить синтаксис проверяет скрипт собственным компилятором движка. Он сообщает Синтаксис в порядке с числом строк или первую ошибку и подчёркивает проблему в редакторе.
- AutoHotkey предлагается только для фрагмента, который уже выполняется как AutoHotkey.
- Кнопки для запуска фрагмента здесь нет. Чтобы безопасно опробовать шаги, используйте песочницу.
Расширенный режим. Над редактором отображается вызов, выполняющий этот фрагмент ③, в форме скрипта, с кнопкой его копирования.
Вызов фрагмента
Фрагмент выполняется, когда шаг или скрипт вызывает встроенную функцию SnippetExecuteScript с его именем:
- В шагах добавьте шаг Выполнить фрагмент (
SnippetExecuteScript) из списка всех встроенных функций (Добавление шагов) и введите имя фрагмента в поле Имя. - В скрипте напишите вызов:
SnippetExecuteScript("Center window");
Как он выполняется:
- Вызывающий ждёт, пока фрагмент завершится, затем продолжает.
- Фрагмент видит то, что запустило вызывающего (его целевое окно, жест и т. д.), поэтому Целевое окно внутри фрагмента — это целевое окно вызывающего.
- У фрагмента свои переменные. Он не может читать переменные вызывающего, а вызывающий — его.
- Имя должно совпадать точно, включая регистр. Если фрагмента с таким именем нет, ничего не выполняется, и
вызов даёт
false. - Вызов даёт
true, только если фрагмент выполнился до конца. Он также даётfalse, если фрагмент пуст, содержит ошибку или остановлен. - Фрагмент может вызывать другие фрагменты. Ничто не мешает фрагменту вызвать сам себя, поэтому следите, чтобы такая цепочка заканчивалась.
Кто вызывает фрагмент
Карточка Вызывается из ④ перечисляет все действия, скрипты «до» и «после», глобальные события (даже выключенные) и фрагменты, вызывающие этот фрагмент. Глобальное событие помечается Глобальное событие, а фрагмент — Фрагмент.
Находятся только вызовы, где имя фрагмента записано в кавычках. Вызов, который строит имя во время выполнения, не перечисляется, а вызов внутри комментария — перечисляется. Тела AutoHotkey не просматриваются.
Удаление фрагмента
Удалить фрагмент нельзя, пока его вызывает что-либо из списка Вызывается из. Кнопка удаления тогда показывает Не удаётся удалить со списком вызывающих; сначала измените или удалите эти вызовы. Фрагмент, который ничто не вызывает, удаляется после подтверждения.
Вызов, который список не видит (имя, построенное во время выполнения скрипта), не защищён: если удалить
такой фрагмент, вызов ничего не найдёт и даст false.
Фрагменты из других мест
- Создать фрагмент на странице Запись макросов превращает запись во фрагмент.
- Сохранить как фрагмент на странице Песочница сохраняет шаги или скрипт, опробованные там.
Обе кнопки открывают новый фрагмент на этой странице с курсором в поле Имя, готовым к переименованию.
К уже занятому имени добавляется -1, -2 и так далее.