Конфигурация

Обзор настроек и опций.

Plugify использует три основных файла конфигурации для управления своим поведением, плагинами и языковыми модулями: plugify.pconfig, *.pplugin и *.pmodule. Ниже приведено подробное объяснение каждого файла и его опций конфигурации.

Манифест конфигурации

Файл plugify.pconfig требуется для тестового приложения plug, чтобы найти каталог res и настроить его поведение. Он должен быть размещен в корневом каталоге и содержать следующие поля:

plugify.pconfig
{
    "$schema": "https://raw.githubusercontent.com/untrustedmodders/plugify/refs/heads/main/schemas/config.schema.json",
    "baseDir": "res",
    "logSeverity": "debug",
    "repositories": [],
    "preferOwnSymbols": false
}

Опции конфигурации:

  • baseDir: Указывает каталог, в котором находятся плагины и языковые модули (по умолчанию: res).
  • logSeverity: Контролирует уровень логирования (например, debug, info, error).
  • repositories: Список удаленных репозиториев для загрузки пакетов (оставьте пустым для локального тестирования).
  • preferOwnSymbols: Определяет, должен ли Plugify предпочитать свои собственные символы символам, предоставляемым плагинами (установите в false для большинства случаев).

Манифест плагина

Файл .pplugin определяет конфигурацию для конкретного плагина. Ниже приведен пример:

*.pplugin
{
  "fileVersion": 1,
  "version": "1.0.0",
  "friendlyName": "Пример плагина",
  "description": "Это пример плагина.",
  "createdBy": "untrustedmodders",
  "createdByURL": "https://github.com/untrustedmodders/",
  "docsURL": "https://github.com/untrustedmodders/sample_plugin",
  "downloadURL": "https://github.com/untrustedmodders/sample_plugin/releases/download/v1.0/sample_plugin.zip",
  "updateURL": "https://raw.githubusercontent.com/untrustedmodders/sample_plugin/main/sample_plugin.json",
  "entryPoint": "bin/sample_plugin",
  "supportedPlatforms": [],
  "languageModule": {
    "name": "cpp"
  },
  "dependencies": [],
  "exportedMethods": []
}

Опции конфигурации:

  • fileVersion: Номер версии формата файла конфигурации.
  • version: Семантическая версия плагина.
  • friendlyName: Удобное для пользователя имя плагина.
  • description: Краткое описание или обзор плагина.
  • createdBy: Создатель или автор плагина.
  • createdByURL: URL-адрес, ссылающийся на профиль или информацию о создателе.
  • docsURL: URL-адрес, ссылающийся на документацию плагина.
  • downloadURL: URL-адрес для загрузки плагина, обычно это пакет релиза или ZIP-файл.
  • updateURL: URL-адрес для проверки и получения обновлений плагина.
  • entryPoint: Точка входа или главный исполняемый файл плагина, указанный как bin/sample_plugin. (Зависит от языкового модуля.)
  • supportedPlatforms: Массив, перечисляющий поддерживаемые плагином платформы. (В этом примере пустой.)
  • languageModule: Информация об используемом модуле языка программирования. В данном случае это "cpp" (C++).
  • dependencies: Список ссылок на плагины, указывающий зависимости, необходимые для работы плагина. Это поле имеет решающее значение для топологической сортировки, чтобы загружать плагины в правильном порядке инициализации.
  • exportedMethods: Массив, описывающий функции/методы, предоставляемые плагином.

Манифест модуля

Файл .pmodule определяет конфигурацию для языкового модуля. Ниже приведен пример:

*.pmodule
{
    "fileVersion": 1,
    "version": "1.0.0",
    "friendlyName": "Языковой модуль C++",
    "language": "cpp",
    "description": "Добавляет поддержку плагинов на C++",
    "createdBy": "untrustedmodders",
    "createdByURL": "https://github.com/untrustedmodders/",
    "docsURL": "https://github.com/untrustedmodders/cpp-lang-module/README.md",
    "downloadURL": "https://github.com/untrustedmodders/cpp-lang-module/releases/download/v1.0/cpp-lang-module.zip",
    "updateURL": "https://raw.githubusercontent.com/untrustedmodders/cpp-lang-module/main/cpp-lang-module.json",
    "supportedPlatforms": [],
    "forceLoad": false
}

Опции конфигурации:

  • fileVersion: Номер версии формата файла конфигурации.
  • version: Семантическая версия языкового модуля.
  • friendlyName: Удобное для пользователя имя языкового модуля.
  • language: Язык программирования, поддерживаемый этим модулем (например, "cpp" для C++).
  • description: Краткое описание или обзор языкового модуля.
  • createdBy: Создатель или автор языкового модуля.
  • createdByURL: URL-адрес, ссылающийся на профиль или информацию о создателе.
  • docsURL: URL-адрес, ссылающийся на документацию языкового модуля.
  • downloadURL: URL-адрес для загрузки языкового модуля, обычно это пакет релиза или ZIP-файл.
  • updateURL: URL-адрес для проверки и получения обновлений языкового модуля.
  • supportedPlatforms: Массив, перечисляющий поддерживаемые языковым модулем платформы.
  • forceLoad: Логическое значение, указывающее, должен ли языковой модуль принудительно загружаться ядром.

Примечания:

  • Убедитесь, что все файлы конфигурации являются валидным JSON и соответствуют схеме, предоставленной Plugify.
  • Используйте поле $schema для проверки ваших файлов конфигурации на соответствие официальной схеме.
  • Для локального тестирования оставьте поле repositories в plugify.pconfig пустым.