hdds_studio Visual IDL Editor
hdds_studio is a modern visual editor for designing DDS data types. Design your IDL with a drag-and-drop interface, real-time validation, and automatic code generation.
Features
- Visual canvas - Drag-and-drop node editor
- 9 node types - Struct, Enum, Union, Typedef, Module, Constant, Sequence, Array, Map
- Real-time validation - 60+ compliance rules
- Auto-layout - ELK hierarchical algorithm
- IDL import/export - Full round-trip fidelity
- QoS editor - Configure DDS Quality of Service
- Keyboard shortcuts - Power-user productivity
Quick Start
# Install
cargo install hdds-studio
# Open the editor
hdds-studio
# Open an existing project
hdds-studio my_project.hddsgraph.json
# Import from IDL
hdds-studio --import types.idl
Visual Editor
The canvas provides an intuitive node-based interface:
- Drag from palette → Create new type nodes
- Connect nodes → Define type relationships
- Click to select → Edit properties in side panel
- Ctrl+L → Auto-layout the graph
Node Types
| Node | Color | Description |
|---|---|---|
| Struct | Blue | Composite data type |
| Enum | Amber | Enumeration |
| Union | Green | Discriminated union |
| Typedef | Purple | Type alias |
| Module | Pink | Namespace container |
| Constant | Red | Constant value |
| Sequence | Cyan | Variable-length array |
| Array | Violet | Fixed-size array |
| Map | Orange | Key-value container |
Validation
hdds_studio validates your design in real-time with 60+ rules:
- Type declarations - Inheritance, cycles, forward declarations
- Identifiers - Reserved keywords, naming conventions
- Collections - Depth limits, bounds validation
- Annotations - Correct usage of @key, @optional, etc.
Validation results appear in the Diagnostics panel with severity indicators.
Auto-Layout
Press Ctrl+L to automatically arrange nodes using the ELK hierarchical algorithm:
| Preset | Nodes | Spacing |
|---|---|---|
| Compact | < 20 | 60×80 |
| Default | 20-100 | 80×100 |
| Spacious | > 100 | 120×150 |
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+N | New project |
| Ctrl+O | Open project |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save as |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+A | Select all |
| Ctrl+L | Auto-layout |
| Delete | Remove selected |
| 0 | Fit view |
| +/- | Zoom in/out |
| Escape | Deselect all |
Project Files
Projects are saved as .hddsgraph.json with an optional .layout.json for positions:
my_project.hddsgraph.json # Type definitions
my_project.hddsgraph.layout.json # Canvas positions
Features:
- Auto-save every 30 seconds
- Crash recovery with
.autosavebackup - Full undo/redo history (100 levels)
Export to IDL
Export your visual design to canonical IDL 4.2:
- File → Export IDL
- Choose output file
- Get deterministic, formatted IDL
The export maintains 100% round-trip fidelity.