Configuration
Overview of settings and options.
Plugify uses three main configuration files to manage its behavior, plugins, and language modules: plugify.pconfig
, *.pplugin
, and *.pmodule
. Below is a detailed explanation of each file and its configuration options.
Config Manifest
The plugify.pconfig
file is required for the plug
testing app to locate the res
directory and configure its behavior. It should be placed in the root directory and contain the following fields:
Configuration Options:
baseDir
: Specifies the directory where plugins and language modules are located (default:res
).logSeverity
: Controls the logging level (e.g.,debug
,info
,error
).repositories
: A list of remote repositories for downloading packages (leave empty for local testing).preferOwnSymbols
: Determines whether Plugify should prefer its own symbols over those provided by plugins (set tofalse
for most use cases).
Plugin Manifest
The .pplugin
file defines the configuration for a specific plugin. Below is an example:
Configuration Options:
fileVersion
: The version number of the configuration file format.version
: The semantic version of the plugin.friendlyName
: A user-friendly name for the plugin.description
: A brief description or overview of the plugin.createdBy
: The creator or author of the plugin.createdByURL
: The URL linking to the creator's profile or information.docsURL
: The URL linking to the documentation for the plugin.downloadURL
: The URL for downloading the plugin, typically a release package or ZIP file.updateURL
: The URL for checking and fetching updates for the plugin.entryPoint
: The entry point or main executable for the plugin, specified asbin/sample_plugin
. (Depends on the language module.)supportedPlatforms
: An array listing the platforms supported by the plugin. (Currently empty in this example.)languageModule
: Information about the programming language module used. In this case, it's specified as"cpp"
(C++).dependencies
: A list of plugin references specifying the dependencies required for the plugin. This field is crucial for topological sorting to load plugins in the correct order of initialization.exportedMethods
: An array describing functions/methods exposed by the plugin.
Module Manifest
The .pmodule
file defines the configuration for a language module. Below is an example:
Configuration Options:
fileVersion
: The version number of the configuration file format.version
: The semantic version of the language module.friendlyName
: A user-friendly name for the language module.language
: The programming language supported by this module (e.g.,"cpp"
for C++).description
: A brief description or overview of the language module.createdBy
: The creator or author of the language module.createdByURL
: The URL linking to the creator's profile or information.docsURL
: The URL linking to the documentation for the language module.downloadURL
: The URL for downloading the language module, typically a release package or ZIP file.updateURL
: The URL for checking and fetching updates for the language module.supportedPlatforms
: An array listing the platforms supported by the language module.forceLoad
: A boolean indicating whether the language module should be forcibly loaded by the core.
Notes:
- Ensure all configuration files are valid JSON and adhere to the schema provided by Plugify.
- Use the
$schema
field to validate your configuration files against the official schema. - For local testing, leave the
repositories
field inplugify.pconfig
empty.