Перейти к основному содержимому
Версия: 26.1.0 (в разработке)

Interface: PluginsApi

Интерфейс для управления и интеграции надстроек в редактор.

Позволяет хост-приложению загружать, запускать, останавливать надстройки и получать их статус. API предназначен для расширения редактора внешними JavaScript-надстройками.

Remarks

Типичные сценарии использования:

  • Динамический запуск стороннего расширения
  • Отключение/перезапуск надстройки по событию в редакторе
  • Получение полного списка работающих расширений

Example

Простая надстройка с методом onInit

export default {
// Точка входа в надстройку
onInit: () => {
console.log('Надстройка активирована');
}
}

Запуск и остановка через PluginsApi

await pluginApi.startPlugin('myPlugin', pluginCode);

// ... работа надстройки ...

await pluginApi.stopPlugin('myPlugin');

Получение списка активных надстроек

const active = await pluginApi.getStartedPluginIds();
console.log('Запущено:', active);

See

EditorPlugin — структура надстройки и описание жизненного цикла

Methods

getStartedPluginIds()

getStartedPluginIds(): Promise<string[]>

Возвращает список уникальных идентификаторов всех запущенных надстроек.

Returns

Promise<string[]>

Promise с массивом строковых id активных надстроек (может быть пустым).

Example

const activeIds = await pluginApi.getStartedPluginIds();

startPlugin()

startPlugin(id, code): Promise<void>

Загружает и запускает надстройку в редакторе.

Parameters

id

string

Уникальный идентификатор надстройки (строка без пробелов, регистр чувствителен).

code

string

Исходный код надстройки на чистом JavaScript.

Returns

Promise<void>

Example

await pluginApi.startPlugin('helloWorld', 'export default { onInit: () => alert("Hello!") }');

stopPlugin()

stopPlugin(id): Promise<void>

Останавливает работу ранее запущенной надстройки.

Parameters

id

string

Уникальный идентификатор надстройки, запускался через startPlugin.

Returns

Promise<void>

Promise, резолвится после полного завершения onDestroy или аналогичного метода.

Example

await pluginApi.stopPlugin('helloWorld');