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
BC plugins (BCASL) run before compilation. They are Python packages placed in `Plugins/`, discovered automatically, and executed through the `on_pre_compile` hook.
2
+
A BC plugin (BCASL) is a package placed in `Plugins/` and executed before compilation. It registers automatically, respects execution order (priority, tags, dependencies), and uses `PreCompileContext` to work with the workspace.
3
3
4
-
**Steps**
5
-
1. Create a package folder in `Plugins/<plugin_name>/` with an `__init__.py`.
6
-
2. Implement a subclass of `BcPluginBase` and decorate it with `@bc_register`.
7
-
3. Define a `PluginMeta` with a unique `id`.
8
-
4. Configure the plugin in `bcasl.yml`(optional but recommended for ordering and enable/disable).
4
+
**Discovery And Loading**
5
+
- Plugins are discovered in `Plugins/<plugin_name>/`.
6
+
- The folder must contain an `__init__.py`.
7
+
- The loader imports each package and detects plugins via `@bc_register` or `bcasl_register(manager)`.
8
+
- If `bcasl.yml`is missing, a default file is generated.
9
9
10
-
**Minimal Plugin**
10
+
**Package Layout**
11
+
-`Plugins/<plugin_name>/__init__.py`: main plugin code.
PyCompiler_ARK engines are Python packages loaded from`ENGINES/` at startup. Each engine registers itself with `@engine_register` and provides a `CompilerEngine`subclass that builds the command used to compile a file.
2
+
A PyCompiler_ARK engine is a Python package placed in`ENGINES/`and auto‑loaded at startup. It registers itself with `@engine_register` and provides a `CompilerEngine` that builds the compile command and, optionally, a dedicated UI tab.
3
3
4
-
**Steps**
5
-
1. Create a package folder in `ENGINES/<engine_id>/` with an `__init__.py`.
6
-
2. Implement a subclass of `CompilerEngine` in that `__init__.py`.
7
-
3. Decorate the class with `@engine_register` and set the required attributes.
8
-
4. Restart the app so the loader auto-discovers the package.
4
+
**Discovery And Loading**
5
+
- Engines are discovered only in `ENGINES/<engine_id>/`.
6
+
- The folder must contain an `__init__.py`.
7
+
- At startup, `EngineLoader` scans `ENGINES/` and imports each package.
8
+
- Auto discovery can be disabled with `ARK_ENGINES_AUTO_DISCOVER=0`.
0 commit comments