Skip to content

rune-langium / visual-editor/src / StructureDataNode

Interface: StructureDataNode ​

Defined in: packages/visual-editor/src/types/structure-view.ts:160

A Data node in the Structure View graph.

Properties ​

PropertyModifierTypeDescriptionDefined in
annotations?readonlyreadonly string[]Phase A — annotation display strings (e.g. metadata, rootType) derived from the AST annotations via annotationsToDisplay. Surfaced via the header annotations (@) indicator. Empty / undefined when none.packages/visual-editor/src/types/structure-view.ts:205
conditions?readonlyreadonly StructureConditionMeta[]Phase A — condition display meta derived from the AST conditions via conditionsToDisplay. Surfaced via the header conditions (✓) indicator. Empty / undefined when none.packages/visual-editor/src/types/structure-view.ts:211
deferred?readonlybooleanTrue when this node is a deferred curated placeholder whose namespace hasn't been on-demand hydrated yet (forwarded from GraphNodeMeta.deferred via AdapterNode). Drives the same hydrating-spinner treatment as the main graph canvas.packages/visual-editor/src/types/structure-view.ts:191
definition?readonlystringPhase A — type-level documentation (the definition string on the AST Data node). Surfaced via the header doc (ⓘ) indicator. Undefined / empty when the type has no documentation.packages/visual-editor/src/types/structure-view.ts:199
expansionsreadonlyReadonlyMap<string, string>Direct expansions (attrName → child INSTANCE id). The child id keys into StructureGraphInput.nodes (which is per-instance keyed).packages/visual-editor/src/types/structure-view.ts:217
extendsName?readonlystring-packages/visual-editor/src/types/structure-view.ts:192
extendsNodeId?readonlystring-packages/visual-editor/src/types/structure-view.ts:193
idreadonlystringCANONICAL node id (e.g. cdm.trade.Party). Cells / editors look up the shared type description by this id. Multiple visible instances of the same type share the same id — they are distinguished by instanceId.packages/visual-editor/src/types/structure-view.ts:166
instanceId?readonlystringPer-instance discriminator id (Phase 14e). The adapter emits one StructureDataNode per visible occurrence of a type; each carries its own expansions map so chevrons on different instances don't bleed into each other (e.g. buyer.Party vs seller.Party). For root placements this equals the canonical id. For nested instances it follows the layout's instance-id format (${parentInstanceId}::${attrName}::${canonicalId}). The nodes map in StructureGraphInput is keyed on instanceId when the adapter populates it. Layout-only test fixtures may omit instanceId; the layout falls back to id so existing fixtures continue to work.packages/visual-editor/src/types/structure-view.ts:181
kindreadonly"data"-packages/visual-editor/src/types/structure-view.ts:182
namereadonlystring-packages/visual-editor/src/types/structure-view.ts:183
namespaceUrireadonlystring-packages/visual-editor/src/types/structure-view.ts:184
rowsreadonlyreadonly StructureRow[]-packages/visual-editor/src/types/structure-view.ts:212

Core packages released under MIT. Studio app released under FSL-1.1-ALv2.