Add plugin host architecture and Storm Sewer add-on package

Generic plugin runtime (src/plugin/, HostSession, per-tab plugin_state, command router). QGIS-style add-on layout with plugin.toml and single PluginRegistration. Storm Sewer refactored as reference consumer with dispatch.rs, catchments, LandXML, headless tests (43 passing). Core update.rs decoupled from storm_sewer via CadCommand object-pick hooks. Docs: plugin-architecture.md, plugin-template, PR and issue-78 reply drafts.
This commit is contained in:
Michael Flynn committed 2026-06-09 13:41:21 -04:00
1 parent 1199895f0e
commit e46701456f
66 files changed
+4538 -141

No files matched your search

+6 -3
View File
@@ -1,10 +1,13 @@
// Module system — CadModule, ToolDef, RibbonGroup.
//
// To add a new module:
// 1. Create `src/modules/my_name/` directory
// To add a **core** ribbon tab (Home, View, …):
// 1. Create `src/modules/my_name/` directory (no `plugin.toml`)
// 2. Add `src/modules/my_name/mod.rs` implementing `CadModule` as `MyNameModule`
// 3. Add `pub mod my_name;` below
// 4. `cargo build` — module appears in the ribbon automatically
// 4. `cargo build` — tab appears via build.rs registry
//
// To add an **add-on plugin** (Storm Sewer, …):
// See `docs/plugin-architecture.md` and copy `docs/plugin-template/`.
//
// Each module folder contains:
// - mod.rs : module definition (ribbon groups + tool layout)