Конфигурация
Обзор настроек и опций.
Plugify использует три основных файла конфигурации для управления своим поведением, плагинами и языковыми модулями: plugify.pconfig, *.pplugin и *.pmodule. Ниже приведено подробное объяснение каждого файла и его опций конфигурации.
Манифест конфигурации
Файл plugify.pconfig требуется для тестового приложения plug, чтобы найти каталог plugify и настроить его поведение. Он должен быть размещен в корневом каталоге и содержать следующие поля:
Опции конфигурации:
Пути
baseDir: Указывает базовую директорию Plugify. Все остальные относительные пути разрешаются относительно этой директории.extensionsDir: Директория, в которой находятся плагины и языковые модули (по умолчанию:extensions).configsDir: Директория для конфигурационных файлов расширений (по умолчанию:configs). Относительные пути разрешаются относительноbaseDir.dataDir: Директория для файлов данных расширений (по умолчанию:data). Относительные пути разрешаются относительноbaseDir.logsDir: Директория для файлов журналов (по умолчанию:logs). Относительные пути разрешаются относительноbaseDir.cacheDir: Директория для кэшированных файлов (по умолчанию:cache). Относительные пути разрешаются относительноbaseDir.
Загрузка
preferOwnSymbols: Определяет, должны ли модули отдавать предпочтение собственным символам перед символами, предоставляемыми общими библиотеками (по умолчанию:false).maxConcurrentLoads: Максимальное количество модулей, которые могут загружаться одновременно (по умолчанию:4).loadTimeout: Максимальное время, отведённое на загрузку модуля, в миллисекундах (по умолчанию:500).exportTimeout: Максимальное время, отведённое на разрешение экспортов модуля, в миллисекундах (по умолчанию:100).startTimeout: Максимальное время, отведённое на запуск модуля, в миллисекундах (по умолчанию:250).
Безопасность
whitelistedExtensions: Список расширений, которым явно разрешено загружаться.blacklistedExtensions: Список расширений, загрузка которых явно запрещена.excludedDirs: Список директорий, исключённых из поиска расширений.
Логирование
severity: Определяет минимальный уровень логирования. Поддерживаемые значения:none,fatal,error,warning,info,debugиtrace.printReport: Выводит отчёт о загрузке модулей (по умолчанию:false).printLoadOrder: Выводит порядок загрузки модулей (по умолчанию:false).printDependencyGraph: Выводит граф зависимостей модулей (по умолчанию:false).printDigraphDot: Выводит граф зависимостей в формате DOT (по умолчанию:false).
Манифест плагина
Файл .pplugin определяет конфигурацию для конкретного плагина. Ниже приведен пример:
Опции конфигурации:
version: Семантическая версия плагина.name: Удобное для пользователя имя плагина.description: Краткое описание или обзор плагина.author: Создатель или автор плагина.website: URL-адрес, ссылающийся на профиль или информацию о создателе.license: Лицензия плагина.entry: Точка входа или главный исполняемый файл плагина, указанный какbin/sample_plugin. (Зависит от языкового модуля.)platforms: Массив, перечисляющий поддерживаемые плагином платформы. (В этом примере пустой.)language: Информация об используемом модуле языка программирования. В данном случае это"cpp"(C++).dependencies: Список ссылок на плагины, указывающий зависимости, необходимые для работы плагина. Это поле имеет решающее значение для топологической сортировки, чтобы загружать плагины в правильном порядке инициализации.methods: Массив, описывающий функции/методы, предоставляемые плагином.classes: Массив, описывающий классы, предоставляемые плагином.
Манифест модуля
Файл .pmodule определяет конфигурацию для языкового модуля. Ниже приведен пример:
Опции конфигурации:
version: Семантическая версия языкового модуля.name: Удобное для пользователя имя языкового модуля.language: Язык программирования, поддерживаемый этим модулем (например,"cpp"для C++).description: Краткое описание или обзор языкового модуля.author: Создатель или автор языкового модуля.website: URL-адрес, ссылающийся на профиль или информацию о создателе.license: Лицензия языкового модуля.platforms: Массив, перечисляющий поддерживаемые языковым модулем платформы.
Примечания:
- Убедитесь, что все файлы конфигурации являются валидным JSON и соответствуют схеме, предоставленной Plugify.
- Используйте поле
$schemaдля проверки ваших файлов конфигурации на соответствие официальной схеме.