forked from 1b-agent/opencadstudio-upstream
- plugin-architecture.md: new "Entity class display labels (API v10)" section documenting the split (stable identity keys in XDATA, display labels in the plugin declaration), the live-loaded-plugin gating (missing, disabled, cap-excluded, failed, removed, or dead → bare native type), the "<Label> (<Native>)" display rule, that raw schema fields (`type`, `dxf_name`, `record_type`) and LIST are unchanged, and that the label is display-only. `plugin.toml` deliberately does not carry the table: it is the pre-load discovery file and labels must activate on live manifests. - Template v2 demonstrates the whole convention: declares `SURVEY-CLASS:POINT -> "Survey Point"` and stamps the identity key in MARK_FIRST_SURVEY_POINT, so marked points show as "Survey Point (Point)" while the plugin is loaded. plugin.toml's api_version is bumped to 10 (keep in sync with ApiVersion::CURRENT) with a NOTE on where the class table lives. DESIGN.md documents the flow. - Template v2's stale `acadrust` pin (8a28c21, predating the host's codec bump to 278c49a) is realigned with the host's pin: without it the template no longer compiles on main — its `acadrust::EntityType` and the host re-exports are distinct types when the revisions disagree (verified the same four type errors occur before and after this feature's template edit). - changelogs/unreleased.md entry (Plugins section).
20 lines
730 B
TOML
20 lines
730 B
TOML
[package]
|
|
name = "plugin-template-v2"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Example OpenCAD Studio plugin demonstrating the shared-memory DocumentReader API."
|
|
license = "GPL-3.0-only"
|
|
|
|
[workspace]
|
|
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[dependencies]
|
|
ocs_plugin_api = { path = "../../crates/ocs_plugin_api", features = ["host"] }
|
|
# Must match the host's opencadcodec pin exactly (its Cargo.toml's `codec`
|
|
# entry): the plugin's entities and the host's re-exports are the same types
|
|
# only when both resolve the same revision. The registration `rustc` /
|
|
# `acadrust_source` gates enforce this at load time too.
|
|
acadrust = { package = "opencadcodec", git = "https://github.com/HakanSeven12/opencadcodec.git", rev = "278c49a" }
|