Design files
The native .design.* files: opening, the compatibility cache for KiCad projects, migration and consolidation.
The Electronics Designer’s own format (.design.prj / .sch / .pcb / .sym / .fp / .doc / .panel / .req, reference
docs/design-file-format.md) keeps the document and, after it, one line per edit: who, when and what. The editors work
on it in two ways.
Opening a design file. Click a .design.pcb, .design.sch, .design.sym, .design.fp or .design.panel in the
Explorer (or the Project view’s Design files node): it opens in the board, schematic, symbol, footprint or panel
editor. A .design.doc opens read-only (its sheets and views); the .design.prj opens as JSON, validated against the
shipped schema like every design file opened as text. Every edit appends an event to the file’s list: Ctrl+Z / Ctrl+Y
move a cursor in that list (redo keeps the undone events until you make a new edit), and Ctrl+S appends the new
lines, so a save is quick on any board and a git diff shows the edits one per line. Undoing past the last save and
saving again rewrites the file whole. Electronics Designer: Create Baseline names the current state (an event too, one undo
step).
KiCad projects: compatibility mode. A KiCad file of a KiCad project (a folder with a .kicad_pro) stays the file
you edit and save. Next to it the Electronics Designer keeps a design cache, blinky.design.pcb beside blinky.kicad_pcb:
- on open the KiCad file is imported (in memory; nothing is written). When the cache is in step it is reused; when the KiCad file changed outside the Electronics Designer the differences become events of the cache (marked as a resync), so the history is kept;
- each edit becomes an event of the cache as well;
- on save the KiCad file is written as before, then the cache (and the
.design.prjfor the project settings).
What the importer could not map (nodes kept as KiCad text, files outside KiCad’s own layout, 3D models left as a path)
is listed in the Problems view and in a banner of the editor, once. softforge.edsnx.design.compatibilityCache: false
turns the cache off; the KiCad files are untouched either way.
Migrating a project. Electronics Designer: Migrate Project to Design Files (Explorer or Project view context menu on a
.kicad_pro, or edsnx design migrate blinky/ from a shell; --dry-run shows what would be written) gives every KiCad
file of the folder its design file, keeping the history of a cache that is in step. The design files become
authoritative: the Project view’s Schematic and Board nodes open them, and the KiCad files become an export target,
written from the design files on every save so KiCad, kicad-cli and the fabrication outputs keep working. Electronics Designer: Open Design File (editor title bar) opens the design file behind the active KiCad editor. A KiCad file
of a migrated project opened in the editor says so in a banner. Commit before migrating: it writes new files.
Consolidating. Electronics Designer: Consolidate Design File folds the list into the document: the file restarts with one
consolidate record, the document saved first and its undo history cleared. It also runs on save once the list is
longer than softforge.edsnx.design.consolidateAfter events (5000; 0 turns it off). edsnx design consolidate <file>
does the same from a shell, and the agent session has session.consolidate and session.baseline.
softforge.edsnx.design.author sets the name recorded as by (default: the OS user name).