Создание фрагмента кода
Создание
Обычно шаблон «фрагмента кода» в файле .snippet должен напрямую возвращать таблицу, например:
return {
name = '测试片段'; -- Название фрагмента кода
description = '用于测试各选择器的功能'; -- Описание фрагмента кода
arguments = { -- Список выборщиков фрагмента кода
{ -- Выборщик 1
type = 'app', -- Тип выборщика
title = '选择应用', -- Заголовок выборщика
subtitle = '请选择一个应用', -- Подзаголовок выборщика
default = 'com.xxtouch.XXTExplorer', -- Значение выборщика по умолчанию
},
{ -- Выборщик 2
type = 'loc',
title = '选择地理位置',
subtitle = '请随便选择一个地理位置',
default = xui.get("com.darwindev.XXTExplorer", "location1"),
-- В файле .snippet можно использовать все API, поддерживаемые .xui
},
{ -- Выборщик 3
},
-- ...
};
generator = function (...) -- Генератор с переменным числом аргументов
-- Обработать параметры и вернуть сгенерированный результат
local result
return result
end;
}
Корневой уровень
| Ключ | Тип | Описание |
|---|---|---|
| name | строка | Название фрагмента кода |
| description | строка | Описание фрагмента кода |
| arguments | массив | Список выборщиков фрагмента кода |
| generator | функция | Генератор фрагмента кода |
| output | строка | Имя отдельного выходного файла фрагмента кода |
name и description — отображаемые имя и описание шаблона фрагмента кода; они показываются в файловом менеджере и в пункте входа в фрагменты кода.
arguments — массив, содержащий один или несколько словарей параметров выборщиков. App создаёт очередь выборщиков в порядке, заданном этим массивом, и последовательно предлагает пользователю выполнить выбор. После завершения очереди App передаёт возвращаемое значение каждого выборщика в качестве переменного аргумента генератору generator и вызывает его, а затем возвращает вызывающей стороне результат generator.
Шаблон фрагмента кода .snippet можно использовать самостоятельно. Чтобы разрешить такое использование, задайте поле output; сгенерированный generator текст результата будет сохранён в том же каталоге в файле, имя которого указано в output.
Словарь параметров выборщика
| Ключ | Тип | Описание |
|---|---|---|
| type | строка | Тип выборщика |
| title | строка | Заголовок выборщика, отображаемый в нижней части страницы выборщика |
| subtitle | строка | Подзаголовок выборщика, отображаемый в нижней части страницы выборщика |
| default | базовый тип | Значение выборщика по умолчанию |
Подробное описание словаря параметров выборщика для каждого типа приведено далее.
Использование в XUI
Если шаблон фрагмента кода .snippet используется в компоненте XUI TitleValue, из XUI можно вызвать очередь выборщиков и сохранить результат в параметрах конфигурации компонента XUI. Кроме того, этот .snippet может вызывать все API, поддерживаемые XUI, например xui.get/xui.set/xpp.bundle_path.
Использование в редакторе кода
Поместите шаблон фрагмента кода .snippet в каталог snippets главного каталога — после этого его сможет вызвать редактор кода App. Однократное нажатие на кнопку со звездой в правом верхнем углу панели инструментов клавиатуры быстро создаёт фрагмент кода и вставляет его в редактируемый код.
Использование как отдельного файла
Задайте для шаблона фрагмента кода .snippet поле output и поместите фрагмент в каталог lua/scripts главного каталога. После этого в App можно непосредственно нажать на файл, запустить очередь выборщиков, а текст результата, созданный generator, будет сохранён в том же каталоге в файле, имя которого указано в output.