Импорт функций
Узнайте, как импортировать функции из других плагинов, написанных на разных языках, и использовать их в своем собственном.
В Plugify языковой модуль Lua позволяет вам импортировать и использовать функции из плагинов, написанных на других языках. Это достигается за счет синтетических модулей, генерируемых во время выполнения, которые обеспечивают бесшовное взаимодействие между плагинами.
Это руководство объясняет, как импортировать функции в Lua.
Обзор
При импорте функций из другого плагина в Lua:
- Модули, генерируемые во время выполнения: Plugify динамически генерирует синтетические модули во время выполнения, позволяя вам импортировать и вызывать функции из других плагинов напрямую.
- Прямые вызовы функций: Функции вызываются напрямую с использованием импортированных синтетических модулей.
Импорт функций в Lua
Импорт синтетических модулей
Чтобы импортировать функции из другого плагина, используйте систему require от Plugify для загрузки синтетического модуля для целевого плагина.
plugify: Основной модуль Plugify, предоставляющий служебные классы, такие какVector2,Vector3и т.д.plugin_from_another_language: Синтетический модуль для целевого плагина. Замените это на имя плагина, из которого вы хотите импортировать функции.
Вызов импортированных функций
После импорта синтетического модуля вы можете вызывать его функции напрямую.
Пример 1: Вызов простой функции
ParamCallback: Это пример функции, экспортируемой целевым плагином. Замените его на фактическое имя функции.- Параметры: Передайте необходимые параметры, как определено в сигнатуре функции.
Пример 2: Вызов функции с параметром-обратным вызовом
Если импортируемая функция требует обратный вызов в качестве параметра, вы можете определить обратный вызов в Lua и передать его функции. Вот пример:
CallFuncCallback: Это пример функции, которая принимает обратный вызов в качестве параметра.mockFunc: Это функция обратного вызова, определенная в JavaScript. Она изменяет параметры, переданные по ссылке, и возвращает их в массиве.- Возвращаемые значения: Функция обратного вызова возвращает
null(для типа возвращаемого значения void) и измененные параметры.
Использование файлов типов для разработки
Хотя Lua является динамически типизированным языком и не использует файлы типов, как TypeScript, вы все равно можете воспользоваться такими средствами разработки, как автодополнение, документация и статический анализ, генерируя вспомогательные подсказки по типам или документацию для импортируемых API плагинов.
Генерация файлов типов
Plugify предоставляет унифицированный инструмент-генератор для автоматической генерации файлов типов для импортируемых плагинов.
Использование онлайн-генератора:
Посетите [https://gen.plugify.net/](инструмент plugify-gen) для генерации файлов типов через удобный веб-интерфейс. Просто загрузите файл манифеста плагина (.pplugin) и выберите Lua в качестве целевого языка, чтобы сгенерировать соответствующий файл аннотаций .lua.
Использование инструмента командной строки:
Вы также можете скачать и использовать инструмент-генератор локально из репозитория plugify-gen.
Пример использования:
Сгенерированный файл типов:
- Скрипт сгенерирует файл lua (например,
MyPlugin.lua) в указанной выходной папке. - Пример содержимого файла типов:
Использование файлов типов в вашей IDE:
- Поместите сгенерированный файл типов (
.lua) в каталог вашего проекта (но не в папку с плагинами). - IDE, такие как VSCode, будут использовать файл типов для предоставления подсказок по типам и автодополнения.
Поддержка VSCode:
- VSCode автоматически обнаруживает файлы типов в вашем проекте. Убедитесь, что папка
types(или папка, содержащая ваши.luaфайлы) включена в ваш файлluaconfig.json. - Пример конфигурации
luaconfig.json:
Примечания
- Файлы типов необязательны: Файлы типов предназначены только для разработки и не должны включаться в папку выполнения вашего плагина.
- Эффективность во время выполнения: Поскольку Lua является динамически типизированным, вызовы функций разрешаются во время выполнения без необходимости предварительно скомпилированных заголовков или определений типов.
Следуя этому руководству, вы можете легко импортировать и использовать функции из других плагинов в вашем плагине на Lua, используя при этом файлы типов для лучшего опыта разработки.