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
- Core graph state is managed in Vue; Cytoscape.js handles layout, hit-testing, and interaction semantics (including compound nodes for plates) [@cytoscapejs].
117
+
- Core graph state is managed in Vue; [Cytoscape.js](https://js.cytoscape.org/) handles layout, hit-testing, and interaction semantics (including compound nodes for plates) [@cytoscapejs].
118
118
- Code generation lives in `DoodleBUGS/src/composables/useBugsCodeGenerator.ts` and maps `GraphNode`/`GraphEdge` to BUGS:
119
119
- Kahn topological sort for definition order
120
120
- Plate-aware recursion for `for (...) { ... }` blocks
- Timeout: worker process is killed if exceeding `timeout_s`.
133
133
- Cleanup: `safe_rmdir()` retries with GC to avoid EBUSY on Windows.
134
134
135
-
## Why Vue (not React)
135
+
## Why Vue (not React)?
136
136
137
137
The proposal planned React; we chose Vue 3 after evaluating the graph layer and developer velocity for this app.
138
138
139
-
- Tried Konva (canvas) for custom graph editing: powerful drawing primitives, but required bespoke graph semantics (hit testing, edge routing, compound nodes) that Cytoscape.js provides out of the box.
139
+
- Tried Konva (canvas) for custom graph editing: powerful drawing primitives, but required bespoke graph semantics (hit testing, edge routing, compound nodes) that [Cytoscape.js](https://js.cytoscape.org/) provides out of the box.
140
140
- Tried D3 force/layouts: flexible, but compound nodes (plates), nesting, and drag constraints became a significant amount of custom code to maintain.
0 commit comments