You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/1.introduction/4.architecture.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,12 @@ description: How it works under the hood (high-level explanation).
4
4
icon: lucide:layers
5
5
---
6
6
7
+
# Version 2.#.#
8
+
9
+
## TODO
10
+
11
+
# Version 1.#.#
12
+
7
13
The core architecture of Plugify is designed to facilitate seamless interaction between language modules, each implemented as a separate C++ library. As a result, the core does not communicate directly with plugins; instead, all interactions occur through these language modules. Likewise, plugins do not directly interact with the core but rely on language modules for communication. This modular design even extends to the C++ language itself, requiring a dedicated language module for handling C++-based plugins. The primary objective of the Plugify project is to establish a universal environment that enables fast and efficient inter-language interaction.
Copy file name to clipboardExpand all lines: content/2.essentials/1.installation.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,10 +66,9 @@ The `plug` app allows you to test plugins and language modules locally. Follow t
66
66
```
67
67
2. Inside the `res` folder, create two subfolders:
68
68
```
69
-
mkdir ../res/plugins
70
-
mkdir ../res/modules
69
+
mkdir ../res/extensions
71
70
```
72
-
3. Place your plugins in the `plugins` folder and language modules in the `modules` folder.
71
+
3. Place your plugins in the `extensions` folder and language modules in the `extensions` folder.
73
72
74
73
### Configure `plugify.pconfig`
75
74
The `plug` app requires a configuration file named `plugify.pconfig` in the working directory. This file specifies the path to the `res` folder and other settings.
-**`fileVersion`**: The version number of the configuration file format.
60
54
-**`version`**: The semantic version of the plugin.
61
-
-**`friendlyName`**: A user-friendly name for the plugin.
55
+
-**`name`**: An alias name for the plugin.
62
56
-**`description`**: A brief description or overview of the plugin.
63
-
-**`createdBy`**: The creator or author of the plugin.
64
-
-**`createdByURL`**: The URL linking to the creator's profile or information.
65
-
-**`docsURL`**: The URL linking to the documentation for the plugin.
66
-
-**`downloadURL`**: The URL for downloading the plugin, typically a release package or ZIP file.
67
-
-**`updateURL`**: The URL for checking and fetching updates for the plugin.
68
-
-**`entryPoint`**: The entry point or main executable for the plugin, specified as `bin/sample_plugin`. (Depends on the language module.)
69
-
-**`supportedPlatforms`**: An array listing the platforms supported by the plugin. (Currently empty in this example.)
70
-
-**`languageModule`**: Information about the programming language module used. In this case, it's specified as `"cpp"` (C++).
57
+
-**`author`**: The creator or author of the plugin.
58
+
-**`website`**: The URL linking to the creator's profile or information.
59
+
-**`license`**: The license for the plugin.
60
+
-**`entry`**: The entry point or main executable for the plugin, specified as `bin/sample_plugin`. (Depends on the language module.)
61
+
-**`platforms`**: An array listing the platforms supported by the plugin. (Currently empty in this example.)
62
+
-**`language`**: Information about the programming language module used. In this case, it's specified as `"cpp"` (C++).
71
63
-**`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.
72
-
-**`exportedMethods`**: An array describing functions/methods exposed by the plugin.
64
+
-**`methods`**: An array describing functions/methods exposed by the plugin.
73
65
74
66
### Module Manifest
75
67
@@ -78,35 +70,27 @@ The `.pmodule` file defines the configuration for a language module. Below is an
Before proceeding, make sure you have the [Mamba package manager](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html#mamba-user-guide) installed and understand the basics of creating and managing environments.
34
+
If you are new to Mamba, please read the **Quickstart Guide** in the official documentation.
51
35
52
36
### **Install the Module**
53
-
1. Run the following command in your terminal:
37
+
1. Run the following command in your terminal (replace `your_env_name` with the name of your environment):
*`entryPoint`: Specifies the **module path** and **class name** of the plugin. For example, if your plugin is in `python_example_plugin.py` and the class is `ExamplePlugin`, the entry point should be `python_example_plugin.ExamplePlugin`.
97
-
*`languageModule`: Should be set to **python3** for Python plugins.
91
+
*`entry`: Specifies the **module path** and **class name** of the plugin. For example, if your plugin is in `python_example_plugin.py` and the class is `ExamplePlugin`, the entry point should be `python_example_plugin.ExamplePlugin`.
92
+
*`language`: Should be set to **python3** for Python plugins.
98
93
*`dependencies`: Lists other **required plugins**, ensuring correct load order.
99
-
*`exportedMethods`: **Functions** exposed by the plugin for external interaction.
94
+
*`methods`: **Functions** exposed by the plugin for external interaction.
0 commit comments