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

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

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",
    "preferOwnSymbols": false
}

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

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

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

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

*.pplugin
{
  "version": "1.0.0",
  "name": "sample_plugin",
  "description": "Это пример плагина.",
  "author": "untrustedmodders",
  "website": "https://github.com/untrustedmodders/",
  "license": "MIT",
  "entry": "bin/sample_plugin",
  "platforms": [],
  "language": "cpp",
  "dependencies": [],
  "methods": [],
  "classes": []
}

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

  • version: Семантическая версия плагина.
  • name: Удобное для пользователя имя плагина.
  • description: Краткое описание или обзор плагина.
  • author: Создатель или автор плагина.
  • website: URL-адрес, ссылающийся на профиль или информацию о создателе.
  • license: Лицензия плагина.
  • entry: Точка входа или главный исполняемый файл плагина, указанный как bin/sample_plugin. (Зависит от языкового модуля.)
  • platforms: Массив, перечисляющий поддерживаемые плагином платформы. (В этом примере пустой.)
  • language: Информация об используемом модуле языка программирования. В данном случае это "cpp" (C++).
  • dependencies: Список ссылок на плагины, указывающий зависимости, необходимые для работы плагина. Это поле имеет решающее значение для топологической сортировки, чтобы загружать плагины в правильном порядке инициализации.
  • methods: Массив, описывающий функции/методы, предоставляемые плагином.

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

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

*.pmodule
{
    "version": "1.0.0",
    "name": "cpp_module",
    "language": "cpp",
    "description": "Добавляет поддержку плагинов на C++",
    "author": "untrustedmodders",
    "website": "https://github.com/untrustedmodders/",
    "license": "MIT",
    "platforms": []
}

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

  • version: Семантическая версия языкового модуля.
  • name: Удобное для пользователя имя языкового модуля.
  • language: Язык программирования, поддерживаемый этим модулем (например, "cpp" для C++).
  • description: Краткое описание или обзор языкового модуля.
  • author: Создатель или автор языкового модуля.
  • website: URL-адрес, ссылающийся на профиль или информацию о создателе.
  • license: Лицензия языкового модуля.
  • platforms: Массив, перечисляющий поддерживаемые языковым модулем платформы.

Примечания:

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